:root{--bg:#f2f4f6;--card:#fff;--card-2:#f7f8fa;--ink:#16181d;--ink-soft:#6e7684;--ink-faint:#a7aeb8;--line:#edeff3;--line-strong:#e1e5ea;--accent:#ff7a59;--accent-ink:#e4562f;--accent-soft:#fff0ea;--mint:#12bfa0;--mint-soft:#e2f8f2;--blue:#4c8dff;--blue-soft:#ebf2ff;--violet:#8a7bf0;--violet-soft:#f0edfe;--amber:#f5a623;--amber-soft:#fff4e2;--rose:#ff6b81;--rose-soft:#ffecef;--shadow:0 2px 8px #1418230d;--shadow-lift:0 8px 26px #14182324;--r-lg:22px;--r-md:16px;--r-sm:12px;--font:"Gothic A1","Pretendard",-apple-system,BlinkMacSystemFont,"Malgun Gothic","Apple SD Gothic Neo",sans-serif;--font-round:"Jua","Gothic A1",var(--font)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101216;--card:#1a1d23;--card-2:#22262e;--ink:#f1f3f6;--ink-soft:#9ba3af;--ink-faint:#6c7480;--line:#272c34;--line-strong:#333941;--accent:#ff8e70;--accent-ink:#ffa98f;--accent-soft:#382018;--mint:#27cfae;--mint-soft:#123029;--blue:#6ea3ff;--blue-soft:#182336;--violet:#a596ff;--violet-soft:#231f38;--amber:#ffb84d;--amber-soft:#332714;--rose:#ff8598;--rose-soft:#3a1f26;--shadow:0 2px 10px #00000059;--shadow-lift:0 10px 30px #00000080}}:root[data-theme=dark]{--bg:#101216;--card:#1a1d23;--card-2:#22262e;--ink:#f1f3f6;--ink-soft:#9ba3af;--ink-faint:#6c7480;--line:#272c34;--line-strong:#333941;--accent:#ff8e70;--accent-ink:#ffa98f;--accent-soft:#382018;--mint:#27cfae;--mint-soft:#123029;--blue:#6ea3ff;--blue-soft:#182336;--violet:#a596ff;--violet-soft:#231f38;--amber:#ffb84d;--amber-soft:#332714;--rose:#ff8598;--rose-soft:#3a1f26;--shadow:0 2px 10px #00000059;--shadow-lift:0 10px 30px #00000080}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);letter-spacing:-.01em;font-size:15px;line-height:1.55}button,input,textarea,select{color:inherit;font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}[hidden]{display:none!important}.tnum{font-variant-numeric:tabular-nums}.app{background:var(--bg);max-width:460px;min-height:100vh;padding-bottom:calc(86px + env(safe-area-inset-bottom));margin:0 auto;position:relative}.screen{padding:0 18px 28px}.screen[hidden]{display:none!important}.sec-title{font-family:var(--font-round);justify-content:space-between;align-items:center;gap:8px;margin:26px 4px 12px;font-size:17px;display:flex}.sec-title .sub{font-family:var(--font);color:var(--ink-faint);font-size:12.5px;font-weight:500}.card{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:18px}.card+.card{margin-top:12px}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:10px;display:flex}.muted{color:var(--ink-soft);font-size:13px}.faint{color:var(--ink-faint);font-size:12.5px}.topbar{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 18px 4px;display:flex}.greet{font-family:var(--font-round);font-size:22px;line-height:1.35}.topbar .date{color:var(--ink-faint);margin-top:2px;font-size:13px}.icon-btn{background:var(--card);width:44px;height:44px;color:var(--ink-soft);cursor:pointer;box-shadow:var(--shadow);border:none;border-radius:14px;flex-shrink:0;place-items:center;transition:transform .12s;display:grid}.icon-btn:active{transform:scale(.94)}.pill{border-radius:var(--r-md);cursor:pointer;border:none;width:100%;height:54px;font-size:16px;font-weight:700;transition:transform .12s,background .15s}.pill:active{transform:scale(.985)}.pill.primary{background:var(--accent);color:#fff}.pill.ghost{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.pill.soft{background:var(--card-2);color:var(--ink-soft);height:46px;font-size:14.5px;font-weight:600}.mini-btn{background:var(--card-2);color:var(--ink-soft);cursor:pointer;border:none;border-radius:10px;padding:7px 12px;font-size:12.5px;font-weight:600}.mini-btn:active{transform:scale(.96)}.mini-btn.on{background:var(--accent-soft);color:var(--accent-ink)}.tabbar{background:var(--card);border-top:1px solid var(--line);width:100%;max-width:460px;padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:40;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar button{cursor:pointer;color:var(--ink-faint);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:52px;padding:6px 0;font-size:11px;font-weight:600;display:flex}.tabbar button svg{stroke-width:1.8px;width:23px;height:23px}.tabbar button.active{color:var(--accent)}.streak-card{background:linear-gradient(135deg,var(--accent) 0%,#ff9e6b 100%);color:#fff;border-radius:var(--r-lg);align-items:center;gap:14px;padding:16px 18px;display:flex;box-shadow:0 6px 18px #ff7a5947}.streak-card .fire{font-size:30px;line-height:1}.streak-num{font-family:var(--font-round);font-size:19px}.streak-sub{opacity:.92;margin-top:1px;font-size:12.5px}.weight-hero .label{color:var(--ink-soft);font-size:13px;font-weight:600}.big-num{font-family:var(--font-round);font-variant-numeric:tabular-nums;margin:6px 0 2px;font-size:44px;line-height:1.1}.big-num span{color:var(--ink-soft);margin-left:3px;font-size:19px}.delta-chip{background:var(--mint-soft);color:var(--mint);border-radius:999px;padding:5px 10px;font-size:12.5px;font-weight:700}.delta-chip.up{background:var(--rose-soft);color:var(--rose)}.delta-chip.flat{background:var(--card-2);color:var(--ink-faint)}.bar-track{background:var(--card-2);border-radius:999px;height:10px;margin-top:14px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .5s cubic-bezier(.2,.8,.3,1)}.goal-text{color:var(--ink-soft);margin-top:8px;font-size:12.5px}.goal-text b{color:var(--ink)}.quick-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.quick{background:var(--card);border-radius:var(--r-md);box-shadow:var(--shadow);flex-direction:column;gap:6px;padding:14px;display:flex}.quick .q-top{color:var(--ink-soft);align-items:center;gap:7px;font-size:12.5px;font-weight:600;display:flex}.q-dot{border-radius:8px;place-items:center;width:22px;height:22px;font-size:12px;display:grid}.quick .q-val{font-family:var(--font-round);font-variant-numeric:tabular-nums;font-size:19px}.quick .q-val small{color:var(--ink-faint);font-size:12.5px;font-family:var(--font);font-weight:600}.memo-line{color:var(--ink-soft);word-break:break-word;white-space:pre-wrap;font-size:14px;line-height:1.6}.field-label{align-items:center;gap:6px;margin-bottom:10px;font-size:13.5px;font-weight:700;display:flex}.field-label .hint{color:var(--ink-faint);font-size:12px;font-weight:500}.stepper{align-items:center;gap:12px;display:flex}.stepper button{background:var(--card-2);width:46px;height:46px;color:var(--ink);cursor:pointer;border:none;border-radius:14px;flex-shrink:0;font-size:20px;font-weight:700}.stepper button:active{transform:scale(.94)}.stepper .val{font-family:var(--font-round);font-variant-numeric:tabular-nums;flex:1;justify-content:center;align-items:baseline;gap:4px;font-size:30px;display:flex}.stepper .val input{text-align:right;width:112px;min-width:0;font-family:var(--font-round);font-variant-numeric:tabular-nums;-moz-appearance:textfield;background:0 0;border:none;font-size:30px}.stepper .val input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper .val input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper .val input:focus{outline:none}.stepper .val span{color:var(--ink-soft);font-size:15px;font-family:var(--font);font-weight:600}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--line-strong);background:var(--card);color:var(--ink-soft);cursor:pointer;border-radius:999px;min-height:42px;padding:9px 15px;font-size:14px;font-weight:600;transition:all .14s}.chip:active{transform:scale(.96)}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.cups{gap:7px;display:flex}.cup{background:var(--card-2);cursor:pointer;filter:grayscale();opacity:.4;border:none;border-radius:12px;flex:1;place-items:center;height:52px;font-size:19px;transition:all .16s;display:grid}.cup.filled{background:var(--blue-soft);filter:none;opacity:1}.cup:active{transform:scale(.93)}.moods{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.mood{border:1.5px solid var(--line-strong);background:var(--card);border-radius:var(--r-sm);cursor:pointer;color:var(--ink-faint);flex-direction:column;align-items:center;gap:4px;padding:11px 4px;font-size:11.5px;font-weight:600;transition:all .14s;display:flex}.mood em{font-size:23px;font-style:normal;line-height:1}.mood.on{background:var(--amber-soft);border-color:var(--amber);color:var(--ink)}.mood:active{transform:scale(.96)}.check-list{flex-direction:column;gap:2px;display:flex}.check-item{cursor:pointer;color:var(--ink-soft);text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:15px 2px;font-size:14.5px;font-weight:600;display:flex}.check-item+.check-item{border-top:1px solid var(--line)}.box{border:2px solid var(--line-strong);background:var(--card);color:#0000;border-radius:9px;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:14px;font-weight:800;transition:all .14s;display:grid}.check-item.on .box{background:var(--mint);border-color:var(--mint);color:#fff}.check-item.on{color:var(--ink)}.mission-done{border-radius:var(--r-md);background:var(--mint-soft);color:var(--mint);font-family:var(--font-round);text-align:center;margin-top:12px;padding:14px;font-size:15px}.memo-input{border:1.5px solid var(--line-strong);border-radius:var(--r-md);background:var(--card-2);resize:none;width:100%;padding:13px 14px;font-size:16px;line-height:1.6}.memo-input:focus{border-color:var(--accent);background:var(--card);outline:none}.save-note{text-align:center;color:var(--ink-faint);margin-top:10px;font-size:12px}.cal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.cal-title{font-family:var(--font-round);font-size:18px}.cal-nav{gap:6px;display:flex}.cal-nav button{background:var(--card-2);width:34px;height:34px;color:var(--ink-soft);cursor:pointer;border:none;border-radius:11px;font-size:15px;font-weight:700}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-dow{text-align:center;color:var(--ink-faint);padding-bottom:6px;font-size:11.5px;font-weight:700}.cal-dow.sun{color:var(--rose)}.legend{color:var(--ink-faint);justify-content:center;gap:14px;margin-top:14px;font-size:11.5px;display:flex}.legend i{vertical-align:middle;border-radius:999px;width:7px;height:7px;margin-right:5px;display:inline-block}.search-input{border:1.5px solid var(--line-strong);border-radius:var(--r-md);background:var(--card-2);width:100%;height:48px;padding:0 14px;font-size:16px}.search-input:focus{border-color:var(--accent);background:var(--card);outline:none}.diary-item{border-top:1px solid var(--line);padding:13px 0}.diary-item:first-child{border-top:none}.diary-date{color:var(--ink-faint);margin-bottom:3px;font-size:12px;font-weight:600}.diary-text{word-break:break-word;font-size:14px;line-height:1.6}.diary-text mark{background:var(--accent-soft);color:var(--accent-ink);border-radius:4px;padding:0 2px}.backdrop{z-index:60;background:#0a0c106b;justify-content:center;align-items:flex-end;animation:.18s fade;display:flex;position:fixed;inset:0}.backdrop.center{align-items:center;padding:20px}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{background:var(--card);width:100%;max-width:460px;padding:22px 20px calc(26px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;max-height:82vh;animation:.24s cubic-bezier(.2,.8,.3,1) up;overflow-y:auto}.sheet.center{border-radius:24px;max-width:400px;padding:22px;animation:.2s pop}@keyframes up{0%{transform:translateY(24px)}to{transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.sheet-grip{background:var(--line-strong);border-radius:999px;width:38px;height:4px;margin:0 auto 16px}.sheet h3{font-family:var(--font-round);margin-bottom:14px;font-size:18px}.detail-row{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:11px 0;font-size:14px;display:flex}.detail-row:first-of-type{border-top:none}.detail-row .k{color:var(--ink-soft);font-weight:600}.detail-row .v{text-align:right;word-break:break-word;font-weight:600}.form-row{margin-bottom:14px}.form-row label{color:var(--ink-soft);margin-bottom:6px;font-size:12.5px;font-weight:700;display:block}.form-row input{border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card-2);font-variant-numeric:tabular-nums;width:100%;height:48px;padding:0 13px;font-size:16px}.form-row input:focus{border-color:var(--accent);background:var(--card);outline:none}.toast{left:50%;bottom:calc(100px + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lift);opacity:0;z-index:80;text-align:center;border-radius:14px;max-width:88vw;padding:13px 20px;font-size:14px;font-weight:700;transition:opacity .25s,transform .25s;position:fixed;transform:translate(-50%)translateY(14px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.ring-wrap{align-items:center;gap:18px;display:flex}.ring{flex-shrink:0;width:112px;height:112px}.ring-label{font-family:var(--font-round);fill:var(--ink);font-size:21px}.ring-sub{fill:var(--ink-faint);font-size:10px;font-family:var(--font);font-weight:600}.goal-facts{flex-direction:column;flex:1;gap:9px;display:flex}.fact{justify-content:space-between;font-size:13.5px;display:flex}.fact .k{color:var(--ink-soft);font-weight:600}.fact .v{font-variant-numeric:tabular-nums;font-weight:700}.chart-box{width:100%;overflow-x:auto}.chart-legend-note{color:var(--ink-faint);text-align:center;margin-top:8px;font-size:12px}.chart-tip{pointer-events:none;background:var(--ink);color:var(--bg);white-space:nowrap;opacity:0;z-index:5;font-variant-numeric:tabular-nums;border-radius:10px;padding:7px 10px;font-size:12px;font-weight:700;transition:opacity .12s;position:absolute;transform:translate(-50%,-130%)}.chart-tip.show{opacity:1}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat-tile{background:var(--card-2);border-radius:var(--r-md);padding:14px}.stat-tile .k{color:var(--ink-soft);margin-bottom:5px;font-size:12px;font-weight:600}.stat-tile .v{font-family:var(--font-round);font-variant-numeric:tabular-nums;font-size:21px}.stat-tile .v small{color:var(--ink-faint);font-size:12.5px;font-family:var(--font);margin-left:2px;font-weight:600}.badges{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.badge{background:var(--card-2);border-radius:var(--r-md);text-align:center;flex-direction:column;align-items:center;gap:5px;padding:14px 8px;display:flex}.badge em{filter:grayscale();opacity:.35;font-size:27px;font-style:normal;line-height:1}.badge .bn{color:var(--ink-faint);font-size:11.5px;font-weight:700}.badge .bp{color:var(--ink-faint);font-size:10.5px}.badge.on{background:var(--amber-soft)}.badge.on em{filter:none;opacity:1}.badge.on .bn{color:var(--ink)}.badge.on .bp{color:var(--amber)}.guide-box{background:var(--violet-soft);border-radius:var(--r-md);color:var(--ink-soft);padding:14px;font-size:13px;line-height:1.65}.photo-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.photo-item{border-radius:var(--r-md);background:var(--card-2);aspect-ratio:3/4;cursor:pointer;border:none;padding:0;position:relative;overflow:hidden}.photo-item img{object-fit:cover;width:100%;height:100%;display:block}.photo-tag{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0c109e;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;position:absolute;top:8px;left:8px}.photo-item.picked{outline:3px solid var(--accent)}.photo-pick{width:24px;height:24px;color:var(--ink);background:#ffffffe6;border-radius:999px;place-items:center;font-size:12px;font-weight:800;display:grid;position:absolute;top:8px;right:8px}.photo-item.picked .photo-pick{background:var(--accent);color:#fff}.compare{grid-template-columns:1fr 1fr;gap:10px;display:grid}.compare figure{margin:0}.compare img{border-radius:var(--r-md);aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.compare figcaption{text-align:center;color:var(--ink-soft);margin-top:7px;font-size:12.5px;font-weight:700}.empty{text-align:center;color:var(--ink-faint);padding:26px 10px;font-size:13.5px;line-height:1.7}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=360px){.quick-grid,.stat-grid{grid-template-columns:1fr}.big-num{font-size:38px}}.opt-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:12px 0;display:flex}.opt-row:first-of-type{border-top:none}.opt-row .ol{color:var(--ink-soft);font-size:14px;font-weight:600}.seg{background:var(--card-2);border-radius:12px;flex-shrink:0;gap:3px;padding:3px;display:flex}.seg button{min-height:40px;color:var(--ink-faint);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9px;padding:9px 13px;font-size:13px;font-weight:700}.seg button.on{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.seg button.on[data-v=success]{color:var(--mint)}.seg button.on[data-v=rest]{color:var(--blue)}.seg button.on[data-v=fail],.seg button.on[data-yes=no]{color:var(--rose)}.seg button.on[data-yes=yes],#seg-delivery button.on[data-yes=no]{color:var(--mint)}#seg-delivery button.on[data-yes=yes]{color:var(--rose)}.num-row{align-items:center;gap:10px;display:flex}.num-row input{border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card-2);text-align:right;font-variant-numeric:tabular-nums;-moz-appearance:textfield;flex:1;min-width:0;height:46px;padding:0 13px;font-size:17px;font-weight:700}.num-row input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.num-row input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num-row input:focus{border-color:var(--accent);background:var(--card);outline:none}.num-row .unit{color:var(--ink-soft);flex-shrink:0;font-size:14px;font-weight:600}.kcal-hint{color:var(--ink-faint);text-align:right;margin-top:8px;font-size:12.5px}.kcal-hint b{color:var(--ink-soft)}.verdict-box{border-radius:var(--r-md);text-align:center;font-family:var(--font-round);margin-top:16px;padding:15px;font-size:17px}.verdict-box.success{background:var(--mint-soft);color:var(--mint)}.verdict-box.rest{background:var(--blue-soft);color:var(--blue)}.verdict-box.fail{background:var(--rose-soft);color:var(--rose)}.verdict-box.pending{background:var(--card-2);color:var(--ink-faint)}.verdict-why{font-family:var(--font);opacity:.95;margin-top:6px;font-size:12.5px;font-weight:500;line-height:1.55}.cal-cell{aspect-ratio:1;cursor:pointer;color:var(--ink-soft);font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;font-size:13px;font-weight:700;transition:transform .1s;display:flex}.cal-cell .vmark{font-size:13px;line-height:1.1}.cal-cell.v-success{background:var(--mint-soft);color:var(--mint)}.cal-cell.v-rest{background:var(--blue-soft);color:var(--blue)}.cal-cell.v-fail{background:var(--rose-soft);color:var(--rose)}.cal-cell.v-pending{background:var(--line);color:var(--ink-faint)}.cal-cell.v-pending .vmark{font-size:15px;line-height:.9}.cal-cell.today{box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent-ink)}.cal-cell:disabled{cursor:default;opacity:.3;box-shadow:none;background:0 0}.month-summary{gap:8px;display:flex}.ms-tile{background:var(--card-2);border-radius:var(--r-md);text-align:center;flex:1;padding:12px 8px}.ms-tile .msv{font-family:var(--font-round);font-size:20px;line-height:1.2}.ms-tile .msk{color:var(--ink-soft);margin-top:2px;font-size:11.5px;font-weight:600}.ms-tile.s .msv{color:var(--mint)}.ms-tile.r .msv{color:var(--blue)}.ms-tile.f .msv{color:var(--rose)}.rate-row{gap:8px;margin-top:8px;display:flex}.rate-chip{background:var(--card-2);border-radius:var(--r-sm);color:var(--ink-soft);flex:1;justify-content:space-between;align-items:center;gap:6px;padding:11px 10px;font-size:12.5px;font-weight:600;display:flex}.rate-chip b{font-family:var(--font-round);color:var(--ink);font-size:15px;font-weight:400}.dow-chips{gap:5px;display:flex}.dow-chips button{border:1.5px solid var(--line-strong);background:var(--card);height:38px;color:var(--ink-faint);cursor:pointer;border-radius:10px;flex:1;padding:0;font-size:13px;font-weight:700}.dow-chips button.on{background:var(--blue-soft);border-color:var(--blue);color:var(--blue)}.verdict-badge{border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:700;display:inline-flex}.verdict-badge.success{background:var(--mint-soft);color:var(--mint)}.verdict-badge.rest{background:var(--blue-soft);color:var(--blue)}.verdict-badge.fail{background:var(--rose-soft);color:var(--rose)}.verdict-badge.pending{background:var(--card-2);color:var(--ink-faint)}.why-box{border-radius:var(--r-sm);background:var(--card-2);color:var(--ink-soft);margin-top:14px;padding:12px 14px;font-size:12.5px;line-height:1.6}.ok{color:var(--mint);font-weight:700}.no{color:var(--rose);font-weight:700}html{-webkit-text-size-adjust:100%}body{overscroll-behavior-y:none}button,.chip,.cup,.mood,.check-item,.cal-cell,.photo-item,.seg button,.dow-chips button{touch-action:manipulation;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text;touch-action:auto}.app{min-height:100dvh}.sheet{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;max-height:85dvh}.backdrop{overscroll-behavior:contain}.save-dock{bottom:calc(68px + env(safe-area-inset-bottom));z-index:20;background:var(--bg);border-radius:18px;padding:14px 0;position:sticky;box-shadow:0 -10px 14px -8px #1418231f}.save-dock .pill{box-shadow:0 8px 22px #ff7a5959}.card button:active,.pill:active,.tabbar button:active{opacity:.85}.cal-cell:active{transform:scale(.9)}.onboard{z-index:100;background:var(--bg);-webkit-overflow-scrolling:touch;position:fixed;inset:0;overflow-y:auto}.ob-inner{max-width:460px;padding:44px 20px calc(40px + env(safe-area-inset-bottom));margin:0 auto}.ob-eyebrow{color:var(--accent);margin-bottom:6px;font-size:13px;font-weight:700}.ob-title{font-family:var(--font-round);font-size:26px;line-height:1.35}.ob-sub{color:var(--ink-soft);margin-top:8px;font-size:14px;line-height:1.6}.ob-card{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow);margin-top:22px;padding:6px 18px 18px}.ob-field{border-top:1px solid var(--line);padding:14px 0}.ob-field>label{color:var(--ink-soft);margin-bottom:8px;font-size:13.5px;font-weight:700;display:block}.ob-preview{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow);margin-top:12px;padding:18px}.ob-hint{color:var(--ink-faint);text-align:center;margin-top:14px;font-size:12px;line-height:1.6}.body-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:14px;display:flex}.body-head .bh-main{font-family:var(--font-round);font-size:20px}.body-head .bh-sub{color:var(--ink-faint);font-size:12.5px;font-weight:600}.metric-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.metric{background:var(--card-2);border-radius:var(--r-md);padding:13px}.metric .mk{color:var(--ink-soft);margin-bottom:4px;font-size:11.5px;font-weight:700}.metric .mv{font-family:var(--font-round);font-variant-numeric:tabular-nums;font-size:20px;line-height:1.2}.metric .mv small{color:var(--ink-faint);font-size:12px;font-family:var(--font);margin-left:2px;font-weight:600}.metric .mtag{margin-top:3px;font-size:11.5px;font-weight:700}.band{margin-top:16px}.band-track{border-radius:999px;height:12px;display:flex;position:relative;overflow:hidden}.band-track i{height:100%}.band-mark{background:var(--ink);width:4px;height:22px;box-shadow:0 0 0 2px var(--card);border-radius:3px;transition:left .4s cubic-bezier(.2,.8,.3,1);position:absolute;top:-5px;transform:translate(-2px)}.band-labels{color:var(--ink-faint);margin-top:8px;font-size:10.5px;font-weight:600;display:flex}.band-note{color:var(--ink-soft);margin-top:10px;font-size:12.5px;line-height:1.6}.bottle-wrap{align-items:center;gap:18px;display:flex}.bottle{flex-shrink:0;width:92px}.water-side{flex:1}.water-amount{font-family:var(--font-round);font-variant-numeric:tabular-nums;font-size:30px;line-height:1.1}.water-amount small{color:var(--ink-soft);font-size:14px;font-family:var(--font);font-weight:600}.water-goal{color:var(--ink-faint);margin-top:4px;font-size:12.5px;font-weight:600}.water-btns{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.water-btns button{border:1.5px solid var(--line-strong);background:var(--card);min-width:64px;min-height:44px;color:var(--ink-soft);cursor:pointer;border-radius:12px;flex:1;font-size:13.5px;font-weight:700}.water-btns button.add{background:var(--blue-soft);border-color:var(--blue-soft);color:var(--blue)}.water-btns button:active{transform:scale(.95)}.pin-wrap{text-align:center;flex-direction:column;align-items:center;padding-top:72px;display:flex}.pin-wrap .ob-title{font-size:24px}.pin-wrap .ob-sub{max-width:300px}.pin-dots{gap:14px;margin:34px 0 6px;display:flex}.pin-dots i{background:var(--line-strong);border-radius:999px;width:14px;height:14px;transition:all .18s}.pin-dots i.on{background:var(--accent);transform:scale(1.15)}.pin-msg{min-height:22px;color:var(--ink-faint);margin-bottom:14px;font-size:13px;font-weight:600}.pin-msg.err{color:var(--rose)}.pin-msg.ok{color:var(--mint)}.pin-wrap.shake .pin-dots{animation:.38s shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(9px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.keypad{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:290px;display:grid}.keypad button{background:var(--card);height:66px;box-shadow:var(--shadow);font-family:var(--font-round);color:var(--ink);cursor:pointer;touch-action:manipulation;border:none;border-radius:20px;font-size:25px}.keypad button:active{background:var(--accent-soft);transform:scale(.94)}.keypad button.blank{box-shadow:none;cursor:default;background:0 0}.keypad button.fn{font-family:var(--font);color:var(--ink-soft);background:var(--card-2);box-shadow:none;font-size:15px;font-weight:700}.pin-forgot{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;margin-top:26px;padding:8px;font-size:12.5px;font-weight:600;text-decoration:underline}.sync-chip{background:var(--mint-soft);color:var(--mint);border-radius:999px;margin-top:7px;padding:5px 10px;font-size:11.5px;font-weight:700;display:inline-block}.sync-chip.local{background:var(--card-2);color:var(--ink-faint)}.sync-chip.none{background:var(--amber-soft);color:var(--amber)}.sample-warn{border-radius:var(--r-md);background:var(--amber-soft);color:var(--ink);margin:14px 18px 0;padding:12px 14px;font-size:12.5px;font-weight:600;line-height:1.55}.routine-row{gap:8px;margin-bottom:2px;display:flex}.routine-row button{border:1.5px solid var(--line-strong);background:var(--card);min-height:42px;color:var(--ink-soft);cursor:pointer;border-radius:12px;flex:1;font-size:13px;font-weight:700}.routine-row button.key{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-ink)}.routine-row button:active{transform:scale(.97)}.meal-slot{border-top:1px solid var(--line);padding:14px 0}.meal-slot:first-of-type{border-top:none;padding-top:2px}.meal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.meal-name{color:var(--accent-ink);font-size:13.5px;font-weight:700}.meal-sum{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:600}.food-row{border-top:1px dashed var(--line);align-items:center;gap:8px;padding:8px 0;font-size:14px;display:flex}.food-row:first-of-type{border-top:none}.food-row .fn{word-break:break-word;flex:1}.food-row .fk{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-weight:600}.food-row .fx{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:17px;line-height:1}.food-add{gap:6px;margin-top:8px;display:flex}.food-add input[type=text]{border:1.5px solid var(--line-strong);background:var(--card-2);border-radius:12px;flex:1;min-width:0;height:44px;padding:0 12px;font-size:16px}.food-add input[type=number]{border:1.5px solid var(--line-strong);background:var(--card-2);text-align:right;font-variant-numeric:tabular-nums;-moz-appearance:textfield;border-radius:12px;flex-shrink:0;width:86px;height:44px;padding:0 10px;font-size:16px}.food-add input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.food-add input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.food-add input:focus{border-color:var(--accent);background:var(--card);outline:none}.food-add button{background:var(--accent-soft);min-width:52px;height:44px;color:var(--accent-ink);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;font-size:14px;font-weight:700}.meal-total{border-radius:var(--r-md);background:var(--card-2);justify-content:space-between;align-items:center;margin-top:14px;padding:13px;font-size:14px;font-weight:700;display:flex}.meal-total b{font-family:var(--font-round);font-variant-numeric:tabular-nums;font-size:19px}.bmr-note{color:var(--amber);margin-top:8px;font-size:12.5px;font-weight:600;line-height:1.5}.day-meals{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.day-meals .dm-line{justify-content:space-between;gap:10px;padding:5px 0;font-size:13.5px;display:flex}.day-meals .dm-slot{color:var(--ink-faint);margin-top:8px;font-size:12px;font-weight:700}
