:root{--navy:#171d4b;--blue:#303f91;--gold:#d5a52e;--cream:#faf6eb;--paper:#fff;--ink:#202640;--muted:#626981;--line:#e7deca;--red:#a73333;--green:#226a4a;--shadow:0 18px 50px rgba(23,29,75,.12)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.portal-header{min-height:104px;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(20px,5vw,72px);background:var(--paper);border-top:8px solid var(--navy);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:16px;color:var(--navy);text-decoration:none}.brand img{width:78px;height:78px;object-fit:contain}.brand span{display:flex;flex-direction:column}.brand strong{font:700 clamp(22px,3vw,34px)/1.05 Georgia,serif}.brand small{text-transform:uppercase;letter-spacing:.19em;color:#87631b;font-weight:800;margin-top:6px}.text-button{border:0;background:none;color:var(--navy);font-weight:800;font-size:16px;cursor:pointer}.login-shell{min-height:calc(100vh - 104px);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,7vw,100px);align-items:center;padding:clamp(48px,9vw,110px) max(24px,calc((100vw - 1180px)/2))}.login-copy h1,.dashboard h1{font:700 clamp(46px,7vw,76px)/1 Georgia,serif;color:var(--navy);margin:8px 0 22px}.login-copy p:not(.eyebrow){font-size:clamp(18px,2vw,24px);line-height:1.65;color:var(--muted);max-width:650px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:#87631b;font-size:13px;font-weight:900}.login-card{background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:clamp(28px,5vw,52px);box-shadow:var(--shadow)}.login-card h2{font:700 32px/1.1 Georgia,serif;color:var(--navy);margin:0 0 28px}.login-card label{display:grid;gap:9px;margin:18px 0;color:var(--navy);font-weight:800}.login-card input{width:100%;height:54px;border:1.5px solid #c9cce0;border-radius:12px;padding:0 15px;font:inherit;background:#fff}.login-card input:focus{outline:3px solid rgba(48,63,145,.18);border-color:var(--blue)}.primary-button{width:100%;min-height:56px;border:0;border-radius:999px;background:var(--blue);color:#fff;font:800 18px/1 inherit;cursor:pointer}.primary-button:disabled{opacity:.6;cursor:wait}.privacy-note,.form-message{font-size:13px;color:var(--muted);line-height:1.45}.form-message:not(:empty){padding:10px 12px;background:#fff0ef;border-radius:10px;color:var(--red)}.dashboard{padding:clamp(38px,6vw,76px) max(20px,calc((100vw - 1180px)/2))}.dashboard-heading{display:flex;align-items:end;justify-content:space-between;gap:30px}.dashboard h1{font-size:clamp(38px,6vw,64px);margin-bottom:10px}.dashboard-heading p:last-child{color:var(--muted);font-size:18px}.school-year{padding:12px 17px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:800;color:var(--navy);white-space:nowrap}.notice{display:flex;gap:12px;align-items:center;margin:26px 0;padding:16px 20px;border-left:5px solid var(--gold);border-radius:10px;background:#fff6d9}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}.metric strong{display:block;color:var(--navy);font:700 34px/1 Georgia,serif}.metric span{display:block;color:var(--muted);margin-top:8px;font-size:14px}.dashboard-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px}.panel-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:16px}.panel h2{font:700 25px/1.15 Georgia,serif;color:var(--navy);margin:0}.list{display:grid}.list-item{display:flex;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid #eee8dc}.list-item:last-child{border-bottom:0}.list-item strong,.list-item span{display:block}.list-item small{display:block;color:var(--muted);margin-top:5px}.status{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--green)}.status.overdue,.status.missing{color:var(--red)}.empty{padding:28px 0;color:var(--muted);text-align:center}[hidden]{display:none!important}@media(max-width:800px){.login-shell,.dashboard-grid{grid-template-columns:1fr}.login-shell{align-items:start}.metrics{grid-template-columns:1fr 1fr}.dashboard-heading{align-items:start;flex-direction:column}.portal-header{min-height:88px}.brand img{width:62px;height:62px}.brand small{font-size:10px}.school-year{align-self:flex-start}}@media(max-width:480px){.metrics{grid-template-columns:1fr}.brand strong{font-size:18px}.login-card{border-radius:20px}.portal-header{padding-inline:14px}}

.student-password-panel{margin-top:24px}.student-password-panel details{border-top:1px solid var(--line);padding:16px 0}.student-password-panel summary{font-weight:800;cursor:pointer;padding:8px 0}.student-password-panel form{display:grid;gap:14px;max-width:480px;margin-top:16px}.student-password-panel label{display:grid;gap:8px;font-weight:700}.student-password-panel input{width:100%;min-height:48px;border:1px solid #c9cce0;border-radius:10px;padding:10px 12px;font:inherit}.student-password-panel input:focus{outline:3px solid rgba(48,63,145,.2);border-color:var(--blue)}.student-password-panel small,.student-password-panel p{line-height:1.5;color:var(--muted)}
