.login-page { color:#25313b; background:#f7f7f4; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
.login-page main.py-3 { padding:26px 24px 0!important; }
.login-page #ver { display:none; }
.login-page a { color:#253d50; }
.login-page a:hover { color:#a62d27; }
.login-page a:focus-visible,.login-page button:focus-visible,.login-page input:focus-visible { outline:3px solid #416a89; outline-offset:4px; }
.login-header { max-width:1120px; min-height:102px; padding:10px 24px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.login-brand { display:inline-flex; flex-shrink:0; }
.login-brand img { width:174px; height:80px; object-fit:contain; }
.login-nav { display:flex; align-items:center; gap:32px; font-size:14px; font-weight:600; }
.login-nav a { text-decoration:none; }
.login-calc-link { padding:12px 17px; border:1px solid #d9dddf; border-radius:8px; }
.login-calc-link span { margin-left:12px; }
.login-shell { max-width:1072px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; border:1px solid #e4e4de; border-radius:20px; overflow:hidden; box-shadow:0 16px 48px #24344308; }
.login-story { background:#eee9df; padding:48px 46px 38px; display:flex; flex-direction:column; }
.login-eyebrow { font-size:11px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; margin:0 0 24px; }
.login-eyebrow>span { display:inline-block; width:7px; height:7px; border-radius:50%; background:#af312a; margin-right:7px; vertical-align:1px; }
.login-story h2 { font-size:clamp(30px,3.2vw,40px); font-weight:650; line-height:1.18; letter-spacing:-1.4px; margin:0 0 20px; }
.login-page .login-story-intro { color:#626359; font-size:15px; line-height:1.7; margin-bottom:0; }
.login-illustration { margin:18px -20px 26px; text-align:center; }
.login-illustration svg { display:block; width:100%; max-width:440px; margin:auto; }
.login-illustration-label { font-size:11px; letter-spacing:.5px; color:#776b5a; }
.login-benefits { list-style:none; margin:auto 0 0; padding:22px 0 0; border-top:1px solid #d8d2c6; }
.login-benefits li { display:flex; gap:12px; align-items:center; margin-top:12px; font-size:13px; line-height:1.5; }
.login-benefits .fa { color:#67745e; font-size:12px; }
.login-panel { background:#fff; padding:48px 50px 36px; display:flex; align-items:center; }
.login-form-wrap { width:100%; }
.login-form-eyebrow { color:#676e73; margin-bottom:12px; font-size:10px; letter-spacing:1.6px; }
.login-page .login-title { color:#25313b; font-size:32px; font-weight:650; letter-spacing:-1px; margin:0 0 12px; line-height:1.2; }
.login-page .login-description { color:#667076; font-size:14px; line-height:1.6; margin:0 0 30px; }
.login-field { margin-bottom:20px; }
.login-field>label { display:block; font-size:13px; font-weight:600; margin-bottom:9px; }
.login-field input { display:block; width:100%; height:50px; border:1px solid #d9dde0; border-radius:8px; background:#fff; color:#25313b; padding:12px 14px; font:inherit; font-size:16px; transition:border-color .15s; }
.login-field input::placeholder { color:#90969b; font-size:14px; }
.login-field input:hover { border-color:#9ba7af; }
.login-field input:focus { border-color:#416a89; }
.login-field input[aria-invalid="true"] { border-color:#b1332c; }
.login-password-wrap { position:relative; }
.login-password-wrap input { padding-right:88px; }
.login-password-toggle { position:absolute; right:4px; top:4px; height:42px; padding:0 10px; border:0; border-radius:5px; background:transparent; color:#4f6474; font-size:12px; font-weight:600; cursor:pointer; }
.login-password-toggle:hover { background:#f1f4f6; }
.login-page .login-error { margin:8px 0 0; color:#ad3029; font-size:13px; line-height:1.5; }
.login-options { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:-2px 0 20px; font-size:12px; }
.login-remember { display:inline-flex; align-items:center; gap:8px; margin:0; min-height:44px; cursor:pointer; }
.login-remember input { width:17px; height:17px; flex-shrink:0; accent-color:#283f50; }
.login-options>a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:3px; }
.login-submit { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:52px; padding:13px 19px; border:1px solid #283f50; border-radius:8px; background:#283f50; color:#fff; font:inherit; font-size:14px; font-weight:600; cursor:pointer; transition:background .15s; }
.login-submit>span:last-child { font-size:22px; line-height:1; }
.login-submit:hover { background:#182d3e; }
.login-submit:disabled { opacity:.7; cursor:wait; }
.login-page .login-register { margin:26px 0 0; padding-top:22px; border-top:1px solid #eceeed; text-align:center; color:#667076; font-size:12px; line-height:1.8; }
.login-register a { display:inline-block; font-weight:600; margin-left:4px; padding:4px 0; }
.login-footer { max-width:1072px; margin:24px auto 30px; display:flex; justify-content:space-between; align-items:center; gap:20px; color:#68716b; font-size:11px; }
.login-footer>span>span { padding:0 6px; }
.login-footer>div { display:flex; gap:24px; }
.login-footer a { display:inline-flex; align-items:center; min-height:44px; color:#616c70; }
@media(min-width:1400px) { .login-page main.py-3 { padding-top:44px!important; } }
@media(max-width:900px) { .login-story { padding:36px 28px; } .login-panel { padding:38px 30px; } .login-options { align-items:flex-start; flex-wrap:wrap; gap:0 10px; } }
@media(max-width:700px) {
 .login-header { min-height:80px; padding:4px 20px; gap:12px; }
 .login-brand img { width:140px; height:66px; }
 .login-materials-link { display:none; }
 .login-nav { font-size:12px; }
 .login-calc-link { padding:11px 12px; }
 .login-calc-link span { margin-left:5px; }
 .login-page main.py-3 { padding:14px 16px 0!important; }
 .login-shell { display:block; max-width:440px; border-radius:16px; }
 .login-story { display:none; }
 .login-panel { padding:32px 26px 28px; }
 .login-page .login-title { font-size:30px; }
 .login-page .login-description { font-size:13px; margin-bottom:26px; }
 .login-options { font-size:11px; }
 .login-footer { max-width:440px; flex-direction:column; gap:2px; margin:22px auto 14px; text-align:center; }
 .login-footer>div { flex-wrap:wrap; justify-content:center; gap:0 22px; }
}
@media(max-width:360px) { .login-header { padding-inline:14px; } .login-brand img { width:124px; } .login-panel { padding:28px 20px 24px; } .login-page main.py-3 { padding-inline:12px!important; } .login-options { display:block; } .login-options>a { min-height:36px; } }
@media(prefers-reduced-motion:reduce) { .login-page * { transition:none!important; } }
.auth-field-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
.auth-field-row>div { min-width:0; }
.login-page .auth-field-hint { font-size:12px; color:#667076; line-height:1.5; margin:8px 0 0; }
.login-page .auth-privacy { font-size:11px; color:#667076; line-height:1.7; margin:4px 0 20px; }
.auth-privacy a { text-decoration:underline; text-underline-offset:3px; }
.login-page .auth-notice { padding:14px; margin:0 0 24px; border:1px solid #c7d8c8; border-radius:8px; background:#eff6ef; color:#355b39; font-size:13px; line-height:1.6; }
.login-page .auth-notice-error { background:#fff3f1; border-color:#eac4bd; color:#97352c; }
.auth-captcha { margin:0 0 20px; }
@media(max-width:360px) { .auth-field-row { grid-template-columns:1fr; gap:0; } }
