:root{--ink:#0e141b;--panel:#161f29;--panel2:#1d2836;--line:#2b3948;--paper:#e9eef3;--muted:#7d8d9f;
  --amber:#f0a830;--teal:#4ec9b0;--red:#e5715f;--blue:#6aa9ff;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;--sans:system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{background:var(--ink);color:var(--paper);font-family:var(--sans);padding-bottom:calc(76px + env(safe-area-inset-bottom));-webkit-font-smoothing:antialiased}
.app{max-width:640px;margin:0 auto;padding:0 14px}
header{position:sticky;top:0;z-index:5;background:var(--ink);border-bottom:1px solid var(--line);padding:calc(14px + env(safe-area-inset-top)) 14px 10px;margin:0 -14px 14px}
header .r{display:flex;align-items:baseline;justify-content:space-between}
h1{font-size:18px;font-weight:600;letter-spacing:-.01em}
h2{font-size:15px;font-weight:600;margin:16px 0 8px}
.hm{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:3px}
.lbl{font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin:14px 0 8px}
.lbl.amber{color:var(--amber)}.lbl.teal{color:var(--teal)}.lbl.red{color:var(--red)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:13px;margin-bottom:10px}
.card.due{border-color:var(--amber)}.card.done{border-color:var(--teal)}.card.off{opacity:.55}.card.alert{border-color:var(--red)}
.row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.nm{font-size:15px;font-weight:600}
.meta{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:3px;line-height:1.5}
.meta.teal{color:var(--teal)}.meta.amber{color:var(--amber)}.meta.red{color:var(--red)}
.note{font-size:12px;color:var(--muted);line-height:1.5}
button{font-family:var(--mono);font-size:12px;padding:9px 14px;border-radius:7px;border:1px solid var(--line);background:var(--panel2);color:var(--paper);cursor:pointer}
button.pri{background:var(--amber);color:var(--ink);border-color:var(--amber);font-weight:600}
button.ok{background:transparent;color:var(--teal);border-color:var(--teal)}
button.danger{background:transparent;color:var(--red);border-color:var(--red)}
button.wide{display:block;width:100%;padding:13px}
button.ghost{background:transparent;color:var(--muted)}
button.icon{padding:7px 9px;background:transparent;border:0;font-size:15px}
button.sm{padding:5px 9px;font-size:11px}
button:disabled{opacity:.5}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.stat{background:var(--ink);border:1px solid var(--line);border-radius:7px;padding:8px 9px}
.stat .k{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.stat .v{font-family:var(--mono);font-size:13px;margin-top:3px}
.v.amber{color:var(--amber)}.v.teal{color:var(--teal)}.v.red{color:var(--red)}
input,textarea,select{width:100%;background:var(--ink);border:1px solid var(--line);border-radius:7px;color:var(--paper);font-family:var(--mono);font-size:14px;padding:10px}
input[type=date],input[type=time]{color-scheme:dark}
.fld{margin-bottom:9px}.fld .k{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
nav{position:fixed;bottom:0;left:0;right:0;background:var(--ink);border-top:1px solid var(--line);display:flex;justify-content:center;padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:6;overflow-x:auto}
nav button{flex:1;max-width:92px;border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;padding:6px 2px}
nav button.on{color:var(--amber)}nav .ic{font-size:17px}
.full{position:fixed;inset:0;background:var(--ink);z-index:20;overflow:auto}.full .in{max-width:640px;margin:0 auto;padding:0 14px 40px}
.sheet{position:fixed;left:0;right:0;bottom:0;background:var(--panel);border-top:1px solid var(--line);border-radius:14px 14px 0 0;z-index:20;max-height:92vh;overflow:auto;padding:14px 14px calc(20px + env(safe-area-inset-bottom))}
.sheet .in{max-width:640px;margin:0 auto}
.site{text-align:left;padding:9px 10px}.site.sel{border-color:var(--amber);background:rgba(240,168,48,.12)}.site.hot{border-color:var(--red);opacity:.7}
.site .s{font-size:13px}.site .d{font-family:var(--mono);font-size:10px;color:var(--muted)}.site .d.teal{color:var(--teal)}
.center{text-align:center}
.pill{display:inline-block;font-family:var(--mono);font-size:10px;padding:2px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted);margin-right:4px}
.pill.amber{color:var(--amber);border-color:var(--amber)}.pill.teal{color:var(--teal);border-color:var(--teal)}.pill.red{color:var(--red);border-color:var(--red)}.pill.blue{color:var(--blue);border-color:var(--blue)}
table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:6px 5px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.wk td.c{text-align:center;font-family:var(--mono)}.wk .tick{color:var(--teal)}.wk .miss{color:var(--red)}.wk .dash{color:var(--line)}.wk .todo{color:var(--muted)}
.wk th.gym{color:var(--red)}
.seg{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.seg button.on{border-color:var(--amber);color:var(--amber)}
.err{color:var(--red);font-family:var(--mono);font-size:12px;margin-top:8px}
.ok-msg{color:var(--teal);font-family:var(--mono);font-size:12px;margin-top:8px}
.bar{height:6px;background:var(--ink);border:1px solid var(--line);border-radius:4px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--teal)}
.bar.low>i{background:var(--amber)}.bar.empty>i{background:var(--red)}
svg.spark{width:100%;height:60px}
.timeline .wkrow{display:grid;grid-template-columns:52px 1fr 70px;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:12px;font-family:var(--mono)}
.timeline .wkrow.block{background:rgba(106,169,255,.07)}.timeline .wkrow.now{outline:1px solid var(--amber);border-radius:6px}
.timeline .ph{color:var(--blue)}.timeline .gap{color:var(--muted)}.timeline .epi{color:var(--amber)}.timeline .ev{color:var(--teal)}
@media (min-width:700px){.app{max-width:900px}.full .in,.sheet .in{max-width:900px}}
