:root{--bg:#fafaf8;--fg:#1d2330;--mut:#667085;--line:#d9dde5;--card:#fff;--acc:#1f6f5c;--accfg:#fff;--warn:#b42318;--ok:#146c43;--chip:#eef1f5}
@media (prefers-color-scheme:dark){:root{--bg:#14171d;--fg:#e8eaf0;--mut:#9aa3b2;--line:#2b313c;--card:#1b2029;--acc:#4fb39b;--accfg:#0b1512;--warn:#ff8a7a;--ok:#6fd3a0;--chip:#252b36}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.65 system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif}
a{color:var(--acc)}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}
.top{border-bottom:1px solid var(--line)}.top .wrap{padding:12px 16px}.brand{font-weight:700;text-decoration:none;color:var(--fg)}
.tabs,.subtabs{display:flex;gap:4px;flex-wrap:wrap;max-width:1040px;margin:0 auto;padding:8px 16px}
.tabs a,.subtabs a{padding:6px 12px;border-radius:8px;text-decoration:none;color:var(--fg);border:1px solid transparent}
.tabs a.on,.subtabs a.on{background:var(--chip);border-color:var(--line);font-weight:700}
h1{font-size:1.4rem;margin:1rem 0 .5rem}h2{font-size:1.1rem;margin:.2rem 0 .6rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:12px 0}.card.off{opacity:.65}.card.danger{border-color:var(--warn)}
label{display:block;margin:.5rem 0;font-size:.92rem;color:var(--mut)}label.chk{color:var(--fg)}
input:not([type=checkbox]),select{display:block;width:100%;max-width:420px;padding:8px 10px;margin-top:2px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit}
button{font:inherit;padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:var(--chip);color:var(--fg);cursor:pointer}
button.primary{background:var(--acc);color:var(--accfg);border-color:var(--acc);padding:12px 20px;font-weight:700}
form.inl{display:inline}
.scroll{overflow-x:auto}table.list{border-collapse:collapse;width:100%;min-width:640px}
table.list th,table.list td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
td.num{font-variant-numeric:tabular-nums;font-weight:700}td.acts{white-space:nowrap}
.chip{display:inline-block;padding:1px 10px;border-radius:99px;background:var(--chip);font-size:.85rem}.chip.arrived{background:var(--warn);color:#fff}.chip.met{background:var(--ok);color:#fff}
.empty,.note,small{color:var(--mut)}.note{font-size:.88rem}
.err{color:var(--warn);font-weight:700}.msg{color:var(--ok);font-weight:700}
.alert{border:2px solid var(--warn);border-radius:12px;padding:8px 16px;margin:12px 0}.alert h2{color:var(--warn)}
.demo-banner{background:#fde68a;color:#3b2f00;text-align:center;padding:8px 12px;font-weight:700}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px}dl.kv dt{color:var(--mut)}dl.kv dd{margin:0}
code{background:var(--chip);padding:1px 6px;border-radius:6px;word-break:break-all}.code{font-size:2rem;letter-spacing:.2em;font-variant-numeric:tabular-nums}
.qrbox{max-width:260px;margin:12px 0}.qrbox svg{width:100%;height:auto;background:#fff;padding:8px}
.poster{text-align:center}.poster .big{font-size:1.4rem}.poster .qrbox{margin:16px auto;max-width:360px}
.pub{max-width:520px;padding:16px}.pub .pubform label{font-size:1rem}.pub .num b{font-size:2.4rem}
.steps li{margin:.3rem 0}
@media print{.top,.tabs,.core-bar,.demo-banner{display:none}.poster .note{color:#000}}
