:root{--bg:#f4f5f2;--card:#fff;--text:#1b2623;--text2:#64716b;--accent:#e56d36;--accent2:#b84d39;--ok:#32835d;--danger:#c54848;--border:#dce2dc}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);overscroll-behavior:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{min-height:100%;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom) 16px;background:var(--bg);max-width:480px;color:var(--text);flex-direction:column;margin:0 auto;display:flex}.app[data-theme=dark]{--bg:#101418;--card:#1a2027;--text:#e8eaed;--text2:#9aa3ad;--accent:#ff7a28;--accent2:#c73e3a;--ok:#4caf7d;--danger:#e05b5b;--border:#2a323b}.topbar{letter-spacing:1px;justify-content:space-between;align-items:center;padding:10px 0 16px;font-size:12px;display:flex}.brand{letter-spacing:-1px;font-size:20px;font-weight:800}.status{color:var(--text2)}.iconButton{width:38px;height:38px;color:var(--text2);border-radius:50%;padding:0;font-size:19px}.home{flex-direction:column;gap:14px;display:flex}.packcard{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:22px;padding:22px 0 16px;box-shadow:0 8px 24px #192a220f}.packcard .big{letter-spacing:-3px;font-size:60px;font-weight:800;line-height:1}.packcard .label{color:var(--text2);margin-top:4px;font-size:12px}.stateRefresh{width:auto;color:var(--text2);background:0 0;border:0;padding:8px 12px 0;font-size:12px;font-weight:500}button{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:12px;width:100%;padding:14px;font-size:16px;font-weight:600}button:active{transform:scale(.98)}button.ghost{color:var(--text2);background:0 0;font-weight:500}.primary{background:var(--accent);border-color:var(--accent);color:#fff;letter-spacing:4px;padding:22px;font-size:24px;font-weight:800}h2{margin:6px 0 10px;font-size:16px}.step{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:10px;padding:14px;display:flex}.step.anomaly button{text-align:left}.step .hint{color:var(--text2);margin:0;font-size:13px}.chips{gap:8px;display:flex}.chip{border-radius:12px;flex:1;padding:14px 0;font-size:20px;font-weight:700}.chip.expected{border-color:var(--accent);color:var(--accent)}.chip.selected{background:var(--accent);color:#101418;border-color:var(--accent)}.chipBtn{padding:10px;font-size:14px}input,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;width:100%;padding:12px}input[type=number]{text-align:center;font-size:22px}label{color:var(--text2);flex-direction:column;gap:6px;font-size:13px;display:flex}.confirm{background:var(--accent);border-color:var(--accent);color:#101418;font-weight:800}.secondary{gap:8px;display:flex}.secondary button{letter-spacing:0;background:0 0;padding:12px 6px;font-size:12px}.analytics{gap:14px;overflow:hidden}.analyticsHead{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.analyticsHead h2{margin:0 0 3px}.rangeSwitch{border:1px solid var(--border);border-radius:10px;flex:none;display:flex;overflow:hidden}.rangeSwitch button{width:auto;color:var(--text2);background:0 0;border:0;border-radius:0;padding:7px 9px;font-size:12px}.rangeSwitch button+button{border-left:1px solid var(--border)}.rangeSwitch button.selected{background:var(--accent);color:#101418}.sameTime{align-items:stretch;gap:12px;display:flex}.sameTimeCopy{flex-direction:column;flex:1;gap:5px;font-size:13px;line-height:1.3;display:flex}.comparison{font-size:12px;font-weight:700}.comparison.above{color:var(--accent)}.comparison.below{color:var(--ok)}.comparison.aligned{color:var(--text2)}.comparisonBars{border-left:1px solid var(--border);justify-content:space-around;align-items:flex-end;gap:12px;min-width:108px;height:112px;padding:0 3px;display:flex}.comparisonColumn{width:36px;height:100%;color:var(--text2);flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;font-size:10px;display:flex}.comparisonValue{color:var(--text);font-size:12px;font-weight:700}.comparisonBar{border-radius:6px 6px 2px 2px;width:24px;min-height:2px}.comparisonBar.today{background:var(--accent)}.comparisonBar.average{background:#657587}.dailyChart{scrollbar-width:thin;align-items:flex-end;gap:4px;height:154px;padding:5px 0 0;display:flex;overflow-x:auto}.dailyBar{min-width:35px;height:100%;color:var(--text2);background:0 0;border:0;border-radius:0;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;padding:0;font-size:10px;display:flex}.dailyBar .barValue{color:var(--text);min-height:13px;font-size:11px}.dailyBar .barFill{background:#566574;border-radius:6px 6px 2px 2px;width:min(24px,72%);transition:height .16s;display:block}.dailyBar.partial .barFill{background:var(--accent)}.dailyBar.unverified .barFill{background:repeating-linear-gradient(135deg,#566574,#566574 4px,#394552 4px 8px)}.dailyBar.selected .barFill{outline:2px solid var(--text);outline-offset:2px}.dailyBar .barLabel{text-overflow:ellipsis;white-space:nowrap;width:100%;overflow:hidden}.chartDetail{color:var(--text2);margin:-4px 0 0;font-size:12px}.history ul{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.history h2{margin:12px 0}.history li{background:var(--card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.history li>span:first-child{flex:1}.history .type{color:var(--accent);font-size:11px;font-weight:700;display:block}.history .when{color:var(--text2);font-size:11px}.history .value{margin-top:2px}.history .sync{border:1px solid var(--border);border-radius:99px;padding:3px 8px;font-size:10px}.sync.synced{color:var(--ok);border-color:var(--ok)}.sync.pending{color:var(--accent);border-color:var(--accent)}.sync.error,.sync.syncing{color:var(--danger);border-color:var(--danger)}.history .actions{gap:6px;display:flex}button.mini{width:auto;padding:6px 10px;font-size:12px}button.mini.danger{color:var(--danger);border-color:var(--danger)}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));background:var(--card);border:1px solid var(--ok);z-index:10;white-space:nowrap;border-radius:99px;padding:10px 20px;font-size:13px;position:fixed;transform:translate(-50%)}.foot{margin-top:auto;padding-top:18px}.packsize{flex-direction:row;align-items:center;gap:10px}.packsize input{width:90px;padding:8px;font-size:15px}.syncbar{gap:8px}.syncline{color:var(--text2);align-items:center;gap:8px;font-size:13px;display:flex}.syncdot{border-radius:99px;width:8px;height:8px;display:inline-block}.syncdot.ok{background:var(--ok)}.syncdot.warn{background:var(--accent)}.syncdot.off{background:var(--border)}.syncmsg{font-size:11px}.freshness{margin-top:2px!important}.freshness.fresh{color:var(--ok)}.freshness.cached,.freshness.refreshing{color:var(--text2)}.freshness.unavailable{color:var(--danger)}.curveDetail{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:12px;display:flex}.curveTitle{justify-content:space-between;align-items:baseline;font-size:13px;display:flex}.curveTitle span{color:var(--text2)}.lineChart{width:100%;height:auto;overflow:visible}.lineChart text{fill:var(--text2);font-size:10px}.chartGrid{stroke:var(--border);stroke-width:1px}.todayLine,.averageLine{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.todayLine{stroke:var(--accent)}.reconstructedLine{stroke-dasharray:7 4}.averageLine{stroke:#81918a;stroke-width:2px}.curveLegend{color:var(--text2);gap:14px;font-size:11px;display:flex}.curveLegend span{align-items:center;gap:5px;display:inline-flex}.curveLegend i{border-radius:4px;width:16px;height:3px;display:inline-block}.legendToday{background:var(--accent)}.legendAverage{background:#81918a}.sheetBackdrop{z-index:20;background:#141d196b;align-items:flex-end;display:flex;position:fixed;inset:0}.bottomSheet{background:var(--card);width:min(100%,480px);max-height:min(86vh,720px);padding:8px 16px calc(20px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;margin:0 auto;overflow-y:auto;box-shadow:0 -8px 32px #0003}.sheetHandle{background:var(--border);border-radius:99px;width:36px;height:4px;margin:3px auto 12px}.sheetTop{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.sheetTop h2{margin:0}.sheetClose{width:34px;height:34px;color:var(--text2);border-radius:50%;padding:0;font-size:24px;font-weight:400}.bottomSheet .step{background:0 0;border:0;padding:4px 0}.bottomSheet .step>h2{display:none}.settingsPanel{flex-direction:column;gap:16px;padding:8px 0;display:flex}.settingLabel{color:var(--text2);margin:0 0 7px;font-size:12px}.themeSwitch{gap:6px;display:flex}.themeSwitch button{background:0 0;flex:1;padding:10px 6px;font-size:13px}.themeSwitch button.selected{background:var(--accent);border-color:var(--accent);color:#fff}.settingRow{color:var(--text);justify-content:space-between;align-items:center;gap:12px;display:flex}.settingRow p{color:var(--text2);margin:3px 0 0;font-size:12px}.settingRow input{width:76px;padding:9px;font-size:16px!important}.compactButton{width:auto;padding:9px 14px;font-size:13px}.secondaryButton{background:0 0;padding:12px;font-size:14px}@media (width<=360px){.sameTime{flex-direction:column}.comparisonBars{border-left:0;border-top:1px solid var(--border);min-width:0;height:104px;padding-top:8px}.dailyBar{min-width:31px}}
