:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;min-height:100svh}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--bg:#faf7f2;--card:#fff;--text:#2b2b2b;--muted:#8a857d;--accent:#2f6f4f;--accent-soft:#e8f0ea;--border:#ece7de;--radius:16px;--shadow:0 2px 12px #2f6f4f14;font-family:system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}.screen{max-width:640px;margin:0 auto;padding:20px 16px 40px}header{justify-content:space-between;align-items:baseline;margin-bottom:16px;display:flex}h1{margin:4px 0 8px;font-size:24px;line-height:1.2}.muted{color:var(--muted)}.small{font-size:13px}.list{flex-direction:column;gap:10px;display:flex}.recipe-card{text-align:left;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);cursor:pointer;font:inherit;color:inherit;padding:14px 16px;display:block}.recipe-card:active{transform:scale(.99)}.usage-card .recipe-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.usage-open{color:var(--accent);white-space:nowrap;flex:none;font-size:13px;font-weight:500}.recipe-title{margin-bottom:4px;font-size:16px;font-weight:600}.recipe-meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.tags-inline{color:var(--accent);font-size:13px}.back{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 0 8px;font-weight:600}.meta{color:var(--muted);flex-wrap:wrap;gap:12px;margin-bottom:10px;font-size:14px;display:flex}.tags{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:4px 10px;font-size:13px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:14px 16px}.card-title{margin-bottom:8px;font-size:15px;font-weight:600}.kbju{flex-wrap:wrap;gap:10px 16px;font-size:14px;display:flex}.ingredients{text-align:left;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ing-section+.ing-section{margin-top:12px}.ing-section-title{text-align:left;color:var(--muted);margin-bottom:6px;font-size:14px;font-weight:600}.ingredients li{border-bottom:1px dashed var(--border);text-align:left;justify-content:flex-start;align-items:baseline;gap:16px;padding-bottom:6px;display:flex}.ing-allergen{text-underline-offset:3px;text-decoration:underline}.ing-name{text-align:left;flex:1}.ing-qty{color:var(--muted);white-space:nowrap;margin-left:auto}.steps{flex-direction:column;gap:8px;margin:0;padding-left:20px;font-size:15px;line-height:1.5;display:flex}.equipment{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.search{width:100%;font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);box-shadow:var(--shadow);border-radius:12px;margin-bottom:12px;padding:10px 14px;font-size:15px}.search::placeholder{color:var(--muted)}.filters-toggle{width:100%;font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);box-shadow:var(--shadow);cursor:pointer;border-radius:12px;align-items:center;gap:8px;margin-bottom:12px;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.filters-count{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.filters{margin-bottom:14px}.fgroup{border:1px solid var(--border);background:var(--card);border-radius:12px;margin-bottom:8px;overflow:hidden}.fgroup-head{width:100%;font:inherit;cursor:pointer;color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.fgroup-title{align-items:center;gap:8px;display:inline-flex}.filters-badge{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.filters-badge.empty,.filters-count.empty{visibility:hidden}.prod-cat-name,.prod-sub-name{align-items:center;gap:6px;display:inline-flex}.fgroup-arrow{color:var(--muted)}.fgroup-body{padding:4px 14px 12px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:999px;padding:5px 11px;font-size:13px}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.chip.off{opacity:.45;cursor:default}.chip:disabled{pointer-events:none}.chip.allergen{color:#a33;border-color:#e0b4b4}.chip.allergen.on{color:#fff;background:#c0392b;border-color:#c0392b}.prod-cat{margin-bottom:8px}.prod-cat:last-child{margin-bottom:0}.prod-cat-head{width:100%;font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;justify-content:space-between;padding:4px 0;font-size:13px;font-weight:600;display:flex}.prod-cat .chips{margin-top:4px}.prod-subs{margin-top:2px}.prod-sub{border-left:2px solid var(--border);margin:2px 0 6px;padding-left:10px}.prod-sub.on{border-left-color:var(--accent)}.prod-sub.partial{border-left-color:var(--muted)}.prod-sub-head-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.prod-sub-head{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:13px;font-weight:600}.prod-sub-head.off{opacity:.45;cursor:default}.prod-sub-head:disabled{pointer-events:none}.prod-sub.on .prod-sub-head{color:var(--accent)}.prod-sub .chips{margin-top:4px}.reset{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:8px 0;font-size:13px;text-decoration:underline}.app{flex-direction:column;max-width:640px;min-height:100svh;margin:0 auto;display:flex}.topbar{z-index:40;background:var(--bg);justify-content:space-between;align-items:center;gap:12px;margin:0;padding:14px 16px 10px;display:flex;position:sticky;top:0}.topbar h1{margin:0;font-size:22px}.avatar{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);cursor:pointer;box-shadow:var(--shadow);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.avatar:active{transform:scale(.95)}.content{padding-bottom:calc(100px + env(safe-area-inset-bottom));flex:1}.tabbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);width:100%;max-width:640px;padding-bottom:calc(4px + env(safe-area-inset-bottom));z-index:50;background:#fffffff5;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{font:inherit;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 0 10px;font-size:11px;display:flex}.tab-icon{filter:grayscale()opacity(.6);font-size:20px;line-height:1;transition:filter .15s}.tab.on{color:var(--accent);font-weight:600}.tab.on .tab-icon{filter:none}.ph{text-align:center;padding:48px 24px}.ph-icon{margin-bottom:14px;font-size:52px}.ph-note{color:var(--muted);margin-bottom:14px;font-size:14px}.ph-list{text-align:left;flex-direction:column;gap:8px;max-width:340px;margin:0 auto;padding:0;list-style:none;display:flex}.ph-list li{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;padding:10px 14px;font-size:14px}.lk-overlay{z-index:60;background:#2b2b2b73;justify-content:center;align-items:flex-start;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.lk-panel{background:var(--bg);border-radius:20px;width:100%;max-width:480px;overflow:hidden;box-shadow:0 12px 40px #0003}.lk-head{background:var(--card);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:18px 18px 14px;display:flex}.lk-avatar{background:var(--accent-soft);width:48px;height:48px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;display:inline-flex}.lk-name{font-size:16px;font-weight:600}.lk-close{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);cursor:pointer;border:none;border-radius:50%;margin-left:auto;font-size:14px}.lk-list{padding:8px 0}.lk-item{border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;font-size:15px;display:flex}.lk-item:last-child{border-bottom:none}.lk-item:active{background:var(--accent-soft)}.lk-section{border-bottom:1px solid var(--border)}.lk-item-static{cursor:default}.lk-toggle{border-bottom:1px solid var(--border);align-items:center;display:flex}.lk-toggle-main{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;font-size:15px;font-weight:600;display:flex}.lk-info-btn{border:1.5px solid var(--accent);background:var(--card);width:26px;height:26px;color:var(--accent);font:inherit;cursor:pointer;border-radius:50%;flex-shrink:0;margin-right:16px;font-size:13px;font-weight:700;line-height:1}.lk-info-btn:active{transform:scale(.94)}.lk-prefs{padding:4px 18px 8px}.lk-pref-cat{border-bottom:1px solid var(--border)}.lk-pref-cat:last-child{border-bottom:none}.lk-pref-cat-head{width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;font-size:14px;font-weight:600;display:flex}.lk-pref-count{color:var(--muted);font-weight:600}.lk-pref-products{flex-direction:column;gap:2px;padding-bottom:8px;display:flex}.lk-pref-product{width:100%;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.lk-pref-product:active{background:var(--accent-soft)}.lk-pref-product.on{color:#c0392b;background:#fdeceb}.lk-pref-check{text-align:center;flex-shrink:0;width:22px}.lk-allergens{flex-wrap:wrap;gap:8px;padding:6px 18px 4px;display:flex}.lk-allergen-chip{border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600}.lk-allergen-chip.on{color:#c0392b;background:#fdeceb;border-color:#e8b4ae}.lk-allergen-chip:active{transform:scale(.96)}.allergen-mark{margin-right:6px;font-size:15px}.lk-hint{color:var(--muted);margin:0;padding:2px 18px 14px;font-size:13px;line-height:1.45}.stepper{background:var(--card);border:1px solid var(--border);border-radius:999px;align-items:center;gap:10px;padding:3px;display:inline-flex}.stepper-btn{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;line-height:1;display:inline-flex}.stepper-btn:disabled{opacity:.35;cursor:default}.stepper-btn:active:not(:disabled){transform:scale(.94)}.stepper-val{text-align:center;min-width:22px;font-size:16px;font-weight:600}.btn{font:inherit;background:var(--accent);color:#fff;cursor:pointer;box-shadow:var(--shadow);border:none;border-radius:12px;flex:1;padding:10px 12px;font-size:14px;font-weight:600}.btn:disabled{opacity:.45;cursor:default}.btn:active:not(:disabled){transform:scale(.98)}.btn-ghost{background:var(--accent-soft);color:var(--accent);width:100%;margin-top:10px}.btn-danger{color:#c0392b;background:#fdeceb}.confirm-overlay{z-index:80;background:#2b2b2b73;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.confirm-box{background:var(--bg);border-radius:20px;width:100%;max-width:340px;padding:20px 16px 16px;box-shadow:0 12px 40px #0003}.confirm-title{margin:0 0 4px;font-size:17px}.confirm-note{color:var(--muted);margin:0 0 14px;font-size:14px}.confirm-actions{flex-direction:column;gap:8px;display:flex}.confirm-actions .btn{margin-top:0}.today-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.today-title{font-size:18px;font-weight:700}.day-strip{scrollbar-width:none;gap:8px;margin-bottom:12px;padding:2px 0 6px;display:flex;overflow-x:auto}.day-strip::-webkit-scrollbar{display:none}.day-chip{border:1px solid var(--border);background:var(--card);min-width:52px;color:var(--text);font:inherit;cursor:pointer;border-radius:12px;flex-direction:column;flex-shrink:0;align-items:center;gap:2px;padding:8px 6px 6px;display:flex;position:relative}.day-chip.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}.day-chip.today .day-chip-name{color:var(--accent)}.day-chip-name{font-size:12px;font-weight:600}.day-chip-date{font-size:15px;font-weight:700}.week-time{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;align-items:center;gap:6px;padding:4px 0 10px;display:flex;overflow-x:auto}.week-time .chip,.week-time .muted{flex-shrink:0}.week-actions{gap:8px;margin-bottom:14px;display:flex}.week-tabs{gap:8px;margin-bottom:12px;display:flex}.week-tab{border:1px solid var(--border,#e2ddd3);background:var(--card);cursor:pointer;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 12px;transition:all .15s;display:flex}.week-tab.on{border-color:var(--accent,#c96f4a);background:var(--accent-soft,#f7ede6)}.week-tab-name{font-size:14px;font-weight:700}.week-tab-range{opacity:.7;font-size:12px}.prep-block{margin-bottom:20px}.prep-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.prep-title{font-size:17px;font-weight:800}.prep-list{flex-direction:column;gap:10px;display:flex}.prep-card{text-align:left;background:var(--card);border:1px solid var(--border,#e2ddd3);cursor:pointer;border-radius:14px;width:100%;padding:12px 14px}.prep-card .recipe-title{margin-bottom:8px}.prep-steps{flex-direction:column;gap:8px;display:flex}.prep-step{background:var(--accent-soft,#f7ede6);border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.prep-step-badge{color:#2e7d32;font-size:11px;font-weight:700}.prep-step-text{font-size:13px;line-height:1.35}.prep-step-hint{opacity:.7;font-size:12px}.prep-shared{background:var(--accent-soft,#fff8e6);border:1px dashed #00000026;border-radius:12px;flex-direction:column;gap:8px;margin-bottom:14px;padding:12px;display:flex}.prep-shared-item{background:#fff;border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.freezer-groups{flex-direction:column;gap:14px;display:flex}.freezer-group-name{opacity:.8;margin-bottom:6px;font-size:13px;font-weight:700}.freezer-item{background:var(--card);border:1px solid var(--border,#e2ddd3);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;display:flex}.freezer-item.st-old{background:#fdf6ec;border-color:#e6a23c}.freezer-item.st-expired{background:#fdeeee;border-color:#e05c5c}.freezer-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.freezer-item-name{font-size:14px;font-weight:600}.freezer-status{font-size:12px;font-weight:700}.freezer-status.st-old{color:#b36b00}.freezer-status.st-expired{color:#c0392b}.freezer-del{opacity:.5;cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px}.freezer-del:hover{opacity:1}.freezer-warn{color:#b36b00;font-weight:600}.freezer-warn-red{color:#c0392b;font-weight:700}.freezer-form{flex-direction:column;gap:10px;padding:6px 0;display:flex}.freezer-form-name{font-size:16px;font-weight:700}.freezer-form-row{flex-direction:column;gap:4px;display:flex}.week{flex-direction:column;gap:10px;display:flex}.week-day{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 12px}.week-day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.day-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.day-name{font-size:15px;font-weight:700}.day-tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.day-clear{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;margin-left:auto;font-size:12px}.day-clear:disabled{opacity:.3;cursor:default}.slot{text-align:left;width:100%;font:inherit;border:1px dashed var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:10px;margin-top:4px;padding:8px 10px;font-size:14px;display:flex}.slot.filled{border-style:solid;border-color:var(--border);background:var(--card)}.slot:active{background:var(--accent-soft)}.slot-meal{color:var(--muted);flex-shrink:0;min-width:74px;font-size:12px}.slot-title{font-weight:600}.slot-empty{color:var(--muted)}.day-extras{margin-top:4px}.extra-row{align-items:center;gap:6px;margin-top:4px;display:flex}.extra-row .slot{margin-top:0}.slot.extra{border-style:dotted}.slot.extra .slot-meal{min-width:20px;font-size:15px}.slot.extra.filled{border-style:solid}.extra-plus{border:1px dashed var(--border);background:var(--bg);width:30px;height:30px;color:var(--accent);cursor:pointer;border-radius:50%;flex-shrink:0;font-size:16px;line-height:1}.extra-plus:active{background:var(--accent-soft)}.extra-del{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;font-size:14px}.week-extras{background:var(--card);border:1px dashed var(--accent);border-radius:var(--radius);margin-top:10px;padding:10px 12px}.week-extras-head{color:var(--accent);margin-bottom:2px;font-size:13px;font-weight:700}.picker-overlay{z-index:70;background:#2b2b2b73;justify-content:center;align-items:flex-start;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.picker{background:var(--bg);border-radius:20px;width:100%;max-width:480px;padding:16px;box-shadow:0 12px 40px #0003}.picker-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.picker .search{margin-bottom:10px}.picker-list{flex-direction:column;gap:8px;max-height:50vh;display:flex;overflow-y:auto}.picker-chips{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:6px;margin-bottom:4px;padding-bottom:10px;display:flex;overflow-x:auto}.picker-chips .chip{flex-shrink:0}.picker-back{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0 0 4px;font-size:14px;font-weight:600}.picker-list-head{z-index:3;background:var(--bg);padding-bottom:4px;position:sticky;top:0}.picker-list-head .book-block-title{margin:0 0 6px}.tag-blocks{grid-template-columns:repeat(2,1fr);gap:10px;max-height:52vh;padding-bottom:4px;display:grid;overflow-y:auto}.tag-block{border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow);cursor:pointer;font:inherit;color:var(--text);border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:12px 10px 14px;display:flex}.tag-block:active{background:var(--accent-soft)}.tag-thumb{aspect-ratio:16/10;background:var(--accent-soft);border-radius:10px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.tag-thumb img{object-fit:cover;width:100%;height:100%}.tag-emoji{font-size:34px}.tag-name{font-size:14px;font-weight:600}.tag-count{color:var(--muted);font-size:12px}.book-blocks{max-height:none;overflow:visible}.book-block-title{margin:2px 0 10px;font-size:15px;font-weight:700}.cook-overlay{z-index:80;background:var(--bg);justify-content:center;align-items:flex-start;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.cook{width:100%;max-width:480px}.cook-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.cook-title{font-size:17px;font-weight:700}.cook-sub{color:var(--muted);margin-bottom:10px;font-size:13px;font-weight:600}.cook-progress{background:var(--border);border-radius:999px;height:6px;margin-bottom:12px;overflow:hidden}.cook-progress-bar{background:var(--accent);border-radius:999px;height:100%;transition:width .25s}.cook-step{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;min-height:96px;margin-bottom:14px;padding:16px;font-size:17px;line-height:1.5}.cook-timer{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.cook-timers{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.cook-timers .cook-timer{margin-bottom:0}.cook-timer.done{background:var(--accent-soft);border-radius:12px;padding:10px 12px;font-weight:700}.cook-clock{font-variant-numeric:tabular-nums;border:1px solid var(--border);background:var(--card);border-radius:10px;padding:4px 10px;font-size:20px;font-weight:700}.cook-timer-label{color:var(--muted);font-size:13px}.cook-nav{gap:10px;margin-top:6px;display:flex}.cook-nav .btn{flex:1}.cook-start{width:100%;margin-top:4px}.print-week,.print-cart{display:none}.cart-summary{margin-bottom:14px}.cart-count{color:var(--muted);margin-bottom:10px;font-size:14px;display:block}.cart-dept{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px;padding:10px 12px}.dept-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.dept-name{font-size:15px;font-weight:700}.cart-item{text-align:left;width:100%;font:inherit;background:var(--bg);color:var(--text);cursor:pointer;border:none;border-radius:10px;align-items:center;gap:10px;margin-top:4px;padding:8px 10px;font-size:14px;display:flex}.cart-item:active{background:var(--accent-soft)}.cart-item.done .cart-name{color:var(--muted);text-decoration:line-through}.cart-check{text-align:center;flex-shrink:0;width:22px;font-size:16px}.cart-name{flex:1;font-weight:500}.cart-qty{color:var(--muted);white-space:nowrap;font-size:13px}@media print{.print-cart{columns:2;text-align:left;column-gap:28px;display:block}.print-cart h2{column-span:all;text-align:left;margin-bottom:14px}.print-dept{break-inside:avoid;margin-bottom:12px}.print-dept h3{text-align:left;margin:0 0 6px;font-size:14px;font-weight:700;text-decoration:underline}.print-dept ul{text-align:left;margin:0;padding-left:18px}.print-dept li{margin-bottom:4px}body{background:#fff}.topbar,.tabbar,.week-actions,.avatar,.search,.filters-toggle,.filters,.back{display:none!important}.app{max-width:none;display:block}.content{padding:0}.screen{max-width:none;padding:0}.week,.cart-summary,.cart-dept{display:none!important}.print-week{display:block}.print-week h2{text-align:left;margin-bottom:12px}.print-week table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:11px}.print-week th,.print-week td{text-align:left;vertical-align:top;word-wrap:break-word;border:1px solid #ccc;padding:5px 6px}.print-week th{background:#f3f0ea}}.info-btn{border:1.5px solid var(--accent);background:var(--card);width:18px;height:18px;color:var(--accent);font:inherit;cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.info-btn:active{transform:scale(.92)}.info-overlay{z-index:85;background:#2b2b2b73;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.info-box{background:var(--bg);border-radius:20px;width:100%;max-width:360px;padding:20px 16px 16px;box-shadow:0 12px 40px #0003}.info-title{margin:0 0 12px;font-size:17px}.info-item{margin-bottom:10px}.info-item-name{color:var(--text);font-size:14px;font-weight:700}.info-item-note{color:var(--muted);margin-top:2px;font-size:13px}.info-box .btn{width:100%;margin-top:6px}.registry-group{margin-bottom:12px}.registry-group-head{width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 2px;display:flex}.registry-group-title{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.registry-count{color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:12px}.registry-list{flex-direction:column;gap:4px;display:flex}.registry-item{text-align:left;width:100%;font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.registry-item:active{background:var(--accent-soft)}.registry-item.on{background:#eef7ee;border-color:#4caf50}.registry-name{flex:1;font-weight:500}.check-dept{border-color:#4caf50}.check-head{width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;margin-bottom:2px;padding:0;display:flex}.check-hint{margin:0 0 8px}.check-list{flex-direction:column;display:flex}.cart-check.green{color:#2e7d32;font-size:17px;font-weight:700}.frz-dept{background:#f3f9ff;border:1px solid #cfe4f5;border-radius:12px;margin-bottom:12px;padding:10px 12px}.frz-use{background:#f3fbf5;border-color:#bfe6c9}.frz-head{cursor:pointer;color:#1b4b6b;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:0;font-size:14px;font-weight:700;display:flex}.frz-hint{margin:4px 0 8px}.frz-list{flex-direction:column;gap:10px;display:flex}.frz-item{background:#fff;border:1px solid #e2eef8;border-radius:10px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.frz-item.dec-use{background:#f2fbf4;border-color:#9fd6ad}.frz-item.dec-buy{background:#fdfaf3;border-color:#e0d3b8}.frz-item.dec-later{background:#fafaff;border-color:#dcdcf0}.frz-item.dec-heat{background:#f2fbf4;border-color:#9fd6ad}.frz-item.dec-fresh{background:#fdfaf3;border-color:#e0d3b8}.frz-item-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.frz-item-name{color:#2b2b2b;font-weight:600}.frz-badge{color:#2f6d93;white-space:nowrap;background:#e6f2fb;border-radius:8px;padding:2px 8px;font-size:12px}.frz-opts{flex-wrap:wrap;gap:6px;display:flex}.frz-opts .chip{font-size:12px}.frz-tag{color:#2f6d93;white-space:nowrap;background:#e6f2fb;border-radius:8px;margin-left:6px;padding:1px 7px;font-size:11px;display:inline-block}.frz-tag.dec-use{color:#216e37;background:#dff3e4}.frz-tag.dec-buy{color:#8a6a1f;background:#f7eeda}.frz-tag.dec-later{color:#5a5a8a;background:#e9e9f8}.frz-change{color:#2f6d93;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:12px;text-decoration:underline}.use-item{flex-direction:row;justify-content:space-between;align-items:center;gap:8px}.frz-slot-tag{font-size:12px}.today-frz{margin-bottom:12px}.lk-setup-btn{border:1px solid var(--accent);background:var(--accent-soft);width:calc(100% - 24px);color:var(--accent);font:inherit;text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:10px;margin:12px 12px 4px;padding:11px 12px;display:flex}.lk-setup-btn:active{transform:scale(.99)}.lk-setup-icon{flex-shrink:0;font-size:20px}.lk-setup-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.lk-setup-title{font-size:15px;font-weight:600}.lk-setup-sub{color:var(--muted);font-size:12px}.lk-block-title{font-weight:600}.lk-jump{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:50%;flex-shrink:0;width:32px;height:32px;font-size:15px;line-height:1}.lk-jump:active{background:var(--accent-soft)}.setup-overlay{z-index:90;background:#2b2b2b80;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.setup-panel{background:var(--bg);border-radius:20px;flex-direction:column;width:100%;max-width:480px;max-height:92svh;display:flex;overflow:hidden;box-shadow:0 12px 40px #00000040}.setup-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px 10px;display:flex}.setup-progress{color:var(--muted);white-space:nowrap;font-size:13px;font-weight:600}.setup-dots{flex:1;gap:5px;display:flex}.setup-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:7px;height:7px;padding:0}.setup-dot.done{background:var(--accent-soft)}.setup-dot.on{background:var(--accent)}.setup-skip{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;font-size:13px}.setup-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:16px 16px 12px;overflow-y:auto}.setup-step-head{align-items:flex-start;gap:10px;margin-bottom:14px;display:flex}.setup-step-icon{flex-shrink:0;font-size:22px;line-height:1.2}.setup-step-title{margin-bottom:2px;font-size:17px;font-weight:600}.setup-lead{color:var(--muted);margin:0;font-size:13px;line-height:1.35}.setup-summary{border:1px solid var(--border);border-radius:14px;margin-bottom:12px;overflow:hidden}.setup-sum-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;font-size:14px;display:flex}.setup-sum-row:last-child{border-bottom:none}.setup-sum-row>span:last-child{color:var(--muted);text-align:right}.setup-search{font:inherit;border:1px solid var(--border);background:var(--card);width:100%;color:var(--text);border-radius:12px;margin-bottom:10px;padding:9px 12px;font-size:14px}.setup-pref-flat{flex-direction:column;display:flex}.setup-pref-cat-name{color:var(--muted);margin-left:auto;font-size:11px}.setup-foot{padding:10px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--border);gap:8px;display:flex}.setup-foot .btn{flex:1}.setup-back{flex:0 0 38%;margin-top:0}.filters-overlay{z-index:60;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.filters-sheet{width:100%;max-width:640px;min-height:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;flex:1;margin:0 auto;display:flex}.filters-sheet-head{flex:none;justify-content:space-between;align-items:center;padding:14px 16px 8px;display:flex}.filters-sheet-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:4px 16px 12px;overflow-y:auto}.filters-sheet-foot{border-top:1px solid var(--border);background:var(--bg);flex:none;padding:10px 16px 14px}.filters-sheet-foot .btn{width:100%}.tips-list{flex-direction:column;gap:10px;display:flex}.tip-card{border:1px solid var(--line,#e6e3de);background:var(--card,#fff);border-radius:14px;overflow:hidden}.tip-head{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;align-items:flex-start;gap:8px;padding:12px 14px;display:flex}.tip-arrow{color:var(--muted,#8a8a8a);flex:none}.tip-title{font-weight:600;line-height:1.35}.tip-body{padding:0 14px 14px 34px}.tip-body p{margin:0 0 8px;line-height:1.5}.tip-body p:last-child{margin-bottom:0}.fridge-add{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fridge-input{font:inherit;color:inherit;background:#fff;border:1px solid #0000002e;border-radius:10px;flex:160px;padding:10px 12px}.fridge-qr{box-sizing:border-box;text-align:left;resize:vertical;width:100%;min-height:46px;display:block}.fridge-qty{flex:0 130px}.fridge-exp{flex:0 160px}.fridge-item{align-items:center;gap:8px;display:flex}.fridge-scanrow{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.fridge-camwrap{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.fridge-cam{object-fit:cover;background:#000;border-radius:12px;width:100%;max-height:60vh}.fridge-sugg{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.cart-name-link{text-underline-offset:3px;cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.freeze-mark{color:#1d6f93;white-space:nowrap;background:#e8f4fb;border-radius:999px;padding:2px 7px;font-size:12px}.freeze-mark.ready{color:#1d6f93;background:#e8f4fb}.freeze-mark.semi{color:#a9641b;background:#fdf1e3}.freeze-card{background:#f4fbfe;border-color:#bcdcec}.freeze-card.semi{background:#fffaf3;border-color:#f0d3b0}.freeze-card.no{border-color:var(--border);background:var(--card)}.freeze-add{width:100%;margin-top:8px}.freeze-notice{color:#1d6f93;margin:8px 0 0;font-size:13px}.freeze-badges{flex-wrap:wrap;gap:6px;margin:0 0 6px;display:flex}.tour-map-overlay{z-index:70;background:#2b2b2b80;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.tour-map{background:var(--bg);border-radius:20px;width:100%;max-width:460px;padding:18px 16px 16px;animation:.22s ease-out tourPop;box-shadow:0 16px 48px #00000040}@keyframes tourPop{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.tour-map-head{align-items:center;gap:10px;margin-bottom:14px;display:flex}.tour-map-emoji{background:var(--accent-soft);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:20px;display:inline-flex}.tour-map-title{font-size:18px;font-weight:700}.tour-map-sub{color:var(--muted);margin-top:2px;font-size:12.5px}.tour-map-head .lk-close{align-self:flex-start;margin-left:auto}.tour-tiles{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tour-tile{border:1px solid var(--border);background:var(--card);text-align:left;font:inherit;color:var(--text);cursor:pointer;box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:9px;padding:10px 11px;display:flex}.tour-tile:active{transform:scale(.98)}.tour-tile-icon{flex-shrink:0;font-size:20px;line-height:1}.tour-tile-body{flex-direction:column;gap:1px;min-width:0;display:flex}.tour-tile-title{font-size:13.5px;font-weight:600}.tour-tile-note{color:var(--muted);font-size:11px;line-height:1.25}.tour-map-foot{flex-direction:column;gap:8px;margin-top:16px;display:flex}.tour-btn-main,.tour-map-foot .btn-ghost{width:100%}.tour-map-hint{text-align:center;color:var(--muted);margin-top:10px;font-size:11px}.tour-root{z-index:70;pointer-events:none;position:fixed;inset:0}.tour-block{z-index:1;pointer-events:auto;position:absolute;inset:0}.tour-hole{z-index:2;pointer-events:none;border:2px solid #ffffffe6;border-radius:14px;transition:top .22s,left .22s,width .22s,height .22s;position:fixed;box-shadow:0 0 0 200vmax #1414148c}.tour-card{z-index:3;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));background:var(--card);pointer-events:auto;border-radius:18px;width:calc(100% - 24px);max-width:420px;padding:14px 16px 12px;animation:.2s ease-out tourPop;position:fixed;transform:translate(-50%);box-shadow:0 12px 40px #00000047}.tour-card-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.tour-step-counter{letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700}.tour-skip{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px 2px;font-size:12px}.tour-card-head{align-items:center;gap:8px;margin-bottom:5px;display:flex}.tour-card-icon{font-size:20px}.tour-card-title{font-size:16.5px;font-weight:700;line-height:1.2}.tour-card-text{color:var(--text);font-size:13.5px;line-height:1.4}.tour-bullets{margin:9px 0 0;padding-left:18px;font-size:13px;line-height:1.38}.tour-bullets li{margin-bottom:5px}.tour-bullets li::marker{color:var(--accent)}.tour-card-foot{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.tour-dots{gap:5px;display:flex}.tour-dot{background:var(--border);border-radius:50%;width:6px;height:6px;transition:background .2s,width .2s}.tour-dot.done{background:#c9d8cf}.tour-dot.on{background:var(--accent);border-radius:3px;width:16px}.tour-actions{gap:6px;display:flex}.tour-actions .btn{padding:8px 14px;font-size:13px}@media (width<=360px){.tour-tiles{grid-template-columns:1fr}}.slot-wrap{position:relative}.slot-freeze{border:1px solid var(--border);background:var(--bg);color:var(--muted);font:inherit;cursor:pointer;border-radius:20px;align-items:center;gap:2px;padding:4px 7px;font-size:12px;font-weight:600;line-height:1;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.slot-freeze:active{transform:translateY(-50%)scale(.94)}.slot-freeze.on{color:#2a6b8f;background:#eaf4fa;border-color:#9fc4dd}.batch-hint{background:#f2f9fd;border:1px solid #cfe4f0;border-radius:12px;align-items:flex-start;gap:8px;margin:10px 0 4px;padding:10px 12px;font-size:12.5px;line-height:1.35;display:flex}.batch-hint-emoji{font-size:16px;line-height:1.15}.batch-hint-text{color:var(--text);flex:1}.batch-hint-close{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:12px;font-weight:600}.batch-sheet .batch-chips{flex-wrap:wrap;gap:6px;margin:4px 0 10px;display:flex}.batch-calc{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 12px}.batch-calc-main{margin-bottom:6px;font-size:14px;font-weight:600}.batch-calc-row{color:var(--muted);align-items:center;gap:7px;padding:2px 0;font-size:13px;display:flex}.batch-calc-freeze{color:#2a6b8f;font-weight:600}.batch-note{color:var(--muted);margin:10px 0 12px;font-size:12px;line-height:1.35}.batch-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.batch-actions .btn{padding:9px 14px;font-size:13px}.batch-modes{flex-direction:column;gap:6px;margin:4px 0 12px;display:flex}.batch-mode{text-align:left;border:1px solid var(--border);background:var(--card);width:100%;font:inherit;color:var(--text);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:9px 11px;display:flex}.batch-mode.on{border-color:var(--accent);background:var(--accent-soft)}.batch-mode-icon{flex-shrink:0;font-size:18px;line-height:1}.batch-mode-title{font-size:13.5px;font-weight:600;display:block}.batch-mode-note{color:var(--muted);margin-top:1px;font-size:11.5px;line-height:1.25;display:block}.slot-wrap .slot.has-freeze{padding-right:66px}.slot-btns{flex-direction:column;align-items:flex-end;gap:3px;display:flex;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.slot-chip{border:1px solid var(--border);background:var(--bg);min-width:30px;color:var(--muted);font:inherit;cursor:pointer;border-radius:16px;justify-content:center;align-items:center;gap:2px;padding:3px 6px;font-size:11px;font-weight:600;line-height:1.1;display:inline-flex}.slot-chip:active{transform:scale(.94)}.slot-chip.on{color:#8a5a00;background:#fdf3dc;border-color:#e3c98f}.slot-chip.freeze.on{color:#2a6b8f;background:#eaf4fa;border-color:#9fc4dd}.batch-block{background:var(--card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:10px 12px;display:flex}.batch-block-head{flex-direction:column;gap:1px;min-width:0;display:flex}.batch-block-title{font-size:14px;font-weight:600}.batch-block-note{color:var(--muted);font-size:11.5px;line-height:1.25}.batch-stepper{flex-shrink:0;align-items:center;gap:2px;display:flex}.step-btn{border:1px solid var(--border);background:var(--bg);width:34px;height:34px;font:inherit;color:var(--text);cursor:pointer;border-radius:10px;font-size:18px;line-height:1}.step-btn:disabled{opacity:.35;cursor:default}.step-btn:active:not(:disabled){background:var(--accent-soft)}.step-val{text-align:center;min-width:34px;font-size:17px;font-weight:700}
