/* Layout retained: header, course cards, exam/navigation, admin filters and tabs. */
@font-face{font-family:Montserrat;src:url("fonts/Montserrat-wght.ttf") format("truetype");font-style:normal;font-weight:100 900;font-display:swap}
:root{--orange:#ff7900;--orange-dark:#bb4c05;--line:#dce3ec;--muted:#66768b;--surface:#fff;--portal-ink:#172b46;--portal-canvas:#f2f5f9}
body{background:var(--portal-canvas);color:var(--portal-ink);font-family:Montserrat,Arial,Helvetica,sans-serif;font-size:14px;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:inherit;font-size:14px}
h1{font-size:16px;font-weight:600;line-height:1.4;letter-spacing:0}
h2{font-size:23px;font-weight:600;line-height:1.35;letter-spacing:-.25px}
h3,.question-text,.question-nav-panel h2{font-weight:600}
label{font-weight:500}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.7px}
.header{background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 12px #172b4605}
.panel,.course-card{border:1px solid var(--line);border-radius:12px;box-shadow:0 2px 12px #172b4604}
.button{border-radius:8px;min-height:44px;font-size:14px;font-weight:600;transition:background .15s,box-shadow .15s}
.brand-logo{width:154px}
.header-inner{min-height:82px}
.brand-copy h1{font-size:15px;font-weight:600;line-height:1.5;letter-spacing:.15px}
.login-panel{width:min(480px,100%);max-width:480px;margin:40px auto 0;padding:30px 32px}
.login-panel h2{margin-bottom:24px}
.login-panel label{margin:0 0 7px;font-size:13px;font-weight:500}
.login-panel input:not([type=checkbox]){display:block;width:100%;min-width:0;height:44px;min-height:44px;border:1px solid #ccd5df;border-radius:8px;background:#fff;color:#24364a;padding:10px 12px;font-size:14px;font-weight:400;line-height:22px;box-sizing:border-box}
.login-panel input::placeholder{color:#8a96a4;opacity:1}
#loginForm>input{margin-bottom:18px}
.login-panel .otp-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 0 6px}
.login-panel .otp-field .button{width:auto;height:44px;min-height:44px;margin:0;padding:10px 14px;font-size:13px;font-weight:600;white-space:nowrap}
.login-panel .button{font-weight:600}
.login-panel .registration-link{display:block;width:auto;min-height:0;margin:18px auto 0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#476381;font-size:13px;font-weight:400;line-height:1.5;text-align:center;text-decoration:none}
.login-panel .registration-link:hover{background:transparent;color:#a3460c;text-decoration:underline}
.login-panel .admin-link-button{display:none}
.login-panel .security-note{margin-top:20px;padding-top:18px;font-size:12px;font-weight:400;line-height:1.7;color:#748090}
.login-message{font-size:12px;font-weight:400}
.metric-value,.timer,.course-user-name,.question-number,.option-letter,.question-nav-button,.history-score{font-weight:600}
.metric-label,.candidate-label,.category-name,.tab-button{font-weight:500}
.button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #f5792060;outline-offset:3px}
.button:disabled{cursor:not-allowed;opacity:.62}
.portal-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:flex-end;font-size:12px}
.portal-nav a{color:#35516f;text-decoration:none;border:1px solid var(--line);padding:9px 12px;border-radius:8px;background:#fff;font-weight:600}
.portal-nav a[aria-current=page]{background:#fff3e8;border-color:#ffc99f;color:#a3440b}
.connection-status{font-size:11px;color:#39775d;white-space:nowrap}
.connection-status[data-status=retry]{color:#9e6400}
.course-window{margin:12px 0;padding:10px 12px;border-radius:8px;background:#edf3f9;color:#37516b;font-size:12px;line-height:1.65}
.course-window[data-state=OPEN]{background:#eaf6ef;color:#17603b}
.course-window[data-state=CLOSED],.course-window[data-state=INVALID]{background:#f5e9e9;color:#9a3535}
.course-card.unavailable{opacity:1;background:#fbfcfe}
.schedule-panel{margin:20px 0;padding:20px}
.schedule-panel summary{cursor:pointer;font-size:16px;font-weight:700}
.schedule-grid{display:grid;grid-template-columns:minmax(170px,1.4fr) 1fr 1fr auto;gap:12px;align-items:end;margin-top:18px}
.schedule-grid label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600}
.schedule-grid input,.schedule-grid select{width:100%;min-height:42px;box-sizing:border-box}
.schedule-message{font-size:13px;min-height:22px;margin-bottom:0}
.sync-state{display:block;font-size:12px;line-height:1.5;color:#51677f;margin:8px 0}
.header-inner{gap:16px}
@media(min-width:960px){body:has(#examView) .header-inner{grid-template-columns:1fr auto auto}}
@media(max-width:800px){.schedule-grid{grid-template-columns:1fr 1fr}.portal-nav{justify-content:flex-start}.header-inner{flex-wrap:wrap}}
@media(max-width:540px){.schedule-grid{grid-template-columns:1fr}.portal-nav a{padding:8px;font-size:11px}.connection-status{white-space:normal}}
@media(max-width:620px){.login-panel{margin-top:16px;padding:24px 20px}.login-panel h2{font-size:20px}.brand-logo{width:108px}.brand-copy h1{font-size:12px}.header-inner{min-height:0}.login-panel .otp-field{grid-template-columns:minmax(0,1fr) auto}.login-panel .otp-field .button{width:auto;padding:10px;font-size:12px}}
/* Native controls share Montserrat; small checkboxes must not inherit text-input sizing. */
.remember-option{display:flex!important;align-items:center;gap:9px;font-size:12px!important;font-weight:400!important;line-height:1.6;margin:14px 0!important;}
.remember-option input[type=checkbox]{width:16px!important;height:16px!important;min-height:0!important;margin:0;flex:0 0 16px;accent-color:#ff7900;}
#passwordSetupForm input,#learnerPassword{font:inherit;}
