:root { --bg:#f6f7f9; --card:#fff; --fg:#1d2330; --muted:#667085; --line:#e4e7ec; --accent:#f38020; --ok:#127a3e; --okbg:#e7f6ec; --err:#b42318; --errbg:#fdecea; --warnbg:#fff4e5; }
@media (prefers-color-scheme: dark) { :root { --bg:#14161b; --card:#1d2027; --fg:#e7e9ee; --muted:#98a2b3; --line:#30343d; --okbg:#173524; --errbg:#3d1d1a; --warnbg:#3a2a12; --ok:#6fd39a; --err:#ff8a7a; } }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; background:var(--bg); color:var(--fg); }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }
.top { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; padding:12px 20px; background:var(--card); border-bottom:1px solid var(--line); }
.brand { font-weight:700; color:var(--fg); font-size:17px; }
nav { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
nav a { color:var(--fg); }
.banner { background:var(--warnbg); padding:8px 20px; font-size:13px; border-bottom:1px solid var(--line); }
main { max-width:1100px; margin:0 auto; padding:20px 16px 60px; }
h1 { font-size:22px; margin:4px 0 16px; } h2 { font-size:17px; margin:28px 0 10px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:16px; margin-bottom:16px; }
.tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin-bottom:18px; }
.tile { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:12px 14px; }
.tile .v { font-size:22px; font-weight:700; } .tile .l { color:var(--muted); font-size:13px; }
.scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line); border-radius:10px; }
th, td { padding:8px 10px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; white-space:nowrap; }
th { font-size:12px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); font-weight:600; }
tr:last-child td { border-bottom:0; }
td.num, th.num { text-align:right; }
.muted { color:var(--muted); }
.pill { display:inline-block; padding:1px 8px; border-radius:99px; font-size:12px; background:var(--line); }
.pill.ok { background:var(--okbg); color:var(--ok); } .pill.err { background:var(--errbg); color:var(--err); } .pill.warn { background:var(--warnbg); }
.msg { padding:10px 14px; border-radius:8px; margin-bottom:14px; } .msg.ok { background:var(--okbg); color:var(--ok); } .msg.err { background:var(--errbg); color:var(--err); }
form.stack { display:grid; gap:12px; max-width:460px; }
label { display:grid; gap:4px; font-weight:600; font-size:14px; } label.check { display:flex; gap:8px; align-items:center; font-weight:400; }
input, select, textarea { font:inherit; padding:7px 10px; border:1px solid var(--line); border-radius:7px; background:var(--bg); color:var(--fg); }
button, .btn { font:inherit; padding:7px 14px; border-radius:7px; border:1px solid var(--accent); background:var(--accent); color:#fff; cursor:pointer; display:inline-block; }
button.secondary { background:transparent; color:var(--fg); border-color:var(--line); }
button.danger { background:var(--err); border-color:var(--err); }
button.small { padding:3px 10px; font-size:13px; }
button.link { background:none; border:0; color:var(--fg); padding:0; }
form.inline { display:inline; }
.row { display:flex; flex-wrap:wrap; gap:10px; align-items:end; }
.filters a { margin-right:12px; } .filters a.on { font-weight:700; color:var(--fg); }
code { font-size:13px; }
pre { white-space:pre-wrap; background:var(--bg); padding:10px; border-radius:8px; border:1px solid var(--line); }
