.login-body { min-height:100svh; display:grid; place-items:center; padding:28px 20px; }
.login-shell { width:100%; max-width:430px; margin:auto; }
.login-brand { justify-content:center; gap:4px; margin-bottom:32px; font-size:32px; }
.login-brand img { object-fit:contain; margin-right:7px; }
.login-card { background:var(--paper); border:1px solid var(--border); border-radius:22px; padding:30px 24px 25px; box-shadow:0 8px 40px #20352f03; }
.login-card h1 { font-size:26px; letter-spacing:-.9px; line-height:1.2; margin:10px 0; }
.login-intro { font-size:14px; line-height:1.6; color:var(--muted); margin:0 0 28px; }
.login-card label { display:block; font-size:12px; font-weight:600; margin:18px 0 9px; }
.login-card input { width:100%; min-width:0; height:50px; border:1px solid #dde5dd; border-radius:11px; padding:0 14px; background:#fbfcfa; color:var(--ink); font:inherit; font-size:16px; }
.login-card input:focus { outline:2px solid #72af9960; outline-offset:2px; border-color:var(--green); }
.password-field { position:relative; }
.password-field input { padding-right:54px; }
.password-field button { position:absolute; right:4px; top:3px; height:44px; width:44px; display:grid; place-items:center; border:0; background:transparent; color:var(--muted); border-radius:9px; }
.password-field svg { width:21px; height:21px; }
.login-card .button { width:100%; height:50px; justify-content:space-between; border-radius:11px; background:var(--green); color:white; padding:0 18px; }
.login-message { font-size:12px; color:#ad4a45; line-height:1.5; min-height:18px; margin:12px 0; }
.login-note { font-size:11px; line-height:1.8; color:var(--muted); text-align:center; margin:22px 0 0; }
.login-note svg { display:inline-block; width:14px; height:14px; vertical-align:-2px; margin-right:4px; }
.login-footer { text-align:center; font-size:11px; color:var(--muted); margin:24px 0 0; }
.session-pending .app-header,.session-pending .main-shell,.session-pending dialog { visibility:hidden; }
.session-gate { position:fixed; inset:0; display:grid; place-items:center; background:var(--canvas); padding:24px; z-index:100; }
.session-gate > div { text-align:center; max-width:300px; }
.session-gate p { color:var(--muted); line-height:1.6; }
.profile-menu { position:relative; }
.profile-menu summary { list-style:none; cursor:pointer; border-radius:50%; }
.profile-menu summary::-webkit-details-marker { display:none; }
.profile-menu summary:focus-visible { outline:2px solid var(--green); outline-offset:4px; }
.profile-panel { position:absolute; right:0; top:48px; z-index:30; width:228px; background:var(--paper); border:1px solid var(--border); box-shadow:0 8px 28px #20352f12; border-radius:13px; padding:15px; }
.profile-panel p { font-size:12px; overflow-wrap:anywhere; margin:0 0 12px; color:var(--muted); }
.profile-panel button { width:100%; text-align:left; padding:11px 12px; border:0; border-radius:8px; color:var(--ink); background:var(--canvas); font:inherit; font-size:13px; }
@media(min-width:600px) { .login-card { padding:36px 32px 30px; } .login-card h1 { font-size:28px; } }
@media(max-height:650px) { .login-brand { margin-bottom:18px; } .login-body { padding-block:20px; } }
[hidden] { display:none !important; }
