:root{--bg:#0f1115;--card:#171a21;--card2:#1e222b;--line:#2a2f3a;--text:#eef1f6;--muted:#8d95a5;--accent:#4ade80;--accent-ink:#06210f;--warn:#fbbf24;--bad:#f87171;--up:#4ade80;--down:#f87171;--mixed:#fbbf24;--r:14px}@media (prefers-color-scheme: light){:root{--bg:#f4f5f8;--card:#fff;--card2:#eef0f4;--line:#dde1e8;--text:#14171c;--muted:#5d6676;--accent:#16a34a;--accent-ink:#fff;--warn:#b45309;--bad:#dc2626;--up:#16a34a;--down:#dc2626;--mixed:#b45309}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.35 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}#root{max-width:640px;margin:0 auto;min-height:100dvh;padding:env(safe-area-inset-top) 12px calc(76px + env(safe-area-inset-bottom))}h1{font-size:22px;margin:16px 0 8px}h2{font-size:18px;margin:14px 0 6px}h3{font-size:15px;margin:0}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--bad)}.center{display:grid;place-items:center;min-height:60dvh}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:10px;width:100%;min-height:44px}input[type=checkbox]{width:auto;min-height:0}label{display:block;font-size:13px;color:var(--muted);margin:10px 0}label input,label select{margin-top:4px;color:var(--text)}button{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-height:44px;cursor:pointer}button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:600}button.danger{color:var(--bad)}button.link{background:none;border:none;color:var(--accent);padding:8px}button:disabled{opacity:.5}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px;margin:10px 0}.auth{margin-top:12vh}.qr{width:200px;height:200px;background:#fff;border-radius:8px;display:block;margin:8px auto}.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}.row>.fit{flex:0 0 auto}.wrap{flex-wrap:wrap}.between{display:flex;justify-content:space-between;align-items:center;gap:8px}.tabbar{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);display:flex;padding-bottom:env(safe-area-inset-bottom);z-index:10}.tabbar button{flex:1;border:none;border-radius:0;background:none;padding:12px 4px;min-height:56px;font-size:13px;color:var(--muted)}.tabbar button.on{color:var(--accent);font-weight:600}.chips{display:flex;gap:6px;overflow-x:auto;padding:4px 0}.chip{flex:0 0 auto;border-radius:999px;padding:8px 14px;min-height:40px}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:transparent}.setrow{display:grid;grid-template-columns:34px 1fr 74px 64px 48px;gap:6px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}.setrow input{text-align:center;padding:8px 2px}.setrow .tgt{font-size:13px}.setrow .past{font-size:11px;color:var(--muted)}.check{width:48px;height:48px;border-radius:12px;font-size:22px;padding:0}.check.on{background:var(--accent);color:var(--accent-ink)}.badge{display:inline-block;font-size:11px;padding:1px 6px;border-radius:6px;background:var(--card2);border:1px solid var(--line);color:var(--muted)}.up{color:var(--up)}.down{color:var(--down)}.mixed{color:var(--mixed)}.equal{color:var(--muted)}.timer{position:fixed;left:12px;right:12px;bottom:calc(68px + env(safe-area-inset-bottom));background:var(--accent);color:var(--accent-ink);border-radius:14px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;z-index:11;font-weight:600}.timer button{background:#00000026;border:none;color:inherit;min-height:36px;padding:6px 12px}.sync{font-size:12px;color:var(--muted);text-align:right;padding-top:6px}.insight{border-left:3px solid var(--accent);padding-left:10px;margin:8px 0}.insight.miss{border-color:var(--warn)}.weekgrid{width:100%;border-collapse:collapse}.weekgrid td,.weekgrid th{padding:3px;text-align:center}.weekgrid input{padding:6px 2px;min-height:38px;text-align:center}.sup{border-left:3px solid var(--warn);padding-left:8px}details>summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
