:root{--color-canvas: #f9faff;--color-canvas-soft: #ffffff;--color-surface: #ffffff;--color-surface-raised: #f4f7fc;--color-text: #121c2a;--color-muted: #414844;--color-subtle: #717974;--color-border: #e5e7eb;--color-border-strong: #c1c8c3;--color-primary: #00291c;--color-primary-strong: #002116;--color-primary-soft: #f1f5f2;--color-primary-soft-hover: #eef5f1;--color-on-primary: #ffffff;--color-accent: #203c45;--color-accent-soft: #e6eeff;--color-accent-border: rgba(32, 60, 69, .22);--color-breakfast: #c9e7f3;--color-breakfast-text: #001f27;--color-lunch: #a6d0bc;--color-lunch-text: #002116;--color-dinner: #c8f17a;--color-dinner-text: #131f00;--color-warning: #4e6e00;--color-warning-soft: #f3f8e8;--color-danger: #ba1a1a;--color-danger-strong: #93000a;--color-danger-soft: #ffdad6;--color-danger-surface: #fff8f7;--color-danger-border: rgba(186, 26, 26, .22);--color-danger-border-strong: #ffc6c0;--color-danger-hover: rgba(255, 218, 214, .48);--color-no-cook-soft: #fee2e2;--color-no-cook-text: #991b1b;--color-info-border: #dbe4f7;--color-info-soft: #eef3ff;--color-row-surface: #fbfbff;--color-row-surface-strong: #fbfcff;--color-row-surface-selected: #f2f5fd;--color-note-soft: #f7fbff;--color-checkbox-border: #8d9691;--color-control-border-dark: #56606d;--color-control-selected: #7f928d;--color-focus-ring: rgba(0, 41, 28, .16);--color-focus-ring-strong: rgba(0, 41, 28, .2);--color-header-background: rgba(249, 250, 255, .96);--color-tabs-background: rgba(255, 255, 255, .98);--color-backdrop: rgba(18, 28, 42, .4);--color-install-backdrop: rgba(31, 37, 34, .32);--color-inverse-surface: #273140;--color-inverse-on-surface: #ebf1ff;--color-inverse-primary: #a6d0bc;--color-inverse-danger-soft: rgba(255, 218, 214, .14);--color-inverse-hover: rgba(255, 255, 255, .1);--shadow-soft: none;--shadow-lifted: 0 -4px 8px rgba(0, 0, 0, .04);--shadow-floating: 0 14px 30px rgba(18, 28, 42, .2);--shadow-overlay: 0 8px 22px rgba(18, 28, 42, .2);--shadow-card: 0 10px 26px rgba(0, 20, 14, .04);--shadow-switch: 0 1px 2px rgba(18, 28, 42, .22);--shadow-primary: 0 16px 24px rgba(0, 41, 28, .16);--radius: 8px;--radius-tight: 4px;--radius-pill: 999px;--layout-max-width: 760px;--touch-target: 48px;color:var(--color-text);background:var(--color-canvas);font-family:Hanken Grotesk,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{background:var(--color-canvas)}body{min-width:320px;min-height:100vh;min-height:100dvh;margin:0;background:var(--color-canvas)}button,input,select,textarea{font:inherit}input,select,textarea{font-size:16px;font-weight:450;line-height:1.2}button{cursor:pointer}.ui-icon{display:inline-block;width:1.25em;height:1.25em;flex:0 0 auto;background:currentColor;mask:var(--ui-icon-url) center / contain no-repeat;-webkit-mask:var(--ui-icon-url) center / contain no-repeat}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}button:disabled{cursor:not-allowed;opacity:.56}.app-shell{width:min(100%,var(--layout-max-width));min-height:100vh;min-height:100dvh;margin:0 auto;padding:calc(72px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(92px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.loading-state{margin:0;color:var(--color-muted);font-weight:700}.app-header{position:fixed;z-index:40;top:0;right:0;left:0;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;height:calc(56px + env(safe-area-inset-top));border-bottom:1px solid var(--color-border-strong);background:var(--color-header-background);padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}.app-header h1,.view-heading h2,.section-heading h2,.section-heading h3,.day-group h3,.list-card h3{margin:0;letter-spacing:0}.app-header-logo{display:block;width:48px;height:48px;justify-self:start}.app-header h1{overflow:hidden;min-width:0;color:var(--color-primary);font-size:1.75rem;font-weight:800;line-height:1.05;text-align:center;text-overflow:ellipsis;white-space:nowrap}.header-icon-button{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--radius);background:transparent;color:var(--color-primary)}.header-icon-button .ui-icon{width:30px;height:30px;stroke-width:2.15}.header-icon-button.is-active,.header-icon-button:hover{background:var(--color-primary-soft)}.view-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:0 0 18px}.view-heading h2{color:var(--color-primary);font-size:1.75rem;font-weight:800;line-height:1.12}.view-heading p{margin:6px 0 0;color:var(--color-muted);font-size:1rem}.tabs{position:fixed;z-index:35;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:calc(68px + env(safe-area-inset-bottom));border-top:1px solid var(--color-border-strong);background:var(--color-tabs-background);box-shadow:var(--shadow-lifted);padding:6px max(10px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.tab{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:56px;padding:12px 4px 5px;border:0;border-radius:var(--radius);background:transparent;color:var(--color-muted);font-size:.78rem;font-weight:800}.tab:before{position:absolute;top:3px;left:50%;width:7px;height:7px;border-radius:var(--radius-pill);background:var(--color-primary);content:"";opacity:0;transform:translate(-50%)}.tab .ui-icon{width:25px;height:25px;stroke-width:2}.tab span{overflow:hidden;max-width:100%;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.tab.is-active{color:var(--color-primary)}.tab.is-active:before{opacity:1}.panel,.notice-panel,.status-panel{margin-bottom:14px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.panel,.notice-panel,.status-panel{padding:16px}.notice-panel{display:grid;gap:14px;border-color:var(--color-info-border);background:var(--color-info-soft)}.notice-panel h2{margin:0;color:var(--color-text);font-size:1.45rem;line-height:1.12}.notice-panel p{margin:4px 0 0;color:var(--color-muted)}.status-panel{border-color:var(--color-danger-border);background:var(--color-danger-surface)}.status-panel.ok{border-color:var(--color-focus-ring);background:var(--color-primary-soft)}.action-panel{scroll-margin-top:80px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.section-heading.compact{align-items:center;margin-bottom:10px}.plan-toolbar .section-heading{margin-bottom:12px}.section-heading h2{color:var(--color-text);font-size:1.32rem;line-height:1.08}.section-heading h3,.day-group h3{color:var(--color-primary);font-size:1.08rem;font-weight:800}.eyebrow{margin:0 0 4px;color:var(--color-subtle);font-size:.74rem;font-weight:850;letter-spacing:0;text-transform:uppercase}.plan-actions{display:grid;gap:12px}.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(108px,.52fr);gap:10px}label,legend{color:var(--color-muted);font-size:.84rem;font-weight:780}input,select{width:100%;min-height:var(--touch-target);margin-top:6px;border:1px solid var(--color-border-strong);border-radius:var(--radius-tight);background:var(--color-surface);color:var(--color-text);padding:11px 12px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='6 9 12 15 18 9' fill='none' stroke='%23414844' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:18px 18px;padding-right:40px}input[type=file]{min-height:44px;padding:9px 10px}input[type=search]{appearance:none}input[type=search]::-webkit-search-cancel-button{display:none}input:hover,select:hover{border-color:var(--color-subtle)}input:focus,select:focus,button:focus-visible,summary:focus-visible{border-color:var(--color-primary);outline:3px solid var(--color-focus-ring);outline-offset:2px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--touch-target);border:1px solid var(--color-primary);border-radius:var(--radius-tight);background:var(--color-primary);color:var(--color-on-primary);padding:10px 14px;font-weight:820}.button.full{width:100%}.button.ghost{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-primary)}.button.danger-action,.danger-action{border-color:var(--color-danger-border);color:var(--color-danger)}.button.small{min-height:38px;padding:7px 10px;font-size:.86rem}.checkbox-card{display:flex;align-items:center;gap:8px;min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-tight);background:var(--color-surface);padding:8px;color:var(--color-text)}.checkbox-card input{width:18px;min-height:18px;margin:0;accent-color:var(--color-primary)}.list-section{display:grid;gap:12px}.list-card,.meal-card,.missing-meal-card,.pending-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:12px}.list-card.vertical{align-items:stretch;flex-direction:column}.stock-badge,.meal-type-badge,.shopping-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);padding:4px 10px;font-size:.78rem;font-weight:800;line-height:1;white-space:nowrap}.stock-badge.is-empty{background:var(--color-danger-soft);color:var(--color-danger-strong)}.meal-type-breakfast{background:var(--color-breakfast);color:var(--color-breakfast-text)}.meal-type-lunch{background:var(--color-lunch);color:var(--color-lunch-text)}.meal-type-dinner{background:var(--color-dinner);color:var(--color-dinner-text)}.list-card p,.meal-card p{margin:4px 0 0;color:var(--color-muted)}.floating-action-button{position:fixed;z-index:34;right:max(28px,calc((100vw - var(--layout-max-width)) / 2 + 28px));bottom:calc(92px + env(safe-area-inset-bottom));display:inline-grid;place-items:center;width:76px;height:76px;border:0;border-radius:24px;background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-floating)}.floating-action-button:hover{background:var(--color-primary-strong)}.floating-action-button .ui-icon{width:36px;height:36px;stroke-width:2.2}.entity-edit-sheet{grid-template-rows:auto auto minmax(0,1fr);max-height:calc(100dvh - 24px);overflow:hidden;overscroll-behavior:contain}.entity-edit-sheet-form{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;overflow:hidden}.entity-edit-sheet-body{gap:18px;min-height:0;max-height:min(520px,calc(100dvh - 280px));overflow-y:auto;overscroll-behavior:contain;padding-bottom:18px}.entity-edit-sheet .meal-edit-sheet-actions{border-top:1px solid var(--color-border);background:var(--color-surface);padding-top:16px}.delete-confirm-sheet-body{padding-bottom:8px}.delete-confirm-icon{background:var(--color-danger-soft);color:var(--color-danger)}.delete-confirm-context small{color:var(--color-danger);font-weight:640}.delete-confirm-button{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-on-primary)}.delete-confirm-button:hover{border-color:var(--color-danger-strong);background:var(--color-danger-strong)}.meal-icon-action,.icon-button{display:inline-grid;place-items:center;flex:0 0 auto;border-radius:var(--radius-tight)}.meal-icon-action{width:32px;height:32px;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-muted)}.meal-icon-action:hover{border-color:var(--color-muted);background:var(--color-surface-raised);color:var(--color-text)}.meal-icon-action .ui-icon{width:19px;height:19px}.icon-button{width:40px;height:40px;border:1px solid var(--color-danger-border);background:var(--color-danger-surface);color:var(--color-danger)}.icon-button .ui-icon{width:20px;height:20px}.ingredient-builder{display:grid;gap:10px}.ingredient-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(82px,.38fr) 48px;align-items:end;gap:8px}.ingredient-remove{width:48px;height:48px}.inline-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.search-toolbar{margin-bottom:14px}.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}.search-field{position:relative;display:block;color:var(--color-muted)}.search-field input{min-height:var(--touch-target);margin:0;border-color:var(--color-border);background:var(--color-surface);padding-left:44px;font-size:1rem}.search-icon{position:absolute;z-index:1;top:50%;left:14px;display:inline-grid;place-items:center;color:var(--color-subtle);transform:translateY(-50%)}.search-label-row{position:absolute;z-index:1;right:12px;bottom:50%;display:flex;transform:translateY(50%)}.search-label-row small{color:var(--color-subtle);font-size:.76rem;font-weight:750;white-space:nowrap}.search-clear{display:inline-grid;place-items:center;width:var(--touch-target);height:var(--touch-target);border:1px solid var(--color-border);border-radius:var(--radius-tight);background:var(--color-surface);color:var(--color-muted)}.pantry-card{align-items:stretch;flex-direction:column;padding:0;overflow:hidden}.pantry-card-main{display:flex;align-items:stretch;justify-content:space-between;gap:14px;min-height:86px}.pantry-card-main:hover{background:var(--color-row-surface-strong)}.pantry-card-toggle{display:flex;flex:1;align-items:flex-start;justify-content:space-between;min-width:0;gap:14px;border:0;background:transparent;padding:20px 0 16px 24px;color:inherit;font:inherit;text-align:left;cursor:pointer}.pantry-card-toggle:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:-3px}.pantry-card-copy{display:block;min-width:0}.pantry-card-quantity{display:block;margin:4px 0 0;color:var(--color-muted);font-size:1rem;line-height:1.25}.pantry-card-chevron{display:inline-grid;place-items:center;align-self:center;width:28px;height:28px;color:var(--color-muted);transition:transform .18s ease}.pantry-card-chevron .ui-icon{width:20px;height:20px}.pantry-card.is-expanded .pantry-card-chevron{transform:rotate(180deg)}.pantry-card-actions{align-items:center;flex-wrap:nowrap;gap:8px;padding:20px 24px 16px 0}.pantry-card .meal-icon-action,.pantry-card .icon-button{width:40px;height:40px}.pantry-card .meal-icon-action .ui-icon,.pantry-card .icon-button .ui-icon{width:20px;height:20px}.item-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.recipe-usage-editor{display:grid;gap:10px;border-top:1px solid var(--color-border);padding-top:16px}.recipe-usage-editor .section-heading{margin-bottom:0}.recipe-usage-editor .section-heading h3{color:var(--color-muted);font-size:1rem;font-weight:640}.recipe-usage-row{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;border:1px solid var(--color-border);border-radius:var(--radius-tight);background:var(--color-row-surface);padding:12px}.recipe-usage-row span{color:var(--color-muted);font-size:.82rem}.stock-form{display:grid;gap:12px;border-top:1px solid var(--color-border);background:var(--color-surface);margin:0 24px;padding:18px 0 20px}.stock-form-heading{display:flex;align-items:baseline;gap:8px;color:var(--color-text);font-size:1rem;font-weight:800;line-height:1.2}.stock-form-heading small{color:var(--color-muted);font-size:.82rem;font-weight:640}.stock-adjust-label span{display:block}.stock-adjust-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:12px}.stock-adjust-label input{min-height:58px;margin:0;font-size:1.08rem;text-align:center}.stock-adjust-controls .button{min-height:58px;border-radius:var(--radius-tight);font-size:1rem}.stock-action-subtract{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-primary)}.stock-action-add{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.pantry-card-title{color:var(--color-text);font-size:1.14rem;font-weight:800;line-height:1.16}.recipe-card{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:86px;padding:14px 16px;cursor:pointer}.recipe-card:hover{border-color:var(--color-border-strong);background:var(--color-row-surface-strong)}.recipe-card:focus-visible{border-color:var(--color-primary);outline:3px solid var(--color-focus-ring);outline-offset:2px}.recipe-icon-tile{display:inline-grid;place-items:center;align-self:center;width:56px;height:56px;border-radius:var(--radius);background:var(--color-accent-soft);color:var(--color-primary)}.recipe-icon-tile .ui-icon{width:30px;height:30px}.recipe-card-copy{min-width:0;flex:1 1 auto}.recipe-card-copy h3{color:var(--color-text);font-size:1.08rem;font-weight:680;line-height:1.22;overflow-wrap:anywhere}.meal-badge-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.recipe-card .meal-type-badge{min-height:24px;padding:4px 10px;font-size:.82rem;font-weight:760}.recipe-card .inline-actions{align-items:center;flex-wrap:nowrap;gap:6px;justify-content:flex-end;min-height:38px;border-left:1px solid var(--color-border);padding-left:10px}.recipe-card .meal-icon-action,.recipe-card .icon-button{width:32px;height:32px}.recipe-card .meal-icon-action .ui-icon,.recipe-card .icon-button .ui-icon{width:18px;height:18px}.recipe-edit-meal-types{display:grid;gap:8px;min-width:0;margin:0;border:0;padding:0}.recipe-edit-meal-types legend{margin-bottom:8px;color:var(--color-muted);font-size:1rem;font-weight:640;line-height:1.2}.recipe-edit-meal-type-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;min-width:0;padding-bottom:2px}.recipe-edit-meal-types .checkbox-card{flex:0 0 148px;min-height:56px;border-color:var(--color-border);border-radius:var(--radius-tight);padding:12px 14px;color:var(--color-text);font-size:1.08rem;font-weight:780;white-space:nowrap}.recipe-edit-meal-types .checkbox-card input{display:grid;place-items:center;width:26px;height:26px;min-height:26px;border:2px solid var(--color-checkbox-border);border-radius:2px;appearance:none;background:var(--color-surface);padding:0}.recipe-edit-meal-types .checkbox-card input:checked{border-color:var(--color-primary);background:var(--color-primary)}.recipe-edit-meal-types .checkbox-card input:checked:after{width:12px;height:7px;border-bottom:3px solid var(--color-on-primary);border-left:3px solid var(--color-on-primary);content:"";transform:rotate(-45deg) translate(1px,-1px)}.recipe-edit-ingredients{gap:10px}.recipe-edit-ingredients .section-heading{margin-bottom:0}.recipe-edit-ingredients .section-heading h3{color:var(--color-muted);font-size:1rem;font-weight:640}.entity-edit-sheet .ingredient-row label,.entity-edit-sheet .ingredient-row input,.entity-edit-sheet .ingredient-row select{min-width:0}.recipe-ingredients-sheet{max-height:calc(100dvh - 24px);overflow:hidden}.recipe-ingredients-sheet-body{gap:14px;max-height:min(560px,calc(100dvh - 160px));overflow-y:auto;overscroll-behavior:contain}.recipe-ingredients-heading{margin:0;color:var(--color-text);font-size:1.2rem;font-weight:850;line-height:1.15}.recipe-ingredient-status-list{display:grid;gap:10px}.recipe-ingredient-status-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:80px;border:1px solid var(--color-border);border-radius:var(--radius);padding:12px}.recipe-ingredient-status-card.is-available{border-color:var(--color-info-border);background:var(--color-info-soft)}.recipe-ingredient-status-card.is-missing{border-color:var(--color-danger-border-strong);background:var(--color-danger-soft)}.recipe-ingredient-status-icon{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--radius)}.recipe-ingredient-status-card.is-available .recipe-ingredient-status-icon{background:var(--color-dinner);color:var(--color-primary)}.recipe-ingredient-status-card.is-missing .recipe-ingredient-status-icon{background:var(--color-danger);color:var(--color-on-primary)}.recipe-ingredient-status-icon .ui-icon{width:25px;height:25px;stroke-width:2.4}.recipe-ingredient-status-copy{min-width:0}.recipe-ingredient-status-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.recipe-ingredient-status-title strong{overflow:hidden;color:var(--color-text);font-size:1rem;font-weight:820;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.recipe-ingredient-status-title span{display:inline-flex;align-items:center;min-height:20px;border-radius:var(--radius-pill);background:var(--color-danger);color:var(--color-on-primary);padding:3px 8px;font-size:.68rem;font-weight:850;line-height:1;text-transform:uppercase}.recipe-ingredient-status-copy p{margin:3px 0 0;color:var(--color-muted);font-size:.92rem;line-height:1.25}.recipe-ingredient-status-card.is-missing .recipe-ingredient-status-title strong,.recipe-ingredient-status-card.is-missing .recipe-ingredient-status-copy p,.recipe-ingredient-status-card.is-missing .recipe-ingredient-status-amount{color:var(--color-danger-strong)}.recipe-ingredient-status-amount{color:var(--color-primary);font-size:.98rem;font-weight:850;white-space:nowrap}.plan-toolbar{display:grid;gap:16px;margin-bottom:28px;border-color:var(--color-border);background:var(--color-row-surface)}.plan-toolbar .section-heading{margin-bottom:0}.plan-toolbar .section-heading h3{font-size:1.55rem;line-height:1.1}.plan-actions{grid-template-columns:1fr;margin-top:2px}.plan-day-strip{display:grid;grid-auto-columns:minmax(62px,1fr);grid-auto-flow:column;gap:10px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.plan-day-strip::-webkit-scrollbar{display:none}.plan-day-chip{display:grid;place-items:center;min-height:78px;border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);padding:10px 8px;line-height:1}.plan-day-chip span{color:var(--color-muted);font-size:.84rem;font-weight:820;text-transform:uppercase}.plan-day-chip strong{color:var(--color-text);font-size:1.7rem;font-weight:850;line-height:1.05}.plan-day-chip.has-open-slots{background:var(--color-surface)}.plan-day-chip.has-shortage{border-color:var(--color-danger-border);background:var(--color-danger-surface);color:var(--color-danger)}.plan-day-chip.is-complete{border-color:var(--color-border-strong);background:var(--color-surface)}.plan-day-chip.is-selected{border-color:var(--color-primary);background:var(--color-lunch);box-shadow:none}.plan-day-chip.is-selected span,.plan-day-chip.is-selected strong{color:var(--color-primary)}.plan-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:34px 0 18px}.plan-list-heading h2{margin:0;color:var(--color-primary);font-size:1.55rem;font-weight:850;line-height:1.12}.plan-range{color:var(--color-muted);font-size:.98rem;text-align:right;white-space:nowrap}.settings-heading{margin-bottom:28px}.settings-section{margin-bottom:32px}.settings-section-title{margin:0 0 9px;color:var(--color-primary);font-size:.78rem;font-weight:820;letter-spacing:0;line-height:1.2;text-transform:uppercase}.settings-list{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.settings-row{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:16px;width:100%;min-height:64px;border:0;border-bottom:1px solid var(--color-border);background:transparent;color:var(--color-text);padding:10px 16px;text-align:left}.settings-row-disclosure{grid-template-columns:24px minmax(0,1fr) 22px}.settings-row:hover{background:var(--color-surface-raised)}.settings-list>.settings-row:last-child,.settings-list>.settings-disclosure:last-child>.settings-row{border-bottom:0}.settings-row-icon,.settings-row-chevron{display:inline-grid;place-items:center}.settings-row-icon{width:24px;height:24px;color:var(--color-subtle)}.settings-row-icon .ui-icon{width:22px;height:22px}.settings-row-copy{display:grid;min-width:0;gap:2px}.settings-row-copy strong{color:var(--color-text);font-size:1rem;font-weight:690;line-height:1.2}.settings-row-copy small{color:var(--color-muted);font-size:.84rem;line-height:1.25}.settings-row-chevron{color:var(--color-border-strong)}.settings-row-chevron .ui-icon{width:22px;height:22px}.settings-disclosure.is-open>.settings-row{border-bottom-color:var(--color-border)}.settings-list>.settings-disclosure:last-child.is-open>.settings-row{border-bottom:1px solid var(--color-border)}.settings-disclosure-panel{display:grid;gap:10px;border-bottom:1px solid var(--color-border);background:var(--color-surface);padding:12px 16px 16px 56px}.settings-list>.settings-disclosure:last-child .settings-disclosure-panel{border-bottom:0}.settings-disclosure-panel label{margin:0}.settings-disclosure-panel input[type=file]{margin-top:6px}.settings-disclosure-panel .button{width:fit-content}.settings-install-steps{display:grid;gap:7px;margin:0;padding-left:1.2rem;color:var(--color-muted);font-size:.9rem;font-weight:650}.settings-row.danger-action .settings-row-icon,.settings-row.danger-action .settings-row-copy strong,.settings-row.danger-action .settings-row-copy small{color:var(--color-danger)}.shopping-summary{display:flex;align-items:center;justify-content:space-between;gap:18px}.shopping-summary>span:first-child{min-width:0;flex:1 1 auto}.shopping-summary strong,.shopping-summary small{display:block}.shopping-summary small{margin-top:6px;color:var(--color-muted);font-size:.98rem;font-weight:560;line-height:1.35}.shopping-summary strong{color:var(--color-primary);font-size:1.24rem;font-weight:850;line-height:1.1}.shopping-badge.is-warning{border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.shopping-badge.is-ok{border:1px solid var(--color-focus-ring);background:var(--color-surface);color:var(--color-primary)}.shopping-content{display:grid;gap:22px;margin-top:12px}.shopping-plan-summary{margin-bottom:0;border-color:var(--color-focus-ring);border-radius:var(--radius);background:var(--color-primary-soft);padding:20px 22px}.shopping-plan-summary .shopping-badge{min-width:108px;min-height:40px;padding:8px 18px;font-size:.88rem;font-weight:850;box-shadow:none}.shopping-plan-summary.ok{border-color:var(--color-focus-ring);background:var(--color-primary-soft)}.shopping-view-panel{max-width:720px;margin-right:auto;margin-left:auto}.shopping-view-status{margin:-8px 0 12px;color:var(--color-muted);font-size:.94rem;font-weight:720}.shopping-ok-text{margin:0;border:1px solid var(--color-focus-ring);border-radius:var(--radius);background:var(--color-primary-soft);color:var(--color-primary);padding:14px;font-weight:760}.shopping-group{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-card)}.shopping-group-header{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--color-border);background:var(--color-primary-soft);color:var(--color-primary);padding:18px 22px}.shopping-group-header .ui-icon{width:24px;height:24px}.shopping-group-header h3{margin:0;color:var(--color-primary);font-size:1.02rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.shopping-list{display:grid;margin:0;padding:0;list-style:none}.shopping-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;background:var(--color-row-surface-strong);padding:22px 24px;transition:background .16s ease,opacity .16s ease}.shopping-list-row+.shopping-list-row{border-top:1px solid var(--color-border)}.shopping-list-row.is-checked{background:var(--color-row-surface-selected)}.shopping-list-row.is-checked .shopping-item-name{color:var(--color-muted);text-decoration:line-through}.shopping-list-row.is-checked .shopping-item-quantity{color:var(--color-muted);text-decoration:none}.shopping-list-row.is-checked .shopping-context-chip{color:var(--color-subtle)}.shopping-item-check{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:18px;min-width:0;color:var(--color-text);cursor:pointer}.shopping-card-checkbox{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.shopping-checkmark{display:inline-grid;place-items:center;width:34px;height:34px;border:2px solid var(--color-control-border-dark);border-radius:4px;background:var(--color-surface);transition:background .16s ease,border-color .16s ease}.shopping-checkmark .ui-icon{width:22px;height:22px;color:var(--color-on-primary);opacity:0;stroke-width:2.5}.shopping-card-checkbox:checked+.shopping-checkmark{border-color:var(--color-control-selected);background:var(--color-control-selected)}.shopping-card-checkbox:checked+.shopping-checkmark .ui-icon{opacity:1}.shopping-card-checkbox:focus-visible+.shopping-checkmark{outline:3px solid var(--color-focus-ring-strong);outline-offset:3px}.shopping-item-copy{display:grid;gap:10px;min-width:0}.shopping-item-name{display:block;color:var(--color-text);overflow-wrap:anywhere;font-size:1.22rem;font-weight:900;line-height:1.15}.shopping-chip-row{display:flex;flex-wrap:wrap;gap:8px}.shopping-context-chip{width:fit-content;max-width:100%;border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-primary);padding:4px 10px;font-size:.82rem;font-weight:820;line-height:1.2;overflow-wrap:anywhere}.shopping-count-chip{color:var(--color-muted)}.shopping-item-quantity{color:var(--color-muted);font-size:1.18rem;font-weight:760;white-space:nowrap}.shopping-extra-remove{width:40px;height:40px}.shopping-actions{display:grid;gap:16px}.shopping-action-button{display:inline-flex;align-items:center;justify-content:center;gap:16px;width:100%;min-height:72px;border-radius:var(--radius);padding:14px 20px;font-size:1.28rem;font-weight:820;line-height:1.1;cursor:pointer}.shopping-action-button .ui-icon{width:32px;height:32px}.shopping-extra-trigger{border:2px solid var(--color-subtle);background:var(--color-surface);color:var(--color-primary)}.shopping-finish-button{border:0;background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-primary)}.shopping-finish-button:disabled{cursor:not-allowed;opacity:.48;box-shadow:none}.day-group{display:grid;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);scroll-margin-top:86px}.day-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-border);background:var(--color-surface);padding:12px 16px}.day-group-header span{color:var(--color-muted);font-size:.9rem;font-weight:760}.plan-slot-list{display:grid}.plan-slot-list>*+*{border-top:1px solid var(--color-border)}.meal-card,.missing-meal-card,.empty-meal-slot{display:grid;grid-template-columns:106px minmax(0,1fr) 22px 82px;align-items:center;gap:10px;min-height:56px;border:0;border-radius:0;background:var(--color-row-surface);box-shadow:none;padding:8px 16px}.meal-card small,.pending-card span{display:block;color:var(--color-muted);font-size:.82rem}.meal-card .meal-type-badge,.missing-meal-card .meal-type-badge,.empty-meal-slot .meal-type-badge{display:inline-flex;width:106px;min-height:28px;font-size:.82rem;font-weight:760}.meal-card-copy{min-width:0;flex:1 1 auto}.meal-card strong{display:block;overflow:hidden;color:var(--color-text);font-size:1rem;font-weight:520;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.meal-card.is-unavailable{align-items:center;border-color:transparent;background:var(--color-row-surface)}.note-meal-card{background:var(--color-note-soft)}.note-meal-card small{overflow-wrap:anywhere}.meal-card .meal-shortage{margin-top:2px;color:var(--color-danger);font-size:.74rem;font-weight:620}.meal-row-icon{display:inline-grid;place-items:center;color:var(--color-primary)}.meal-row-icon .ui-icon{width:18px;height:18px}.no-cook-icon{color:var(--color-muted)}.meal-card .inline-actions{align-items:center;flex-wrap:nowrap;gap:6px;justify-content:flex-end;min-height:38px;border-left:1px solid var(--color-border);padding-left:8px}.meal-card .icon-button{width:32px;height:32px;border-color:var(--color-danger-border);background:var(--color-surface)}.meal-card .icon-button .ui-icon{width:18px;height:18px}.missing-meal-card{grid-template-columns:106px minmax(0,1fr) minmax(74px,.25fr) auto auto auto;align-items:end;background:var(--color-row-surface-strong)}.missing-meal-card>.meal-type-badge{align-self:center}.missing-meal-card label:first-of-type{min-width:0}.missing-meal-card label:last-of-type{min-width:0}.missing-meal-card select,.missing-meal-card input{min-height:40px}.missing-meal-card .button{min-height:40px;padding:8px 12px}.empty-meal-slot{grid-template-columns:106px minmax(0,1fr);background:var(--color-row-surface)}.empty-meal-add{display:inline-grid;place-items:center;min-height:38px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-tight);background:transparent;color:var(--color-border-strong)}.empty-meal-add:hover{border-color:var(--color-primary);color:var(--color-primary)}.empty-meal-add .ui-icon{width:18px;height:18px}.note-meal-form label:first-of-type,.note-meal-form label:last-of-type{flex:1 1 170px}.meal-edit-sheet{border-radius:24px 24px 0 0}.meal-edit-sheet-form{display:grid;gap:0}.meal-edit-sheet-body{display:grid;gap:22px;padding:30px 16px 20px}.sheet-context{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:14px;min-height:90px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-raised);padding:14px 16px}.sheet-context-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--radius);background:var(--color-accent-soft);color:var(--color-breakfast-text)}.sheet-context-icon .ui-icon{width:34px;height:34px;stroke-width:2.4}.sheet-context-icon.is-no-cook{background:var(--color-no-cook-soft);color:var(--color-no-cook-text)}.sheet-context-copy{min-width:0}.sheet-context-copy span{display:block;margin-bottom:4px;color:var(--color-muted);font-size:.78rem;font-weight:840;letter-spacing:.04em;text-transform:uppercase}.sheet-context-copy strong{display:block;overflow:hidden;color:var(--color-text);font-size:1.08rem;font-weight:760;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.sheet-context-copy small{display:block;margin-top:4px;color:var(--color-muted);font-size:.88rem;font-weight:520;line-height:1.25}.sheet-context-select{min-height:44px;margin:0;border-color:var(--color-border-strong);background-color:var(--color-surface);font-size:1rem;font-weight:720}.meal-edit-field{display:grid;gap:8px;color:var(--color-muted);font-size:1rem;font-weight:640}.meal-edit-field select,.meal-edit-field input{min-height:52px;margin:0;border-color:var(--color-border-strong);font-size:1rem}.meal-edit-servings{display:block;margin:4px 0 -12px;color:var(--color-muted);font-size:1rem;font-weight:640}.meal-servings-stepper{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;min-height:66px;border:1px solid var(--color-primary);border-radius:var(--radius);background:var(--color-row-surface);overflow:hidden}.meal-servings-stepper button{display:grid;place-items:center;width:100%;height:64px;border:0;background:transparent;color:var(--color-text)}.meal-servings-stepper button:hover{background:var(--color-surface-raised)}.meal-servings-stepper button .ui-icon{width:1.7rem;height:1.7rem;stroke-width:2.2}.meal-servings-stepper input{min-height:64px;margin:0;border:0;background:transparent;color:var(--color-text);padding:0;text-align:center;font-size:1.45rem;font-weight:850;appearance:textfield}.meal-servings-stepper input::-webkit-outer-spin-button,.meal-servings-stepper input::-webkit-inner-spin-button{appearance:none;margin:0}.meal-edit-no-cook{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 58px;align-items:center;gap:14px;min-height:88px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-row-surface);padding:14px;cursor:pointer}.meal-edit-no-cook:hover{border-color:var(--color-border-strong)}.meal-edit-no-cook-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius);background:var(--color-no-cook-soft);color:var(--color-no-cook-text)}.meal-edit-no-cook-icon .ui-icon{width:29px;height:29px}.meal-edit-no-cook-copy{min-width:0}.meal-edit-no-cook-copy strong,.meal-edit-no-cook-copy small{display:block}.meal-edit-no-cook-copy strong{color:var(--color-text);font-size:1.05rem;font-weight:680;line-height:1.24}.meal-edit-no-cook-copy small{margin-top:2px;color:var(--color-muted);font-size:.96rem}.meal-edit-no-cook input{position:absolute;opacity:0;pointer-events:none}.meal-edit-switch{position:relative;justify-self:end;width:54px;height:32px;border-radius:var(--radius-pill);background:var(--color-border-strong);transition:background .18s ease}.meal-edit-switch:before{position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:var(--radius-pill);background:var(--color-surface);box-shadow:var(--shadow-switch);content:"";transition:transform .18s ease}.meal-edit-no-cook input:checked+.meal-edit-switch{background:var(--color-primary)}.meal-edit-no-cook input:checked+.meal-edit-switch:before{transform:translate(22px)}.meal-edit-no-cook input:disabled+.meal-edit-switch{opacity:.76}.meal-edit-sheet-actions{display:grid;gap:14px;padding:24px 16px 0}.meal-edit-sheet-actions .button{min-height:58px;border-radius:var(--radius);font-size:1.04rem;font-weight:780}.meal-edit-cancel{display:inline-flex;align-items:center;justify-content:center;min-height:54px;border:0;border-radius:var(--radius);background:transparent;color:var(--color-text);font-size:1.05rem;font-weight:520}.meal-edit-cancel:hover{background:var(--color-surface-raised)}.pending-meals-sheet{grid-template-rows:auto auto minmax(0,1fr) auto;max-height:calc(100dvh - 24px);overflow:hidden;overscroll-behavior:contain}.pending-meals-sheet .action-sheet-header h2{font-size:1.55rem}.pending-meals-body{display:grid;gap:16px;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 16px 4px}.pending-meals-question{margin:0;color:var(--color-muted);font-size:1rem;font-weight:620}.pending-meals-info{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:12px;border:1px solid var(--color-info-border);border-radius:var(--radius);background:var(--color-info-soft);padding:14px}.pending-meals-info>span{display:grid;place-items:center;align-self:start;width:24px;height:24px;color:var(--color-primary)}.pending-meals-info .ui-icon{display:block;width:22px;height:22px}.pending-meals-info p{margin:0;color:var(--color-muted);font-size:.94rem;line-height:1.38}.pending-list{display:grid;gap:12px}.pending-card{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;justify-items:stretch;gap:16px;min-width:0;border-color:var(--color-border);background:var(--color-surface);padding:16px}.pending-card .pending-date{display:inline-flex;align-items:center;justify-self:start;border-radius:var(--radius-pill);padding:5px 10px;color:var(--color-text);font-size:.72rem;font-weight:850;line-height:1;text-transform:uppercase}.pending-card-main{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:12px}.pending-card .pending-card-icon{display:grid;place-items:center;justify-self:center;width:48px;height:48px;border-radius:var(--radius);background:var(--color-primary-soft);color:var(--color-primary);font-size:1rem}.pending-card .pending-card-icon .ui-icon{display:block;width:28px;height:28px;color:inherit;transform:translate(2px)}.pending-card-copy{min-width:0}.pending-card-copy strong{display:block}.pending-card-copy strong{overflow:hidden;color:var(--color-text);font-size:1.05rem;font-weight:780;line-height:1.24;text-overflow:ellipsis;white-space:nowrap}.pending-card>.pending-meal-actions{display:grid;grid-column:1 / -1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;justify-self:stretch;gap:12px;width:auto;min-width:0;max-width:none}.pending-card>.pending-meal-actions>.button{display:grid;place-items:center;justify-self:stretch;min-width:0;width:100%;max-width:none;min-height:48px;border-radius:var(--radius-tight);padding:10px 8px;text-align:center;text-transform:uppercase;white-space:nowrap;font-size:.76rem;font-weight:860;line-height:1.15}.pending-card .pending-button-content{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;color:inherit;font-size:inherit;font-weight:inherit;line-height:1}.pending-card .pending-button-label{display:block;min-width:0;color:inherit;font-size:inherit;font-weight:inherit;line-height:1}.pending-card>.pending-meal-actions>.button .ui-icon{display:block;width:1rem;height:1rem;color:currentColor;transform:translateY(-.5px)}.pending-note-button{grid-column:1 / -1}.pending-cooked-button{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.pending-card .pending-cooked-button .ui-icon{background:var(--color-on-primary);color:var(--color-on-primary)}.pending-skipped-button{border-color:var(--color-subtle);background:var(--color-surface);color:var(--color-text)}.pending-card .pending-skipped-button .ui-icon{background:var(--color-primary);color:var(--color-primary)}.note-pending-card{border-color:var(--color-accent-border)}.pending-meals-footer{border-top:1px solid var(--color-border);background:var(--color-surface);padding:14px 16px 0;text-align:center}.pending-meals-skip{min-height:46px;border:0;border-radius:var(--radius);background:transparent;color:var(--color-primary);padding:10px 16px;font-size:.86rem;font-weight:850}.pending-meals-skip:hover{background:var(--color-primary-soft)}.empty-state{margin:0 0 14px;border:1px dashed var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-muted);padding:14px;font-weight:680}.toast{position:fixed;z-index:50;right:max(16px,env(safe-area-inset-right));bottom:calc(80px + env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:12px;width:min(calc(100% - 32px),560px);margin:0 auto;border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-inverse-surface);color:var(--color-inverse-on-surface);box-shadow:var(--shadow-overlay);padding:12px 14px;animation:toast-slide-up .18s cubic-bezier(.16,1,.3,1)}.toast.is-top{top:calc(12px + env(safe-area-inset-top));bottom:auto;animation-name:toast-slide-down}.toast-content{display:flex;align-items:center;gap:12px;min-width:0}.toast-icon{display:inline-grid;place-items:center;flex:0 0 auto;width:32px;height:32px;border-radius:var(--radius-pill);color:var(--color-inverse-on-surface)}.toast-icon .ui-icon{width:22px;height:22px}.toast.is-delete .toast-icon,.toast.is-error .toast-icon{background:var(--color-inverse-danger-soft)}.toast.is-success .toast-icon{width:28px;height:28px}.toast-message{min-width:0;color:inherit;font-size:.96rem;font-weight:620;line-height:1.35}.toast-action{flex:0 0 auto;min-height:40px;border:0;border-radius:var(--radius);background:transparent;color:var(--color-inverse-primary);padding:8px 10px;text-transform:uppercase;font-size:.78rem;font-weight:850;letter-spacing:0}.toast-action:hover{background:var(--color-inverse-hover)}@keyframes toast-slide-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-slide-down{0%{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}.install-prompt-backdrop{position:fixed;z-index:45;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-install-backdrop);padding:16px max(14px,env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.install-prompt{display:grid;gap:14px;width:min(100%,460px);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-lifted);padding:16px}.install-prompt h2{margin:0;color:var(--color-text);font-size:1.24rem;line-height:1.08}.install-steps{display:grid;gap:8px;margin:0;padding-left:1.35rem;color:var(--color-text);font-weight:720}.install-actions{display:grid;grid-template-columns:1fr;gap:8px}.action-sheet-backdrop{position:fixed;z-index:46;inset:0;background:var(--color-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.action-sheet{position:fixed;z-index:47;right:auto;bottom:0;left:50%;display:grid;gap:10px;width:min(100%,560px);border:1px solid var(--color-border);border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;background:var(--color-surface);box-shadow:var(--shadow-lifted);padding:12px max(16px,env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));transform:translate(-50%) translateY(var(--action-sheet-drag-offset, 0));transition:transform .18s ease}.action-sheet-handle{position:relative;display:grid;place-items:center;justify-self:center;width:56px;height:20px;border-radius:var(--radius-pill);background:transparent;cursor:grab;touch-action:none}.action-sheet-handle:before{width:32px;height:4px;border-radius:var(--radius-pill);background:var(--color-border-strong);content:""}.action-sheet.is-dragging{transition:none}.action-sheet.is-dragging .action-sheet-handle{cursor:grabbing}.action-sheet.is-dismissing{transition:transform .14s ease-in}.action-sheet.has-visible-title{gap:0;padding:12px 0 calc(22px + env(safe-area-inset-bottom))}.action-sheet.has-visible-title .action-sheet-handle{margin-bottom:10px}.action-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-border);padding:0 16px 18px}.action-sheet-header h2{margin:0;color:var(--color-text);font-size:1.95rem;font-weight:850;line-height:1.08}.action-sheet-close{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--radius);background:transparent;color:var(--color-muted)}.action-sheet-close:hover{background:var(--color-surface-raised)}.action-sheet-close .ui-icon{width:1.85rem;height:1.85rem}.action-sheet-form{display:block;margin:0}.action-sheet-list{display:grid;gap:8px}.action-sheet-action{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:14px;width:100%;min-height:52px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--color-muted);padding:12px;text-align:left;font-size:1rem;font-weight:760}.action-sheet-action:hover{background:var(--color-surface-raised)}.action-sheet-action>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-sheet-icon{display:grid;place-items:center;color:currentColor}.action-sheet-icon .ui-icon{width:1.35rem;height:1.35rem}.action-sheet-action.is-primary{border-color:transparent;background:var(--color-primary-soft);color:var(--color-primary);font-size:1.18rem;font-weight:840}.action-sheet-action.is-primary:hover{border-color:var(--color-focus-ring-strong);background:var(--color-primary-soft-hover)}.action-sheet-action.is-danger{color:var(--color-danger)}.action-sheet-action.is-danger:hover{background:var(--color-danger-hover)}.action-sheet-action:disabled,.action-sheet-action:disabled:hover{border-color:transparent;background:transparent;color:var(--color-subtle)}.action-sheet-divider{height:1px;margin:2px 0;background:var(--color-border)}@media(max-width:430px){.app-shell{padding-right:12px;padding-left:12px}.app-header{grid-template-columns:44px minmax(0,1fr) 44px;padding-right:12px;padding-left:12px}.app-header h1{font-size:1.55rem}.view-heading{align-items:stretch;flex-direction:column;gap:10px}.view-heading>.button,.view-heading>button{width:100%}.ingredient-row{grid-template-columns:minmax(0,1fr) 74px 48px}.pantry-card-main{gap:10px}.pantry-card-toggle{padding:18px 0 14px 16px}.pantry-card-actions{gap:6px;padding:18px 16px 14px 0}.stock-form{margin:0 16px}.stock-adjust-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stock-adjust-controls .button{padding-right:8px;padding-left:8px;font-size:.92rem}.meal-card{grid-template-columns:82px minmax(0,1fr) 20px 76px;gap:8px;padding:8px 12px}.meal-card .meal-type-badge,.missing-meal-card .meal-type-badge,.empty-meal-slot .meal-type-badge{width:82px}.missing-meal-card,.empty-meal-slot{grid-template-columns:82px minmax(0,1fr);padding:8px 12px}.meal-card .meal-icon-action,.meal-card .icon-button{width:30px;height:30px}.meal-card .inline-actions{padding-left:7px}.missing-meal-card label,.missing-meal-card .button{grid-column:1 / -1}.recipe-card{grid-template-columns:48px minmax(0,1fr) auto;gap:10px;padding:12px}.recipe-icon-tile{width:48px;height:48px}.recipe-card .recipe-icon-tile .ui-icon{width:26px;height:26px}.recipe-card .inline-actions{padding-left:7px}.recipe-card .meal-icon-action,.recipe-card .icon-button{width:30px;height:30px}.floating-action-button{right:max(20px,env(safe-area-inset-right));bottom:calc(88px + env(safe-area-inset-bottom));width:68px;height:68px;border-radius:22px}.floating-action-button .ui-icon{width:32px;height:32px}.shopping-group-header{padding:16px}.shopping-list-row{padding:18px 12px}.shopping-item-check{grid-template-columns:36px minmax(0,1fr) auto;gap:12px}.shopping-checkmark{width:30px;height:30px}.shopping-item-name{font-size:1rem}.shopping-item-quantity{grid-column:auto;justify-self:end;font-size:1rem}.shopping-action-button{min-height:66px;gap:12px;font-size:1.08rem}}@media(min-width:720px){.app-shell{padding-right:24px;padding-left:24px}.app-header{padding-right:max(24px,calc((100vw - var(--layout-max-width)) / 2 + 24px));padding-left:max(24px,calc((100vw - var(--layout-max-width)) / 2 + 24px))}.tabs{right:50%;left:auto;width:min(100%,var(--layout-max-width));border-right:1px solid var(--color-border-strong);border-left:1px solid var(--color-border-strong);transform:translate(50%)}.panel,.notice-panel,.status-panel{padding:18px}.plan-actions{grid-template-columns:1fr auto auto auto;align-items:end}.view-recipes .list-section{grid-template-columns:repeat(2,minmax(0,1fr))}.view-recipes .list-section>.empty-state{grid-column:1 / -1}}
