body.locked{overflow:hidden}
body.locked header.top,body.locked .wrap{filter:blur(6px);pointer-events:none;user-select:none}
.boot{position:fixed;inset:0;z-index:90;display:flex;gap:12px;align-items:center;justify-content:center;background:var(--ink);color:var(--muted)}
.boot[hidden]{display:none!important}
.auth{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:rgba(6,9,14,.82)}
.auth-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:24px 22px;display:flex;flex-direction:column;gap:12px}
.auth-brand{font:800 26px/1 var(--f-display);font-stretch:112%;text-transform:uppercase;letter-spacing:.01em}
.auth-brand span{color:var(--brass)}
.auth-sub{margin:0 0 4px;color:var(--muted);font-size:13.5px}
.auth .field input{background:var(--ink);border:1px solid var(--line2);border-radius:8px;padding:10px 12px;width:100%;font-family:var(--f-body)}
.auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.auth-msg{margin:0;min-height:1.4em;font-size:13.5px;color:var(--muted)}
.auth-msg.bad{color:var(--bear)}
.user-bar{display:flex;align-items:center;gap:8px;font-size:12.5px;max-width:260px}
.user-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.install-bar{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line2);border-radius:10px;padding:8px 10px 8px 14px;font-size:13.5px;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.install-bar[hidden]{display:none!important}
.auth-card .btn.primary{width:100%}
.auth-foot{margin-top:4px;padding-top:12px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted);text-align:center}
.auth-foot a{font-weight:600}
.gate-title{margin:6px 0 0;font-weight:600;font-size:16px;color:var(--warn)}
.gate-title.bad{color:var(--bear)}
.user-bar a.btn{white-space:nowrap}
