:root{--green:#1a7a5e;--green-light:#1a7a5e1a;--green-border:#1a7a5e4d;--blue:#185fa5;--blue-light:#185fa51a;--amber:#ba7517;--amber-light:#ba75171a;--purple:#534ab7;--purple-light:#534ab71a;--red:#c03030;--red-light:#c2303014;--bg:#f5f5f3;--surface:#fff;--surface2:#f0eeea;--border:#0000001a;--border2:#0000002e;--text:#1a1a1a;--text2:#666;--text3:#999;--radius:8px;--radius-lg:12px;--font-mono:"SF Mono", "Fira Code", monospace;--nav-height:64px;--header-height:56px}@media (prefers-color-scheme:dark){:root{--bg:#111110;--surface:#1c1c1a;--surface2:#252523;--border:#ffffff1a;--border2:#ffffff2e;--text:#f0eeea;--text2:#999;--text3:#555;--green-light:#1a7a5e26;--blue-light:#185fa526;--amber-light:#ba751726;--purple-light:#534ab726;--red-light:#c230301f}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}.app{flex-direction:column;max-width:430px;height:100%;margin:0 auto;display:flex}.page{padding-bottom:calc(var(--nav-height) + 12px);-webkit-overflow-scrolling:touch;flex:1;overflow:hidden auto}.page-section{flex-direction:column;gap:10px;padding:12px;display:flex}.page-header{z-index:10;background:var(--surface);border-bottom:.5px solid var(--border);min-height:var(--header-height);justify-content:space-between;align-items:center;padding:14px 16px 12px;display:flex;position:sticky;top:0}.page-header-title{font-size:17px;font-weight:600}.page-header-sub{color:var(--text2);margin-top:1px;font-size:12px}.bottom-nav{background:var(--surface);border-top:.5px solid var(--border);z-index:100;width:100%;max-width:430px;padding-top:8px;padding-bottom:env(safe-area-inset-bottom);height:var(--nav-height);align-items:flex-start;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{color:var(--text3);cursor:pointer;flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px 0;font-size:10px;display:flex}.nav-item.active{color:var(--green)}.card{background:var(--surface);border-radius:var(--radius-lg);border:.5px solid var(--border);overflow:hidden}.card-header{border-bottom:.5px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px 8px;display:flex}.card-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text2);font-size:11px;font-weight:600}.badge{border-radius:20px;padding:2px 8px;font-size:10px;font-weight:500}.badge-green{background:var(--green-light);color:#0a5c40}.badge-blue{background:var(--blue-light);color:#0c447c}.badge-amber{background:var(--amber-light);color:#633806}.badge-purple{background:var(--purple-light);color:#3c3489}.badge-red{background:var(--red-light);color:#8b1f1f}.badge-gray{background:var(--surface2);color:var(--text2);border:.5px solid var(--border)}@media (prefers-color-scheme:dark){.badge-green{color:#5dcaa5}.badge-blue{color:#85b7eb}.badge-amber{color:#fac775}.badge-purple{color:#afa9ec}.badge-red{color:#f09595}}.metric-grid{background:var(--border);grid-template-columns:1fr 1fr;gap:1px;display:grid}.metric-cell{background:var(--surface);padding:10px 14px}.metric-label{color:var(--text2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;font-size:10px}.metric-value{font-size:20px;font-weight:600;font-family:var(--font-mono);line-height:1}.metric-unit{color:var(--text2);font-size:11px;font-weight:400}.metric-sub{color:var(--text2);margin-top:2px;font-size:11px}.delta-up{color:#0a5c40}.delta-neutral{color:var(--text2)}.delta-bad{color:var(--red)}@media (prefers-color-scheme:dark){.delta-up{color:#5dcaa5}}.bar-wrap{background:var(--surface2);border-radius:2px;height:4px;margin-top:5px;overflow:hidden}.bar-wrap-lg{background:var(--surface2);border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.bar{border-radius:2px;height:100%;transition:width .4s}.bar-green{background:var(--green)}.bar-blue{background:var(--blue)}.bar-amber{background:var(--amber)}.bar-purple{background:var(--purple)}.toggle-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.toggle-btn{border-radius:var(--radius);border:.5px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;text-align:center;padding:9px 8px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s}.toggle-btn.active{background:var(--green-light);color:var(--green);border-color:var(--green-border)}.sheet-overlay{z-index:200;background:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:430px;max-height:92vh;padding-bottom:calc(24px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;overflow-y:auto}.sheet-handle{background:var(--border2);border-radius:2px;width:36px;height:4px;margin:12px auto 16px}.sheet-title{text-align:center;padding:0 16px 14px;font-size:16px;font-weight:600}.sheet-divider{background:var(--border);height:.5px;margin-bottom:16px}.field{flex-direction:column;gap:5px;display:flex}.field-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text2);font-size:11px;font-weight:600}.field-input{border-radius:var(--radius);border:.5px solid var(--border2);background:var(--surface2);color:var(--text);outline:none;width:100%;padding:11px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.field-input:focus{border-color:var(--green);background:var(--surface)}.field-hint{color:var(--text3);font-size:11px}.btn-primary{background:var(--green);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:100%;padding:12px;font-family:inherit;font-size:15px;font-weight:600;transition:opacity .15s}.btn-primary:active{opacity:.85}.btn-secondary{background:var(--surface2);border:.5px solid var(--border2);border-radius:var(--radius);color:var(--text2);cursor:pointer;padding:11px 16px;font-family:inherit;font-size:14px}.btn-danger{border-radius:var(--radius);background:var(--red-light);width:100%;color:var(--red);cursor:pointer;border:.5px solid #c230304d;justify-content:center;align-items:center;gap:7px;padding:11px;font-family:inherit;font-size:13px;font-weight:600;display:flex}.btn-row{gap:8px;padding:0 16px;display:flex}.supp-grid{grid-template-columns:1fr 1fr;gap:5px;display:grid}.supp-pill{border:.5px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;text-align:center;border-radius:20px;padding:6px 8px;font-family:inherit;font-size:11px;transition:all .15s}.supp-pill.active{background:var(--purple-light);color:var(--purple);border-color:#534ab74d}.supp-pill.thyroid.active{background:var(--amber-light);color:var(--amber);border-color:#ba751766}.tabs-bar{border-bottom:.5px solid var(--border);background:var(--surface);display:flex}.tab-btn{text-align:center;color:var(--text2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-.5px;padding:10px 4px;font-family:inherit;font-size:12px;transition:all .15s}.tab-btn.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}.cal-cell{aspect-ratio:1;color:var(--text2);background:var(--surface2);cursor:pointer;border:.5px solid #0000;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:500;display:flex}.cal-cell.logged{background:var(--green-light);color:var(--green)}.cal-cell.partial{background:var(--amber-light);color:var(--amber)}.cal-cell.today{border:1.5px solid var(--green);color:var(--green)}.cal-cell.selected{border:1.5px solid var(--blue);color:var(--blue);background:var(--blue-light)}.cal-cell.future{color:var(--border2);cursor:default;background:0 0}.cal-cell.empty{cursor:default;background:0 0;border-color:#0000}.dot-row{gap:1.5px;display:flex}.dot{border-radius:50%;width:3.5px;height:3.5px}.dot-sleep{background:var(--blue)}.dot-activity{background:var(--green)}.dot-calories{background:var(--amber)}.dot-supps{background:var(--purple)}.loading-screen{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.spinner{border:2.5px solid var(--green-light);border-top-color:var(--green);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{bottom:calc(var(--nav-height) + 12px);background:var(--text);color:var(--surface);opacity:0;z-index:999;pointer-events:none;white-space:nowrap;border-radius:20px;padding:10px 20px;font-size:13px;font-weight:500;transition:all .25s;position:fixed;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.source-pill{border-radius:8px;padding:1px 6px;font-size:9px;font-weight:600}.source-whoop{color:#8b1f1f;background:#c230301a}.source-apple{background:var(--surface2);color:var(--text2);border:.5px solid var(--border)}@media (prefers-color-scheme:dark){.source-whoop{color:#f09595}}.timeframe-grid{grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.tf-btn{border-radius:var(--radius);border:.5px solid var(--border);background:var(--surface2);color:var(--text2);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;font-family:inherit;font-size:11px;transition:all .15s;display:flex}.tf-btn.active{background:var(--green-light);color:var(--green);border-color:var(--green-border);font-weight:600}.tf-example{color:var(--text3);font-size:9px}.tf-btn.active .tf-example{color:var(--green);opacity:.7}.summary-pill{border-radius:var(--radius);background:var(--green-light);border:.5px solid var(--green-border);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.sp-label{color:var(--text2);font-size:12px}.sp-val{color:var(--green);font-size:14px;font-weight:600;font-family:var(--font-mono)}
