/* The public entrance has its own layout; authenticated pages keep workspace.css. */
.auth-body { background:#f6f8fc; color:#192d4d; }
.auth-main { max-width:none; width:100%; padding:0; }
.login-page { max-width:1400px; min-height:100dvh; padding:20px 48px 0; margin:auto; display:flex; flex-direction:column; }
.login-header { display:flex; align-items:center; justify-content:space-between; min-height:68px; margin-bottom:26px; }
.login-brand { display:inline-flex; border-radius:8px; }
.login-brand img { width:174px; height:58px; object-fit:contain; }
.login-header-label { display:flex; align-items:center; gap:7px; color:#65748c; font-size:12px; letter-spacing:.5px; }
.login-header-label .icon { width:15px; height:15px; color:#7286a6; }
.login-shell { display:grid; grid-template-columns:1.07fr 1fr; width:100%; max-width:1180px; min-height:650px; margin:auto; background:#fff; border:1px solid #e3e9f3; border-radius:24px; overflow:hidden; box-shadow:0 16px 60px #203f7408; }
.login-story { position:relative; display:flex; flex-direction:column; overflow:hidden; padding:48px 42px 25px; background:radial-gradient(ellipse at 85% 65%,#d5ebff 0,transparent 55%),linear-gradient(145deg,#f0f6ff,#e5efff 62%,#eaf4ff); }
.login-story::before { content:''; position:absolute; width:450px; height:450px; border:1px solid #b8d3fb66; border-radius:50%; right:-205px; top:-260px; box-shadow:0 0 0 45px #c6dcff22,0 0 0 90px #c6dcff15; pointer-events:none; }
.login-story-copy { position:relative; z-index:1; }
.login-eyebrow { display:block; color:#557399; font-size:10px; font-weight:700; letter-spacing:2px; line-height:1.5; }
.login-story h2 { font-size:38px; line-height:1.45; letter-spacing:-1.2px; margin:22px 0 16px; font-weight:750; color:#203b63; }
.login-story h2 em { font-style:normal; color:#3477df; }
.login-story p { color:#647d9f; font-size:14px; line-height:1.9; margin:0; }
.login-illustration { position:relative; display:block; width:calc(100% + 45px); max-width:none; height:300px; margin:10px -23px 0; flex:1 1 240px; min-height:0; object-fit:contain; }
.login-story-bottom { display:flex; gap:12px; align-items:center; justify-content:space-between; color:#5e7ca1; font-size:11px; margin-top:4px; }
.login-story-number { font-size:8px; letter-spacing:1.2px; white-space:nowrap; }
.login-panel { display:flex; align-items:center; justify-content:center; padding:44px 50px; }
.login-form-wrap { width:100%; max-width:350px; }
.login-entry-icon { display:flex; align-items:center; justify-content:center; width:46px; height:46px; background:#eff5ff; border:1px solid #e0ebfd; border-radius:14px; color:#3e7ddd; margin-bottom:25px; }
.login-entry-icon .icon { width:22px; height:22px; }
.login-panel .login-eyebrow { font-size:9px; letter-spacing:2.2px; color:#71829d; }
.login-panel h1 { font-size:28px; line-height:1.4; letter-spacing:-.8px; margin:10px 0; font-weight:750; }
.login-description { font-size:13px; color:#748198; margin:0 0 30px; line-height:1.7; }
.login-form .login-field { margin-bottom:21px; }
.login-field label { display:block; color:#3b4d68; font-size:13px; font-weight:650; margin-bottom:9px; }
.login-input-wrap { position:relative; }
.login-input-wrap>.icon { position:absolute; left:15px; top:50%; transform:translateY(-50%); width:17px; height:17px; color:#8b9bb3; pointer-events:none; }
.login-form .login-input-wrap input { width:100%; height:52px; padding:12px 15px 12px 43px; border:1px solid #dce4ef; border-radius:10px; background:#fbfcfe; color:#20344f; font-size:15px; transition:background .15s,border-color .15s,box-shadow .15s; }
.login-form .login-input-wrap:has([data-login-toggle]:not([hidden])) input { padding-right:65px; }
.login-input-wrap input:hover { border-color:#b6c9e4; }
.login-input-wrap input:focus { background:#fff; border-color:#3a7fe5; outline:2px solid transparent; box-shadow:0 0 0 3px #3a7fe51a; }
.login-password-toggle { position:absolute; top:4px; right:4px; min-width:52px; min-height:44px; padding:8px; border:0; border-radius:7px; background:transparent; color:#5275a3; font-size:12px; font-weight:600; cursor:pointer; }
.login-password-toggle[hidden] { display:none; }
.login-password-toggle:hover { background:#edf3fd; color:#2561b8; }
.login-page :is(button,a):focus-visible { outline:3px solid #3479e0; outline-offset:4px; }
.login-account-help { color:#7d899c; font-size:11px; line-height:1.7; margin:-5px 0 22px; }
.login-submit { width:100%; height:51px; display:flex; align-items:center; justify-content:center; gap:12px; border:1px solid #3274db; border-radius:10px; background:#377ce4; box-shadow:0 5px 12px #377ce41c; color:#fff; font-size:14px; font-weight:650; cursor:pointer; }
.login-submit:hover { background:#286bd1; border-color:#286bd1; box-shadow:0 6px 18px #377ce42a; }
.login-submit .icon { width:18px; height:18px; }
.login-help { font-size:11px; color:#7a889e; text-align:center; margin:21px 0 29px; line-height:1.8; }
.login-help span { color:#556b8a; }
.login-security-note { display:flex; align-items:center; gap:11px; padding-top:20px; border-top:1px solid #edf0f6; }
.login-security-note>.icon { width:21px; height:21px; color:#839fc3; flex:none; }
.login-security-note b { display:block; font-size:11px; font-weight:600; color:#627692; margin-bottom:4px; }
.login-security-note span { display:block; font-size:10px; color:#8692a5; line-height:1.6; }
.login-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; max-width:1180px; margin:0 auto; min-height:70px; color:#8a96a9; font-size:10px; }
.login-footer>span:first-child { letter-spacing:1.5px; font-size:9px; }
.login-footer i { padding:0 8px; font-style:normal; color:#b2bece; }
.login-form .form-errors { padding:12px 14px; margin-bottom:22px; border-radius:9px; font-size:12px; line-height:1.7; }
.login-form .field-error input { border-color:#cf5167; }
.login-form .errorlist { font-size:12px; line-height:1.7; margin:6px 0 0; }
@media(min-width:1600px) { .login-page { padding-top:38px; } .login-shell { min-height:700px; } .login-story { padding:54px 48px 30px; } .login-story h2 { font-size:43px; } }
@media(min-width:801px) and (max-height:800px) { .login-page { padding-top:10px; } .login-header { min-height:58px; margin-bottom:16px; } .login-shell { min-height:540px; } .login-panel { padding-top:28px; padding-bottom:28px; } .login-illustration { height:250px; flex-basis:200px; } .login-entry-icon { display:none; } .login-description { margin-bottom:18px; } .login-form .login-field { margin-bottom:16px; } .login-help { margin:16px 0 18px; } .login-security-note { padding-top:16px; } .login-story { padding-top:32px; } .login-story h2 { margin-top:16px; font-size:34px; } .login-footer { min-height:60px; } }
@media(max-width:1050px) { .login-page { padding:16px 28px 0; } .login-header { margin-bottom:18px; } .login-story { padding:40px 28px 25px; } .login-story h2 { font-size:32px; } .login-panel { padding:40px 32px; } .login-story-number { display:none; } }
@media(max-width:800px) { .login-page { max-width:580px; padding:16px 24px 0; } .login-header { min-height:54px; margin-bottom:18px; } .login-brand img { width:145px; height:48px; } .login-header-label { font-size:10px; gap:5px; } .login-header-label .icon { width:13px; height:13px; } .login-shell { grid-template-columns:1fr; min-height:auto; border-radius:20px; } .login-story { padding:27px 32px; } .login-story h2 { font-size:25px; line-height:1.5; margin:10px 0 0; letter-spacing:-.5px; } .login-story h2 br { display:none; } .login-story .login-eyebrow { font-size:8px; letter-spacing:1.4px; } .login-story p,.login-illustration,.login-story-bottom { display:none; } .login-story::before { top:-350px; } .login-panel { padding:32px; } .login-form-wrap { max-width:none; } .login-entry-icon { display:none; } .login-panel h1 { font-size:26px; } .login-description { margin-bottom:25px; } .login-security-note { padding-top:18px; } .login-help { margin-bottom:24px; } .login-footer { min-height:66px; font-size:9px; } .login-footer i { padding:0 5px; } }
@media(max-width:380px) { .login-page { padding:12px 16px 0; } .login-story { padding:24px; } .login-story h2 { font-size:22px; } .login-panel { padding:28px 24px; } .login-header-label { font-size:9px; } .login-brand img { width:132px; height:44px; } .login-footer { align-items:flex-start; flex-direction:column; justify-content:center; gap:7px; padding:16px 0; } }
@media(prefers-reduced-motion:reduce) { .login-page * { transition:none!important; } }
