:root{color:#f4f6fceb;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--surface:#08101fcc;--surface-strong:#0d172cf0;--border:#94a3b82e;--text:#f1f5f9f0;--muted:#cbd5e1bd;--accent:#79b8ff;--accent-strong:#43d1b3;--danger:#ff7a90;--success:#7ce5a8;--shadow:0 28px 80px #00000059;background:radial-gradient(circle at top,#5c8dff59,#0000 32%),linear-gradient(#07111f 0%,#0c1527 55%,#111c31 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body{min-height:100%}body{min-height:100vh;color:var(--text);background-color:#0000;background-image:radial-gradient(circle at 20% 10%,#79b8ff2e,#0000 28%),radial-gradient(circle at 80% 0,#43d1b329,#0000 24%),linear-gradient(#05101e 0%,#091426 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;margin:0}a{color:inherit;text-decoration:none}button,select,input{font:inherit}button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#04111d;cursor:pointer;border:0;border-radius:999px;padding:.8rem 1.1rem;font-weight:700;transition:transform .18s,box-shadow .18s,opacity .18s;box-shadow:0 10px 24px #43d1b32e}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 28px #43d1b33d}button:disabled{opacity:.55;cursor:not-allowed}select{border:1px solid var(--border);color:var(--text);background:#060e1cc7;border-radius:.9rem;padding:.7rem .85rem}table{border-collapse:collapse;width:100%;color:var(--text)}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.95rem .9rem}th{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:.76rem}tbody tr:hover{background:#ffffff06}.app-shell{max-width:1180px;margin:0 auto;padding:1.2rem}.topbar,.panel,.banner,.table-shell,.empty-state{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1.4rem}.topbar{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.2rem;padding:1.2rem 1.4rem;display:flex}.brand-block{flex:22rem}.brand-block h1,.panel h2,.empty-state h2{margin:0;line-height:1.05}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--accent);margin:0 0 .35rem;font-size:.72rem}.subcopy{color:var(--muted);max-width:42rem;margin:.4rem 0 0}.nav-links{border:1px solid var(--border);background:#07101f8f;border-radius:999px;gap:.5rem;margin-left:auto;padding:.35rem;display:inline-flex}.nav-links a{color:var(--muted);border-radius:999px;padding:.75rem 1rem;font-weight:700;transition:background .18s,color .18s}.nav-links a[aria-current=page]{color:var(--text);background:#79b8ff29}.session-readout{justify-items:start;gap:.4rem;min-width:15rem;padding:.2rem 0;display:grid}.session-readout span{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:.78rem}.session-readout strong{color:var(--text);font-size:.95rem}.logout-button{color:var(--text);box-shadow:none;border:1px solid var(--border);background:#ffffff0f;margin-left:auto}main{display:block}.page-grid{gap:1.2rem;display:grid}.panel{padding:1.25rem}.panel-header{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.panel-header p,.meta,.helper,.table-caption{color:var(--muted);margin:0}.banner{border-left:4px solid #0000;margin-bottom:1rem;padding:.95rem 1rem}.banner[data-tone=error]{border-left-color:var(--danger);background:#ff7a9014}.banner[data-tone=success]{border-left-color:var(--success);background:#7ce5a814}.table-shell{overflow:hidden}.table-scroll{overflow-x:auto}.course-code,.course-title,.student-name{font-weight:700}.login-shell{max-width:560px;margin:6vh auto 0;padding:0 1.2rem}.login-panel{background:var(--surface-strong);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:1.6rem;padding:1.4rem}.login-panel h2{margin:.2rem 0 .4rem;font-size:2rem}.login-panel p{color:var(--muted);margin:0}.login-form{gap:1rem;margin-top:1.4rem;display:grid}.login-form label{gap:.45rem;font-weight:600;display:grid}.login-form input{border:1px solid var(--border);color:var(--text);background:#060e1cc7;border-radius:.95rem;padding:.85rem .95rem}.login-form input::placeholder{color:#cbd5e17a}.login-form .login-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.login-form .banner{margin-bottom:0}.course-code{letter-spacing:.04em;color:var(--accent);font-family:SFMono-Regular,ui-monospace,Cascadia Mono,Consolas,monospace}.pill{color:var(--muted);background:#ffffff0d;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.82rem;display:inline-flex}.pill[data-tone=good]{color:#bcf5d1;background:#7ce5a81f}.pill[data-tone=warn]{color:#ffdba5;background:#ffba4924}.pill[data-tone=info]{color:#cfe6ff;background:#79b8ff24}.actions{flex-wrap:wrap;gap:.6rem;display:flex}.secondary-button{color:var(--text);box-shadow:none;border:1px solid var(--border);background:#ffffff14}.secondary-button:hover:not(:disabled){background:#ffffff1f}.danger-button{color:#ffdce3;box-shadow:none;background:#ff7a901f;border:1px solid #ff7a902e}.danger-button:hover:not(:disabled){background:#ff7a902e}.empty-state{text-align:center;padding:1.5rem}.empty-state p{color:var(--muted);margin:.5rem 0 0}@media (width<=900px){.topbar{grid-template-columns:1fr}.student-switcher{min-width:0}.panel-header{flex-direction:column;align-items:flex-start}}@media (width<=640px){.app-shell{padding:.8rem}.topbar,.panel,.banner{border-radius:1.05rem}.nav-links{justify-content:space-between;width:100%}.nav-links a{text-align:center;flex:1}}
