:root{--navy:#172b43;--orange:#b84706;--muted:#596878;--line:#e0e5e9;--bg:#f4f6f7;--white:#fff}*{box-sizing:border-box}body{margin:0;color:var(--navy);background:var(--bg);font:16px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}h1,h2,h3,p{margin:0 0 12px}h1{font-size:clamp(28px,3vw,42px);line-height:1.2;letter-spacing:-1.2px}h2{font-size:24px;line-height:1.3}h3{font-size:17px}a{color:var(--orange);text-underline-offset:4px}button,input{font:inherit}button,a.primary{cursor:pointer}button,.primary{min-height:46px;border:1px solid var(--line);border-radius:12px;padding:11px 18px;background:white;color:var(--navy);font-weight:650}.primary{display:inline-block;background:var(--orange);color:white;border-color:var(--orange);text-decoration:none}input{width:100%;min-height:48px;padding:10px 12px;border:1px solid #94a2b0;border-radius:10px;background:white;color:var(--navy)}label{display:block;margin:18px 0;font-weight:600}label input{display:block;margin-top:7px}:focus-visible{outline:3px solid #206fb0;outline-offset:4px}.skip{position:absolute;top:-100px;left:12px;background:white;padding:10px;z-index:10}.skip:focus{top:12px}.eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:750;color:var(--orange)}.brand{display:block;color:var(--navy);font-size:23px;font-weight:800;letter-spacing:-1px;text-decoration:none}.brand span{color:var(--orange)}.brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:4px;color:var(--muted)}.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:white;border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column;gap:40px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{display:block;padding:12px;border-radius:10px;color:var(--muted);font-size:14px;font-weight:600;text-decoration:none;min-height:46px}.sidebar nav a[aria-current]{background:#fff0e5;color:var(--orange)}.sidebar nav a:hover{background:var(--bg)}.sidebar-bottom{margin-top:auto;font-size:12px;color:var(--muted)}.sidebar-bottom button{width:100%}.main{padding:38px clamp(20px,4vw,62px);max-width:1450px;width:100%;margin:auto}.top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px}.top p:not(.eyebrow){color:var(--muted)}.badge{display:inline-block;padding:5px 10px;border:1px solid var(--line);border-radius:99px;background:white;color:var(--muted);font-size:12px;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.stats article,.panel{background:white;border:1px solid var(--line);border-radius:18px;padding:24px}.stats span,.stats small{display:block;color:var(--muted);font-size:13px}.stats b{display:block;font-size:35px;margin:8px 0}.welcome{display:grid;grid-template-columns:1.5fr 1fr;padding:32px;border-radius:20px;background:#e9eff0;margin-bottom:28px;gap:28px}.welcome h2{font-size:32px;letter-spacing:-.8px}.welcome p:not(.eyebrow){color:var(--muted);max-width:480px}.welcome-art{border-radius:18px;background:var(--navy);color:white;padding:28px;display:flex;align-items:center;gap:24px}.welcome-art span{font-size:70px;font-weight:300;color:#ffbc87}.welcome-art p{color:white!important;font-size:18px}.panel{margin-bottom:22px}.panel>header{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}.row{display:flex;align-items:center;gap:18px;padding:18px 0;border-top:1px solid var(--line);flex-wrap:wrap}.row>div:not(.date){flex:1;min-width:180px}.row p,.row small{color:var(--muted);margin-bottom:0;overflow-wrap:anywhere}.date{background:#fff0e5;border-radius:12px;padding:12px;text-align:center;min-width:70px;font-weight:700;color:var(--orange)}.date small{display:block;font-weight:400;color:var(--navy)}.hint,footer{font-size:12px;color:var(--muted)}.empty{padding:28px 0;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:15px 0}.student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.alert{padding:14px;background:#fff0e5;border:1px solid #e4b391;border-radius:12px;color:#8b3300}.login{display:grid;grid-template-columns:1fr 1fr;max-width:1100px;min-height:680px;margin:6vh auto;background:white;border:1px solid var(--line);border-radius:24px;overflow:hidden}.intro{background:#e9eff0;padding:48px;display:flex;flex-direction:column}.intro>.brand{margin-bottom:60px}.intro h1{font-size:46px}.intro-card{background:white;border-radius:16px;padding:24px;margin-top:auto}.intro-card span{color:var(--orange);font-size:12px;font-weight:700}.intro-card h2{font-size:20px;margin-top:12px}.intro-card p{font-size:14px;color:var(--muted)}.login-form{padding:70px 48px}.login-form>p:not(.eyebrow){color:var(--muted)}.login-form .primary{width:100%;margin-top:8px}.login-form .hint{margin-top:28px}@media(min-width:1500px){.main{min-height:100vh}}@media(max-width:950px){.app{grid-template-columns:200px minmax(0,1fr)}.sidebar{padding:24px 12px}.welcome{grid-template-columns:1fr}.welcome-art{display:none}.top{align-items:flex-start;flex-direction:column}.stats{gap:10px}.stats article{padding:18px}.login{margin:20px;min-height:auto}.intro,.login-form{padding:30px}.intro h1{font-size:36px}.intro-card{margin-top:30px}}@media(max-width:650px){.app{display:block}.sidebar{gap:14px;padding:18px;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{display:flex;overflow-x:auto;gap:4px;padding-bottom:5px}.sidebar nav a{white-space:nowrap}.sidebar-bottom{display:flex;align-items:center;justify-content:space-between}.sidebar-bottom p{margin:0}.main{padding:24px 18px}.stats,.student-grid{grid-template-columns:1fr}.stats article{display:grid;grid-template-columns:1fr auto;align-items:center}.stats b{grid-column:2;grid-row:1/3;margin:0}.welcome{padding:24px}.welcome h2{font-size:28px}.panel{padding:20px}.login{display:block;margin:12px}.intro{padding:28px}.intro>.brand{margin-bottom:30px}.intro h1{font-size:34px}.intro-card{display:none}.login-form{padding:32px 28px}.row{gap:12px}footer span{display:block}}
.brand{display:flex;align-items:center;gap:10px;letter-spacing:-.7px}.brand-logo{display:block;flex:0 0 auto;width:44px;height:44px;object-fit:contain;border-radius:8px}.brand-copy{color:var(--navy)!important;font-size:19px}.intro .brand-logo{width:54px;height:54px}.intro .brand-copy{font-size:25px}.preview-note{padding:16px;margin:20px 0;border-radius:12px;background:#edf3f6;border:1px solid #c8d6e0;font-size:13px}.preview-note p{margin:6px 0 10px}.preview-note a,.preview-logout{display:inline-block;min-height:44px;padding:10px 0}button:disabled,input:disabled{cursor:not-allowed;opacity:.65}.password-reset{text-align:center;margin:18px 0}.password-reset a{display:inline-block;padding:8px;min-height:44px}.preview-logout{font-weight:650;text-decoration:none}
