:root{--bg: #0f1115;--surface: #161a21;--surface-2: #1d222b;--border: #2a3040;--text: #e8eaee;--text-muted: #9aa3b2;--text-faint: #6b7280;--accent: #4ade80;--accent-ink: #0f1115;--danger: #f87171;--radius: 10px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.2;margin:0 0 .4em}.shell{max-width:960px;margin:0 auto;padding:48px 24px 64px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}@media(max-width:720px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.lede{color:var(--text-muted);font-size:15px;max-width:640px;margin:0 0 32px}.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:8px;border:1px solid var(--border);font-size:14px;font-weight:600;cursor:pointer;background:var(--accent);color:var(--accent-ink);border-color:transparent}.btn:hover{text-decoration:none;filter:brightness(1.08)}.btn.secondary{background:transparent;color:var(--text);border-color:var(--border)}.btn.danger{background:var(--danger)}.field{display:grid;gap:6px;margin-bottom:14px}.field label{font-size:13px;color:var(--text-muted)}.field input{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 12px;font-size:14px}.field input:focus{outline:2px solid var(--accent);outline-offset:1px}.alert{border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:14px;margin-bottom:14px}.alert.error{border-color:var(--danger);color:var(--danger)}.alert.ok{border-color:var(--accent);color:var(--accent)}.site-nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border)}.site-nav .brand{font-weight:700;color:var(--text);font-size:16px}.site-nav nav{display:flex;gap:20px;align-items:center}.site-nav nav a{color:var(--text-muted);font-size:14px}.site-nav nav a:hover{color:var(--text);text-decoration:none}
