/* Approved HMS navy / ivory / gold. Existing forms and authentication remain native. */
html:has(body.prism-login){--prism-canvas:#f5f4f0;--prism-surface:#fffefa;--prism-soft:#eeede7;--prism-ink:#202b34;--prism-muted:#626b71;--prism-line:#e1e0d8;--prism-emerald:#7d5f29;--login-gold32:#7d5f29;--login-on32:#fffefa;background:var(--prism-canvas);color-scheme:light}
html[data-theme=dark]:has(body.prism-login){--prism-canvas:#10181f;--prism-surface:#18232c;--prism-soft:#202d37;--prism-ink:#eeeae1;--prism-muted:#a6b1b9;--prism-line:#2c3942;--prism-emerald:#d5b77c;--login-gold32:#d5b77c;--login-on32:#17222a;color-scheme:dark}
html body.prism-login{--page-bg:var(--prism-canvas);--panel-bg:var(--prism-canvas);--surface:var(--prism-surface);--surface-soft:var(--prism-soft);--ink:var(--prism-ink);--muted:var(--prism-muted);--line:var(--prism-line);--gold:var(--login-gold32);--focus:var(--login-gold32);--focus-ring:color-mix(in srgb,var(--login-gold32) 18%,transparent);background:var(--prism-canvas);color:var(--prism-ink);overflow:hidden;overscroll-behavior:none}
html body.prism-login .login-layout{position:fixed;inset:auto 0 auto;top:var(--login-top32,0px);height:var(--login-height32,100dvh);min-height:0;background:var(--prism-canvas)}
html body.prism-login .brand-panel{background:#18232c;border-color:#3b4143}
html body.prism-login .brand-copy h1{font-family:inherit;font-size:clamp(32px,3.4vw,52px);line-height:1.35}
html body.prism-login .form-panel{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:24px 28px max(16px,env(safe-area-inset-bottom));background:var(--prism-canvas);scroll-padding:16px}
html body.prism-login .form-panel:before,html body.prism-login .form-panel:after{content:none!important}
html body.prism-login .top-controls{position:static;align-self:flex-end;flex:0 0 auto;margin-bottom:20px}
html body.prism-login .form-panel>.form-wrap{flex:0 0 auto;width:100%;max-width:460px;max-height:none;overflow:visible;margin-block:auto 0;padding:28px;border:1px solid var(--prism-line);border-radius:20px;background:var(--prism-surface);color:var(--prism-ink);box-shadow:0 8px 30px #00000007;backdrop-filter:none}
html body.prism-login :is(.brand-mark,.brand-mark img){background:transparent!important;border:0!important;box-shadow:none!important}
html body.prism-login :is(h2,h3,label,.mobile-brand strong){color:var(--prism-ink)}
html body.prism-login :is(.intro,.form-meta,.access-note,.mobile-brand>div>span){color:var(--prism-muted)}
html body.prism-login .form-wrap h2{font-size:30px;line-height:1.4;letter-spacing:0;margin:14px 0 8px}
html body.prism-login .intro{line-height:1.7;font-size:14px;margin-bottom:20px}
html body.prism-login .input-shell{height:52px;background:var(--prism-soft)!important;border-color:var(--prism-line);border-radius:11px}
html body.prism-login .input-shell input{color:var(--prism-ink);font-size:16px;background:transparent;min-height:44px}
html body.prism-login .input-shell svg{color:var(--prism-muted)}
html body.prism-login .submit-button{min-height:48px;background:var(--login-gold32);color:var(--login-on32);border-radius:11px;box-shadow:none}
html body.prism-login .remember-row{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-size:14px}
html body.prism-login .remember-row span{margin:0;line-height:1.5}
html body.prism-login .remember-row input{width:20px;height:20px;accent-color:var(--login-gold32);flex:none;margin:0}
html body.prism-login :is(button,input,label){touch-action:manipulation}
html body.prism-login .secure-badge{color:var(--login-gold32);background:var(--prism-soft);border-color:var(--prism-line)}
html body.prism-login :is(.theme-toggle,.language-toggle){background:var(--prism-surface);color:var(--prism-ink);border-color:var(--prism-line);border-radius:10px;min-width:44px;min-height:44px;box-shadow:none}
html body.prism-login .show-password{width:44px;height:44px}
html body.prism-login .access-note{background:var(--prism-soft);border-color:var(--prism-line)}
html body.prism-login .form-panel>footer{position:static;flex:0 0 auto;margin-top:14px;text-align:center}
html body.prism-login button{transition:transform 210ms ease,background-color 210ms ease,border-color 210ms ease}
@media(hover:hover){html body.prism-login button:not(:disabled):hover{transform:translateY(-2px);border-color:var(--login-gold32)}}
html body.prism-login button:not(:disabled):active{transform:scale(.975);transition-duration:80ms}
html body.prism-login :is(button,input):focus-visible{outline:2px solid var(--login-gold32);outline-offset:3px}
@media(max-width:900px){
 html body.prism-login .login-layout{display:block}
 html body.prism-login .brand-panel{display:none}
 html body.prism-login .form-panel{height:100%;padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
 html body.prism-login .mobile-brand{display:flex;margin-bottom:16px}
 html body.prism-login .form-panel>.form-wrap{padding:22px;border-radius:18px}
 html body.prism-login .top-controls{margin-bottom:12px}
 html body.prism-login .form-wrap h2{font-size:27px}
 html body.prism-login.login-keyboard32 .top-controls{margin-bottom:8px}
 html body.prism-login.login-keyboard32 .form-panel>.form-wrap{margin-top:0;padding:16px 20px}
 html body.prism-login.login-keyboard32 .form-wrap>:is(.mobile-brand,.secure-badge,.intro,.access-note){display:none}
 html body.prism-login.login-keyboard32 .form-wrap>h2{font-size:22px;margin:0 0 12px}
 html body.prism-login.login-keyboard32 .form-panel>footer{display:none!important}
}
@media(prefers-reduced-motion:reduce){html body.prism-login button{transition:none!important;transform:none!important}}

/* Viewport and scroll geometry changes immediately; only controls animate. */
html body.prism-login :is(.login-layout,.form-panel,.form-wrap){transition:none!important;scroll-behavior:auto!important}
