:root { --auth-ink:#172033; --auth-muted:#667085; --auth-line:#dfe5ef; --auth-surface:#fff; --auth-canvas:#f5f7fb; --auth-brand:#2563eb; --auth-brand-dark:#173b83; --auth-focus:rgba(37,99,235,.22); --auth-radius:1.25rem; }
* { box-sizing:border-box; }
html { min-height:100%; }
body.auth-shell { min-height:100vh; margin:0; background:var(--auth-canvas); color:var(--auth-ink); font-family:system-ui,-apple-system,"Segoe UI",Tahoma,Arial,sans-serif; }
.auth-skip-link { position:fixed; inset-inline-start:1rem; top:-5rem; z-index:1100; padding:.7rem 1rem; border-radius:.65rem; background:#fff; color:var(--auth-brand-dark); font-weight:700; }
.auth-skip-link:focus { top:1rem; }
.auth-layout { display:grid; grid-template-columns:minmax(22rem,42%) minmax(0,1fr); min-height:100vh; }
.auth-brand-panel { position:relative; display:flex; flex-direction:column; overflow:hidden; padding:clamp(2rem,4vw,4.5rem); background:radial-gradient(circle at 12% 15%,rgba(96,165,250,.34),transparent 26rem),linear-gradient(145deg,#10275a 0%,#17469a 55%,#146c94 100%); color:#fff; }
.auth-brand-panel::after { position:absolute; inset-inline-end:-8rem; bottom:-10rem; width:28rem; height:28rem; border:1px solid rgba(255,255,255,.18); border-radius:50%; content:""; box-shadow:0 0 0 4rem rgba(255,255,255,.035),0 0 0 8rem rgba(255,255,255,.025); }
.auth-brand,.auth-brand:hover { position:relative; z-index:1; display:inline-flex; align-items:center; gap:.8rem; width:fit-content; color:#fff; font-size:1.2rem; font-weight:800; text-decoration:none; }
.auth-brand__mark { display:grid; width:2.75rem; height:2.75rem; place-items:center; border:1px solid rgba(255,255,255,.34); border-radius:.85rem; background:rgba(255,255,255,.13); font-size:1.5rem; backdrop-filter:blur(8px); }
.auth-brand-panel__content { position:relative; z-index:1; margin:auto 0; max-width:38rem; padding-block:3rem; }
.auth-eyebrow { display:inline-flex; margin-bottom:1rem; color:#bfdbfe; font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.auth-brand-panel h1 { margin:0 0 1.2rem; font-size:clamp(2rem,4.2vw,3.8rem); font-weight:800; line-height:1.22; letter-spacing:-.035em; }
.auth-brand-panel p { max-width:36rem; margin:0; color:rgba(255,255,255,.78); font-size:1.02rem; line-height:1.9; }
.auth-value-list { display:grid; gap:1rem; margin:2.2rem 0 0; padding:0; list-style:none; }
.auth-value-list li { display:flex; align-items:center; gap:.85rem; color:rgba(255,255,255,.92); font-weight:600; }
.auth-value-list i { display:grid; flex:0 0 2.3rem; width:2.3rem; height:2.3rem; place-items:center; border-radius:.75rem; background:rgba(255,255,255,.12); }
.auth-brand-panel__footer { position:relative; z-index:1; font-size:.82rem!important; }
.auth-stage { display:grid; grid-template-rows:auto 1fr auto; min-width:0; padding:clamp(1.25rem,3vw,2.5rem); }
.auth-utility { display:flex; justify-content:flex-end; gap:.7rem; }
.auth-utility a { display:inline-flex; min-height:2.75rem; align-items:center; gap:.45rem; padding:.55rem .8rem; border-radius:.7rem; color:#475467; font-size:.88rem; font-weight:700; text-decoration:none; }
.auth-utility a:hover { background:#e9eef7; color:var(--auth-brand-dark); }
.auth-stage__content { display:grid; width:100%; place-items:center; padding-block:clamp(2rem,5vw,5rem); }
.auth-card { width:min(100%,32rem); border:1px solid rgba(216,224,237,.9); border-radius:var(--auth-radius); background:var(--auth-surface); box-shadow:0 1.5rem 4rem rgba(23,32,51,.09); }
.auth-card--wide { width:min(100%,43rem); }
.auth-card__body { padding:clamp(1.5rem,4vw,2.5rem); }
.auth-card__header { margin-bottom:1.75rem; }
.auth-card__header h2 { margin:.25rem 0 .55rem; font-size:clamp(1.55rem,3vw,2rem); font-weight:800; letter-spacing:-.025em; }
.auth-card__header p { margin:0; color:var(--auth-muted); line-height:1.75; }
.auth-card .form-label { margin-bottom:.45rem; font-size:.9rem; font-weight:700; }
.auth-card .form-control,.auth-card .form-select { min-height:3rem; border-color:var(--auth-line); border-radius:.75rem; background-color:#fff; }
.auth-card .form-control:focus,.auth-card .form-select:focus { border-color:var(--auth-brand); box-shadow:0 0 0 .22rem var(--auth-focus); }
.auth-card .form-text { display:block; margin-top:.45rem; color:var(--auth-muted); line-height:1.55; }
.auth-card .btn { min-height:2.85rem; border-radius:.75rem; font-weight:700; }
.auth-card .btn-primary { background:var(--auth-brand); border-color:var(--auth-brand); }
.auth-card .btn-primary:hover { background:#1d4ed8; border-color:#1d4ed8; }
.auth-card .nav-pills { gap:.35rem; padding:.3rem; border-radius:.85rem; background:#f0f3f8; }
.auth-card .nav-pills .nav-link { min-height:2.65rem; border-radius:.65rem; color:#475467; font-size:.9rem; font-weight:700; }
.auth-card .nav-pills .nav-link.active { background:#fff; color:var(--auth-brand-dark); box-shadow:0 .2rem .8rem rgba(23,32,51,.08); }
.auth-note { display:flex; align-items:flex-start; gap:.7rem; margin-top:1.25rem; padding:.85rem 1rem; border:1px solid #dbeafe; border-radius:.8rem; background:#eff6ff; color:#274c86; font-size:.84rem; line-height:1.65; }
.auth-note i { margin-top:.12rem; }
.auth-divider { display:flex; align-items:center; gap:.8rem; margin:1.3rem 0; color:#98a2b3; font-size:.82rem; }
.auth-divider::before,.auth-divider::after { flex:1; height:1px; background:var(--auth-line); content:""; }
.auth-secondary-link { color:var(--auth-brand-dark); font-weight:700; text-decoration:none; }
.auth-secondary-link:hover { text-decoration:underline; }
.auth-stage__footer { color:#98a2b3; font-size:.78rem; text-align:center; }
:focus-visible { outline:.2rem solid rgba(37,99,235,.55); outline-offset:.16rem; }
@media (max-width:900px) { .auth-layout{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-stage{min-height:100vh;padding:1rem}.auth-stage__content{padding-block:1.5rem 2.5rem}.auth-card__body{padding:1.35rem} }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important} }
