:root{--background:#f6f8fb;--surface:#fff;--text:#172435;--muted:#566575;--accent:#1454a7;--border:#d4dce7;--soft:#e9f0fa;--error:#a32222}
.theme-warm{--background:#faf8f3;--surface:#fff;--text:#202820;--muted:#526052;--accent:#245c3a;--border:#c4cbc3;--soft:#eaf1e9;--error:#a12622}
.theme-dark{color-scheme:dark;--background:#101a16;--surface:#19261f;--text:#eff5ee;--muted:#b8c8ba;--accent:#acdbb2;--border:#405747;--soft:#263b2d;--error:#ffb6ae}
*{box-sizing:border-box}body{margin:0;min-height:100svh;display:grid;place-items:center;padding:24px;font:1rem/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--background);color:var(--text)}
.auth-card{width:min(100%,32rem);padding:40px;border:1px solid var(--border);border-top:4px solid var(--accent);border-radius:20px;background:var(--surface);box-shadow:0 16px 60px #1020160b;overflow-wrap:anywhere}
.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:40px}.brand-mark{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:14px;background:var(--soft);color:var(--accent);font-size:28px;font-weight:800}.auth-brand strong{display:block;font-size:1.25rem;letter-spacing:-.035em}.auth-brand span:not(.brand-mark){display:block;font-size:.8rem;color:var(--muted)}
.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}h1{font-size:clamp(1.75rem,5vw,2.25rem);line-height:1.2;letter-spacing:-.035em;margin:0 0 16px}.lede{color:var(--muted);margin:0 0 28px}form{margin:20px 0}button{font:inherit;min-height:44px;padding:12px 16px;border:0;border-radius:10px;background:var(--accent);color:var(--surface);cursor:pointer}button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.google-signin{display:inline-flex;align-items:center;min-height:44px;padding:2px;border:0;border-radius:999px;background:transparent;line-height:0}.google-signin:hover{background:transparent;box-shadow:0 3px 12px #17243526}.google-signin img{display:block;width:180px;height:40px}.auth-footnote{border-top:1px solid var(--border);padding-top:22px;margin:32px 0 0;font-size:.85rem;color:var(--muted)}.error{color:var(--error);background:var(--soft);border-radius:10px;padding:12px 16px}
@media(max-width:480px){body{padding:20px}.auth-card{padding:28px 24px;border-radius:16px}.auth-brand{margin-bottom:32px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.policy-card { max-width: 48rem; }
.policy-card h2 { margin-top: 1.6rem; }
.policy-card p, .policy-card a { overflow-wrap: anywhere; }
