:root{--bg:#F4EFE6;--surface:#FFFCF7;--surface-2:#EAE2D5;--ink:#221D17;--on-ink:#FFFCF7;--fg-2:#4A4238;--fg-3:#6E6457;--fg-4:#7A7064;--line:#E7DFD2;--line-2:#EFE8DC;--control:#DCD2C2;--dash:#D6CCBC;--track:#EBE3D6;--neutral-tint:#EFE6D8;--neutral-ink:#5A5046;--tan-1:#E3D5C0;--tan-2:#D2BFA3;--tan-3:#C9B598;--acc:#B4471F;--acc-deep:#8C3515;--acc-ink:#973A17;--acc-tint:#F6E3D8;--acc-soft:#FBEFE8;--acc-border:#EBC9B6;--acc-dash:#D98B69;--fund:#2D5B86;--fund-ink:#244C72;--fund-tint:#E3ECF5;--fund-border:#BCCDE0;--fund-soft:#FAFCFE;--leaf:#2B5E3C;--leaf-ink:#234F33;--leaf-tint:#E2EEE4;--leaf-mid:#8FB39A;--warn:#7A4E00;--warn-text:#5E3C00;--warn-tint:#F7EBD2;--warn-mid:#C98A1A;--danger:#A3261B;--overlay:rgba(34,29,23,.55);--shadow:rgba(34,29,23,.22);--font-sans:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:"Fraunces",Georgia,"Times New Roman",serif}@media(prefers-color-scheme:dark){:root{--bg:#15120F;--surface:#1F1B17;--surface-2:#2A251F;--ink:#F2ECE3;--on-ink:#15120F;--fg-2:#D6CEC2;--fg-3:#A89E90;--fg-4:#948A7C;--line:#2F2A24;--line-2:#28231E;--control:#3D362E;--dash:#4A4238;--track:#2F2A24;--neutral-tint:#2A251F;--neutral-ink:#CFC6B8;--tan-1:#3A3228;--tan-2:#4F4435;--tan-3:#8A7A62;--acc-ink:#F0A07E;--acc-tint:#3A2218;--acc-soft:#261A14;--acc-border:#5A3322;--acc-dash:#8A4A30;--fund:#3A6D9C;--fund-ink:#9CC0E4;--fund-tint:#1C2A38;--fund-border:#2F4A64;--fund-soft:#182129;--leaf:#3F7F55;--leaf-ink:#9FD0AE;--leaf-tint:#1B2A20;--leaf-mid:#557A60;--warn:#E8B360;--warn-text:#EBC688;--warn-tint:#2E2412;--danger:#FF8A7A;--overlay:rgba(0,0,0,.6);--shadow:rgba(0,0,0,.5)}}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;touch-action:pan-x pan-y;overflow-x:hidden}body{font:400 14px/1.45 var(--font-sans);color:var(--ink);background:var(--bg);overscroll-behavior:none;min-height:100%;-webkit-text-size-adjust:100%}button{font-family:var(--font-sans);color:inherit;-webkit-tap-highlight-color:transparent;cursor:pointer}input,select{font-family:var(--font-sans)}[hidden]{display:none!important}.mono,.num{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.login{min-height:100%;max-width:440px;margin:0 auto;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:calc(72px + env(safe-area-inset-top,0px)) 24px calc(40px + env(safe-area-inset-bottom,0px))}.login-hero{display:flex;flex-direction:column;align-items:flex-start;gap:28px}.login-hero svg{margin-left:-4px}.login-title{font:600 64px/.95 var(--font-display);letter-spacing:-.03em}.login-sub{font-size:16px;line-height:1.5;color:var(--fg-2);max-width:300px;margin-top:10px}.login-card{display:flex;flex-direction:column;gap:16px}.login-note{font-size:12.5px;color:var(--fg-3);text-align:center}.err{color:var(--danger);font-size:13px;font-weight:600}.field{display:flex;flex-direction:column;gap:8px}.field-label{font-size:13px;font-weight:600;color:var(--fg-2)}.input{height:48px;width:100%;padding:0 14px;border:1px solid var(--control);border-radius:14px;font:500 15px var(--font-sans);color:var(--ink);background:var(--surface);outline:none;min-width:0}.input::placeholder{color:var(--fg-4)}.input[type=number]{-moz-appearance:textfield}.input[type=number]::-webkit-inner-spin-button,.input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input:focus-visible{outline:2px solid var(--acc);outline-offset:0;border-color:transparent}select.input{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,var(--fg-3) 50%),linear-gradient(135deg,var(--fg-3) 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 15px) 21px;background-size:5px 5px;background-repeat:no-repeat}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid-3{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:8px;align-items:end}.switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;cursor:pointer;width:50px;height:30px;border-radius:999px;background:var(--control);position:relative;transition:background .15s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:left .15s}.switch:checked{background:var(--ink)}.switch:checked:after{left:23px}.switch-row{display:flex;align-items:center;gap:12px}.switch-row .meal-name{white-space:normal}.tick{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;cursor:pointer;width:26px;height:26px;border-radius:8px;border:1.5px solid var(--dash);background:var(--surface);display:grid;place-items:center}.tick:checked{background:var(--leaf);border-color:var(--leaf)}.tick:checked:after{content:"";width:6px;height:12px;margin-top:-3px;border:solid #FFFFFF;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}.app-shell{min-height:100%;max-width:520px;margin:0 auto;display:flex;flex-direction:column}.top{display:flex;align-items:flex-end;gap:8px;padding:calc(22px + env(safe-area-inset-top,0px)) 20px 16px}.top-text{flex:1;min-width:0}.eb{font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);min-height:17px}.h1{font:600 32px/1.05 var(--font-display);letter-spacing:-.015em}.top-actions{display:flex;gap:8px}.icon-btn{width:44px;height:44px;border-radius:14px;flex:none;border:1px solid var(--line);background:var(--surface);color:var(--fg-2);display:flex;align-items:center;justify-content:center;padding:0}.icon-btn:active{border-color:var(--ink)}.icon-btn:disabled{opacity:.45;cursor:default}.spinning{animation:mam-spin .9s linear infinite;color:var(--acc)}@keyframes mam-spin{to{transform:rotate(360deg)}}.app-main{flex:1;min-height:0;padding:4px 16px calc(132px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:24px}.banner{margin:0 16px 12px;padding:12px 14px;border-radius:16px;background:var(--ink);color:var(--on-ink);font-size:13px;line-height:1.5}.block{display:flex;flex-direction:column;gap:10px}.block-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 4px}.card-title{font:600 19px/1.25 var(--font-display);letter-spacing:-.01em;color:var(--ink)}.block-n{font-size:12.5px;color:var(--fg-3);font-variant-numeric:tabular-nums;text-align:right}.card{background:var(--surface);border:1px solid var(--line);border-radius:20px}.card-pad{padding:16px;display:flex;flex-direction:column;gap:12px}.card-rows{padding:0 16px}.note{font-size:12.5px;color:var(--fg-3);line-height:1.5;padding:0 4px}.divider{border-top:1px solid var(--line-2);padding-top:12px}.big{font:600 30px/1 var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.big--xl{font-size:44px;letter-spacing:-.03em}.big-unit{font-size:12.5px;color:var(--fg-3);font-family:var(--font-sans);letter-spacing:0}.slot-icon{width:42px;height:42px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11.5px;background:var(--neutral-tint);color:var(--neutral-ink)}.slot-icon--fund{background:var(--fund-tint);color:var(--fund-ink)}.slot-icon--draft{background:var(--acc-tint);color:var(--acc-ink)}.slot-icon--cook{background:var(--leaf-tint);color:var(--leaf-ink)}.slot-icon--trip{font-size:10.5px}.meal-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line-2)}.meal-row:first-child{border-top:none}.meal-row--tap{cursor:pointer}.meal-body{flex:1;min-width:0}.meal-name{font-weight:600;font-size:14.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-sub{font-size:12.5px;color:var(--fg-3);line-height:1.45}.meal-k{font-size:12.5px;color:var(--fg-2);line-height:1.45}.meal-k--warn{color:var(--warn)}.meal-amt{font-weight:600;font-size:14px;font-variant-numeric:tabular-nums;flex:none;text-align:right;white-space:nowrap}.meal-amt--zero{color:var(--fg-4);font-weight:500}.meal-end{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none}.draft{border:1.5px solid var(--acc-border);background:var(--surface);border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:12px}.draft--fund{border-color:var(--fund-border);background:var(--fund-soft)}.draft-prov{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--acc-ink)}.draft--fund .draft-prov{color:var(--fund-ink)}.draft-top{display:flex;align-items:flex-start;gap:12px}.draft-actions{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr);gap:8px}.draft-actions .btn{min-width:0;padding:0 8px;overflow:hidden;text-overflow:ellipsis}.draft-actions--2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.tl-card .draft-actions:not(.draft-actions--2){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.tl-card .draft-actions:not(.draft-actions--2)>:first-child{grid-column:1 / -1}.tags{display:flex;flex-wrap:wrap;gap:6px}.badge{height:24px;padding:0 9px;border-radius:999px;display:inline-flex;align-items:center;flex:none;font-size:11.5px;font-weight:600;background:var(--neutral-tint);color:var(--neutral-ink);white-space:nowrap}.badge--navy{background:var(--fund-tint);color:var(--fund-ink)}.badge--income{background:var(--leaf-tint);color:var(--leaf)}.badge--warn{background:var(--warn-tint);color:var(--warn)}.badge--acc{background:var(--acc-tint);color:var(--acc-ink)}.tray{padding:18px 16px 16px;display:flex;flex-direction:column;gap:16px}.bowls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bowl{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-width:0}.bowl-c{width:62px;height:62px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;background:var(--neutral-tint);color:var(--neutral-ink)}.bowl-c--fund{background:var(--fund-tint);color:var(--fund-ink)}.bowl-c--cook{background:var(--leaf-tint);color:var(--leaf-ink)}.bowl-c--draft{background:var(--acc-soft);color:var(--acc-ink);border:2px dashed var(--acc-dash)}.bowl-c--empty{background:transparent;color:var(--fg-4);border:2px dashed var(--dash);font-size:18px;font-weight:500}.bowl-dot{position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:50%;background:var(--acc);border:2px solid var(--surface)}.bowl-l{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3)}.bowl-n{font-size:12px;font-weight:600;line-height:1.3;max-height:32px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%;overflow-wrap:anywhere}.bowl-n--empty{color:var(--fg-4);font-weight:500}.tray-foot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-2);padding-top:14px}.tf{display:flex;flex-direction:column;gap:2px;padding:0 4px;min-width:0}.tf+.tf{border-left:1px solid var(--line-2);padding-left:12px}.tf-v{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf--fund,.tf--fund .meal-sub{color:var(--fund-ink)}.meter{padding:18px 16px;display:flex;flex-direction:column;gap:10px}.meter-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.meter-label{font-weight:600;font-size:14.5px}.meter-label--fund{color:var(--fund-ink)}.meter-val{font-weight:600;font-size:14.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.meter-foot{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--fg-3)}.meter-foot .good{color:var(--leaf);font-weight:600}.meter-foot .bad{color:var(--acc-ink);font-weight:600}.track{height:8px;border-radius:999px;background:var(--track);overflow:hidden}.track>i{display:block;height:8px;border-radius:999px;background:var(--ink);transition:width .3s}.track>i.acc{background:var(--acc)}.track>i.leaf{background:var(--leaf)}.track>i.over{background:var(--acc)}.track>i.navy{background:var(--fund)}.btn{height:44px;padding:0 14px;border-radius:14px;border:1px solid var(--control);background:var(--surface);color:var(--ink);font:600 14px var(--font-sans);display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.btn--pri{border-color:var(--acc);background:var(--acc);color:#fff}.btn--pri:active{background:var(--acc-deep);border-color:var(--acc-deep)}.btn--fund{border-color:var(--fund);background:var(--fund);color:#fff}.btn--tall{height:54px;width:100%;border-radius:16px;font-size:15.5px}.btn--sm{height:38px;padding:0 12px;border-radius:12px;font-size:13px}.btn--danger{color:var(--danger)}.btn:disabled{opacity:.5;cursor:default}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.fab{position:fixed;z-index:35;right:max(16px,calc(50vw - 244px));bottom:calc(104px + env(safe-area-inset-bottom,0px));height:54px;padding:0 22px 0 18px;border:none;border-radius:18px;background:var(--ink);color:var(--on-ink);font:600 15px var(--font-sans);display:flex;align-items:center;gap:8px;box-shadow:0 10px 28px var(--shadow)}.tab-bar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:520px;z-index:40;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:6px 6px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--surface)}.tab-btn{height:60px;border:none;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--fg-3);font:600 11px var(--font-sans);transition:color .15s}.tab-ic{width:54px;height:30px;border-radius:999px;display:flex;align-items:center;justify-content:center;transition:background .15s}.tab-btn.is-active{color:var(--acc-ink)}.tab-btn.is-active .tab-ic{background:var(--acc-tint)}.seg{display:flex;gap:8px;flex-wrap:wrap}.seg button{height:42px;padding:0 15px;border-radius:13px;border:1px solid var(--control);background:var(--surface);color:var(--fg-2);font:600 14px var(--font-sans)}.seg button.on{border-color:var(--ink);background:var(--ink);color:var(--on-ink)}.seg--book{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border-radius:16px;background:var(--surface-2)}.seg--book button{border:none;background:none;color:var(--neutral-ink);height:40px;border-radius:12px}.seg--book button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px var(--shadow);border:none}.seg--book button.on[data-key=fund]{background:var(--fund);color:#fff}.subtabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:16px;background:var(--surface-2)}.subtabs button{height:40px;border:none;border-radius:12px;background:none;color:var(--neutral-ink);font:600 14px var(--font-sans)}.subtabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px var(--shadow)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{height:36px;padding:0 13px;border-radius:12px;border:1px solid var(--ink);background:var(--ink);color:var(--on-ink);font:600 13.5px var(--font-sans);display:inline-flex;align-items:center}.chip--navy{border-color:var(--fund);background:var(--fund);color:#fff}.chip--off{border-color:var(--control);background:var(--surface);color:var(--fg-2)}.chip--static{height:32px;border-radius:10px;font-size:13px}.chip--static.chip--off{background:var(--neutral-tint);border-color:var(--neutral-tint);color:var(--neutral-ink)}.field-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line-2)}.field-row:first-child{border-top:none}.row-val{font-weight:600;font-size:14px;font-variant-numeric:tabular-nums;margin-left:auto;white-space:nowrap}.empty{font-size:13px;color:var(--fg-3);padding:2px 4px}.empty-card{border:1.5px dashed var(--dash);border-radius:20px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.dot-ok{width:8px;height:8px;border-radius:50%;background:var(--leaf);flex:none}.dot-bad{width:8px;height:8px;border-radius:50%;background:var(--warn-mid);flex:none}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(172px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--on-ink);padding:11px 18px;border-radius:999px;text-align:center;font:600 13px var(--font-sans);z-index:70;max-width:calc(100vw - 32px);box-shadow:0 8px 24px var(--shadow)}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.sheet-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--overlay);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:520px;max-height:calc(100vh - 44px);max-height:calc(100dvh - 44px);overflow-y:auto;background:var(--bg);border-radius:28px 28px 0 0;padding:0 20px;display:flex;flex-direction:column;gap:22px}.sheet-head{position:sticky;top:0;z-index:2;background:var(--bg);display:flex;align-items:center;gap:12px;padding:22px 0 10px}.sheet-head:before{content:"";position:absolute;top:10px;left:50%;transform:translate(-50%);width:40px;height:5px;border-radius:999px;background:var(--dash)}.sheet-title{font:600 26px/1.15 var(--font-display);letter-spacing:-.015em;flex:1;min-width:0}.sheet-x{width:40px;height:40px;border-radius:50%;border:none;flex:none;background:var(--surface-2);color:var(--fg-2);font-size:20px;line-height:1}.sheet-foot{position:sticky;bottom:0;z-index:2;margin:auto -20px 0;padding:14px 20px calc(16px + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.item-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:14px;display:flex;flex-direction:column;gap:12px}.item-head{display:flex;align-items:center;gap:8px}.item-drop{width:44px;height:44px;border-radius:13px;border:1px solid var(--control);background:var(--surface);color:var(--fg-3);font-size:18px;line-height:1;flex:none}.item-drop--flat{border:none;background:none;width:36px;height:36px}.item-card .field{gap:5px}.item-card .field-label{font-size:11.5px;color:var(--fg-3)}.item-card .input{height:44px;font-size:14.5px;padding:0 10px}.item-total{display:flex;justify-content:space-between;gap:10px;border-top:1px dashed var(--control);padding-top:10px}.sum-box{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:14px 16px;border-radius:16px;background:var(--surface-2)}.serv-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 12px 16px;border-radius:16px;background:var(--leaf-tint)}.serv-text{display:flex;flex-direction:column;gap:2px;min-width:0}.serv-text .field-label{color:var(--ink);font-size:14px}.serv-text .meal-sub{color:var(--leaf-ink)}.stepper{display:flex;align-items:center;flex-shrink:0;background:var(--surface);border-radius:12px;padding:2px}.stepper-btn{width:44px;height:44px;border:0;background:transparent;font-size:20px;font-weight:500;border-radius:10px}.stepper-btn:disabled{opacity:.35;cursor:default}.stepper-val{min-width:28px;text-align:center;font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}.lock-box{padding:14px 16px;border-radius:16px;background:var(--leaf-tint);color:var(--leaf-ink);font-size:13px;line-height:1.5}.link-btn{border:none;background:none;color:var(--acc-ink);font:600 13.5px var(--font-sans);padding:4px 0;text-align:left}.add-btn{height:48px;border-radius:14px;border:1.5px dashed var(--dash);background:transparent;color:var(--acc-ink);font:600 14px var(--font-sans)}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.cal-wd{font-size:11px;font-weight:700;color:var(--fg-3);text-align:center;padding-bottom:2px}.cal-c{height:44px;border-radius:12px;border:0;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font:600 13px var(--font-sans);font-variant-numeric:tabular-nums;color:var(--ink)}.cal-dots{display:flex;gap:2px;height:5px}.cal-dots i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.7}.cal-0{background:transparent;border:1.5px dashed var(--dash);color:var(--fg-3)}.cal-1{background:var(--neutral-tint)}.cal-2{background:var(--tan-1)}.cal-3{background:var(--tan-2)}.cal-future,.cal-blank{background:transparent;color:var(--fg-4);font-weight:500;cursor:default}.cal-today{box-shadow:inset 0 0 0 2px var(--acc)}.day-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 4px;scroll-margin-top:16px}.day-title{font-weight:700;font-size:15px}.fund-card{background:var(--fund-soft);border-color:var(--fund-border)}.fund-card .meter-label,.fund-card .meter-val{color:var(--fund-ink)}.stat-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.stat-big{font:600 44px/1 var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat-big--warn{color:var(--warn)}.split{display:flex;gap:2px;height:10px;border-radius:999px;overflow:hidden;background:var(--track)}.split>i{display:block;height:10px}.split-legend{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:12.5px;color:var(--fg-2)}.dot{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:6px;flex:none}.dot--none{border:1.5px dashed var(--fg-4)}.place-row{padding:12px 0;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:6px}.place-row:first-child{border-top:none}.place-row .track{height:6px}.plan-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.plan-sum .big{font-size:28px}.plan-sum .big--cook{color:var(--leaf-ink)}.plan-sum .big--treat{color:var(--acc-ink)}.wk{display:grid;grid-template-columns:44px repeat(4,minmax(0,1fr));gap:4px}.wk+.wk{margin-top:4px}.wk-h{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3);text-align:center;padding-bottom:2px}.wk-d{display:flex;flex-direction:column;justify-content:center;padding-left:2px}.wk-d b{font-size:13px;font-weight:700}.wk-d span{font-size:11.5px;color:var(--fg-3);font-variant-numeric:tabular-nums}.wk-d--today b{color:var(--acc-ink)}.wk-c{min-height:58px;border-radius:12px;border:0;padding:6px 7px;position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:2px;text-align:left;font:600 11.5px/1.3 var(--font-sans);overflow-wrap:anywhere;min-width:0}.wk-m{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.85}.wk-c--cook{background:var(--leaf-tint);color:var(--leaf-ink)}.wk-c--eat_out,.wk-c--takeaway{background:var(--neutral-tint);color:var(--fg-2)}.wk-c--treated{background:var(--acc-tint);color:var(--acc-ink)}.wk-c--empty{background:transparent;border:1.5px dashed var(--dash);color:var(--fg-4);align-items:center;justify-content:center;font-size:16px;font-weight:500}.wk-c--done:after{content:"";position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--leaf)}.wk-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--fg-2);padding:0 4px}.wk-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px;box-shadow:inset 0 0 0 1px var(--control)}.check-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line-2)}.check-row:first-child{border-top:none}.check-row.is-done .meal-name{color:var(--fg-4);text-decoration:line-through}.warn-card{background:var(--warn-tint);color:var(--warn-text);border-radius:16px;padding:12px 14px;font-size:13px;line-height:1.5}.ok-card{background:var(--leaf-tint);color:var(--leaf-ink);border-radius:16px;padding:12px 14px;font-size:13px;line-height:1.5}.inline-inputs{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1.2fr) auto;gap:6px;align-items:end}.inline-inputs>:first-child{grid-column:1 / -1}.inline-inputs .input{height:44px;padding:0 10px;font-size:14px;border-radius:12px}.inline-inputs .btn{height:44px}.goods-row{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px}.add-row{padding:12px 0 14px;border-top:1px solid var(--line-2)}.pantry-row{display:flex;flex-direction:column;gap:8px;width:100%;padding:14px 0;border:0;border-top:1px solid var(--line-2);background:none;text-align:left;font:inherit;color:inherit}.pantry-row:first-child{border-top:0}.pantry-top{display:flex;align-items:center;gap:12px}.pantry-row .track{height:6px}.pantry-row .track>i{background:var(--leaf)}.track--unknown{background:repeating-linear-gradient(90deg,var(--tan-1) 0 6px,transparent 6px 10px)}.diff-box{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:16px;background:var(--surface-2)}.diff-row{display:flex;justify-content:space-between;gap:10px}.textarea{height:auto;min-height:64px;padding:10px 12px;line-height:1.45;resize:vertical}.item-extra{margin-top:-4px}.item-share{padding:10px 12px;border-radius:14px;background:var(--leaf-tint)}.item-share .meal-name{font-size:13.5px}.item-share .meal-sub{color:var(--leaf-ink)}.photo-box{display:flex;flex-direction:column;gap:10px}.photo-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px}.photo-result{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:12px}.photo-result .meal-body{display:flex;flex-direction:column;gap:4px}.photo-result .meal-name{white-space:normal}.photo-thumb{width:72px;height:72px;object-fit:cover;border-radius:14px;flex:none;background:var(--surface-2)}.photo-redo{display:flex;gap:8px;margin-top:6px}.photo-redo .input{height:38px;font-size:13px;padding:0 10px;min-width:0;flex:1}.photo-redo .btn{flex:none}.macro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.macro-cell{display:flex;flex-direction:column;gap:4px;min-width:0}.macro-cell .track{margin-top:4px}.macro-cell .meter-val{font-size:13.5px}.goal-hint{display:flex;flex-direction:column;gap:8px}.sugg{display:flex;flex-direction:column;gap:14px}.sugg-day{display:flex;flex-direction:column;gap:8px}.sugg-entry{display:flex;align-items:center;gap:12px;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 14px}.sugg-entry .meal-body{display:flex;flex-direction:column;gap:4px}.sugg-entry .meal-name{white-space:normal}.sugg-entry.is-off{opacity:.5}.sugg-tips{display:flex;flex-direction:column;gap:6px;padding-left:18px}@media(max-width:360px){.macro-grid{grid-template-columns:1fr}}.card--ink{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}.card--ink .meal-sub,.card--ink .meal-k{color:var(--on-ink);opacity:.78}.card--soft{background:var(--neutral-tint);border-color:var(--neutral-tint)}.card--acc{background:var(--acc-soft);border-color:var(--acc-border)}.day-card{display:flex;align-items:center;gap:14px;padding:16px;border-radius:22px}.day-ic{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex:none;background:#ffffff1a}.card--soft .day-ic{background:var(--surface);color:var(--neutral-ink)}.day-eb{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--acc-dash)}.card--soft .day-eb{color:var(--neutral-ink)}.day-title{font:600 21px/1.15 var(--font-display)}.btn--ghost{background:transparent;border-color:currentColor;color:inherit;opacity:.9}.kcal-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.kcal-big{font:600 40px/1 var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.track>i.carb{background:var(--warn-mid)}.track>i.fat{background:var(--tan-3)}.track>i.leafmid{background:var(--leaf-mid)}.track>i.warn{background:var(--warn-mid)}.track--sm,.track--sm>i{height:6px}.macro-cell b{font-size:15px;font-variant-numeric:tabular-nums}.q-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.q-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.q-cell{display:flex;flex-direction:column;gap:5px;min-width:0}.q-top{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:12px;font-weight:600;color:var(--fg-2)}.q-top b{color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.st{font-size:11.5px;font-weight:700}.st--low,.st--edge{color:var(--warn)}.st--near,.st--ok,.st--within{color:var(--leaf-ink)}.st--over{color:var(--acc-ink)}.st--none{color:var(--fg-4);font-weight:500}.tl{display:flex;flex-direction:column}.tl-row{display:flex;gap:10px}.tl-time{width:42px;flex:none;padding-top:15px;font-size:12px;font-weight:600;color:var(--fg-3);font-variant-numeric:tabular-nums}.tl-time--guess{color:var(--fg-4);font-weight:500}.tl-rail{width:12px;flex:none;display:flex;flex-direction:column;align-items:center}.tl-dot{margin-top:18px;width:10px;height:10px;border-radius:50%;background:var(--leaf);flex:none}.tl-dot--draft{background:var(--surface);border:2px solid var(--acc)}.tl-dot--hint{background:var(--surface);border:2px solid var(--dash)}.tl-dot--work{border-radius:4px;width:12px;height:12px;background:var(--ink)}.tl-line{flex:1;width:2px;background:var(--line);margin-top:4px}.tl-row:last-child .tl-line{display:none}.tl-body{flex:1;min-width:0;padding-bottom:10px}.tl-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:0 14px}.tl-card .meal-row{padding:12px 0}.tl-card .slot-icon{display:none}.tl-card .draft{border:0;background:none;padding:12px 0}.tl-card--draft{background:var(--acc-soft);border:1.5px dashed var(--acc-dash)}.tl-card--hint{background:transparent;border:1.5px dashed var(--dash);padding:12px 14px;display:flex;flex-direction:column;gap:8px}.tl-card--work{background:var(--ink);color:var(--on-ink);border-color:var(--ink);padding:14px;display:flex;flex-direction:column;gap:10px}.tl-card--work .meal-sub{color:var(--on-ink);opacity:.78}.tl-eb{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3)}.tl-card--draft .tl-eb{color:var(--acc-ink)}.btn--light{background:var(--on-ink);color:var(--ink);border-color:var(--on-ink)}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:4px;min-width:0;text-align:left;font:inherit;color:inherit}button.tile{cursor:pointer}.tile-v{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.tile-v small{font-size:13px;font-weight:500;color:var(--fg-3)}.tile .btn{margin-top:4px}.tile .track>i{background:var(--fund)}.scale{display:grid;gap:4px}.scale button{height:42px;border-radius:11px;border:0;background:var(--neutral-tint);color:var(--neutral-ink);font:600 13.5px var(--font-sans)}.scale button.on{background:var(--ink);color:var(--on-ink)}.scale--rpe button.on{background:var(--acc);color:#fff}.scale-ends{display:flex;justify-content:space-between;font-size:11.5px;color:var(--fg-3)}.info-box{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:var(--neutral-tint);color:var(--fg-2);font-size:12.5px;line-height:1.5}.info-box svg{flex:none;margin-top:1px}.big-stepper{display:flex;align-items:center;justify-content:space-between;gap:8px}.big-stepper .kcal-big{font-size:44px}.dt{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}.dt--heavy{background:var(--acc-tint);color:var(--acc-ink)}.dt--light{background:var(--warn-tint);color:var(--warn-text)}.dt--rest{background:var(--neutral-tint);color:var(--neutral-ink)}.wrow{width:100%;min-height:64px;display:flex;align-items:center;gap:12px;padding:10px 0;border:0;border-top:1px solid var(--line-2);background:none;text-align:left;font:inherit;color:inherit}.wrow:first-child{border-top:0}.wrow--today{background:var(--acc-soft);margin:0 -16px;padding:10px 16px;width:calc(100% + 32px)}.wrow-d{width:38px;flex:none;display:flex;flex-direction:column;align-items:center;color:var(--fg-3);font-size:11px}.wrow-d b{font-size:13px;color:var(--fg-2)}.wrow-end{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none;font-size:12px;color:var(--fg-2);font-variant-numeric:tabular-nums}.wrow--edit{background:var(--warn-tint)}.wrow--swap{background:var(--acc-soft)}.wrow .was{font-size:11.5px;color:var(--fg-3);text-decoration:line-through}.tgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 6px;align-items:center;font-variant-numeric:tabular-nums}.tgrid>*{text-align:center;font-size:14px}.tgrid>.tg-l{text-align:left;font-size:12.5px;font-weight:600;color:var(--fg-2)}.stat3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stat3 .big{font-size:26px}.chart{width:100%;height:auto;display:block}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--fg-2)}.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}.pgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.pgrid span{text-align:center;font-size:10.5px;color:var(--fg-3)}.pgrid i{height:26px;border-radius:7px;display:block}.pg-hit{background:var(--leaf)}.pg-miss{background:var(--tan-1)}.pg-none{border:1.5px dashed var(--dash)}.pg-today{border:2px solid var(--acc)}.pg-pad{visibility:hidden}.cmp{position:relative;height:10px;border-radius:999px;background:var(--track)}.cmp>i{display:block;height:10px;border-radius:999px;background:var(--ink)}.cmp>b{position:absolute;top:-3px;width:2px;height:16px;background:var(--acc)}.bullets{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:13.5px;line-height:1.5}.kv{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-variant-numeric:tabular-nums}.st-row{padding:12px 0;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:6px}.st-row:first-child{border-top:0}.st-line{display:flex;align-items:center;gap:10px}.st-line .track{flex:1}.st-line .st{width:96px;text-align:right;flex:none}.seg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.seg-c{border-radius:14px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:1px;text-align:center}.seg-c b{font-size:19px;font-variant-numeric:tabular-nums}.seg-c span{font-size:11px}.seg-c--trunk{grid-row:span 2;justify-content:center}.seg-c--low{background:var(--warn-tint);color:var(--warn-text)}.seg-c--std{background:var(--leaf-tint);color:var(--leaf-ink)}.seg-c--high{background:var(--leaf);color:#fff}.seg-c--none{background:var(--surface-2);color:var(--fg-3)}.chg{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line-2)}.chg:first-child{border-top:0}.verdict{width:96px;text-align:center;font-size:11px;font-weight:700;padding:3px 0;border-radius:999px;flex:none}.verdict--real{background:var(--leaf-tint);color:var(--leaf-ink)}.verdict--noise{background:var(--neutral-tint);color:var(--neutral-ink)}.input--flag{border-color:var(--warn-mid);background:var(--warn-tint)}.scan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.seg-inputs{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.8fr);gap:6px;align-items:center}.seg-inputs .input{height:42px}.visc{position:relative;height:12px;border-radius:999px;overflow:hidden;display:flex}.visc-mark{position:relative;height:18px}.visc-mark i{position:absolute;top:-15px;width:4px;height:20px;border-radius:2px;background:var(--ink)}.visc-mark span{position:absolute;top:2px;transform:translate(-50%);font-size:11px;color:var(--fg-3)}.goal-opt{display:flex;gap:12px;align-items:center;padding:14px;border-radius:16px;background:var(--surface);border:1px solid var(--line);cursor:pointer}.goal-opt.on{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}.goal-opt.on .meal-sub{color:var(--on-ink);opacity:.78}.goal-opt input{width:20px;height:20px;margin:0;accent-color:var(--acc);flex:none}.range{width:100%;accent-color:var(--leaf);height:28px}.back-btn{margin-right:auto}.card--ink .meal-name,.tl-card--work .meal-name,.goal-opt.on .meal-name{color:inherit}.goal-opt .meal-name,.st-row .meal-name{white-space:normal}.tl-card .meal-amt--zero{display:none}.sheet-more{display:flex;gap:8px}.sheet-more .btn{flex:1}.hint-text{font-size:13.5px;line-height:1.5;color:var(--fg-2);margin:6px 0 2px}.pick-row{width:100%;border:0;background:transparent;text-align:left;font:inherit}.pick-row:disabled{opacity:.5}input,select,textarea,.input{font-size:16px!important}input[type=time],input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;min-width:0;max-width:100%;text-align:left}input[type=time]::-webkit-date-and-time-value,input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}.field,.grid-2>*,.grid-3>*{min-width:0}.sheet{max-width:min(520px,100vw);overflow-x:hidden}
