: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}}
