:root { --bg:#f4f2ee; --card:#ffffff; --ink:#1d1b18; --muted:#6b665e; --line:#e3ded5; --accent:#1f3a2e; --accent-ink:#ffffff; --error:#a3261b; }
@media (prefers-color-scheme: dark) { :root { --bg:#151412; --card:#1f1d1a; --ink:#f2efe9; --muted:#a39d93; --line:#34302a; --accent:#8fbf9f; --accent-ink:#10140f; --error:#ff8a7d; } }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; display:grid; place-items:center; background:var(--bg); color:var(--ink); font:16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; padding:16px; }
.card { width:100%; max-width:420px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:28px; }
.brand { display:flex; align-items:baseline; gap:10px; margin-bottom:20px; }
.mark { font-weight:800; letter-spacing:.08em; color:var(--accent); }
.sub { font-size:13px; color:var(--muted); }
h1 { font-size:21px; line-height:1.3; margin:0 0 10px; }
p { margin:0 0 12px; }
.muted { color:var(--muted); }
.fine { font-size:13px; color:var(--muted); margin-top:12px; }
.error { color:var(--error); }
label { display:block; font-size:14px; font-weight:600; margin:14px 0 6px; }
input { width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:9px; font:inherit; background:transparent; color:var(--ink); }
button { width:100%; padding:11px 14px; border-radius:9px; font:inherit; font-weight:600; cursor:pointer; margin-top:12px; border:1px solid var(--accent); }
button.primary { background:var(--accent); color:var(--accent-ink); }
button.secondary { background:transparent; color:var(--ink); border-color:var(--line); }
button:disabled { opacity:.6; cursor:default; }
.row { display:flex; gap:10px; }
.row button { flex:1; }
.or { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:13px; margin:14px 0 0; }
.or::before, .or::after { content:""; flex:1; border-top:1px solid var(--line); }
.list { padding-left:18px; margin:6px 0 10px; }
.list li { margin-bottom:6px; }
a { color:var(--accent); }
