/* Scoped styles preserve the existing landscape and glass login shell. */
#login-page { min-height:100dvh; height:auto; overflow-x:clip; overflow-y:auto; }
#login-page .login-left-inner { max-width:100%; padding:clamp(24px,4vw,64px); animation:auth-fade-in .45s ease both; }
#login-page .login-left-title { font-size:clamp(30px,4vw,60px); }
#login-page .login-left-desc { font-size:clamp(14px,1.6vw,22px); }
#login-page .login-right { padding:clamp(28px,5vh,70px) clamp(24px,4vw,70px); animation:auth-fade-in .45s ease both; }
@keyframes auth-fade-in { from { opacity:0; } to { opacity:1; } }
#login-page .login-card-wrapper { width:100%; max-width:460px; }
#login-page .auth-heading { color:#fff; font-size:clamp(30px,3vw,44px); font-weight:650; letter-spacing:-.04em; margin:0 0 12px; }
#login-page .login-subtitle { font-size:15px; line-height:1.7; color:#d7e4ef; margin-bottom:28px; }
#login-page .field { min-height:54px; margin-bottom:14px; padding:12px 15px; }
#login-page .input-field { min-width:0; width:100%; font-size:16px; }
#login-page .btn-login { min-height:50px; font-size:16px; }
#login-page .login-options, #login-page .login-footer { font-size:14px; }
#login-page .login-error, #auth-password-dialog .login-error { font-size:14px; line-height:1.65; min-height:0; margin:14px 0; overflow-wrap:anywhere; }
#login-page .login-error:not(:empty), #auth-password-dialog .login-error:not(:empty) { padding:12px 14px; border:1px solid #fda4af55; border-radius:10px; background:#88133744; color:#ffe0e5; }
#login-page .login-error[data-kind=success], #auth-password-dialog .login-error[data-kind=success] { background:#065f4644; border-color:#6ee7b755; color:#bbf7d0; }
#login-page .login-error[data-kind=info], #auth-password-dialog .login-error[data-kind=info] { background:#1e3a5f88; border-color:#93c5fd55; color:#dbeafe; }
.auth-reveal { display:grid; width:38px; height:38px; flex:0 0 38px; place-items:center; border:0; background:transparent; color:#d8e7f4; font-size:19px; padding:0; border-radius:9px; }
.auth-reveal:hover { background:#ffffff15; color:#fff; }
.auth-reveal .bi { line-height:1; }
#login-page .auth-hint, #auth-password-dialog .auth-hint { color:#c3d0df; font-size:12px; line-height:1.7; margin:10px 0 18px; }
#login-page .field.is-invalid, #auth-password-dialog .field.is-invalid { border-color:#fda4af; box-shadow:0 0 0 3px #fb71851f; }
#login-page .field input, #auth-password-dialog .field input { border:0!important; outline:0!important; box-shadow:none!important; background:transparent!important; }
#login-page .field input:-webkit-autofill { -webkit-text-fill-color:#fff; transition:background-color 9999s ease-out; }
#login-page button:disabled, #auth-password-dialog button:disabled { opacity:.65; cursor:wait; }
#login-page :focus-visible, #auth-password-dialog :focus-visible, .auth-account-entry:focus-visible { outline:2px solid #93c5fd; outline-offset:3px; }
.auth-account-entry { padding:8px 12px; border:1px solid #ffffff30; border-radius:9px; color:inherit; background:transparent; font-size:13px; white-space:nowrap; }
.auth-account-entry:hover { background:#ffffff15; }
#auth-password-dialog { width:min(440px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow-y:auto; padding:26px; border:1px solid #ffffff30; border-radius:20px; color:#eef4fc; background:#152132; box-shadow:0 28px 90px #0008; }
#auth-password-dialog::backdrop { background:#030b18b8; backdrop-filter:blur(6px); }
#auth-password-dialog .auth-dialog-head { display:flex; justify-content:space-between; align-items:start; margin-bottom:20px; }
#auth-password-dialog h2 { font-size:24px; margin:0; }
#auth-password-dialog .auth-dialog-head p { font-size:13px; color:#b7c7da; margin:8px 0 0; }
#auth-password-dialog [data-auth-close] { border:0; color:#fff; background:transparent; font-size:26px; line-height:1; padding:0 4px; }
#auth-password-dialog label { display:block; font-size:13px; margin-bottom:7px; }
#auth-password-dialog .field { display:flex; gap:8px; align-items:center; border:1px solid #ffffff30; border-radius:10px; background:#0a1526; padding:8px 12px; margin-bottom:16px; }
#auth-password-dialog input { min-width:0; width:100%; border:0; outline:none; background:transparent; color:#fff; font-size:16px; }
#auth-password-dialog .btn-login { width:100%; padding:12px; border:0; border-radius:10px; color:#122034; background:#b8dbff; font-weight:600; }
@media(max-width:768px) { #login-page .login-left { width:100%; min-height:140px; } #login-page .login-left-inner { position:static; min-height:0; padding:24px; transform:none; animation:none; } #login-page .login-left-title { font-size:26px; margin-bottom:8px; } #login-page .login-right { width:100%; padding:28px 24px; animation:none; background:#14223570; } #login-page .login-subtitle { margin-bottom:22px; } }
@media(prefers-reduced-motion:reduce) { #login-page *, #auth-password-dialog * { animation:none!important; transition:none!important; } }
