:root { color-scheme: light dark; --line: rgba(128,128,128,.28); --accent: #2b6cb0; --bad: #c0392b; --ok: #1e824c; }
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif;
       line-height: 1.65; font-size: 15px; }
header { border-bottom: 1px solid var(--line); padding: 12px 24px; display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
header .brand { font-weight: 600; }
header a { color: inherit; text-decoration: none; opacity: .8; }
header a:hover { opacity: 1; text-decoration: underline; }
header .spacer { flex: 1; }
main { max-width: 1080px; margin: 0 auto; padding: 24px; }
h1 { font-size: 1.3rem; margin: 0 0 4px; }
h2 { font-size: 1.05rem; margin: 28px 0 10px; }
p.sub { margin: 0 0 20px; opacity: .7; font-size: .9rem; }
table { border-collapse: collapse; width: 100%; font-size: .92rem; }
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-weight: 600; opacity: .85; white-space: nowrap; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
code, .mono { font-family: ui-monospace, Consolas, "Cascadia Mono", monospace; font-size: .88em; }
input[type=text], input[type=number], input[type=date], input[type=password], select, textarea {
  font: inherit; padding: 5px 8px; border: 1px solid var(--line); border-radius: 5px; background: transparent; color: inherit; }
input[type=number] { width: 120px; text-align: right; }
textarea { width: 100%; min-height: 60px; }
button, .btn { font: inherit; padding: 6px 14px; border: 1px solid var(--accent); border-radius: 5px;
  background: transparent; color: var(--accent); cursor: pointer; text-decoration: none; display: inline-block; }
button:hover, .btn:hover { background: var(--accent); color: #fff; }
.flash { background: rgba(43,108,176,.12); border-left: 3px solid var(--accent); padding: 8px 12px; margin-bottom: 18px; border-radius: 3px; }
.bad { color: var(--bad); }
.ok { color: var(--ok); }
.muted { opacity: .65; }
.warnbox { background: rgba(192,57,43,.08); border-left: 3px solid var(--bad); padding: 10px 14px; border-radius: 3px; font-size: .9rem; }
.card { border: 1px solid var(--line); border-radius: 8px; padding: 16px; margin-bottom: 18px; }
.grid { display: flex; gap: 28px; flex-wrap: wrap; }
.pill { display: inline-block; padding: 1px 8px; border: 1px solid var(--line); border-radius: 999px; font-size: .82rem; }
footer { border-top: 1px solid var(--line); margin-top: 40px; padding: 14px 24px; font-size: .85rem; opacity: .6; }
