:root { --fg:#16181d; --muted:#5b6170; --line:#e3e5ea; --bg:#f6f7f9; --card:#fff; --accent:#1f5fbf;
  --ok:#1e7a3c; --warn:#a66300; --bad:#b42318; --review:#5b4bb7; }
* { box-sizing: border-box; }
body { margin:0; font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--fg); background:var(--bg); }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }
header { background:#16181d; color:#fff; padding:10px 24px; display:flex; align-items:center; gap:16px; }
header .brand { font-weight:600; font-size:16px; color:#fff; } header .sp { flex:1; }
header .who { color:#c9ccd3; font-size:13px; } header .tag { color:#9aa0ab; } header a.out { color:#fff; font-size:13px; }
main { max-width:1180px; margin:0 auto; padding:20px 24px 60px; }
h1 { font-size:22px; margin:4px 0 14px; } h2 { font-size:16px; margin:26px 0 10px; }
.crumb { color:var(--muted); font-size:13px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:16px 18px; margin:0 0 16px; }
table { width:100%; border-collapse:collapse; background:var(--card); }
th { text-align:left; font-size:12px; color:var(--muted); font-weight:600; border-bottom:1px solid #cfd3da; padding:6px 8px; }
td { border-bottom:1px solid var(--line); padding:6px 8px; vertical-align:top; }
td.n { text-align:right; font-variant-numeric:tabular-nums; }
.flash { padding:9px 12px; border-radius:6px; margin:0 0 12px; border:1px solid var(--line); background:#fff; }
.flash.error { border-color:#f3b8b2; background:#fdf0ef; } .flash.ok { border-color:#b9dfc6; background:#eff8f2; }
form.inline { display:inline; }
input[type=text], input[type=file] { padding:6px 8px; border:1px solid #c9cdd5; border-radius:6px; font:inherit; }
button { padding:7px 14px; border-radius:6px; border:1px solid var(--accent); background:var(--accent); color:#fff;
  font:inherit; cursor:pointer; } button.sec { background:#fff; color:var(--accent); }
.muted { color:var(--muted); } .small { font-size:12px; }
.note { border-left:3px solid var(--warn); background:#fff8ec; padding:8px 12px; border-radius:0 6px 6px 0; margin:0 0 14px; }
details summary { cursor:pointer; color:var(--accent); margin:8px 0; }
.gaps li { margin:0 0 2px; }
nav.tabs { display:flex; flex-wrap:wrap; gap:4px; border-bottom:1px solid var(--line); margin:0 0 16px; }
nav.tabs a { padding:7px 12px; border:1px solid transparent; border-bottom:none; border-radius:6px 6px 0 0; color:var(--muted); }
nav.tabs a.on { background:var(--card); border-color:var(--line); color:var(--fg); font-weight:600; margin-bottom:-1px; }
.form label { display:block; margin:0 0 10px; font-size:13px; color:var(--muted); }
.form input[type=text], .form textarea, .form select { display:block; width:100%; margin-top:3px; color:var(--fg); }
textarea, select { padding:6px 8px; border:1px solid #c9cdd5; border-radius:6px; font:inherit; background:#fff; }
fieldset { border:1px solid var(--line); border-radius:6px; margin:0 0 12px; padding:8px 12px; }
legend { font-size:13px; color:var(--muted); padding:0 4px; }
.form label.chk { color:var(--fg); font-size:13px; margin:3px 0; }
.cols { display:grid; grid-template-columns:1fr 1fr; gap:16px; } .cols3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; }
@media (max-width: 900px) { .cols, .cols3 { grid-template-columns:1fr; } }
pre.ssptext { white-space:pre-wrap; font:12px/1.45 ui-monospace,monospace; background:var(--bg); padding:8px; border-radius:6px; max-height:360px; overflow:auto; }
a.btn { display:inline-block; padding:8px 16px; border-radius:6px; background:var(--accent); color:#fff; }
a.btn:hover { text-decoration:none; opacity:.9; }
a.btn.sec { background:#fff; color:var(--accent); border:1px solid var(--accent); }
form a.btn { margin-left:8px; }
