:root {
  --bg:#F4F2EE; --surface:#FFFFFF; --surface-2:#ECE9E3; --ink:#23292D;
  --ink-2:#6B7176; --line:#E0DCD4; --accent:#14655A; --accent-soft:#E3EEEB;
  --on-accent:#F5FAF8; --warn:#9A6A14; --warn-soft:#F5EAD3; --neg:#B04A3E;
  --shadow:0 1px 2px rgba(35,41,45,.06),0 8px 24px rgba(35,41,45,.07);
  --radius:14px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg:#14181B; --surface:#1D2327; --surface-2:#262D32; --ink:#E9E5DE;
    --ink-2:#9AA1A6; --line:#313940; --accent:#46A38F; --accent-soft:#21332F;
    --on-accent:#0E1F1B; --warn:#D9A854; --warn-soft:#37301F; --neg:#D97D70;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35);
  }
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:var(--bg); color:var(--ink);
  font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
.stage { max-width:760px; margin:0 auto; padding:12px 12px 48px; }
.num { font-variant-numeric:tabular-nums;
  font-family:ui-monospace,"Cascadia Mono",Consolas,monospace; }
.topbar { display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:8px 4px 14px; }
.wordmark { font-weight:800; font-size:20px; letter-spacing:-.02em;
  color:var(--ink); text-decoration:none; }
.wordmark.big { font-size:26px; }
.wordmark em { color:var(--accent); font-style:normal; }
.mainnav { display:flex; gap:2px; flex-wrap:wrap; }
.mainnav a { color:var(--ink-2); text-decoration:none; font-weight:600;
  font-size:14px; padding:7px 10px; border-radius:999px; }
.mainnav a:hover { background:var(--surface-2); color:var(--ink); }
.linklike { border:0; background:none; color:var(--ink-2); font:600 14px/1
  system-ui,sans-serif; cursor:pointer; margin-left:auto; padding:7px 10px; }
.card { background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow); padding:18px;
  margin-bottom:14px; }
.auth-card { max-width:420px; margin:8vh auto 0; text-align:center; }
.auth-card form { text-align:left; margin-top:14px; }
.stack { display:grid; gap:12px; }
.field { display:grid; gap:6px; }
.label { font-size:12px; letter-spacing:.07em; text-transform:uppercase;
  color:var(--ink-2); font-weight:600; }
input, select, textarea { width:100%; background:var(--surface-2);
  border:1px solid var(--line); border-radius:var(--radius);
  padding:12px 14px; font:inherit; color:var(--ink); }
input:focus, select:focus, textarea:focus, button:focus-visible {
  outline:2px solid var(--accent); outline-offset:1px; }
.cta { border:0; width:100%; padding:14px; border-radius:var(--radius);
  background:var(--accent); color:var(--on-accent); font:700 16px/1
  system-ui,sans-serif; cursor:pointer; }
.cta:hover { filter:brightness(1.07); }
.btn-2 { display:inline-flex; align-items:center; justify-content:center;
  gap:8px; border:1.5px solid var(--accent); background:none;
  color:var(--accent); padding:11px 16px; border-radius:var(--radius);
  font:700 14px/1 system-ui,sans-serif; cursor:pointer; text-decoration:none; }
.btn-2:hover { background:var(--accent-soft); }
.btn-danger { border-color:var(--neg); color:var(--neg); }
.btn-danger:hover { background:color-mix(in srgb, var(--neg) 12%, transparent); }
.del-form { margin-top:10px; }
.inline-del { display:inline; }
.muted { color:var(--ink-2); }
.small { font-size:13px; }
.error { background:var(--warn-soft); color:var(--warn);
  border-radius:var(--radius); padding:11px 14px; font-weight:600; }
.ok { background:var(--accent-soft); color:var(--accent);
  border-radius:var(--radius); padding:11px 14px; font-weight:600; }
.seg { display:grid; grid-template-columns:1fr 1fr; gap:4px;
  background:var(--surface-2); border-radius:var(--radius); padding:4px; }
.seg label { text-align:center; padding:10px 6px; border-radius:10px;
  font-weight:600; color:var(--ink-2); cursor:pointer; }
.seg input { display:none; }
.seg input:checked + span { display:block; margin:-10px -6px; padding:10px 6px;
  border-radius:10px; background:var(--surface); color:var(--accent);
  box-shadow:var(--shadow); }
.row2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.checkline { display:flex; align-items:center; gap:10px;
  background:var(--surface-2); border:1px solid var(--line);
  border-radius:var(--radius); padding:12px 14px; }
.checkline input { width:20px; height:20px; accent-color:var(--accent); }
.checkline .hint { color:var(--ink-2); font-size:13px; }
table.data { width:100%; border-collapse:collapse; font-size:14px; }
table.data th { text-align:left; font-size:11px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-2); padding:8px 8px;
  border-bottom:1px solid var(--line); }
table.data td { padding:9px 8px; border-bottom:1px solid var(--line);
  vertical-align:top; }
table.data td.r, table.data th.r { text-align:right; }
.tablewrap { overflow-x:auto; }
.neg { color:var(--neg); }
.pill { display:inline-block; font-size:12px; font-weight:600;
  background:var(--accent-soft); color:var(--accent); border-radius:999px;
  padding:3px 9px; }
.pill.warn { background:var(--warn-soft); color:var(--warn); }
.tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px; }
.tile { background:var(--surface-2); border-radius:var(--radius);
  padding:12px 14px; }
.tile .v { font-size:19px; font-weight:700; margin-top:2px; }
.inline-form { display:flex; gap:8px; flex-wrap:wrap; align-items:end; }
.inline-form .field { flex:1; min-width:120px; }
h1 { font-size:22px; margin:6px 0 12px; letter-spacing:-.01em; }
h2 { font-size:16px; margin:14px 0 8px; }
input.cell { padding:6px 8px; border-radius:8px; max-width:110px;
  text-align:right; }
.backlink { display:inline-block; padding:8px 14px; border:1px solid var(--line);
  border-radius:999px; background:var(--surface); color:var(--ink-2);
  font-size:13px; font-weight:600; text-decoration:none; margin:0 0 12px; }
.backlink:hover { background:var(--surface-2); color:var(--ink); }
.tabs { display:inline-flex; gap:4px; background:var(--surface-2);
  border-radius:var(--radius); padding:4px; margin-bottom:14px; }
.tab-pill { padding:8px 14px; border-radius:10px; font-weight:600;
  font-size:14px; color:var(--ink-2); text-decoration:none; }
.tab-pill.on { background:var(--surface); color:var(--accent);
  box-shadow:var(--shadow); }
.btn-mini { display:inline-block; padding:6px 12px; border-radius:10px;
  border:1px solid var(--line); background:var(--surface-2); color:var(--ink);
  font-size:13px; font-weight:600; text-decoration:none; cursor:pointer; }
.btn-mini.danger { background:none; color:var(--neg); border-color:var(--neg); }
.btn-mini.danger:hover { background:color-mix(in srgb, var(--neg) 12%, transparent); }
@media (prefers-reduced-motion: reduce) { * { transition:none !important; } }
