*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--brand:#1a237e;--brand-light:#283593;--accent:#e53935;--green:#2e7d32;--yellow:#f57f17;--red:#c62828;--grey:#757575;--bg:#f5f6fa;--card:#fff;--border:#e0e0e0;--text:#212121;--text-muted:#757575;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,Arial,sans-serif;font-size:14px}body{min-height:100vh}#root{flex-direction:column;min-height:100vh;display:flex}.login-wrap{background:linear-gradient(135deg,#1a237e 0%,#283593 60%,#3949ab 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:16px;width:360px;padding:40px 44px;box-shadow:0 20px 60px #00000040}.login-logo{color:var(--brand);margin-bottom:4px;font-size:28px;font-weight:800}.login-sub{color:var(--text-muted);margin-bottom:28px;font-size:13px}.login-card input,.login-card select{border:1.5px solid var(--border);border-radius:8px;outline:none;width:100%;margin-bottom:14px;padding:11px 14px;font-size:14px;transition:border-color .2s}.login-card input:focus,.login-card select:focus{border-color:var(--brand)}.login-btn{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:12px;font-size:15px;font-weight:600;transition:background .2s}.login-btn:hover{background:var(--brand-light)}.login-error{color:var(--red);margin-top:10px;font-size:13px}.header{background:linear-gradient(135deg, var(--brand), var(--brand-light));color:#fff;z-index:100;justify-content:space-between;align-items:center;padding:16px 28px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #00000026}.header-left h1{font-size:18px;font-weight:700}.header-left p{opacity:.8;margin-top:2px;font-size:12px}.header-right{align-items:center;gap:14px;display:flex}.logout-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:20px;padding:6px 16px;font-size:13px;transition:background .2s}.logout-btn:hover{background:#ffffff40}.refresh-btn{color:var(--brand);cursor:pointer;background:#fff;border:none;border-radius:20px;padding:6px 16px;font-size:13px;font-weight:600;transition:opacity .2s}.refresh-btn:hover{opacity:.85}.week-bar{border-bottom:1px solid var(--border);background:#fff;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 28px;display:flex}.week-bar span{color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.week-chip{border:1.5px solid var(--border);color:#555;cursor:pointer;background:#fff;border-radius:20px;padding:5px 16px;font-size:13px;transition:all .15s}.week-chip:hover{border-color:var(--brand);color:var(--brand)}.week-chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.main{flex:1;padding:20px 28px}.center-msg{text-align:center;color:var(--text-muted);padding:60px 20px}.spinner{border:3px solid #e0e0e0;border-top-color:var(--brand);border-radius:50%;width:36px;height:36px;margin:0 auto 16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.cards-grid{gap:20px;display:grid}.teacher-card{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000f}.card-header{cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid #f5f5f5;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.card-header:hover{background:#fafafa}.teacher-name{color:var(--brand);font-size:16px;font-weight:700}.mentor-badge{text-transform:uppercase;color:#3949ab;letter-spacing:.5px;background:#e8eaf6;border-radius:20px;margin-left:8px;padding:3px 10px;font-size:10px;font-weight:700}.card-header-right{align-items:center;gap:8px;display:flex}.issue-badge{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.issue-badge.red{color:var(--red);background:#fdecea}.issue-badge.green{color:var(--green);background:#e8f5e9}.chevron{color:var(--text-muted);font-size:12px;transition:transform .2s}.chevron.open{transform:rotate(180deg)}.card-body{grid-template-columns:1fr 1fr;gap:0;display:grid}@media (width<=700px){.card-body{grid-template-columns:1fr}}.card-section{border-bottom:1px solid #f5f5f5;border-right:1px solid #f5f5f5;padding:14px 20px}.card-section:nth-child(2n){border-right:none}.card-section:last-child,.card-section:nth-last-child(2):nth-child(odd){border-bottom:none}.section-title{text-transform:uppercase;color:var(--text-muted);letter-spacing:.6px;margin-bottom:10px;font-size:10px;font-weight:700}.metric-bar{align-items:center;gap:8px;margin-bottom:7px;display:flex}.metric-label{color:#555;flex-shrink:0;width:150px;font-size:12px}.bar-track{background:#f0f0f0;border-radius:10px;flex:1;height:10px;overflow:hidden}.bar-fill{border-radius:10px;height:100%;transition:width .4s}.metric-count{color:#333;white-space:nowrap;min-width:30px;font-size:12px}.metric-miss{color:var(--red);font-size:11px}.task-row{border-bottom:1px dashed #f0f0f0;justify-content:space-between;align-items:center;gap:8px;padding:5px 0;display:flex}.task-row:last-child{border-bottom:none}.task-label{color:#555;flex:1;font-size:12px}.task-val{white-space:nowrap;text-align:right;text-overflow:ellipsis;border-radius:4px;max-width:160px;padding:2px 8px;font-size:11px;font-weight:600;overflow:hidden}.task-val.done{color:#2e7d32;background:#e8f5e9}.task-val.bad{color:#c62828;background:#fdecea}.task-val.neutral{color:#f57f17;background:#fff8e1}.task-val.na{color:#9e9e9e;background:#f5f5f5}.task-val.absent{color:#880e4f;background:#fce4ec}.task-val.info{color:#1565c0;background:#e3f2fd}.card-footer{border-top:1px solid #f0f0f0}.flags-section{background:#fff5f5;border-top:2px solid #ffcdd2;padding:12px 20px}.flags-section .section-title{color:#c62828}.flag-item{color:#c62828;margin-bottom:4px;font-size:12px}.flag-item:before{content:"⚠ "}.points-section{background:#fffde7;border-top:1px solid #fff9c4;padding:12px 20px}.points-section .section-title{color:#795548}.point-item{color:#555;margin-bottom:4px;font-size:12px}.point-item:before{content:"→ ";color:#795548;font-weight:700}.legend{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.legend-label{color:var(--text-muted);font-size:12px;font-weight:600}.legend-item{border-radius:4px;padding:2px 10px;font-size:11px;font-weight:600}.no-data{text-align:center;color:var(--text-muted);padding:40px;font-size:14px}
