.auth-grid{display:grid;gap:40px;align-items:center;width:100%;max-width:1080px;margin:0 auto}@media (min-width: 920px){.auth-grid{grid-template-columns:minmax(380px,440px) 1fr;gap:64px}}@media (max-width: 919px){.auth-art{display:none}}.auth-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);border-bottom:4px solid var(--gold);padding:34px 32px;width:100%;max-width:420px}.auth-mark{height:40px;margin-bottom:14px}.auth-card h1{font-family:var(--font-display);font-size:21px;font-weight:600;color:var(--navy)}.auth-sub{font-size:13.5px;color:var(--muted);margin:6px 0 20px}.auth-error{color:var(--warn);font-size:13.5px;margin-bottom:12px}.auth-note{font-size:12.5px;color:var(--muted);margin-top:16px}.auth-tab{background:none;border:none;border-bottom:2px solid transparent;font:inherit;font-size:.9rem;font-weight:600;color:var(--muted);padding:8px 12px;cursor:pointer;margin-bottom:-1px}.auth-tab:hover{color:var(--ink)}.auth-tab.is-active{color:var(--navy);border-bottom-color:var(--gold)}.auth-notice{color:var(--ok);font-size:13.5px;margin-bottom:12px}.auth-alt{margin-top:12px}.student-way p{color:var(--ivory);font-size:15px;margin-bottom:10px}.student-way small{display:block;color:#fdfbf5b3;font-size:12.5px;margin-top:10px;line-height:1.5}:root{--navy: #102A4A;--navy-2: #1B3B63;--navy-3: #0B1E36;--gold: #C3953B;--gold-soft: #E3C98F;--ivory: #F5F1E6;--paper: #FDFBF5;--ink: #22293A;--muted: #5C6474;--line: #E2DACA;--ok: #2E7D52;--warn: #A2542F;--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--radius: 10px;--topbar-h: 71px;--shadow: 0 1px 2px rgba(16, 42, 74, .08), 0 8px 24px rgba(16, 42, 74, .07)}:root{--secure: var(--ok);--gold-ink: #966D1C;--developing: var(--gold-ink);--needs-support: var(--warn);--no-evidence: var(--muted);--tier-1: var(--ok);--tier-2: var(--gold-ink);--tier-3: var(--warn);--official-accent: var(--navy-2);--platform-accent: var(--gold)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--ivory);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--navy);color:var(--ivory);padding:10px 16px}.skip:focus{left:0}code{font-family:var(--font-mono);font-size:.9em;color:var(--navy-2)}.topbar{min-height:68px;border-bottom:3px solid var(--gold);background:linear-gradient(135deg,var(--navy-3),var(--navy) 55%,var(--navy-2));color:var(--ivory);display:flex;align-items:center;gap:22px;padding:12px 24px;flex-wrap:wrap}.brand-lockup{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.brand-mark{height:30px;width:auto}.brand-lockup strong{display:block;font-family:var(--font-display);font-size:16px;font-weight:600}.brand-lockup small{display:block;font-size:11px;opacity:.72}.topnav{display:flex;gap:4px;flex:1;flex-wrap:wrap}.navlink{color:var(--ivory);text-decoration:none;font-size:.9rem;font-weight:600;padding:7px 12px;border-radius:8px;opacity:.8}.navlink:hover{background:#ffffff1a;opacity:1}.navlink.is-active{background:#ffffff29;opacity:1}.topbar-right{display:flex;align-items:center;gap:10px}.conn{background:#fbf3e6;border-bottom:1px solid var(--line);padding:9px 24px;font-size:13.5px;color:var(--ink)}.body-grid{display:flex;gap:0;align-items:flex-start}.sidenav{width:190px;flex:0 0 auto;padding:22px 12px 22px 24px;display:flex;flex-direction:column;gap:2px}.subnav{color:var(--muted);text-decoration:none;font-size:.88rem;padding:7px 11px;border-radius:8px}.subnav:hover{background:#fff;color:var(--ink)}.subnav.is-active{background:#fff;color:var(--navy);font-weight:600}.content{flex:1;min-width:0;padding:22px 24px 60px;max-width:1120px}.page-title{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--navy);margin-bottom:18px}@media (max-width: 820px){.body-grid{display:block}.sidenav{width:auto;flex-direction:row;flex-wrap:wrap;padding:12px 20px 0}.content{padding:16px 20px 48px}}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:20px}.btn{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--navy-2);color:var(--navy-2);font:inherit;font-weight:600;font-size:.9rem;padding:8px 16px;border-radius:8px;cursor:pointer;text-decoration:none;transition:background .12s ease,transform .12s ease,border-color .12s ease}.btn:hover{background:var(--ivory);transform:translateY(-1px)}.btn.primary{background:var(--navy);border-color:var(--navy);color:var(--ivory)}.btn.primary:hover{background:var(--navy-2)}.btn.ghost{border-color:var(--line);color:var(--ink)}.btn.small{font-size:.8rem;padding:5px 10px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.auth{min-height:100vh;display:grid;place-items:center;padding:6vh 20px;background:linear-gradient(135deg,var(--navy-3),var(--navy) 55%,var(--navy-2))}.field{display:block;margin-bottom:14px}.field>span{display:block;font-size:12.5px;font-weight:600;color:var(--navy-2);margin-bottom:5px}.field>span em{font-style:normal;font-weight:400;color:var(--muted)}.field input{width:100%;font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.field input:focus{border-color:var(--navy-2)}.field small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.tag{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;margin-left:6px}.tiers{display:flex;gap:14px;flex-wrap:wrap;padding:18px 20px}.prio{border-bottom:1px solid var(--line);padding:18px 20px}details{border:1px dashed var(--line);border-radius:6px;margin:10px 0}summary{cursor:pointer;padding:8px 12px;font-size:13px;font-weight:600;color:var(--navy-2)}details[open] summary{border-bottom:1px solid var(--line)}.chain{padding:10px 12px 12px 30px;font-size:13.5px;color:var(--muted)}.chain li{margin:5px 0}.dim{color:var(--muted);font-size:12.5px}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px}th,td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left}thead th{background:var(--navy);color:var(--ivory);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;position:sticky;top:0}.scroll{overflow:auto;max-height:56vh}th.sn,td.sn{position:sticky;left:0;background:var(--paper);font-family:var(--font-mono);font-size:12px;z-index:2;text-align:left}thead th.sn{background:var(--navy);color:var(--ivory);z-index:3}td.hm{text-align:center;font-size:14px;width:34px}td.hm.secure{color:var(--ok)}td.hm.developing{color:var(--gold-ink)}td.hm.needs-support{color:var(--warn)}td.hm.insufficient-evidence{color:var(--muted)}.key{display:flex;gap:18px;flex-wrap:wrap;padding:12px 20px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);background:var(--paper)}td.cell{text-align:center;height:34px;min-width:42px;cursor:pointer;font-variant-numeric:tabular-nums;font-weight:600}td.cell.is-correct{color:var(--ok)}td.cell.is-incorrect{color:var(--warn)}td.cell.is-partial{color:var(--navy-2)}td.cell.is-blank,td.cell.is-not-attempted{color:var(--muted)}td.cell.is-absent,td.cell.is-not-assessed{color:var(--muted);background:repeating-linear-gradient(45deg,transparent,transparent 4px,#EFE9DA 4px,#EFE9DA 8px)}td.cell.cursor{outline:2.5px solid var(--gold);outline-offset:-2.5px}.msg{padding:10px 20px;font-size:13.5px}.alerts{list-style:none}.insufficient{color:var(--muted);font-size:13px}.note{font-size:13px;color:var(--muted)}.class-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-bottom:18px}.builder{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.step-l{font-size:13.5px;font-weight:600;color:var(--navy)}.step-d{display:block;font-size:12px;color:var(--muted);margin-left:22px}.quality{flex:1;min-width:320px}.q-counts{display:flex;gap:18px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--line);font-size:13.5px}.q-counts b{color:var(--navy);font-variant-numeric:tabular-nums}.checks{list-style:none}.publish{padding:16px 0}.blocking{margin-top:12px;font-size:13px;color:var(--muted)}.blocking b{color:var(--ink)}.blocking li{margin:4px 0 4px 18px}.footer{padding:20px 24px 40px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);display:flex;gap:20px;flex-wrap:wrap}@media print{.no-print,.topbar,.sidenav,.footer,.conn{display:none!important}body{background:#fff!important}.body-grid{display:block}.content{padding:0;max-width:none}.panel{border:none;box-shadow:none}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.auth-tabs{display:flex;gap:4px;margin:0 0 18px;border-bottom:1px solid var(--line)}.linklike{background:none;border:none;padding:0;font:inherit;font-size:13px;color:var(--navy-2);text-decoration:underline;text-decoration-color:var(--gold-soft);cursor:pointer}.page-head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:18px}.page-head .page-title{margin-bottom:0;flex:1}.form{padding:18px 20px;max-width:640px}.form-row{display:flex;gap:14px;flex-wrap:wrap}.form-row .field{flex:1;min-width:150px}.form select,.form textarea{width:100%;font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.form textarea{font-family:var(--font-mono);font-size:13px;line-height:1.7;resize:vertical}.form-actions{display:flex;gap:10px;margin-top:18px;align-items:center}.import-result{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:14px 0;font-size:13.5px}.import-result ul{margin:6px 0 0 18px;color:var(--muted)}.import-result li{margin:3px 0}.pill{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 9px;border-radius:20px;border:1px solid var(--line);color:var(--muted)}.outcome-box{background:var(--paper);border-left:3px solid var(--navy-2);padding:12px 14px;border-radius:0 6px 6px 0;margin-bottom:14px;font-size:13.5px}.outcome-box p{margin:3px 0}.code-big{font-family:var(--font-mono);font-size:22px;letter-spacing:.12em;color:var(--navy)}.status-row{display:flex;gap:20px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--line);font-size:13px}.status-row b{color:var(--navy);font-variant-numeric:tabular-nums}.runner{max-width:760px;margin:0 auto;padding:0 20px 60px}.check{display:flex;gap:10px;align-items:center;margin-bottom:12px;font-size:14px}.check input{width:18px;height:18px}ol.plain,ul.plain{margin:6px 0 6px 20px}ol.plain li,ul.plain li{margin:4px 0}h3.sub{font-family:var(--font-display);font-size:14.5px;color:var(--navy);margin:16px 0 4px}.fb{font-size:12.5px;color:var(--muted);border-left:2px solid var(--gold);padding-left:10px;margin-top:4px}.credit-preview{font-size:12.5px;color:var(--muted);background:var(--paper);border:1px dashed var(--line);border-radius:6px;padding:10px 12px;margin-top:6px}ul.links{list-style:none;padding:16px 20px}ul.links li{margin:8px 0;font-size:14px}ul.links a{color:var(--navy-2);text-decoration:underline;text-decoration-color:var(--gold-soft);font-weight:600}.footer{flex-direction:column;gap:12px;align-items:flex-start}.footer-row{display:flex;gap:20px;flex-wrap:wrap}.footer-credit{border-top:1px solid var(--line);padding-top:12px;width:100%;justify-content:space-between}.footer-credit nav{display:flex;gap:16px;flex-wrap:wrap}.footer-credit a{color:var(--navy-2);text-decoration:none}.footer-credit a:hover{text-decoration:underline;text-decoration-color:var(--gold-soft)}.footer-rights{font-size:11.5px;color:var(--muted)}.auto-grid{display:grid;gap:10px;padding:16px 20px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.auto-item{display:flex;gap:10px;align-items:flex-start}.auto-tick{color:var(--ok);font-weight:700;flex:0 0 auto}.auto-l{font-size:13.5px;font-weight:600;color:var(--navy)}.auto-d{font-size:12.5px;color:var(--muted)}.rubric-row{display:grid;gap:6px 14px;padding:12px 0;grid-template-columns:190px auto;border-bottom:1px solid var(--line);align-items:center}.score{width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-weight:600;cursor:pointer;color:var(--ink)}.score:hover{border-color:var(--navy-2)}.score.is-on{background:var(--navy);border-color:var(--navy);color:var(--ivory)}tr.is-current th,tr.is-current td{background:var(--paper)}.student-way{margin-top:18px;max-width:420px;width:100%;text-align:center;background:#ffffff12;border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:18px 20px}.student-url{font-family:var(--font-mono);font-size:15px;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin:4px 0 8px;word-break:break-all}.btn.danger{border-color:var(--warn);color:var(--warn)}.btn.danger:hover{background:#fdf1ec}.btn.danger:disabled{opacity:.45}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.cellinput{font:inherit;font-size:13px;padding:4px 7px;width:100%;border:1px solid var(--navy-2);border-radius:6px}tr.is-left th,tr.is-left td{opacity:.55}hr.rule{border:none;border-top:1px solid var(--line);margin:22px 0 6px}.student-response{margin-bottom:16px;padding:14px 16px;background:var(--ivory, #faf7f2);border:1px solid var(--rule, #e4ded4);border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:2px solid var(--line);margin:0 0 20px}.tab{padding:8px 14px;text-decoration:none;color:var(--muted);font-size:14px;border-bottom:2px solid transparent;margin-bottom:-2px}.tab:hover{color:var(--navy)}.tab.is-active{color:var(--navy);border-bottom-color:var(--gold);font-weight:600}.tab:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.error-screen .error-detail{padding:0 20px 18px}.error-screen pre{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;font-size:12.5px;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.quiet-disclosure{margin:4px 0 10px}.quiet-disclosure>summary{cursor:pointer;font-size:.86rem;font-weight:600;color:var(--navy-2);padding:4px 0;list-style:revert}.quiet-disclosure>summary:hover{text-decoration:underline}.quiet-disclosure[open]>summary{margin-bottom:8px}.row-actions{display:flex;gap:8px}.save-offline{color:#8a6d1f}.ic{flex:none}.topbar-title,.menu-btn,.bottomnav{display:none}@media (max-width: 860px){.topbar{min-height:56px;padding:8px 12px;gap:10px;flex-wrap:nowrap;padding-top:max(8px,env(safe-area-inset-top))}.brand-lockup span{display:none}.brand-mark{height:26px}.topbar-title{display:block;flex:1;min-width:0;font-family:var(--font-display);font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topnav,.topbar-right{display:none}.menu-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.28);background:transparent;color:var(--ivory);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.menu-btn:hover{background:#ffffff1f}.sidenav{display:none}.body-grid{display:block}.bottomnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bnav{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px 7px;min-height:52px;text-decoration:none;color:var(--muted, #596576);font-size:.68rem;font-weight:600}.bnav.is-active{color:var(--navy);box-shadow:inset 0 2px 0 var(--gold)}.content{padding-bottom:16px}.footer{padding-bottom:calc(78px + env(safe-area-inset-bottom))}}
