.login-page { min-height: 100vh; overflow-x: hidden; background: var(--surface); }
.login-layout { width: 100%; max-width: none; min-height: 100vh; display: grid; grid-template-columns: minmax(420px, .95fr) minmax(480px, 1.05fr); margin: 0; padding: 0; }
.login-brand-panel { position: relative; min-height: 100vh; overflow: hidden; display: flex; padding: clamp(40px, 6vw, 88px); background: linear-gradient(145deg, #0d2f66 0%, var(--brand-blue) 52%, #194b8e 100%); color: #fff; }
.brand-panel-content { position: relative; z-index: 2; width: 100%; max-width: 560px; display: flex; flex-direction: column; }
.brand-panel-content > img { width: min(290px, 70%); filter: drop-shadow(0 8px 20px rgba(0,0,0,.08)); }
.brand-message { margin: auto 0; }
.brand-kicker { display: inline-block; margin-bottom: 18px; color: #ffad55; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.brand-message h1 { max-width: 520px; margin: 0; font-size: clamp(36px, 4vw, 58px); line-height: 1.08; letter-spacing: -.045em; }
.brand-message p { max-width: 500px; margin: 22px 0 0; color: rgba(255,255,255,.72); font-size: 15px; line-height: 1.75; }
.brand-trust { display: flex; align-items: center; gap: 12px; }
.brand-trust > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: var(--brand-orange); font-size: 25px; }
.brand-trust p { display: flex; flex-direction: column; margin: 0; }
.brand-trust strong { font-size: 12px; }.brand-trust small { margin-top: 3px; color: rgba(255,255,255,.6); font-size: 10px; }
.brand-orbit { position: absolute; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }
.orbit-one { right: -180px; bottom: -200px; width: 520px; height: 520px; box-shadow: 0 0 0 65px rgba(240,125,0,.08), 0 0 0 130px rgba(255,255,255,.025); }
.orbit-two { top: -170px; left: -220px; width: 420px; height: 420px; }
.login-form-panel { display: grid; place-items: center; min-height: 100vh; padding: 42px; background: var(--surface); }
.login-card { width: 100%; max-width: 430px; }
.mobile-logo { display: none; }
.login-eyebrow { margin: 0 0 10px; color: var(--brand-orange); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.login-card h2 { margin: 0; color: var(--text); font-size: 32px; letter-spacing: -.035em; }
.login-helper { margin: 12px 0 30px; color: var(--text-muted); font-size: 13px; line-height: 1.6; }
.login-alert { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 22px; padding: 12px 14px; border: 1px solid color-mix(in srgb, var(--danger) 25%, var(--border)); border-radius: 11px; background: color-mix(in srgb, var(--danger) 7%, var(--surface)); color: var(--danger); font-size: 11px; line-height: 1.45; }
.login-alert svg { flex: 0 0 auto; width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.login-form { display: flex; flex-direction: column; gap: 20px; }
.field-group { display: flex; flex-direction: column; gap: 8px; }
.field-group label { color: var(--text); font-size: 11px; font-weight: 700; }
.field-control { position: relative; }
.field-control > svg { position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); fill: none; stroke: var(--text-muted); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.field-control input { width: 100%; height: 50px; padding: 0 46px 0 43px; border: 1px solid var(--border); border-radius: 12px; outline: 0; background: var(--surface-subtle); color: var(--text); font-size: 13px; transition: border .18s, box-shadow .18s, background .18s; }
.field-control input::placeholder { color: color-mix(in srgb, var(--text-muted) 70%, transparent); }
.field-control input:focus { border-color: var(--brand-orange); background: var(--surface); box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-orange) 12%, transparent); }
.password-toggle { position: absolute; right: 7px; top: 50%; width: 38px; height: 38px; display: grid; place-items: center; transform: translateY(-50%); border: 0; border-radius: 9px; background: transparent; color: var(--text-muted); cursor: pointer; }
.password-toggle:hover { background: var(--surface); color: var(--text); }
.password-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.login-submit { height: 50px; display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 5px; border: 0; border-radius: 12px; background: var(--brand-orange); color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; box-shadow: 0 10px 24px rgba(240,125,0,.2); transition: background .18s, transform .18s, box-shadow .18s; }
.login-submit:hover { background: var(--brand-orange-strong); transform: translateY(-1px); box-shadow: 0 14px 28px rgba(240,125,0,.25); }
.login-submit span { font-size: 17px; }
.login-footer { margin: 30px 0 0; color: var(--text-muted); font-size: 9px; text-align: center; }
@media (max-width: 900px) {
    .login-layout { grid-template-columns: 1fr; }
    .login-brand-panel { display: none; }
    .login-form-panel { min-height: 100vh; padding: 30px 22px; background: linear-gradient(180deg, var(--brand-blue) 0 180px, var(--surface) 180px); }
    .login-card { max-width: 460px; padding: 30px 24px; border: 1px solid var(--border); border-radius: 20px; background: var(--surface); box-shadow: var(--shadow-md); }
    .mobile-logo { display: block; width: 210px; margin: 0 auto 36px; }
}
@media (max-width: 420px) { .login-form-panel { padding: 18px 12px; }.login-card { padding: 26px 18px; }.login-card h2 { font-size: 27px; } }
