:root { --paper:#FAF7F0; --card:#FFFDF8; --ink:#1A1B18; --soft:#6B6A60; --line:#E2DDD1;
  --ok:#1C5B41; --okbg:#EAF3EE; --warn:#8A6D1B; --warnbg:#FBF3DA; --bad:#8A2A20; --badbg:#FDECEA; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --paper:#17181A; --card:#1E1F22; --ink:#ECEAE4; --soft:#9A978D; --line:#33353A;
  --okbg:#15291F; --warnbg:#2A2412; --badbg:#2C1714; } }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink);
  font:15px/1.5 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
.mono { font-family:ui-monospace,Menlo,Consolas,monospace; }
.wrap { max-width:1060px; margin:0 auto; padding:16px; }
header { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  padding:14px 0 10px; border-bottom:1.5px solid var(--line); margin-bottom:16px; }
h1 { font-size:19px; margin:0; font-weight:800; }
h2 { font-size:14.5px; margin:22px 0 8px; font-weight:800; }
.who { margin-left:auto; font-size:12.5px; color:var(--soft); }
button { font:inherit; cursor:pointer; border-radius:9px; }
.btn { background:transparent; border:1.5px solid var(--line); padding:7px 13px;
  font-size:13px; font-weight:600; color:var(--ink); }
.btn.primary { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.btn.small { padding:4px 10px; font-size:12px; }
input { font:inherit; padding:9px 11px; border:1.5px solid var(--line);
  border-radius:9px; background:var(--card); width:100%; color:inherit; }
.card { background:var(--card); border:1.5px solid var(--line); border-radius:13px;
  padding:14px 16px; margin-bottom:12px; }
.chip { display:inline-block; font-size:10.5px; font-weight:700; padding:2px 8px;
  border-radius:20px; white-space:nowrap; }
.ok { background:var(--okbg); color:var(--ok); }
.warn { background:var(--warnbg); color:var(--warn); }
.bad { background:var(--badbg); color:var(--bad); }
.mute { background:#EFEDE6; color:var(--soft); }
table { width:100%; border-collapse:collapse; font-size:13.5px; }
th { text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--soft); font-weight:700; padding:0 10px 6px 0; }
td { padding:9px 10px 9px 0; border-top:1px solid var(--line); vertical-align:top; }
tr.row:hover td { background:var(--card); cursor:pointer; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px 22px; }
.f label { display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--soft); font-weight:700; }
.note { font-size:12.5px; color:var(--soft); line-height:1.5; }
.msg { padding:10px 13px; border-radius:10px; font-size:13px; font-weight:600; margin-bottom:12px; }
.signin { max-width:360px; margin:12vh auto; }
.confirm { background:var(--warnbg); border:1.5px solid #E6D09A; border-radius:11px;
  padding:11px 13px; margin-top:8px; }
@media (max-width:640px) { .wrap { padding:12px; } td, th { font-size:12.5px; } }
