/* Login-only presentation. Shared exam controls retain their existing layout. */
.login-accessibility-toggle { display:none; }
.login-stage {
  background:radial-gradient(ellipse at 90% 12%,rgba(0,132,132,.08),transparent 35rem),var(--exam-bg);
}
.login-stage .topbar { position:relative; background:var(--exam-surface); backdrop-filter:none; }
.login-stage .topbar .container-fluid {
  width:min(100%,72rem); min-height:4.25rem; margin:auto; padding:.7rem 1.25rem!important; flex-wrap:wrap!important;
}
.login-stage .topbar .container-fluid > .d-flex:first-child { flex:1 1 0%; min-width:0; }
.login-stage .brand-mark { width:2.5rem; height:2.5rem; font-size:.75rem; border-radius:.8rem; flex-shrink:0; }
.login-stage .brand-text { display:block; min-width:0; }
.login-stage .brand-text .fw-bold { max-width:none; font-size:1rem; line-height:1.3; }
.login-stage .brand-text small { display:block!important; font-size:.75rem; }
.login-stage .login-accessibility-toggle {
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-width:2.75rem; min-height:2.75rem;
  font-size:.8rem; padding:.45rem .7rem; margin-left:auto;
}
.login-stage .secondary-controls { display:none!important; }
.login-stage.accessibility-open .secondary-controls {
  display:flex!important; flex:1 0 100%; flex-wrap:wrap!important; justify-content:flex-start!important;
  border-top:1px solid var(--exam-border); padding-top:.7rem; gap:.5rem!important;
}
.login-stage .secondary-controls .btn {
  width:auto!important; min-width:2.75rem; height:auto; min-height:2.75rem; padding:.4rem .7rem; font-size:.9rem;
}
.login-stage #clockPill,.login-stage #timerPill { display:none!important; }
.login-stage #main-content { width:min(100%,72rem); padding:clamp(1rem,3vw,2.5rem) 1.25rem!important; }
.login-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr); gap:1.5rem; align-items:start; }
.login-card { min-width:0; padding:clamp(1.4rem,3.5vw,2.75rem); box-shadow:0 12px 36px rgba(16,32,51,.07); }
.login-kicker { display:flex; align-items:center; gap:.5rem; color:var(--exam-primary); font-size:.8em; font-weight:750; margin-bottom:1.1rem; }
.login-kicker i { font-size:1.15rem; }
.login-card h1 { font-size:clamp(1.6rem,3.2vw,2.15rem); font-weight:800; letter-spacing:-.035em; line-height:1.2; margin:0 0 .75rem; }
.login-intro { color:var(--exam-muted); font-size:.95em; margin:0 0 1.75rem; max-width:32rem; }
.login-fields { display:grid; gap:1.1rem; }
.login-card .form-label { font-weight:700; margin-bottom:.45rem; }
.login-card .form-control { min-height:3.1rem; font-size:max(16px,1em); padding:.7rem .85rem; }
.login-card .password-toggle { width:3.1rem; min-height:3.1rem; flex:0 0 3.1rem; }
.login-card .form-control.is-invalid { border-color:var(--exam-danger); }
.login-field-error { color:var(--exam-danger); font-size:.85em; margin:.35rem 0 0; }
.login-field-error:empty { display:none; }
.login-submit { display:flex; align-items:center; justify-content:center; gap:.6rem; width:100%; min-height:3.2rem; margin-top:1.5rem; font-size:1em; }
.login-stage:not(.high-contrast) #loginBtn { background:#0f5cc0; border-color:#0f5cc0; color:#fff; }
.login-stage:not(.high-contrast) #loginBtn:hover { background:#064a9c; border-color:#064a9c; }
.login-status:not(:empty) { margin-top:1rem; }
.login-status .alert { margin:0; overflow-wrap:anywhere; font-size:.9em; }
.login-account-help { margin:1.2rem 0 0; color:var(--exam-muted); font-size:.85em; line-height:1.6; }
.login-account-help i { margin-right:.3rem; }
.login-resource-panel { min-width:0; padding:1.8rem; background:var(--exam-surface); border:1px solid var(--exam-border); border-radius:var(--exam-radius); }
.login-resource-icon { display:grid; place-items:center; width:3rem; height:3rem; border-radius:.85rem; background:var(--exam-surface-2); color:var(--exam-primary); margin-bottom:1rem; font-size:1.35rem; }
.login-resource-panel h2 { font-size:1.2em; font-weight:750; line-height:1.4; margin:0 0 .6rem; }
.login-resource-intro { font-size:.9em; color:var(--exam-muted); margin-bottom:1.1rem; }
.login-guide-actions { display:flex; flex-wrap:wrap; gap:.6rem; }
.login-guide-actions .btn { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-height:2.85rem; font-size:.9em; }
.login-guide-note { font-size:.76em; line-height:1.6; color:var(--exam-muted); margin:.75rem 0 0; }
.login-preparation { border-top:1px solid var(--exam-border); margin-top:1.4rem; padding-top:1.1rem; }
.login-preparation summary { display:flex; align-items:center; justify-content:space-between; gap:.7rem; min-height:2.75rem; cursor:pointer; font-size:.9em; font-weight:750; list-style:none; border-radius:.4rem; }
.login-preparation summary::-webkit-details-marker { display:none; }
.login-preparation summary::after { content:'+'; font-size:1.3rem; font-weight:500; }
.login-preparation[open] summary::after { content:'−'; }
.login-preparation ol { margin:.7rem 0 0; padding-left:1.25rem; font-size:.84em; color:var(--exam-muted); }
.login-preparation li { padding-left:.2rem; margin-bottom:.6rem; }
.login-preparation strong { color:var(--exam-ink); }
.login-stage .compat-alert { width:100%; margin:1.3rem 0 0; }
.login-stage .compat-alert-title { font-size:.85rem; }
.login-stage .compat-details summary { min-height:2.75rem; display:flex; align-items:center; font-size:.75rem; }
.login-guide-actions .btn:focus-visible,.login-preparation summary:focus-visible,.login-accessibility-toggle:focus-visible {
  outline:3px solid var(--exam-primary); outline-offset:3px;
}
.login-stage.high-contrast #loginBtn { color:#000; background:#ffff00; border-color:#ffff00; }
.login-stage.high-contrast .login-field-error { color:#fff; }
.login-stage.high-contrast .form-control.is-invalid { border-color:#fff; }
.login-stage.high-contrast .login-resource-panel,.login-stage.high-contrast .login-card { border:1px solid #fff; box-shadow:none; }
.login-stage.high-contrast .compat-alert { background:#000; color:#fff; border-color:#fff; }
.login-stage.high-contrast .compat-chip,.login-stage.high-contrast .compat-warnings li,.login-stage.high-contrast .compat-status { background:#000; color:#fff; border-color:#fff; }
@media(max-width:991.98px) {
  .login-stage #main-content { max-width:37rem; }
  .login-layout { grid-template-columns:minmax(0,1fr); gap:1rem; }
  .login-resource-panel { padding:1.4rem; }
  .login-resource-icon { display:none; }
}
@media(max-width:575.98px) {
  .login-stage .topbar .container-fluid { padding:.65rem 1rem!important; min-height:4rem; }
  .login-stage #main-content { padding:1rem!important; }
  .login-stage .login-accessibility-label { display:none; }
  .login-card,.login-resource-panel { border-radius:1rem; padding:1.25rem; }
  .login-kicker { margin-bottom:.8rem; }
  .login-intro { margin-bottom:1.3rem; }
  .login-fields { gap:1rem; }
  .login-guide-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .login-guide-actions .btn { padding:.6rem .4rem; font-size:.82em; }
}
@media(prefers-reduced-motion:reduce) {
  .login-stage { scroll-behavior:auto; }
  .login-stage .step.active { animation:none; }
}
