:root{color-scheme:dark;--bg: #0d0d0d;--surface: #1a1a19;--surface-2: #242423;--ink: #ffffff;--ink-2: #c3c2b7;--muted: #898781;--hairline: #2c2c2a;--accent: #3987e5;--accent-dim: rgba(57, 135, 229, .14);--pr: #eda100;--danger: #e66767;--good: #199e70;--radius: 14px;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}#root{height:100%}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select{font:inherit}.app{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.view{flex:1;padding:0 16px 24px}.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:calc(10px + env(safe-area-inset-top)) 16px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px}.topbar h1{font-size:22px;font-weight:700;letter-spacing:-.02em}.topbar .sub{font-size:13px;color:var(--muted);font-weight:400}.iconbtn{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:var(--ink-2);font-size:20px}.iconbtn:active{background:var(--surface-2)}.daynav{display:flex;align-items:center;gap:4px;flex:1;justify-content:space-between}.daynav .datebox{text-align:center}.daynav .datebox .label{font-size:20px;font-weight:700;letter-spacing:-.02em}.daynav .datebox .date{font-size:13px;color:var(--muted)}.card{background:var(--surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);margin-top:12px;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 10px}.card-head .name{font-size:16px;font-weight:650;letter-spacing:-.01em}.card-head .meta{font-size:12.5px;color:var(--muted);margin-top:1px}.card-head .target{font-size:12.5px;color:var(--accent);background:var(--accent-dim);padding:3px 9px;border-radius:99px;white-space:nowrap;font-weight:600}.setrow{display:flex;align-items:center;gap:12px;padding:9px 16px;border-top:1px solid var(--hairline);width:100%;text-align:left}.setrow:active{background:var(--surface-2)}.setrow .idx{width:20px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.setrow .val{flex:1;font-size:16px;font-variant-numeric:tabular-nums}.setrow .val b{font-weight:650}.setrow .val span{color:var(--ink-2);font-size:14px}.setrow .pr{color:var(--pr);font-size:14px}.cardx{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:var(--muted);font-size:13px;flex-shrink:0}.cardx:active{background:var(--surface-2);color:var(--danger)}.setrow.ghost{gap:8px}.setrow.ghost:active{background:none}.setrow.ghost .idx{opacity:.6}.ghostval{flex:1;text-align:left;font-size:16px;font-variant-numeric:tabular-nums;color:var(--muted);padding:2px 0}.ghostval:active{color:var(--ink-2)}.ghostcheck{width:38px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--accent-dim);color:var(--accent);font-size:16px;font-weight:700}.ghostcheck:active{background:var(--accent);color:#fff}.addset{display:block;width:100%;padding:11px 16px;border-top:1px solid var(--hairline);color:var(--accent);font-weight:600;font-size:14.5px;text-align:center}.addset:active{background:var(--surface-2)}.empty{text-align:center;color:var(--muted);padding:48px 24px;font-size:15px}.empty .big{font-size:40px;margin-bottom:12px}.hintline{font-size:12.5px;color:var(--muted);padding:8px 16px 10px;border-top:1px solid var(--hairline)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 18px;border-radius:12px;font-weight:650;font-size:15px;background:var(--surface-2);color:var(--ink);width:100%}.btn:active{opacity:.85}.btn.primary{background:var(--accent);color:#fff}.btn.ghost{background:none;color:var(--accent)}.btn.danger{background:none;color:var(--danger)}.btn.small{padding:8px 14px;font-size:13.5px;width:auto;border-radius:10px}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--hairline);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom)}.tabbar-inner{display:flex;width:100%;max-width:560px}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 0 7px;color:var(--muted);font-size:11px;font-weight:600}.tab .icon{font-size:21px;line-height:1}.tab.active{color:var(--accent)}.sheet-backdrop{position:fixed;inset:0;background:#0000008c;z-index:30;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--surface);border-radius:20px 20px 0 0;width:100%;max-width:560px;max-height:88dvh;overflow-y:auto;padding:8px 20px calc(20px + env(safe-area-inset-bottom));animation:slideup .18s ease-out}@keyframes slideup{0%{transform:translateY(30px);opacity:.6}to{transform:none;opacity:1}}.sheet .grip{width:36px;height:4px;border-radius:2px;background:var(--hairline);margin:6px auto 14px}.sheet h2{font-size:18px;font-weight:700;letter-spacing:-.01em}.sheet .subtitle{font-size:13px;color:var(--muted);margin-top:2px}.stepper-label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:18px 0 8px}.stepper{display:flex;align-items:stretch;gap:10px}.stepper .stepbtn{width:64px;border-radius:12px;background:var(--surface-2);font-size:24px;font-weight:500;color:var(--ink-2);flex-shrink:0}.stepper .stepbtn:active{background:var(--hairline)}.stepper.compact{gap:6px}.stepper.compact .stepbtn{width:42px;font-size:19px}.stepper.compact input{font-size:22px}.stepper input{flex:1;min-width:0;text-align:center;font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;background:none;border:none;color:var(--ink);outline:none;padding:10px 0}.sheet-actions{display:flex;gap:10px;margin-top:22px}.sheet-actions .btn{flex:1}.searchbox{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:10px 14px;margin-top:4px}.searchbox input{flex:1;background:none;border:none;outline:none;color:var(--ink);font-size:15px}.searchbox input::placeholder{color:var(--muted)}.chips{display:flex;gap:8px;overflow-x:auto;padding:12px 0 4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{padding:6px 13px;border-radius:99px;background:var(--surface);border:1px solid rgba(255,255,255,.07);color:var(--ink-2);font-size:13.5px;font-weight:600;white-space:nowrap}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.exrow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 16px;border-top:1px solid var(--hairline)}.exrow:first-child{border-top:none}.exrow:active{background:var(--surface-2)}.exrow .grow{flex:1;min-width:0}.exrow .title{font-size:15.5px;font-weight:600;letter-spacing:-.01em}.exrow .detail{font-size:12.5px;color:var(--muted);margin-top:1px}.exrow .right{text-align:right;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}.exrow .right .sub{font-size:11.5px;color:var(--muted)}.exrow .chev{color:var(--muted);font-size:17px}.reorder-hint{font-size:13px;color:var(--muted);text-align:center;margin:14px 4px 2px}.draghandle{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:17px;line-height:1;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.exrow.dragging{background:var(--surface-2)}.exrow.dragging .draghandle{background:var(--accent-dim);color:var(--accent);cursor:grabbing}.seg{display:flex;background:var(--surface);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:3px;margin-top:14px}.seg button{flex:1;padding:8px 0;border-radius:9px;font-size:13.5px;font-weight:600;color:var(--muted)}.seg button.active{background:var(--surface-2);color:var(--ink)}.weekstrip{display:flex;gap:6px;margin-top:12px}.weekstrip button{flex:1;padding:10px 0;border-radius:12px;background:var(--surface);border:1px solid rgba(255,255,255,.06);color:var(--muted);font-size:13px;font-weight:700;position:relative}.weekstrip button.active{background:var(--accent);border-color:var(--accent);color:#fff}.weekstrip button .dot{position:absolute;bottom:5px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:2px;background:var(--accent)}.weekstrip button.active .dot{background:#fff}.rec-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.stat-tile{background:var(--surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:14px 16px}.stat-tile .k{font-size:12px;color:var(--muted);font-weight:600}.stat-tile .v{font-size:24px;font-weight:700;letter-spacing:-.02em;margin-top:2px}.stat-tile .v small{font-size:14px;font-weight:600;color:var(--ink-2)}.stat-tile .d{font-size:11.5px;color:var(--muted);margin-top:1px}.recrow{display:flex;align-items:baseline;gap:12px;padding:11px 16px;border-top:1px solid var(--hairline)}.recrow:first-child{border-top:none}.recrow .rm{width:52px;font-size:14px;font-weight:700;color:var(--ink-2)}.recrow .w{flex:1;font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}.recrow .w small{font-size:13px;color:var(--ink-2);font-weight:500}.recrow .w.est{color:var(--muted);font-weight:500}.recrow .date{font-size:12.5px;color:var(--muted)}.counter-card{padding:9px 12px;margin-bottom:6px}.counter-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.counter-title{text-align:left;font-size:13.5px;font-weight:650;letter-spacing:-.01em}.counter-head .minibtn{width:24px;height:24px;font-size:12px;flex-shrink:0}.counter-stats{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:1px 0 6px}.counter-stats .today{font-size:21px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;flex-shrink:0}.counter-stats .today span{font-size:11px;color:var(--muted);font-weight:600}.counter-stats .range{font-size:11.5px;color:var(--muted);text-align:right}.counter-stats .range b{color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}.counter-total .counter-stats{margin-bottom:0}.counter-btns{display:flex;gap:6px}.counter-btns .btn.small{flex:1;padding:6px 0}.counter-btns .btn.small:disabled{opacity:.35}.counter-sub{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--hairline)}.counter-sub .label{flex:1;min-width:0;text-align:left;font-size:13px;font-weight:600}.counter-sub .val{width:24px;text-align:center;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.counter-sub .btns{display:flex;gap:6px;flex-shrink:0}.counter-sub .btns button{width:28px;height:26px;border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-size:15px;font-weight:650;display:grid;place-items:center}.counter-sub .btns button:active{background:var(--hairline)}.counter-sub .btns button:disabled{opacity:.35}.chartbox{margin-top:14px;padding:14px 8px 6px 0}.chart-tip{position:absolute;pointer-events:none;background:var(--surface-2);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:7px 11px;font-size:12.5px;white-space:nowrap;transform:translate(-50%,-110%);z-index:5;box-shadow:0 4px 16px #0006}.chart-tip b{font-variant-numeric:tabular-nums}.chart-tip .tipdate{color:var(--muted);font-size:11.5px}.section-title{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:22px 0 2px}.row-actions{display:flex;gap:6px}.minibtn{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--surface-2);color:var(--ink-2);font-size:15px}.minibtn:active{background:var(--hairline)}.minibtn.danger{color:var(--danger)}.field{margin-top:14px}.field label{display:block;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.field input,.field select{width:100%;background:var(--surface-2);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:12px 14px;color:var(--ink);outline:none}.field input:focus,.field select:focus{border-color:var(--accent)}.inline-fields{display:flex;gap:10px}.inline-fields .field{flex:1}.fab{position:fixed;right:max(16px,calc(50% - 264px));bottom:calc(76px + env(safe-area-inset-bottom));width:54px;height:54px;border-radius:18px;background:var(--accent);color:#fff;font-size:26px;display:grid;place-items:center;box-shadow:0 6px 20px #3987e559;z-index:15}.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--surface-2);border:1px solid rgba(255,255,255,.1);color:var(--ink);padding:10px 18px;border-radius:99px;font-size:14px;font-weight:600;z-index:50;box-shadow:0 6px 24px #00000080;animation:slideup .18s ease-out;white-space:nowrap}.toast .pr{color:var(--pr)}.loading{display:grid;place-items:center;height:100dvh;color:var(--muted);gap:10px}.warmup-block{margin-top:12px;border:1px solid rgba(237,161,0,.28);background:#eda1000d;border-radius:var(--radius);overflow:hidden}.warmup-head{width:100%;display:flex;align-items:center;gap:10px;padding:14px 16px;font-size:14.5px;font-weight:650;color:var(--pr);letter-spacing:-.01em}.warmup-head .count{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.warmup-head .chev{color:var(--muted);font-size:17px;transition:transform .15s ease}.warmup-head .chev.open{transform:rotate(90deg)}.warmup-body{border-top:1px solid rgba(237,161,0,.18)}.warmup-body .card{margin:8px;border-color:#eda10024}.warmup-body .exrow:first-child{border-top:none}.checkrow{display:flex;align-items:center;gap:10px;margin-top:16px;font-size:14.5px;font-weight:600;cursor:pointer}.checkrow input{width:19px;height:19px;accent-color:var(--pr)}
