:root { --ink:#16364a; --teal:#147c79; --light:#edf5f7; --bg:#f7fafb; --line:#d6e2e7; --bad:#b3261e; --good:#2e7d32; --warn:#b26a00; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; color:var(--ink); background:var(--bg); }
a { color:var(--teal); }
main { max-width:1200px; margin:0 auto; padding:20px 16px 60px; }
h1 { font-size:26px; margin:8px 0 16px; } h2 { font-size:18px; margin:18px 0 10px; } h3 { font-size:15px; }
.top { display:flex; align-items:center; gap:18px; padding:10px 16px; background:var(--ink); color:#fff; flex-wrap:wrap; }
.top a { color:#fff; text-decoration:none; } .top nav { display:flex; gap:14px; flex:1; flex-wrap:wrap; }
.top .brand { font-weight:700; } .top .dev { color:#ffd27a; }
.banner { background:#fff3d6; color:#6b4b00; padding:6px 16px; font-size:13px; text-align:center; }
.card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:16px; margin:12px 0; }
.narrow { max-width:420px; margin:60px auto; }
.row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; } .between { justify-content:space-between; }
.grid2 { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:12px 18px; }
label { display:block; font-weight:600; margin:8px 0; } label small { font-weight:400; color:#5b7280; }
label.check { display:flex; gap:8px; align-items:center; font-weight:500; }
input, select, textarea { width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:7px; font:inherit; color:inherit; background:#fff; margin-top:4px; }
input[type=checkbox] { width:auto; margin:0; }
textarea.code { font:13px/1.45 ui-monospace, Consolas, monospace; }
button, .button { background:var(--teal); color:#fff; border:0; border-radius:7px; padding:8px 14px; font:inherit; font-weight:600; cursor:pointer; text-decoration:none; display:inline-block; }
button.off { background:#8a8f98; } button.on { background:var(--good); } button.danger { background:var(--bad); }
button.link { background:none; color:#fff; text-decoration:underline; padding:0; font-weight:400; }
form.inline { display:inline; } .right { float:right; }
table { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
th, td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
th { background:var(--light); font-size:13px; } tr.bad td { background:#fdecea; }
.tiles { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:10px; margin:6px 0 10px; }
.tile { background:#fff; border:1px solid var(--line); border-radius:10px; padding:12px; }
.tile b { display:block; font-size:26px; } .tile span { color:#5b7280; font-size:13px; } .tile.warn { border-color:var(--warn); }
.tabs { display:flex; gap:6px; } .tabs a { padding:4px 10px; border-radius:20px; text-decoration:none; border:1px solid var(--line); }
.tabs a.on { background:var(--ink); color:#fff; }
.tag { display:inline-block; background:var(--light); border-radius:12px; padding:1px 8px; margin:1px 3px 1px 0; font-size:12px; }
.tag.hot { background:#fde2c2; }
.muted { color:#5b7280; } .small { font-size:12px; } .error { color:var(--bad); font-weight:600; } .ok { color:var(--good); font-weight:600; }
.thread { display:flex; flex-direction:column; gap:8px; margin:12px 0; }
.msg { max-width:75%; padding:8px 12px; border-radius:12px; background:#fff; border:1px solid var(--line); }
.msg.out { align-self:flex-end; background:var(--light); } .msg small { display:block; color:#5b7280; font-size:11px; }
pre { white-space:pre-wrap; word-break:break-all; background:var(--light); padding:8px; border-radius:6px; margin:6px 0; }
code { background:var(--light); padding:1px 5px; border-radius:4px; }
.help p, .help li { font-size:14px; } .prose { max-width:760px; margin:20px auto; }
@media (max-width:600px) { th, td { padding:6px; font-size:13px; } .msg { max-width:92%; } }
