:root,[data-theme=day]{--bg: #faf7f2;--surface: #ffffff;--raised: #f1ebe3;--text: #1f1a17;--muted: #6b5f57;--line: #e2d8cc;--accent: #a8431f;--accent-text: #fff;--good: #2f6f3e;--warn: #9a5b00;--bad: #b3261e}[data-theme=night]{--bg: #0b0605;--surface: #170d0a;--raised: #241410;--text: #e0a27a;--muted: #9a6b55;--line: #33201a;--accent: #8e2b1c;--accent-text: #f2c9a8;--good: #a08a3c;--warn: #c27a2c;--bad: #d04a35}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}body{font:17px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}#app{max-width:640px;margin:0 auto;padding:12px 16px calc(96px + env(safe-area-inset-bottom))}h1{font-size:1.3rem;margin:4px 0 12px}h2{font-size:1.1rem;margin:20px 0 8px}a{color:var(--accent)}[data-theme=night] a{color:var(--text)}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px}.muted{color:var(--muted)}.small{font-size:.9rem}.big{font-size:1.25rem;font-weight:600}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}button,.btn{font:inherit;color:var(--text);background:var(--raised);border:1px solid var(--line);border-radius:12px;min-height:52px;padding:10px 14px;cursor:pointer;touch-action:manipulation}button.primary{background:var(--accent);color:var(--accent-text);border-color:transparent;font-weight:600}button.huge{min-height:88px;font-size:1.2rem;font-weight:600;width:100%}button.on{outline:3px solid var(--accent);outline-offset:-3px}button.link{background:none;border:0;min-height:44px;padding:0 4px;color:var(--accent);text-decoration:underline}[data-theme=night] button.link{color:var(--text)}button:disabled{opacity:.5}input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:10px;min-height:48px;padding:8px 12px;width:100%}label{display:block;margin:10px 0 4px;color:var(--muted);font-size:.95rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;text-align:center}.stats b{display:block;font-size:1.3rem}.timer{font-variant-numeric:tabular-nums;font-size:2.2rem;font-weight:700}.sheet-bg{position:fixed;inset:0;background:#0009;display:flex;align-items:flex-end;z-index:10}.sheet{background:var(--bg);width:100%;max-width:640px;margin:0 auto;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(20px + env(safe-area-inset-bottom))}.toast{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));max-width:616px;margin:0 auto;background:var(--raised);border:1px solid var(--line);border-radius:12px;padding:6px 6px 6px 14px;z-index:20}.toast.error{border-color:var(--bad)}nav.tabs{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:5}nav.tabs a{flex:1;text-align:center;padding:14px 0;text-decoration:none;color:var(--muted);min-height:56px}nav.tabs a.active{color:var(--text);font-weight:600}.swatch{min-height:56px;border-radius:10px;border:2px solid var(--line);font-size:.8rem;color:#fff;text-shadow:0 1px 2px #000}.swatch.flag{border-color:var(--bad);border-style:dashed}.list .item{display:flex;justify-content:space-between;gap:8px;padding:12px 4px;border-bottom:1px solid var(--line);min-height:52px}.warn{color:var(--warn)}.bad{color:var(--bad)}.banner{border-color:var(--bad)}@media print{nav.tabs,.no-print{display:none}}table.guide{border-collapse:collapse;width:100%;font-size:.95rem}table.guide th,table.guide td{text-align:left;vertical-align:top;padding:10px 8px;border-bottom:1px solid var(--line)}@media(max-width:700px){table.guide thead{display:none}table.guide tr,table.guide th,table.guide td{display:block;padding:4px 0;border:0}table.guide tr{padding:10px 0;border-bottom:1px solid var(--line)}table.guide td:before{content:attr(data-label) ": ";font-weight:600;color:var(--muted)}}@media(min-width:701px){#app:has(table.guide){max-width:1000px}}:root,[data-theme=day]{--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--grid: #ece5dc}[data-theme=night]{--s1: #3987e5;--s2: #d95926;--s3: #199e70;--grid: #2a1914}figure.chart{margin:0 0 10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px}figure.chart figcaption{font-weight:600;margin-bottom:4px}.plot{position:relative}.plot svg{width:100%;height:auto;display:block;overflow:visible}.plot .grid{stroke:var(--grid);stroke-width:1}.plot .axis{fill:var(--muted);font-size:12px}.plot .axis.small{font-size:10px}.plot .val{fill:var(--text);font-size:12px;font-weight:600}.plot .target{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-dasharray:4 3}.plot .hover{fill:var(--text);opacity:.06;pointer-events:none}.plot .centile{fill:none;stroke:var(--muted);stroke-width:1;opacity:.6}.plot .centile.mid{stroke-width:1.5;opacity:.9}.plot .series{fill:none;stroke-width:2}.plot .ring{stroke:var(--surface);stroke-width:2}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin-bottom:4px}.legend i,.tip i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.tip{position:absolute;top:0;transform:translate(-50%);background:var(--raised);border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:.85rem;pointer-events:none;white-space:nowrap;box-shadow:0 2px 8px #0003}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-bottom:10px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.tile-v{white-space:nowrap;font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.charts{display:grid;gap:10px}@media(min-width:900px){#app:has(.dash){max-width:1200px}.charts{grid-template-columns:1fr 1fr}}table.data{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;font-size:.95rem}table.data th,table.data td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right}table.data th:first-child,table.data td:first-child{text-align:left}.scroll-x{overflow-x:auto}@media print{:root,[data-theme]{--bg: #fff;--surface: #fff;--raised: #fff;--text: #000;--muted: #444;--line: #bbb;--grid: #ddd}body{font-size:12px}#app{max-width:none;padding:0}.card,figure.chart{break-inside:avoid}}
