:root{--bg:#edeef0;--surface:#fff;--fg:#2b3a45;--muted:#58666f;--accent:#45647d;--accent-hover:#3b566c;--accent-ink:#fff;--border:#d4d7db;--field-border:#b9bfc6;--field-bg:#fff;--placeholder:#9aa2aa;--error:#b3261e;--error-bg:#fbeceb;--error-border:#f0c9c6;--inset:#f5f6f7;--badge-fg:#2f6b4f;--badge-bg:#e3f0e8;--badge-border:#c4e0d0;--focus-ring:#45647d2e;--focus-ring-error:#b3261e24}@media (prefers-color-scheme:dark){:root{--bg:#1b2228;--surface:#232c34;--fg:#dde5ec;--muted:#7d8f9c;--accent:#8fb0c9;--accent-hover:#a3c0d5;--accent-ink:#12242f;--border:#33404a;--field-border:#3f4d57;--field-bg:#1f272e;--placeholder:#6b7a86;--error:#f2b8b5;--error-bg:#3a2523;--error-border:#5c3a37;--inset:#1f272e;--badge-fg:#a6d9bd;--badge-bg:#22352c;--badge-border:#354b3f;--focus-ring:#8fb0c940;--focus-ring-error:#f2b8b538}}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}.auth-shell{justify-content:center;align-items:center;min-height:100vh;padding:48px 20px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;max-width:360px;padding:32px;box-shadow:0 1px 2px #1520280f,0 8px 24px #1520280f}.wordmark{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.wordmark-dot{background:var(--accent);border-radius:999px;width:8px;height:8px}.card h1{letter-spacing:-.01em;margin:20px 0 0;font-size:24px;font-weight:600}.card h1:after{content:"";background:var(--accent);width:28px;height:3px;margin-top:12px;display:block}.card-sub{color:var(--muted);margin:12px 0 0;font-size:14px}.form{flex-direction:column;gap:16px;margin-top:24px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:14px;font-weight:500}.field input{height:44px;font:inherit;color:var(--fg);background:var(--field-bg);border:1px solid var(--field-border);border-radius:6px;outline:none;padding:0 12px;font-size:15px}.field input::placeholder{color:var(--placeholder)}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.field input.invalid{border-color:var(--error)}.field input.invalid:focus{box-shadow:0 0 0 3px var(--focus-ring-error)}.field input:disabled{opacity:.6}.field-error{color:var(--error);align-items:center;gap:6px;font-size:13px;display:flex}.field-error svg{flex:none;width:14px;height:14px}.field-hint{color:var(--muted);font-size:13px}.server-error{color:var(--error);background:var(--error-bg);border:1px solid var(--error-border);border-radius:6px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:13.5px;display:flex}.server-error svg{flex:none;width:15px;height:15px;margin-top:1px}.submit{height:44px;font:inherit;color:var(--accent-ink);background:var(--accent);cursor:pointer;border:0;border-radius:6px;margin-top:4px;font-size:15px;font-weight:600}.submit:hover:not(:disabled){background:var(--accent-hover)}.submit.loading{opacity:.85;cursor:default;justify-content:center;align-items:center;gap:9px;display:inline-flex}.spinner{border:2px solid #ffffff73;border-top-color:#fff;border-radius:999px;width:15px;height:15px;animation:.7s linear infinite spin}.spinner-dark{border-color:var(--border);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.card-foot{color:var(--muted);text-align:center;margin-top:20px;font-size:14px}.page-loader{min-height:100vh;color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex}.session{align-items:center;gap:14px;font-size:14px;display:flex}.session-email{color:var(--muted)}.logout{height:36px;font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--field-border);cursor:pointer;border-radius:6px;padding:0 14px;font-size:14px;font-weight:500}.logout:hover:not(:disabled){background:var(--inset)}.logout:disabled{opacity:.6;cursor:default}.dashboard-main{max-width:640px;margin:0 auto;padding:56px 24px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:32px;box-shadow:0 1px 2px #1520280f,0 8px 24px #1520280f}.badge{letter-spacing:.03em;text-transform:uppercase;color:var(--badge-fg);background:var(--badge-bg);border:1px solid var(--badge-border);border-radius:999px;align-items:center;gap:7px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge svg{width:13px;height:13px}.panel h1{letter-spacing:-.01em;margin:18px 0 0;font-size:24px;font-weight:600}.panel p{color:var(--muted);margin:12px 0 0}.who{background:var(--inset);border:1px solid var(--border);border-radius:8px;margin-top:24px;padding:16px;font-size:14px}.who-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.who-value{color:var(--fg);margin-top:4px;font-weight:500}
