:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f5f7f2;--surface:#fff;--surface-strong:#eff3ee;--text:#1a1d1a;--muted:#647067;--line:#d9e0d8;--green:#1f7a4d;--green-soft:#dff3e8;--red:#b33a3a;--red-soft:#f8e4e1;--red-row:#fff3f2;--amber:#bf8500;--amber-soft:#fff0b8;--amber-row:#fff7cf;--recipe-yellow:#ffd400;--recipe-yellow-soft:#fff4a3;--recipe-yellow-text:#6b5200;--blue:#1f5f92;--blue-soft:#dfeeff;--green-row:#edf9f2;--shadow:0 20px 60px #2834291a}*{box-sizing:border-box}html{background:var(--background);min-height:100%}body{background:radial-gradient(circle at top left, #1f5f921a, transparent 32rem), linear-gradient(180deg, #fbfcf8 0%, var(--background) 42rem);min-height:100%;color:var(--text);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}.screen{width:min(1180px,100%);min-height:100vh;margin:0 auto;padding:14px}.centered{place-items:center;display:grid}.loading-mark,.auth-icon,.app-mark{background:var(--blue-soft);width:38px;height:38px;color:var(--blue);border-radius:8px;place-items:center;display:grid}.loading-mark svg,.saving-icon{animation:.8s linear infinite spin}.auth-screen{place-items:center;display:grid}.auth-panel{border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);background:#ffffffeb;border-radius:8px;gap:20px;padding:28px;display:grid}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:700}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;margin-bottom:0;font-size:clamp(1.7rem,5vw,2.4rem);line-height:1}.auth-form{gap:8px;display:grid}.auth-form label{color:var(--muted);font-size:.9rem;font-weight:700}.password-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.password-row input{border:1px solid var(--line);background:var(--surface);min-width:0;height:44px;color:var(--text);border-radius:8px;padding:0 12px}.password-row button,.segmented-control button,.icon-button{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:800;display:inline-flex}.password-row button{background:var(--text);color:var(--surface);padding:0 14px}svg{flex:none;width:18px;height:18px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.error-text,.inline-error,.empty-state{color:var(--red);margin:0;font-weight:700}.empty-state{border:1px solid var(--line);min-height:40px;color:var(--muted);background:#ffffffdb;border-radius:8px;padding:10px}.app-screen{align-content:start;gap:10px;display:grid}.app-header,.toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.title-block,.header-actions,.category-heading,.food-main,.recipe-topline{align-items:center;gap:12px;display:flex}.header-actions{flex-wrap:wrap;justify-content:flex-end}.sync-stamp{border:1px solid var(--line);min-height:30px;color:var(--muted);background:#ffffffc7;border-radius:8px;align-items:center;padding:0 8px;font-size:.8rem;font-weight:700;display:inline-flex}.icon-button{width:34px;height:34px;padding:0}.toolbar{border:1px solid var(--line);background:#ffffffb8;border-radius:8px;padding:6px}.segmented-control{border:1px solid var(--line);background:var(--surface-strong);border-radius:8px;grid-template-columns:repeat(3,92px);gap:4px;padding:3px;display:inline-grid}.segmented-control button{width:100%;min-width:0;color:var(--muted);background:0 0;border:0}.segmented-control button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 5px #262d271a}.filter-controls{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.icon-filter{border:1px solid var(--line);background:var(--surface-strong);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;min-height:34px;padding:2px;display:inline-grid;overflow:hidden}.icon-filter button{appearance:none;min-width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;padding:0;font-size:.86rem;font-weight:850;display:inline-grid}.icon-filter button.selected{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px #262d2714}.shortcut-filter{background:var(--blue-soft);border:1px solid #1f5f9238;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;min-height:34px;padding:2px;display:inline-grid;overflow:hidden}.shortcut-filter button{appearance:none;min-width:28px;height:28px;color:var(--blue);opacity:.54;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;font-size:.86rem;font-weight:850;display:inline-grid}.shortcut-filter button.selected{opacity:1;box-shadow:inset 0 0 0 1px #1f5f9214}.shortcut-filter button.selected.to-buy{background:linear-gradient(90deg, var(--red-soft) 0 50%, var(--amber-soft) 50% 100%);color:var(--text)}.shortcut-filter button.selected.all{background:var(--surface);color:var(--text)}.icon-filter.multi button{opacity:.42}.icon-filter.multi button.selected{opacity:1}.icon-filter.multi button.selected.needed{background:var(--red-soft);color:var(--red)}.icon-filter.multi button.selected.low{background:var(--amber-soft);color:var(--amber)}.icon-filter.multi button.selected.stocked{background:var(--green-soft);color:var(--green)}.search-control{border:1px solid var(--line);background:var(--surface);max-width:300px;min-height:34px;color:var(--muted);border-radius:8px;flex:210px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;padding:0 8px;display:grid}.search-control input{min-width:0;height:30px;color:var(--text);background:0 0;border:0;outline:0;font-size:.9rem;font-weight:700}.search-control input::placeholder{color:var(--muted)}.search-clear{background:var(--surface-strong);width:24px;height:24px;color:var(--muted);border:0;border-radius:999px;place-items:center;padding:0;display:inline-grid}.search-clear svg{width:14px;height:14px}.list-grid,.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.list-grid{align-items:start}.category-panel,.recipe-card{border:1px solid var(--line);background:#ffffffdb;border-radius:8px;box-shadow:0 10px 30px #28342912}.category-panel{align-content:start;gap:8px;padding:10px;display:grid}.category-panel.collapsed,.recipe-card.collapsed{gap:0}.category-heading{justify-content:space-between}.section-toggle,.recipe-toggle{width:100%;min-height:32px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;padding:0;display:grid}.section-toggle{grid-template-columns:auto auto minmax(0,1fr) auto;gap:8px}.recipe-toggle{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:7px}.recipe-status-emoji{margin-top:1px}.section-toggle:hover,.recipe-toggle:hover,.recipe-collapse-button:hover{background:#eff3eeb3}.collapse-chevron{width:16px;height:16px;color:var(--muted);transition:transform .16s}.section-toggle[aria-expanded=true] .collapse-chevron,.recipe-collapse-button[aria-expanded=true] .collapse-chevron{transform:rotate(90deg)}.section-emoji,.food-emoji,.ingredient-emoji{background:var(--surface-strong);border-radius:6px;flex:none;place-items:center;display:inline-grid}.section-emoji{width:26px;height:26px;font-size:1rem}.section-title{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-bottom:0;font-size:.98rem;font-weight:850;overflow:hidden}.section-count{background:var(--surface-strong);width:30px;height:30px;color:var(--muted);border-radius:999px;place-items:center;font-weight:800;display:inline-grid}.food-stack{align-content:start;gap:6px;display:grid}.food-row{border:1px solid var(--line);background:var(--surface);border-left-width:5px;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;height:56px;min-height:56px;padding:8px;display:grid}.food-row.needed{background:var(--red-row);border-color:#b33a3a38;border-left-color:var(--red)}.food-row.low{background:var(--amber-row);border-color:#a86b0038;border-left-color:var(--amber)}.food-row.stocked{background:var(--green-row);border-color:#1f7a4d38;border-left-color:var(--green)}.food-row.show-macros,.food-row.show-prices{height:60px;min-height:60px}.food-row.show-macros.show-prices{height:72px;min-height:72px}.food-main{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1px 6px;min-width:0;display:grid}.food-label{gap:2px;min-width:0;display:grid}.food-main h3{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;margin-bottom:0;font-size:.94rem;line-height:1.12;display:flex;overflow:hidden}.food-emoji{width:22px;height:22px;font-size:1rem}.food-name-text{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;display:block;overflow:hidden}.food-macro-line{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;grid-template-columns:repeat(4,minmax(34px,max-content));align-items:center;column-gap:4px;margin:0;font-size:.66rem;font-weight:850;line-height:1.35;display:grid;overflow:visible}.food-macro-token{text-overflow:clip;white-space:nowrap;align-items:center;gap:2px;min-width:0;min-height:1.35em;display:inline-flex;overflow:visible}.food-macro-token.empty{visibility:hidden}.food-macro-token.protein{color:var(--blue)}.food-macro-token.carbs{color:var(--amber)}.food-macro-token.fat{color:var(--green)}.food-macro-token.calories{color:var(--recipe-yellow-text)}.food-price-line{min-width:0;color:var(--blue);white-space:nowrap;grid-column:1/-1;align-items:center;gap:3px;margin:0;font-size:.66rem;font-weight:850;line-height:1.35;display:inline-flex;overflow:hidden}.food-price-line span{min-width:0}.food-price-line .source-store,.food-price-line .source-size{color:var(--muted);text-overflow:ellipsis;overflow:hidden}.food-price-line .source-store{max-width:70px}.food-price-line .source-size{max-width:52px}.source-count{color:var(--green)}.food-tags{flex-wrap:wrap;justify-content:flex-end;gap:4px;min-width:0;margin-bottom:0;font-size:.78rem;font-weight:700;display:flex}.food-tag{border-radius:999px;place-items:center;width:18px;height:20px;line-height:1;display:inline-grid}.food-tag.essential{color:var(--blue)}.food-tag.optional{color:var(--amber)}.food-tag.fresh{color:var(--green)}.food-tag.shelf{color:var(--muted)}.status-control{border:1px solid var(--line);background:var(--surface-strong);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;width:104px;height:34px;padding:3px;display:inline-grid}.status-control button{appearance:none;min-width:0;height:26px;color:var(--muted);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;font-size:.72rem;font-weight:850;display:inline-flex}.status-emoji{font-size:.86rem;line-height:1}.status-control button.selected.needed{background:var(--red-soft);color:var(--red)}.status-control button.selected.low{background:var(--amber-soft);color:var(--amber)}.status-control button.selected.stocked{background:var(--green-soft);color:var(--green)}.saving-icon{color:var(--blue)}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.recipe-card{border-left-width:5px;grid-template-rows:auto minmax(0,1fr);align-content:stretch;gap:6px;padding:10px;display:grid}.recipe-card.ready{border-left-color:var(--green)}.recipe-card.limited{border-left-color:var(--recipe-yellow)}.recipe-card.missing{border-left-color:var(--red)}.recipe-header{grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:4px;min-width:0;display:grid}.recipe-title-block{min-width:0;display:grid}.recipe-name{letter-spacing:0;overflow-wrap:anywhere;min-width:0;margin-bottom:0;font-size:1rem;font-weight:850;line-height:1.15;display:block}.recipe-status-emoji{place-items:center;width:18px;height:18px;font-size:.82rem;line-height:1;display:inline-grid}.ingredient-list{align-content:start;gap:4px;display:grid}.recipe-body{grid-template-rows:auto auto;align-content:space-between;gap:6px;display:grid}.ingredient-emoji{width:18px;height:18px;font-size:.82rem}.ingredient-dot{border-radius:999px;width:10px;height:10px}.ingredient-dot.needed{background:var(--red)}.ingredient-dot.low{background:var(--recipe-yellow)}.ingredient-dot.stocked{background:var(--green)}.recipe-read-list{gap:5px}.recipe-read-row{min-height:23px;color:var(--muted);grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:.84rem;display:grid}.recipe-read-row.alternatives{grid-template-columns:minmax(0,1fr) auto}.recipe-read-name{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:5px;min-width:0;display:inline-flex}.recipe-read-option{align-items:center;gap:5px;min-width:0;display:inline-flex}.recipe-read-option .ingredient-dot{width:9px;height:9px}.recipe-read-or{color:var(--text);font-size:.66rem;font-weight:900}.recipe-read-row strong{color:var(--text)}.recipe-editor-list{gap:5px}.recipe-edit-row{gap:3px;display:grid}.recipe-edit-option,.recipe-add-form,.recipe-actions{align-items:center;min-width:0;display:flex}.recipe-edit-option{border:1px solid var(--line);background:var(--surface);border-radius:7px;gap:5px;min-height:28px;padding:3px 4px}.recipe-edit-option.needed{background:var(--red-row);border-color:#b33a3a33}.recipe-edit-option.low{background:var(--amber-row);border-color:#a86b0033}.recipe-edit-option.stocked{background:var(--green-row);border-color:#1f7a4d33}.recipe-edit-food-name{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:.76rem;font-weight:800;overflow:hidden}.recipe-edit-or{color:var(--text);text-align:center;align-self:center;font-size:.62rem;font-weight:900}.recipe-amount-input{color:var(--muted);flex:0 0 54px;grid-template-columns:minmax(36px,1fr) auto;align-items:center;gap:2px;font-size:.68rem;font-weight:850;display:inline-grid}.recipe-amount-input input{appearance:textfield;border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;height:24px;color:var(--text);font-variant-numeric:tabular-nums;text-align:right;border-radius:5px;font-size:.74rem;font-weight:850}.recipe-amount-input input::-webkit-inner-spin-button{appearance:none;margin:0}.recipe-amount-input input::-webkit-outer-spin-button{appearance:none;margin:0}.recipe-edit-remove,.recipe-add-form button,.recipe-actions button,.recipe-collapse-button{border:1px solid var(--line);background:var(--surface);width:24px;height:24px;color:var(--muted);border-radius:5px;flex:none;place-items:center;padding:0;display:inline-grid}.recipe-edit-remove svg,.recipe-add-form button svg,.recipe-actions button svg,.recipe-collapse-button svg{width:13px;height:13px}.recipe-edit-remove{color:var(--red)}.recipe-add-form{gap:4px}.recipe-add-search{border:1px dashed var(--line);background:var(--surface);min-width:0;height:28px;color:var(--muted);border-radius:7px;flex:auto;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px;padding:0 6px;display:grid}.recipe-add-search svg{width:13px;height:13px}.recipe-add-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;font-size:.76rem;font-weight:800}.recipe-add-form button:not(:disabled),.recipe-actions button:not(:disabled){background:var(--blue-soft);color:var(--blue)}.recipe-actions{justify-content:flex-end;gap:4px}.recipe-actions button.editing{background:var(--surface-strong);color:var(--blue)}.recipe-empty{color:var(--muted);margin:0;font-size:.76rem;font-weight:800}.macro-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:6px;display:grid}.macro-stat{border:1px solid var(--line);background:var(--surface-strong);border-radius:8px;grid-template-rows:1fr auto 1fr;align-items:center;gap:2px;min-height:64px;padding:7px;display:grid}.macro-stat span,.macro-stat small{color:var(--muted);font-size:.74rem;font-weight:800}.macro-stat strong{white-space:nowrap;align-items:baseline;gap:3px;min-width:0;font-size:.95rem;display:inline-flex}.macro-stat .macro-suffix{font-size:.62rem;line-height:1}.macro-stat .macro-detail{min-height:1em}.macro-stat .macro-detail.empty{visibility:hidden}.macro-stat.calories span,.macro-stat.calories small{color:var(--recipe-yellow-text)}.config-panel{gap:8px;display:grid}.options-panel{border:1px solid var(--line);background:#ffffffdb;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px;display:flex}.options-title{min-width:0;color:var(--muted);align-items:center;gap:6px;font-size:.8rem;font-weight:850;display:inline-flex}.options-title svg{width:16px;height:16px}.option-toggle{cursor:pointer;align-items:center;gap:7px;min-width:0;display:inline-flex}.option-toggle input{opacity:0;pointer-events:none;position:absolute}.option-switch{border:1px solid var(--line);background:var(--surface-strong);border-radius:999px;flex:none;width:34px;height:20px;display:inline-block;position:relative}.option-switch:after{background:var(--muted);content:"";border-radius:999px;width:14px;height:14px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.option-toggle input:checked+.option-switch{background:var(--green-soft);border-color:#1f7a4d52}.option-toggle input:checked+.option-switch:after{background:var(--green);transform:translate(14px)}.option-copy{gap:1px;min-width:0;display:grid}.option-copy strong,.option-copy small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.option-copy strong{font-size:.78rem;line-height:1}.option-copy small{color:var(--muted);font-size:.62rem;font-weight:750;line-height:1}.add-food-form,.config-food-row{border:1px solid var(--line);background:#ffffffdb;border-radius:8px;align-items:center;gap:6px;padding:6px;display:grid}.add-food-form{grid-template-columns:minmax(180px,1fr) 160px 34px 34px auto}.config-list{gap:6px;display:grid}.config-food-row{grid-template-columns:minmax(0,1fr);align-items:stretch}.config-food-row.collapsed{padding-block:4px}.config-food-row.hidden-food{color:var(--muted);background:#eff3eea3}.config-row-toggle{width:100%;min-height:32px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:0 3px;display:grid}.config-row-toggle:hover{background:#eff3eec2}.config-row-toggle[aria-expanded=true] .collapse-chevron{transform:rotate(90deg)}.config-summary-copy{gap:2px;min-width:0;display:grid}.config-summary-copy strong,.config-summary-copy small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.config-summary-copy strong{font-size:.82rem;line-height:1}.config-summary-copy small{color:var(--muted);gap:7px;font-size:.66rem;font-weight:850;line-height:1;display:flex}.config-summary-copy small span{min-width:0}.config-unsaved{background:var(--recipe-yellow-soft);color:var(--recipe-yellow-text);border-radius:999px;padding:3px 6px;font-size:.62rem;font-weight:900;line-height:1}.config-food-details{grid-template-columns:30px minmax(150px,1fr) minmax(140px,.55fr) 30px 30px minmax(304px,.9fr) 30px 30px;align-items:center;gap:6px;min-width:0;display:grid}.config-name-field,.macro-input{align-items:center;gap:5px;display:grid}.config-name-field{grid-template-columns:auto minmax(0,1fr)}.config-name-field input,.add-food-form input,.category-select,.macro-input input{border:1px solid var(--line);background:var(--surface);min-width:0;height:30px;color:var(--text);border-radius:6px;font-size:.78rem;font-weight:750}.config-name-field input,.add-food-form input,.macro-input input{padding:0 7px}.category-select{padding:0 5px}.compact-check,.config-icon-button{border:1px solid var(--line);background:var(--surface);border-radius:6px;place-items:center;width:30px;height:30px;display:inline-grid}.compact-check input{opacity:0;pointer-events:none;position:absolute}.compact-check span{opacity:.28}.compact-check:has(input:checked){background:var(--blue-soft)}.compact-check:has(input:checked) span{opacity:1}.macro-editors{grid-template-columns:repeat(4,minmax(68px,1fr));gap:4px;min-width:0;display:grid}.macro-input{grid-template-columns:18px minmax(46px,1fr);gap:3px;min-width:0}.macro-input span{place-items:center;line-height:1;display:inline-grid}.macro-input input{appearance:textfield;font-variant-numeric:tabular-nums;text-align:right;min-width:46px}.macro-input input::-webkit-inner-spin-button{appearance:none;margin:0}.macro-input input::-webkit-outer-spin-button{appearance:none;margin:0}.macro-calculated input{background:var(--surface-strong);color:var(--recipe-yellow-text);cursor:default}.source-editors{grid-column:1/-1;gap:4px;padding-top:2px;display:grid}.source-editor-heading{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:.72rem;font-weight:850;display:flex}.source-editor-heading button,.source-editor-row button{border:1px solid var(--line);background:var(--surface);width:26px;height:26px;color:var(--muted);border-radius:6px;place-items:center;padding:0;display:inline-grid}.source-editor-heading button{background:var(--blue-soft);color:var(--blue)}.source-editor-heading svg,.source-editor-row button svg{width:13px;height:13px}.source-editor-list{gap:4px;display:grid}.source-editor-row{grid-template-columns:minmax(110px,1fr) minmax(70px,.5fr) minmax(72px,.4fr) minmax(120px,1fr) 26px;align-items:center;gap:4px;display:grid}.source-editor-row label,.source-price-input{min-width:0}.source-editor-row input{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;height:28px;color:var(--text);border-radius:6px;padding:0 7px;font-size:.76rem;font-weight:750}.source-price-input{color:var(--green);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px;font-size:.72rem;font-weight:900;display:grid}.source-price-input input{appearance:textfield;font-variant-numeric:tabular-nums;text-align:right}.source-price-input input::-webkit-inner-spin-button{appearance:none;margin:0}.source-price-input input::-webkit-outer-spin-button{appearance:none;margin:0}.source-editor-row button{color:var(--red)}.source-empty{color:var(--muted);margin:0;font-size:.72rem;font-weight:800}.config-icon-button{color:var(--muted);padding:0}.config-icon-button svg{width:15px;height:15px}.config-icon-button.save:not(:disabled){background:var(--green-soft);color:var(--green)}.config-icon-button.danger{color:var(--red)}.add-food-form button{border:1px solid var(--line);background:var(--text);height:30px;color:var(--surface);border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:.78rem;font-weight:850;display:inline-flex}@media (max-width:900px){.toolbar{gap:8px}.segmented-control{grid-template-columns:repeat(3,78px)}.segmented-control button{padding:0 8px}.search-control{flex-basis:180px;max-width:260px}.icon-filter button,.shortcut-filter button{min-width:26px}.list-grid,.recipe-grid{grid-template-columns:1fr}.add-food-form{grid-template-columns:minmax(0,1fr) 150px 34px 34px auto}.config-food-row{grid-template-columns:minmax(0,1fr)}.config-food-details{grid-template-columns:30px minmax(0,1fr) 116px 30px 30px 300px 30px 30px}}@media (max-width:680px){.screen{padding:4px}.app-screen{gap:5px}.app-header,.toolbar{flex-direction:column;align-items:stretch;gap:8px}.header-actions{justify-content:space-between}.app-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.app-mark,.app-header .eyebrow{display:none}.app-header h1{font-size:1.12rem;line-height:1}.title-block,.header-actions{gap:6px}.sync-stamp{display:none}.icon-button{width:30px;height:30px;min-height:30px}.icon-button svg,.segmented-control svg{width:16px;height:16px}.toolbar{grid-template-columns:minmax(118px,.74fr) minmax(0,1.26fr);align-items:center;gap:4px;padding:4px;display:grid}.segmented-control,.search-control,.filter-controls{align-self:center;width:100%}.search-control{max-width:none;min-height:34px;padding:0 6px}.search-control input{height:28px;font-size:.78rem}.search-control svg{width:15px;height:15px}.search-clear{width:22px;height:22px}.filter-controls{grid-column:1/-1;grid-template-columns:.72fr repeat(3,minmax(0,1fr));gap:3px;display:grid}.icon-filter,.shortcut-filter{border-radius:6px;width:100%;min-height:28px;padding:2px}.icon-filter button,.shortcut-filter button{border-radius:5px;min-width:0;height:22px;font-size:.7rem}.segmented-control{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;gap:2px;padding:2px}.segmented-control button{gap:4px;min-width:0;height:28px;min-height:28px;padding:0 4px;font-size:0}.list-grid,.recipe-grid{gap:5px}.category-panel,.recipe-card{box-shadow:none;padding:5px}.category-panel,.food-stack,.recipe-card{gap:4px}.section-toggle,.recipe-toggle{gap:4px;min-height:24px}.section-title{font-size:.82rem}.section-emoji{width:20px;height:20px;font-size:.82rem}.section-count{width:20px;height:20px;font-size:.68rem}.food-row{border-left-width:3px;border-radius:6px;grid-template-columns:minmax(0,1fr) auto auto;gap:5px;height:36px;min-height:36px;padding:4px 5px}.food-main{gap:0 4px}.food-row.show-macros,.food-row.show-prices{height:42px;min-height:42px}.food-row.show-macros.show-prices{height:50px;min-height:50px}.food-label{gap:1px}.food-main h3{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;margin-bottom:0;font-size:.82rem;line-height:1.1;overflow:hidden}.food-emoji{width:18px;height:18px;font-size:.8rem}.food-name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.food-macro-line{grid-template-columns:repeat(4,minmax(30px,max-content));column-gap:2px;font-size:.53rem}.food-price-line{gap:2px;font-size:.53rem}.food-price-line .source-store{max-width:56px}.food-price-line .source-size{max-width:42px}.food-tags{flex-wrap:nowrap;flex:none;gap:2px}.food-tag{width:16px;height:17px;font-size:.58rem;line-height:1}.status-control{gap:2px;width:82px;height:28px;padding:2px}.status-control button{border-radius:5px;height:22px}.status-emoji{font-size:.74rem}.password-row{grid-template-columns:1fr}.recipe-name{font-size:.88rem;line-height:1.15}.recipe-status-emoji{width:16px;height:16px;font-size:.76rem}.ingredient-list{gap:2px}.recipe-read-row{grid-template-columns:7px minmax(0,1fr) auto;gap:6px;min-height:18px;font-size:.74rem}.recipe-read-row.alternatives{grid-template-columns:minmax(0,1fr) auto}.ingredient-dot{width:7px;height:7px}.recipe-read-option{gap:4px}.recipe-read-option .ingredient-dot{width:7px;height:7px}.ingredient-emoji{width:15px;height:15px;font-size:.68rem}.recipe-body,.macro-grid{gap:4px}.macro-stat{border-radius:6px;min-height:50px;padding:5px}.macro-stat strong{font-size:.78rem}.macro-stat .macro-suffix{font-size:.48rem}.macro-stat span,.macro-stat small{font-size:.62rem}.config-panel,.config-list{gap:4px}.options-panel{padding:4px}.options-title{gap:4px;font-size:.68rem}.options-title svg{width:13px;height:13px}.option-toggle{gap:5px}.option-switch{width:30px;height:18px}.option-switch:after{width:12px;height:12px}.option-toggle input:checked+.option-switch:after{transform:translate(12px)}.option-copy strong{font-size:.68rem}.option-copy small{font-size:.56rem}.add-food-form,.config-food-row{border-radius:6px;gap:3px;padding:4px}.add-food-form{grid-template-columns:minmax(0,1fr) 28px 28px auto}.add-food-form .category-select{grid-column:1/-1}.config-food-row{grid-template-columns:minmax(0,1fr)}.config-food-details{grid-template-columns:26px minmax(0,1fr) 26px 26px 26px 26px}.config-food-details .config-icon-button.visibility{grid-area:1/1}.config-food-details .config-name-field{grid-area:1/2/auto/5}.config-food-details .category-select{grid-area:2/1/auto/4}.config-food-details .essential-toggle{grid-area:2/4}.config-food-details .fresh-toggle{grid-area:2/5}.macro-editors{grid-area:3/1/auto/-1;grid-template-columns:repeat(4,minmax(64px,1fr));gap:3px}.source-editors{grid-row:4}.source-editor-heading{font-size:.66rem}.source-editor-row{grid-template-columns:minmax(0,1fr) 64px 70px 26px;gap:3px}.source-editor-row label:nth-of-type(4){grid-column:1/4}.source-editor-row button{grid-area:2/4}.source-editor-row input{border-radius:5px;height:26px;font-size:.68rem}.macro-input{grid-template-columns:17px minmax(42px,1fr)}.config-food-row .config-icon-button.save{grid-area:1/5}.config-food-row .config-icon-button.danger{grid-area:1/6}.compact-check,.config-icon-button{border-radius:5px;width:26px;height:26px}.config-icon-button svg{width:13px;height:13px}.config-name-field input,.add-food-form input,.category-select,.macro-input input,.add-food-form button{border-radius:5px;height:26px;font-size:.68rem}.config-name-field input,.add-food-form input,.macro-input input{padding:0 5px}.add-food-form button{gap:3px;padding:0 7px}}@media (max-width:420px){.screen{padding:4px}}@keyframes spin{to{transform:rotate(360deg)}}
