:root{--bg:#f6f7f9;--surface:#ffffff;--border:#e2e5ea;--text:#1b1f26;--muted:#6b7280;--accent:#2563eb;--accent-soft:#eef2ff;--danger:#b91c1c;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:1180px;margin:0 auto;padding:0 20px}.topbar{background:var(--surface);border-bottom:1px solid var(--border)}.topbar-inner{display:flex;align-items:center;gap:24px;height:60px}.brand{font-weight:650;font-size:16px;color:var(--text)}.topbar nav{display:flex;gap:18px;font-size:14px}.topbar nav a{color:var(--muted)}.topbar nav a:hover{color:var(--text)}.page{padding:28px 0 60px}.page h1{font-size:26px;margin:0 0 8px}.page h2{font-size:19px;margin:28px 0 12px}.lead{color:var(--muted);margin:0 0 24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.empty,.muted{color:var(--muted)}.empty{padding:32px;text-align:center;border:1px dashed var(--border);border-radius:var(--radius)}