:root{--bg-from:#f7f8fb;--bg-to:#eef0f7;--card:#ffffff;--border:#e4e6ec;--text:#111318;--muted:#6b7080;--faint:#9a9fae;--btn-hover:#f5f6f9;--err-bg:#fef2f2;--err-border:#fecaca;--err-text:#b91c1c}@media (prefers-color-scheme:dark){:root{--bg-from:#111216;--bg-to:#18202b;--card:#15171c;--border:#2a2d35;--text:#f2f3f5;--muted:#a3a7b3;--faint:#7d8290;--btn-hover:#1d2027;--err-bg:#2a1215;--err-border:#5c1d24;--err-text:#fca5a5}}*{box-sizing:border-box}body{margin:0;color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;background:linear-gradient(135deg,var(--bg-from),var(--bg-to))}.login,body{min-height:100vh}.login{display:flex;align-items:center;justify-content:center;padding:16px}.login-wrap{width:100%;max-width:448px}.login-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:40px;box-shadow:0 20px 40px -12px rgb(0 0 0/.18);text-align:center}.login-card img{width:56px;height:56px;margin-bottom:20px}.login-card h1{margin:0;font-size:24px;font-weight:700}.login-sub{margin:6px 0 0;font-size:14px;color:var(--muted)}.login-error{margin-top:24px;padding:12px 16px;border-radius:8px;font-size:14px;text-align:left;background:var(--err-bg);border:1px solid var(--err-border);color:var(--err-text)}.google-btn{margin-top:32px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);font:500 14px system-ui,-apple-system,sans-serif;cursor:pointer;box-shadow:0 1px 2px rgb(0 0 0/.05);transition:background .15s}.google-btn:hover{background:var(--btn-hover)}.google-btn svg{width:20px;height:20px}.login-note{margin:24px 0 0}.login-footer,.login-note{font-size:12px;color:var(--faint)}.login-footer{margin-top:24px;text-align:center;letter-spacing:.02em}