/* V34 / Same light, precise visual language as the content workspace. */
:root { --auth-paper:#FFFFFF; --auth-wash:#F6F8FB; --auth-ink:#14171D; --auth-muted:#526176; --auth-blue:#2457E6; --auth-line:#DDE5F0; }
* { box-sizing:border-box; }
html { color-scheme:light; }
body { margin:0; background:var(--auth-paper); color:var(--auth-ink); font-family:Manrope,'Noto Sans SC',sans-serif; font-size:15px; line-height:1.75; -webkit-font-smoothing:antialiased; }
button,input { font:inherit; }
button,a,input { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { opacity:.6; cursor:wait; }
a { color:inherit; text-decoration:none; }
[hidden] { display:none !important; }
:focus-visible { outline:2px solid #648CF2; outline-offset:4px; }
.icon-library { position:absolute; width:0; height:0; overflow:hidden; }
.icon { display:block; flex:none; width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.auth-layout { display:grid; grid-template-columns:minmax(320px,.95fr) minmax(480px,1.05fr); min-height:100dvh; }
.auth-brand-panel { display:flex; flex-direction:column; min-width:0; padding:45px clamp(35px,5vw,82px) 34px; border-right:1px solid #E3E9F2; background:var(--auth-wash); }
.auth-brand { display:flex; align-items:center; gap:12px; width:max-content; max-width:100%; color:#202B3C; font-size:24px; font-weight:700; line-height:1.35; letter-spacing:-.04em; }
.auth-brand > img { display:block; flex:none; width:42px; height:42px; }
.auth-brand small { display:block; margin-top:4px; color:#718099; font-size:14px; font-weight:400; letter-spacing:0; }
.auth-brand-copy { margin-block:auto; padding-block:65px; }
.auth-eyebrow { display:block; color:#7388A8; font-size:14px; font-weight:500; letter-spacing:.055em; }
.auth-brand-copy h1 { margin:23px 0 24px; color:#23334A; font-size:clamp(33px,3.3vw,48px); font-weight:600; line-height:1.5; letter-spacing:-.055em; }
.auth-brand-copy > p { margin:0; color:#6A7C96; font-size:16px; line-height:2; }
.auth-brand-rule { width:60px; height:2px; margin-top:38px; background:#B9CCE9; }
.auth-brand-caption { display:block; margin-top:22px; color:#8493AA; font-size:14px; letter-spacing:.065em; }
.auth-back-link { display:flex; align-items:center; gap:9px; align-self:flex-start; min-height:40px; color:#657A98; font-size:14px; }
.auth-back-link .icon { width:17px; height:17px; }
.auth-main { display:flex; align-items:center; justify-content:center; flex-direction:column; min-width:0; padding:55px 40px; }
.auth-card { width:min(100%,400px); }
.auth-heading { margin-bottom:24px; }
.auth-lock-mark { display:grid; place-items:center; width:45px; height:45px; margin-bottom:24px; border:1px solid #DCE7FA; border-radius:12px; background:#F2F6FE; color:#476FAC; }
.auth-lock-mark .icon { width:23px; height:23px; }
.auth-heading .auth-eyebrow { color:#8190A7; font-size:14px; letter-spacing:.04em; }
.auth-heading h2 { margin:8px 0 11px; color:#1E2B3F; font-size:30px; font-weight:650; line-height:1.5; letter-spacing:-.045em; }
.auth-heading p { margin:0; color:#6B7B94; font-size:15px; line-height:1.9; }
.auth-session-status { min-height:0; margin:0 0 16px; color:#5576A7; font-size:14px; line-height:1.8; overflow-wrap:anywhere; }
.auth-session-status:empty { display:none; }
.auth-field { min-width:0; margin-bottom:21px; }
.auth-field > label { display:block; margin-bottom:8px; color:#354861; font-size:15px; font-weight:500; }
.auth-field input { display:block; width:100%; min-width:0; min-height:48px; padding:11px 13px; border:1px solid #D5DEED; border-radius:7px; background:#FFFFFF; color:#24364F; font-size:15px; line-height:1.6; transition:border-color .2s,box-shadow .2s; }
.auth-field input::placeholder { color:#8996AB; }
.auth-field input:focus { border-color:#8AA9EF; outline:none; box-shadow:0 0 0 3px #2457E60A; }
.auth-field input:disabled { background:#F8FAFD; }
.password-field { position:relative; }
.password-field > input { padding-right:53px; }
.password-toggle { position:absolute; inset:3px 3px 3px auto; display:grid; place-items:center; width:44px; min-height:42px; padding:10px; border:0; border-radius:5px; background:transparent; color:#8495AF; }
.password-toggle .icon { width:19px; height:19px; }
.password-toggle[aria-pressed='true'] { background:#EFF4FE; color:#2457E6; }
.auth-field > small { display:block; margin-top:8px; color:#7C8AA1; font-size:14px; line-height:1.8; }
.auth-error { margin:0 0 20px; padding:11px 13px; border:1px solid #E9D1D5; border-radius:7px; background:#FFF6F7; color:#A84456; font-size:14px; line-height:1.8; overflow-wrap:anywhere; }
.auth-submit { display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; min-height:48px; margin-top:28px; padding:12px 16px; border:1px solid #2457E6; border-radius:7px; background:#2457E6; color:#FFFFFF; font-size:15px; font-weight:600; line-height:1.6; transition:background .2s; }
.auth-submit .icon { width:19px; height:19px; }
.auth-footer-note { display:flex; align-items:center; justify-content:center; gap:7px; margin:27px 0 0; color:#8694AA; font-size:14px; }
.auth-footer-note .icon { width:16px; height:16px; }
.auth-current-user { margin:0 0 23px; padding:10px 13px; border:1px solid #E3EAF4; border-radius:7px; background:#F6F8FC; color:#70829B; font-size:14px; overflow-wrap:anywhere; }
.auth-current-user > strong { color:#3E587F; font-weight:500; }
.auth-secondary-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:17px; }
.auth-secondary-actions > a, .auth-secondary-actions > button { display:inline-flex; align-items:center; min-height:40px; padding:0; border:0; background:transparent; color:#647C9E; font-size:14px; }
.auth-mobile-home { display:none; }
.auth-noscript { position:fixed; right:15px; bottom:15px; left:15px; margin:0; padding:13px; border:1px solid #D8E3F5; border-radius:8px; background:#EFF4FF; color:#4D6F9F; font-size:14px; text-align:center; }
@media (hover:hover) and (pointer:fine) { .auth-submit:hover:not(:disabled) { background:#1A49CB; } .auth-back-link:hover,.auth-secondary-actions > a:hover,.auth-secondary-actions > button:hover { color:#2457E6; } .password-toggle:hover { color:#2457E6; background:#F3F6FC; } }
@media (max-width:950px) { .auth-layout { grid-template-columns:minmax(270px,.8fr) minmax(420px,1.2fr); } .auth-brand-panel { padding-inline:30px; } .auth-brand-copy h1 { font-size:32px; } .auth-brand-copy > p { font-size:15px; } .auth-main { padding-inline:33px; } }
@media (max-width:700px) { .auth-layout { display:block; min-height:100dvh; } .auth-brand-panel { padding:22px 25px; border:0; background:#FFFFFF; } .auth-brand { gap:10px; font-size:22px; } .auth-brand > img { width:37px; height:37px; } .auth-brand small { font-size:14px; } .auth-brand-copy,.auth-back-link { display:none; } .auth-main { align-items:stretch; padding:25px 25px 27px; } .auth-card { width:min(100%,420px); margin-inline:auto; } .auth-lock-mark { width:42px; height:42px; margin-bottom:20px; } .auth-heading { margin-bottom:23px; } .auth-heading h2 { margin-top:7px; font-size:28px; } .auth-heading p { font-size:15px; } .auth-field input { min-height:50px; font-size:16px; } .auth-field { margin-bottom:22px; } .auth-submit { min-height:50px; } .auth-mobile-home { display:block; align-self:center; min-height:44px; margin-top:25px; color:#7F8DA2; font-size:14px; } .auth-footer-note { margin-top:23px; } }
@media (max-width:380px) { .auth-brand-panel { padding-inline:21px; } .auth-main { padding-inline:21px; } .auth-heading h2 { font-size:27px; } .auth-secondary-actions { gap:12px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } }
