.auth-gate{min-height:100vh;color:var(--muted);font-size:var(--fs-md);justify-content:center;align-items:center;display:flex}.auth-denied{text-align:center;max-width:420px;color:var(--ink);padding:0 24px}.auth-denied h2{font-size:var(--fs-lg);margin:0 0 8px}.auth-denied p{color:var(--muted);font-size:var(--fs-md);margin:0 0 18px}.auth-denied-actions{justify-content:center;gap:10px;display:flex}.auth-denied-actions button{border:1px solid var(--border-2);background:var(--surface);color:var(--ink-2);font:inherit;font-size:var(--fs-sm);cursor:pointer;border-radius:999px;padding:8px 18px}.auth-denied-actions button:hover{background:var(--surface-2);color:var(--ink)}.logout-chip{z-index:50;border:1px solid var(--border-2);background:var(--surface);color:var(--ink-2);font:inherit;font-size:var(--fs-sm);box-shadow:var(--sh-1);cursor:pointer;border-radius:999px;padding:7px 16px;position:fixed;bottom:18px;left:18px}.logout-chip:hover{background:var(--surface-2);color:var(--ink)}.login-page{background:radial-gradient(1200px 600px at 80% -10%, var(--teal-tint) 0%, transparent 55%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:420px;box-shadow:var(--sh-2);padding:28px 28px 24px}.login-brand{align-items:center;gap:10px;margin-bottom:4px;display:flex}.login-brand .mark{background:var(--rail);color:#fff;border-radius:10px;place-items:center;width:38px;height:38px;font-size:18px;font-weight:800;display:grid}.login-card h1{font-size:var(--fs-lg);color:var(--ink);margin:0}.login-sub{color:var(--muted);font-size:var(--fs-sm);margin:2px 0 20px}.login-field{margin-bottom:14px;display:block}.login-field span{font-size:var(--fs-sm);color:var(--ink-2);margin-bottom:6px;display:block}.login-field input{box-sizing:border-box;width:100%;font:inherit;font-size:var(--fs-base);border:1px solid var(--border-2);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);padding:10px 12px}.login-field input:focus{border-color:var(--teal);box-shadow:var(--ring);background:var(--surface);outline:none}.login-error{background:var(--red-tint);border:1px solid var(--red-line);color:var(--red);font-size:var(--fs-sm);border-radius:var(--r-sm);margin-bottom:14px;padding:9px 12px}.login-submit{width:100%;font:inherit;font-size:var(--fs-base);color:#fff;background:var(--teal);border-radius:var(--r-sm);cursor:pointer;border:none;margin-top:4px;padding:11px 12px;font-weight:700}.login-submit:hover{background:var(--teal-strong)}.login-submit:disabled{opacity:.6;cursor:progress}.login-demo{border-top:1px dashed var(--border-2);margin-top:22px;padding-top:16px}.login-demo h2{font-size:var(--fs-sm);color:var(--muted);margin:0 0 10px;font-weight:600}.login-demo-row{flex-direction:column;gap:8px;display:flex}.login-demo-btn{text-align:right;font:inherit;font-size:var(--fs-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--ink-2);border-radius:var(--r-sm);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;display:flex}.login-demo-btn:hover{border-color:var(--teal);color:var(--ink)}.login-demo-btn b{color:var(--ink);font-weight:700}.login-demo-btn span{color:var(--faint)}
