/* Isolated authentication layout: dashboard styles must not affect this page. */
.login-page{--login-primary:#087f72;--login-primary-dark:#06675d;--login-surface:#fff;--login-page-bg:#f7f9fa;--login-text:#172b35;--login-muted:#63747d;--login-border:#d6e0e3;margin:0;background:var(--login-page-bg);color:var(--login-text);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.5}
html[data-login-theme=dark] .login-page{--login-primary:#37c9b3;--login-primary-dark:#70dfcb;--login-surface:#15252d;--login-page-bg:#101c23;--login-text:#edf5f6;--login-muted:#a0b4be;--login-border:#344851}
.login-page *{box-sizing:border-box}
.login-page a{color:inherit;text-decoration:none}
.login-page button,.login-page input{font:inherit}
.login-page button,.login-page a,.login-page input{ -webkit-tap-highlight-color:transparent }
.login-page :focus-visible{outline:3px solid var(--login-primary);outline-offset:3px}
.login-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100dvh;padding:20px;gap:20px}
.login-brand-panel{position:relative;isolation:isolate;display:flex;flex-direction:column;overflow:hidden;padding:36px clamp(28px,4vw,64px);border-radius:20px;background:linear-gradient(145deg,#143e45,#0b252f 75%);color:#fff}
.login-brand-panel__glow--one{position:absolute;z-index:-1;width:440px;height:440px;right:-270px;bottom:0;border:1px solid #ffffff12;border-radius:50%;box-shadow:0 0 0 75px #ffffff04,0 0 0 150px #ffffff03;pointer-events:none}
.login-brand-panel__glow--two{display:none}
.login-brand{display:flex;align-items:center;gap:12px}
.login-brand__logo{display:grid;place-items:center;width:48px;height:48px;padding:5px;flex-shrink:0;background:white;border-radius:12px}
.login-brand img{width:100%;height:100%;object-fit:contain}
.login-brand strong{display:block;font-size:16px;font-weight:650}
.login-brand small{display:block;margin-top:2px;color:#adc5c9;font-size:12px}
.login-brand-panel__content{margin:auto 0;padding:36px 0;max-width:490px}
.login-kicker{display:flex;align-items:center;gap:8px;color:#85ddcd;font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:650}
.login-brand-panel h1{font-size:clamp(30px,3.2vw,48px);font-weight:600;letter-spacing:-.045em;line-height:1.13;margin:20px 0}
.login-brand-panel__content>p{color:#b8cdd1;font-size:15px;line-height:1.75;max-width:410px}
.login-benefits{display:grid;gap:18px;margin-top:34px}
.login-benefits article{display:flex;align-items:center;gap:13px}
.login-benefits article>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid #ffffff1c;border-radius:9px;color:#86d9ca;flex-shrink:0}
.login-benefits strong,.login-benefits small{display:block}
.login-benefits strong{font-size:13px;font-weight:600}
.login-benefits small{font-size:12px;color:#a3bec3;margin-top:2px}
.login-brand-panel__footer{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;color:#a3bec3;font-size:10px}
.login-brand-panel__footer i{margin-right:5px}
.login-form-panel{display:flex;align-items:center;justify-content:center;padding:24px 32px;min-width:0}
.login-form-wrap{width:100%;max-width:410px}
.login-topbar{display:flex;align-items:center;justify-content:flex-end;margin-bottom:40px;gap:14px}
.login-mobile-brand{display:none}
.login-preferences{display:flex;align-items:center;gap:12px}
.login-language{display:flex;gap:2px;padding:3px;border:1px solid var(--login-border);border-radius:9px}
.login-language a{display:grid;place-items:center;height:30px;min-width:38px;padding:0 10px;border-radius:6px;font-size:12px;color:var(--login-muted);font-weight:600}
.login-language a.is-active{background:var(--login-surface);color:var(--login-primary);box-shadow:0 1px 4px #0000000d}
.login-language a:hover{color:var(--login-primary)}
.login-language-short{display:none}
.login-theme-toggle{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;border:1px solid var(--login-border);border-radius:9px;background:transparent;color:var(--login-muted);cursor:pointer;font-size:16px}
.login-theme-toggle:hover{background:var(--login-surface);color:var(--login-primary)}
.login-form-header{margin-bottom:26px}
.login-form-header__icon{display:none}
.login-desktop-kicker{color:var(--login-primary);font-weight:650;font-size:12px}
.login-form-header h2{font-size:29px;font-weight:650;letter-spacing:-.035em;line-height:1.2;margin:8px 0 12px}
.login-form-header p{font-size:13px;color:var(--login-muted);margin:0;max-width:330px}
.login-form{display:grid;gap:18px}
.login-field>label,.login-field__label{display:flex;margin-bottom:7px}
.login-field label{font-size:12px;font-weight:600}
.login-field__label{justify-content:space-between;align-items:center;gap:10px}
.login-field__label a{color:var(--login-primary);font-size:12px}
.login-field__label a:hover{text-decoration:underline}
.login-control{position:relative;display:flex;align-items:center}
.login-control>i{position:absolute;left:14px;color:var(--login-muted);pointer-events:none}
.login-control input{width:100%;height:46px;border:1px solid var(--login-border);border-radius:9px;padding:0 44px 0 39px;color:var(--login-text);background:var(--login-surface);font-size:14px;transition:border-color .15s,box-shadow .15s}
.login-control input::placeholder{color:var(--login-muted);opacity:.8}
.login-control input:focus{outline:none;border-color:var(--login-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--login-primary) 12%,transparent)}
.login-password-toggle{position:absolute;right:5px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--login-muted);cursor:pointer}
.login-password-toggle:hover{color:var(--login-primary)}
.login-remember{position:relative;display:flex;align-items:center;gap:9px;cursor:pointer;width:fit-content}
.login-remember input{position:absolute;opacity:0;width:18px;height:18px;margin:0}
.login-remember__check{display:grid;place-items:center;width:18px;height:18px;border:1px solid var(--login-border);border-radius:5px;background:var(--login-surface);color:transparent;flex-shrink:0}
.login-remember input:checked+.login-remember__check{background:var(--login-primary);border-color:var(--login-primary);color:var(--login-surface)}
.login-remember input:focus-visible+.login-remember__check{outline:3px solid var(--login-primary);outline-offset:3px}
.login-remember strong{font-size:12px;font-weight:500}
.login-remember small{display:none}
.login-submit{display:flex;align-items:center;justify-content:center;gap:12px;min-height:46px;border:0;border-radius:9px;background:#087f72;color:white;font-weight:600;cursor:pointer;transition:background .15s}
.login-submit:hover:not(:disabled){background:#06675d}
.login-submit:disabled{opacity:.55;cursor:not-allowed}
.login-submit.is-loading i{animation:login-spin 1s linear infinite}
@keyframes login-spin{to{transform:rotate(360deg)}}
.login-help{display:flex;gap:8px;margin-top:24px;padding-top:20px;border-top:1px solid var(--login-border);color:var(--login-muted);font-size:11px;line-height:1.6}
.login-help i{color:var(--login-primary)}
.login-alert{display:flex;align-items:flex-start;gap:10px;padding:12px;margin-bottom:20px;border:1px solid var(--login-border);border-left:3px solid var(--login-primary);border-radius:8px;background:var(--login-surface);color:var(--login-muted);font-size:12px;line-height:1.5}
.login-alert>i{color:var(--login-primary);margin-top:2px}
.login-alert strong,.login-alert span{display:block}
.login-alert strong{font-size:12px;font-weight:600;color:var(--login-text);margin-bottom:3px}
.login-alert--danger{border-left-color:#e16969}
.login-alert--danger>i{color:#e16969}
.login-attempt-counter{display:block;margin-top:6px}
.is-locked .login-control{opacity:.6}
/* Mobile spacing is refined below for a single-screen sign-in flow. */
@media(max-width:900px){
 .login-shell{display:block;padding:0;min-height:100dvh}
 .login-brand-panel{display:none}
 .login-form-panel{min-height:100dvh;padding:28px 24px}
 .login-topbar{justify-content:space-between;margin-bottom:36px}
 .login-mobile-brand{display:flex;align-items:center;gap:9px;min-width:0}
 .login-mobile-brand img{width:38px;height:42px;object-fit:contain;background:white;border-radius:8px;padding:3px;flex-shrink:0}
 .login-mobile-brand strong{font-size:12px;font-weight:650;line-height:1.3;max-width:150px;overflow-wrap:anywhere}
 .login-language-full{display:none}.login-language-short{display:inline}
 .login-language a{padding:0;min-width:30px}
 .login-preferences{gap:6px;flex-shrink:0}
 .login-form-header h2{font-size:27px;max-width:350px}
 .login-control input{font-size:16px}
}
@media(max-height:740px){
 .login-shell{padding:12px;gap:12px}
 .login-brand-panel{padding:24px 32px}
 .login-brand-panel__content{padding:24px 0}
 .login-brand-panel h1{font-size:36px;margin:14px 0}
 .login-benefits{margin-top:20px;gap:12px}
 .login-topbar{margin-bottom:24px}
 .login-form-panel{padding:16px 24px}
 .login-form-header{margin-bottom:20px}
 .login-form-header h2{font-size:26px}
 .login-form{gap:14px}
 .login-help{margin-top:18px;padding-top:14px}
}
@media(max-width:900px) and (max-height:740px){.login-shell{padding:0}.login-form-panel{padding:20px 24px}.login-topbar{margin-bottom:24px}}
@media(max-width:360px){.login-form-panel{padding:18px}.login-mobile-brand strong{max-width:105px}.login-topbar{gap:8px}.login-form-header h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.login-page *{transition:none!important;animation:none!important}}
/* Keep the entire mobile form in view, including authentication feedback. */
@media(max-width:900px){
 html:has(.login-page),.login-page{height:100%;overflow:hidden}
 .login-shell{height:var(--login-viewport-height,100dvh);min-height:0;overflow:hidden}
 .login-form-panel{height:100%;min-height:0;padding:16px 20px;overflow:hidden}
 .login-form-wrap{flex-shrink:0;transform:scale(var(--login-fit,1));transform-origin:center center}
 .login-topbar{margin-bottom:20px}
 .login-form-header{margin-bottom:18px}
 .login-form-header h2{font-size:25px;margin:6px 0 8px}
 .login-form{gap:12px}
 .login-alert{margin-bottom:12px;padding:9px 10px;font-size:11px}
 .login-alert strong{font-size:11px}
 .login-help{margin-top:14px;padding-top:12px;font-size:10px}
}
@media(max-width:900px) and (max-height:680px){
 .login-topbar{margin-bottom:14px}
 .login-form-header{margin-bottom:12px}
 .login-form-header h2{font-size:23px}
 .login-form-header p{font-size:12px}
 .login-control input,.login-submit{height:42px;min-height:42px}
 .login-form{gap:10px}
 .login-help{margin-top:10px;padding-top:8px}
}
