:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--font-serif: ui-serif, Georgia, Cambria, "Times New Roman", serif;--paper: #212c24;--paper-deep: #182119;--paper-soft: #2c3d2f;--ink: #e8ece5;--muted: #8a9d8c;--line: #3a4e3d;--moss: #7a9470;--moss-deep: #a8c19e;--clay: #c97d62;--honey: #c9a253;--dew: #7ec5c2;--shadow: 0 20px 60px rgba(0, 0, 0, .5);--radius-sm: 8px;--radius-md: 14px}*{box-sizing:border-box}html{min-height:100%;max-width:100%;overflow-x:hidden;background:var(--paper)}body{min-height:100vh;max-width:100%;overflow-x:hidden;margin:0;background:linear-gradient(135deg,rgba(90,140,100,.2),transparent 42%),linear-gradient(315deg,rgba(180,130,60,.15),transparent 35%),var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.72}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);background:#374b3aa6;color:var(--ink);outline:none;padding:.85rem .95rem}input:focus,select:focus,textarea:focus,button:focus-visible{border-color:var(--moss);box-shadow:0 0 0 4px #6f84672e}textarea{resize:vertical}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.app-shell.no-subnav{grid-template-columns:minmax(0,1fr)}.app-shell.no-subnav>.sidebar{display:none}.topbar-area-label{margin:.1rem 0 0;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--moss-deep)}.sidebar{display:flex;flex-direction:column;gap:1.5rem;min-height:100vh;padding:max(1.5rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));border-right:1px solid rgba(58,78,61,.18);background:#2c3d2fbd;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.brand{display:flex;align-items:center;gap:.8rem;padding:.5rem .35rem}.brand-mark{display:grid;width:48px;height:48px;place-items:center;border-radius:50%;background:var(--moss);color:var(--paper-soft)}.brand h1,.topbar h2,.panel h3,.record-card h4{margin:0;letter-spacing:0}.brand h1{font-family:var(--font-serif);font-size:1.7rem;font-weight:650}.eyebrow{margin:0 0 .25rem;color:var(--moss-deep);font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.nav-list{display:grid;gap:.45rem}.nav-item,.icon-button,.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border:1px solid transparent;border-radius:var(--radius-sm)}.nav-item{justify-content:flex-start;min-height:46px;padding:0 .9rem;background:transparent;color:var(--muted);font-weight:750}.nav-item.active{background:var(--moss);color:#fff;box-shadow:0 12px 24px #485b4333}.food-menu-wrap{position:relative;display:flex;min-width:0}.food-menu-wrap>.nav-item{flex:1 1 auto;width:100%;min-width:0}.food-menu-wrap>.nav-item .nav-item-label{display:inline-flex;align-items:center;gap:.3rem}.food-menu-wrap>.nav-item svg.chevron,.food-menu-wrap .nav-item-label svg:last-child{transition:transform .18s ease}.food-menu-wrap.open .nav-item-label svg:last-child{transform:rotate(180deg)}.food-menu{position:absolute;top:0;left:calc(100% + .5rem);z-index:35;display:grid;gap:.15rem;min-width:220px;padding:.35rem;border:1px solid rgba(58,78,61,.22);border-radius:var(--radius-sm);background:#2c3d2ffa;box-shadow:0 18px 42px #00000047}.food-menu-item{display:inline-flex;align-items:center;gap:.55rem;width:100%;min-height:44px;padding:.45rem .7rem;border:0;border-radius:calc(var(--radius-sm) - 2px);background:transparent;color:var(--ink);font-weight:750;text-align:left}.food-menu-item:hover,.food-menu-item:focus-visible{background:#6f846738}.food-menu-item.active{background:var(--moss);color:#fff}.storage-card,.panel,.quick-grid article{border:1px solid rgba(58,78,61,.16);border-radius:var(--radius-md);background:#2c3d2fc7;box-shadow:var(--shadow)}.storage-card{margin-top:auto;padding:1rem}.storage-card p,.topbar p,.record-card p,.adapter-list p{margin:0;color:var(--muted);line-height:1.5}.status-line{display:flex;align-items:center;gap:.5rem;margin-bottom:.45rem;color:var(--moss-deep)}.workspace{min-width:0;padding:max(1.4rem,env(safe-area-inset-top)) max(1.2rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1.2rem,env(safe-area-inset-left))}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;max-width:1120px;margin:0 auto 1.1rem}.topbar h2{display:flex;align-items:center;gap:.6rem;font-family:var(--font-serif);font-size:clamp(2rem,5vw,4.4rem);line-height:.98}.topbar-actions{display:flex;gap:.5rem}.utility-menu-wrap{position:relative}.utility-menu{position:absolute;top:calc(100% + .45rem);right:0;z-index:30;display:grid;gap:.15rem;width:min(240px,calc(100vw - 2rem));padding:.35rem;border:1px solid rgba(58,78,61,.22);border-radius:var(--radius-sm);background:#2c3d2ffa;box-shadow:0 18px 42px #00000047}.utility-menu button{width:100%;min-height:40px;padding:.45rem .65rem;border:0;border-radius:calc(var(--radius-sm) - 2px);background:transparent;color:var(--ink);font-weight:750;text-align:left}.utility-menu button:hover,.utility-menu button:focus-visible{background:#6f846738}.utility-menu-heading{margin:.15rem .45rem .25rem;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.utility-menu-section{display:flex!important;align-items:center;gap:.55rem}.utility-menu-section.active{background:#6f846747;color:var(--moss-deep)}.utility-menu-section svg{flex-shrink:0;color:var(--moss-deep)}.utility-menu-divider{margin:.35rem .25rem;border:0;border-top:1px solid rgba(58,78,61,.32)}.date-input-wrap{display:flex;align-items:stretch;gap:.4rem}.date-input-wrap>input[type=text]{flex:1 1 auto;min-width:0}.date-picker-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;border:1px solid rgba(58,78,61,.35);border-radius:var(--radius-sm);background:#374b3a8c;color:var(--ink);cursor:pointer}.date-picker-button:hover{background:#6f846752}.date-picker-button input[type=date]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;color:transparent;opacity:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.topbar-title,.topbar h2{min-width:0}.topbar h2 span{min-width:0;overflow-wrap:anywhere}.icon-button{width:44px;height:44px;background:#2c3d2fb8;color:var(--ink)}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;max-width:1120px;margin:0 auto 1rem}.quick-grid article{display:grid;grid-template-columns:auto 1fr;gap:.15rem .65rem;align-items:center;padding:.95rem;box-shadow:none}.quick-grid svg{grid-row:span 2;color:var(--clay)}.quick-grid strong{line-height:1}.quick-grid span{color:var(--muted);font-size:.9rem}.content-grid{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(320px,1.35fr);gap:1rem;max-width:1120px;margin:0 auto}.panel{min-width:0;padding:1rem}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.panel-heading h3{font-size:1.1rem}.compose-panel{align-self:start}.compose-panel label{display:grid;gap:.45rem;margin-bottom:.8rem;color:var(--muted);font-size:.9rem;font-weight:750}.primary-button,.secondary-button{min-width:0;min-height:46px;padding:0 1rem;font-weight:800}.primary-button{width:100%;background:var(--moss);color:#fff}.primary-button.danger{background:#b85c3a;border-color:#9e4a2c}.sync-panel-divider{border:none;border-top:1px solid rgba(255,255,255,.08);margin:1rem 0 .5rem}.secondary-button{width:100%;border-color:#6f846759;background:#374b3a5c;color:var(--moss-deep)}.list-panel{min-height:420px}.soft-pill{display:inline-grid;min-width:34px;height:30px;place-items:center;border-radius:999px;background:#d8b26e3d;color:#c9a666;font-weight:850}.record-list,.adapter-list{display:grid;gap:.7rem}.record-card{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border:1px solid rgba(58,78,61,.14);border-radius:var(--radius-sm);background:#374b3a70;padding:.9rem}.record-card span{display:block;margin-bottom:.25rem;color:var(--clay);font-size:.72rem;font-weight:850;text-transform:uppercase}.record-card h4{font-size:1rem}.record-card time{color:var(--muted);font-size:.82rem;white-space:nowrap}.sync-panel{grid-column:1 / -1}.adapter-list{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:1rem}.adapter-list article{border:1px solid rgba(58,78,61,.14);border-radius:var(--radius-sm);padding:.8rem;background:#374b3a57}.adapter-list strong,.adapter-list span{display:block}.workspace-body{max-width:1120px;margin:0 auto;min-width:0}.area-helper{margin:0 0 1rem;color:var(--muted)}.muted{color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:#000000b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:1rem}.modal{max-width:720px;width:100%;max-height:90vh;overflow:auto}.about-panel{max-width:520px}.backup-reminder-panel{max-width:560px}.about-panel p,.backup-reminder-panel p{margin:0 0 .75rem;color:var(--muted);line-height:1.55}.about-panel a,.backup-reminder-panel a{color:var(--moss-deep);font-weight:800}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.35rem;flex-wrap:wrap}.ghost-button{display:inline-flex;align-items:center;gap:.4rem;min-width:0;min-height:38px;padding:0 .7rem;border:1px solid rgba(58,78,61,.22);border-radius:var(--radius-sm);background:#374b3a66;color:var(--ink);font-weight:700}.ghost-button:hover{background:#374b3ab3}.ghost-button.danger{color:#d48870;border-color:#c9795b66}.ghost-button.icon-only{min-height:32px;padding:0 .4rem}.ghost-button.compact{min-height:32px;padding:0 .55rem;font-size:.82rem}.primary-button.compact{width:auto;min-height:38px;padding:0 .85rem;font-size:.9rem}.kitchen-list{display:grid;gap:1rem}.kitchen-list-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;justify-content:space-between;min-width:0}.toolbar-right{display:flex;align-items:center;gap:.45rem;flex-shrink:0;max-width:100%;min-width:0}.action-menu-wrap{position:relative}.action-menu{position:absolute;top:calc(100% + .35rem);right:0;z-index:35;display:grid;gap:.15rem;width:min(230px,calc(100vw - 2rem));padding:.35rem;border:1px solid rgba(58,78,61,.22);border-radius:var(--radius-sm);background:#2c3d2ffa;box-shadow:0 18px 42px #00000047}.action-menu button{display:inline-flex;align-items:center;gap:.45rem;width:100%;min-height:40px;padding:.45rem .65rem;border:0;border-radius:calc(var(--radius-sm) - 2px);background:transparent;color:var(--ink);font-weight:750;text-align:left}.action-menu button:hover,.action-menu button:focus-visible{background:#6f846738}.selection-toolbar .action-menu,.detail-actions .action-menu{left:0;right:auto}.selection-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:-.35rem}.selection-count{color:var(--muted);font-size:.84rem;font-weight:700}.sort-select{width:auto;padding:.45rem .65rem;font-size:.85rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:#2c3d2fb3;color:var(--ink);cursor:pointer}.recipe-filters{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:-.35rem}.filter-chip{display:inline-flex;align-items:center;padding:.28rem .75rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font-size:.8rem;font-weight:650;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.filter-chip:hover{background:#2c3d2f99;color:var(--ink)}.filter-chip.active{background:var(--moss);border-color:var(--moss);color:#fff}.recipe-course-badge{display:inline-block;width:fit-content;padding:.15rem .5rem;border-radius:999px;background:#a8c19e2e;color:var(--moss-deep);font-size:.7rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.search-field{display:flex;align-items:center;gap:.5rem;flex:1 1 240px;min-width:0;padding:0 .7rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#374b3a9e;color:var(--muted)}.search-field input{min-width:0;border:0;background:transparent;padding:.65rem 0}.search-field input:focus{box-shadow:none}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.85rem}.recipe-card{display:grid;gap:.55rem;align-content:start;border:1px solid rgba(58,78,61,.16);border-radius:var(--radius-md);padding:1rem;background:#2c3d2fd9;color:var(--ink);text-align:left;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;box-shadow:0 6px 18px #0000000d}.recipe-card:hover,.recipe-card:focus-visible{transform:translateY(-2px);box-shadow:0 12px 28px #0000001a;outline:none}.recipe-card.selected,.meal-list-item.selected,.shopping-item.selected,.pantry-chip.selected{border-color:var(--moss);box-shadow:0 0 0 1px #7a947073}.card-select{display:inline-flex;align-items:center;gap:.35rem;width:fit-content;color:var(--muted);font-size:.78rem;font-weight:700}.card-select input{width:auto;accent-color:var(--moss)}.card-action-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.2rem}.recipe-card h3{font-family:var(--font-serif);font-size:1.25rem;color:var(--ink);margin:0}.recipe-card p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.4}.recipe-meta{display:flex;flex-wrap:wrap;gap:.7rem;color:var(--muted);font-size:.82rem}.recipe-meta span{display:inline-flex;align-items:center;gap:.3rem}.tag-row{display:flex;flex-wrap:wrap;gap:.35rem}.tag{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;border-radius:999px;background:#7ea4a12e;color:#7ec5c2;font-size:.75rem;font-weight:700}.tag.removable{background:#d8b26e40;color:#c9a666}.tag-remove{display:inline-grid;place-items:center;width:16px;height:16px;border:0;background:transparent;color:inherit;padding:0;cursor:pointer}.empty-state{display:grid;gap:.5rem;padding:3rem 1.5rem;text-align:center;border:1px dashed rgba(58,78,61,.3);border-radius:var(--radius-md);background:#2c3d2f80}.empty-state h3{font-family:var(--font-serif);margin:0}.empty-state .primary-button{width:fit-content;justify-self:center;margin-top:.5rem}.detail-toolbar{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:1rem}.detail-actions{display:flex;gap:.4rem}.recipe-detail .detail-header{margin-bottom:1.5rem}.recipe-detail h1{font-family:var(--font-serif);font-size:clamp(1.8rem,4vw,2.6rem);margin:0 0 .4rem}.recipe-detail .lede{margin:0 0 .7rem;color:var(--muted);font-size:1.05rem;line-height:1.5}.detail-body{display:grid;gap:1.5rem;max-width:720px}.detail-body h2{font-family:var(--font-serif);font-size:1.35rem;margin:0 0 .6rem;color:var(--moss-deep)}.ingredient-list,.step-list{margin:0;padding-left:1.2rem;display:grid;gap:.4rem;line-height:1.5}.ingredient-list li,.step-list li{min-width:0;overflow-wrap:anywhere}.step-list li::marker{color:var(--clay);font-weight:700}.recipe-notes{margin:0;line-height:1.55;color:var(--ink);min-width:0;overflow-wrap:anywhere}.scale-panel{border:1px solid rgba(58,78,61,.16);border-radius:var(--radius-md);background:#2c3d2fc7;padding:.85rem}.scale-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.scale-panel h2{margin-bottom:.2rem}.scale-panel p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.4}.serving-stepper{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;flex-shrink:0}.serving-stepper-label{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.serving-stepper-controls{display:flex;align-items:center;gap:.3rem;flex-wrap:nowrap}.stepper-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#2c3d2f99;color:var(--ink);font-size:1.1rem;font-weight:700;cursor:pointer;transition:background .12s;flex-shrink:0}.stepper-btn:hover{background:#374b3ad9}.serving-stepper-input{width:62px;padding:.45rem .4rem;text-align:center}.scaled-ingredient-list,.step-list{gap:.5rem}.scaled-line,.manual-scale-check{border-radius:var(--radius-sm);padding:.45rem .55rem}.scaled-line.did-scale{background:#6f84671f}.scaled-line.check-scale,.manual-scale-check{background:#d8b26e2e}.scale-badge{display:inline-flex;width:fit-content;margin-left:.45rem;padding:.12rem .45rem;border-radius:999px;font-size:.72rem;font-weight:800;vertical-align:middle}.scale-badge.did-scale{background:#6f84672e;color:var(--moss-deep)}.scale-badge.check-scale{background:#d8b26e52;color:#c9a253}.recipe-form{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;max-width:760px;min-width:0}.recipe-form>*{min-width:0}.recipe-form fieldset{border:1px solid rgba(58,78,61,.16);border-radius:var(--radius-md);background:#2c3d2fc7;padding:1rem;display:grid;gap:.7rem}.recipe-form legend{padding:0 .4rem;color:var(--moss-deep);font-family:var(--font-serif);font-weight:600}.recipe-form label{display:grid;gap:.35rem;color:var(--muted);font-size:.85rem;font-weight:700}.recipe-form .row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.form-field-label{display:block;margin-bottom:.4rem;color:var(--muted);font-size:.85rem;font-weight:700}.course-picker{display:flex;flex-wrap:wrap;gap:.35rem}.course-chip{padding:.3rem .8rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font-size:.82rem;font-weight:650;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.course-chip:hover{background:#2c3d2f99;color:var(--ink)}.course-chip.active{background:var(--moss);border-color:var(--moss);color:#fff}.ingredient-rows,.step-rows{display:grid;gap:.5rem}.ingredient-row{display:grid;grid-template-columns:70px 90px 1fr auto;gap:.4rem;align-items:center}.ingredient-row input,.ingredient-row select{padding:.55rem .65rem}.step-row{display:grid;grid-template-columns:28px 1fr auto;gap:.5rem;align-items:start}.step-number{display:grid;place-items:center;width:28px;height:28px;margin-top:.5rem;border-radius:999px;background:var(--clay);color:#fff;font-weight:800;font-size:.85rem}.tag-input{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:.45rem .55rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#374b3a9e}.tag-input input{border:0;flex:1 1 120px;min-width:120px;padding:.35rem .25rem}.tag-input input:focus{box-shadow:none}@media(max-width:640px){.kitchen-list-toolbar{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.toolbar-right{width:100%;flex-shrink:1;flex-wrap:wrap;align-items:stretch}.toolbar-right>.sort-select{flex:1 1 100%}.toolbar-right>.ghost-button,.toolbar-right>.primary-button.compact,.toolbar-right>.action-menu-wrap{flex:1 1 0}.toolbar-right>.ghost-button,.toolbar-right>.primary-button.compact,.toolbar-right>.action-menu-wrap>.primary-button.compact{width:100%;justify-content:center;padding-right:.55rem;padding-left:.55rem;white-space:nowrap}.recipe-grid{grid-template-columns:minmax(0,1fr)}.selection-toolbar{align-items:stretch}.selection-toolbar>button{flex:1 1 auto}.detail-toolbar{flex-direction:column;align-items:stretch}.detail-actions{width:100%;flex-wrap:wrap}.detail-actions>.action-menu-wrap{flex:1 1 calc(50% - .25rem)}.detail-actions>.action-menu-wrap>.ghost-button{width:100%;justify-content:center}.selection-toolbar>.action-menu-wrap{flex:1 1 auto}.selection-toolbar>.action-menu-wrap>button{width:100%;justify-content:center}.detail-actions .ghost-button{flex:1 1 calc(50% - .25rem);justify-content:center}.empty-state .primary-button{max-width:100%;white-space:normal}.ingredient-row{grid-template-columns:minmax(0,1fr) minmax(86px,.75fr) auto;align-items:start}.ingredient-row input[aria-label=Ingredient]{grid-column:1 / -1}.ingredient-row .ghost-button.icon-only{min-height:42px}.recipe-form .row{grid-template-columns:1fr}.import-actions{flex-wrap:wrap}.import-actions>button{flex:1 1 140px}.shopping-add-row,.shopping-list-toolbar,.pantry-add-row{flex-wrap:wrap}.shopping-list-toolbar>.ghost-button{flex:1 1 140px;justify-content:center}.shopping-add-row input,.pantry-add-row input{flex:1 1 180px;min-width:0}.pantry-header{flex-direction:column}.pantry-header .primary-button.compact{width:100%}.calendar-view-switch{width:100%;overflow-x:auto}.view-tab{flex:1 1 0;justify-content:center;min-width:0;padding-right:.45rem;padding-left:.45rem}}.adapter-list span{width:fit-content;margin:.35rem 0;border-radius:999px;background:#7ea4a133;color:#7ec5c2;padding:.2rem .5rem;font-size:.75rem;font-weight:850}@media(max-width:820px){.app-shell{grid-template-columns:minmax(0,1fr);padding-bottom:calc(70px + env(safe-area-inset-bottom))}.app-shell.no-subnav{padding-bottom:0}.sidebar{position:fixed;right:0;bottom:0;left:0;z-index:10;min-height:0;padding:.45rem max(.5rem,env(safe-area-inset-right)) max(.45rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));border-top:1px solid rgba(58,78,61,.35);border-right:0;background:#161e18d9;backdrop-filter:saturate(160%) blur(28px);-webkit-backdrop-filter:saturate(160%) blur(28px);box-shadow:0 -8px 24px #00000059;gap:.25rem}.brand,.storage-card{display:none}.nav-list{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:.1rem}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;max-width:none;min-width:0;min-height:56px;gap:.2rem;padding:.35rem .2rem;border-radius:10px;background:transparent;color:var(--muted);font-size:.66rem;font-weight:700;letter-spacing:0;transition:color .15s ease,background .15s ease,transform .12s ease}.nav-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.nav-item:active{transform:scale(.96)}.nav-item svg{transition:transform .15s ease}.nav-item.active{background:#6f84672e;color:var(--moss-deep);box-shadow:none}.nav-item.active svg{transform:scale(1.08)}.workspace{padding:max(.75rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) 1rem max(1rem,env(safe-area-inset-left))}.topbar{margin-bottom:.65rem;align-items:center}.topbar .eyebrow{display:none}.topbar h2{font-family:inherit;font-size:1.2rem;font-weight:750;line-height:1.2;gap:.35rem}.topbar h2 svg{width:18px!important;height:18px!important}.topbar-actions{display:flex;gap:.3rem}.topbar-actions .icon-button{width:38px;height:38px}.mobile-hidden{display:none!important}.modal-backdrop{align-items:flex-end;padding:0}.modal{max-width:100%;max-height:92vh;border-radius:var(--radius-md) var(--radius-md) 0 0;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.quick-grid,.content-grid,.adapter-list{grid-template-columns:1fr}.calendar-area{height:auto;overflow:visible}.calendar-toolbar{flex-direction:column;align-items:stretch;gap:.5rem}.calendar-nav{justify-content:space-between}.calendar-heading{min-width:0}.calendar-view-switch{align-self:flex-start}.week-view-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-gutter:stable;padding-bottom:.45rem}.week-view{width:680px;min-width:680px;min-height:260px;border-radius:var(--radius-md)}.month-cell{min-height:56px;padding:.2rem}.month-entry-chip{font-size:.64rem;padding:1px 3px}.month-cell-date{font-size:.72rem;width:20px;height:20px}}.kitchen-area{display:grid;gap:1rem}.kitchen-content{min-height:400px;min-width:0}.food-area{display:grid;gap:1rem;min-width:0}.food-content{min-height:400px;min-width:0}.coming-soon-card{display:grid;gap:.75rem;justify-items:center;text-align:center;max-width:520px;margin:2rem auto;padding:2rem 1.25rem;border:1px solid rgba(58,78,61,.16);border-radius:var(--radius-md);background:#2c3d2fc7;box-shadow:var(--shadow)}.coming-soon-icon{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--moss);color:var(--paper-soft)}.coming-soon-card h3{margin:0;font-family:var(--font-serif);font-size:1.6rem}.coming-soon-card .coming-soon-body{margin:0;color:var(--muted);line-height:1.55}.outings-area{display:grid;gap:1rem;min-width:0}.outing-section{display:grid;gap:.85rem;min-width:0}.outing-section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.outing-section-header h3{margin:.15rem 0 0;font-family:var(--font-serif);font-size:1.35rem}.outing-bookmark-list,.outing-idea-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.outing-bookmark-row,.outing-idea-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.7rem .85rem;border:1px solid rgba(58,78,61,.16);border-radius:var(--radius-sm);background:#374b3a52;min-width:0}.outing-bookmark-link{display:grid;gap:.15rem;flex:1 1 auto;min-width:0;color:var(--ink);text-decoration:none}.outing-bookmark-link strong{font-size:1rem;min-width:0;overflow-wrap:anywhere}.outing-bookmark-host{color:var(--muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outing-bookmark-notes{color:var(--muted);font-size:.85rem;line-height:1.4;min-width:0;overflow-wrap:anywhere}.outing-bookmark-actions,.outing-idea-actions{display:flex;gap:.25rem;align-items:center;flex-shrink:0}.outing-idea-body{flex:1 1 auto;min-width:0;display:grid;gap:.25rem}.outing-idea-body strong{font-size:1rem;min-width:0;overflow-wrap:anywhere}.outing-idea-body p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.4;min-width:0;overflow-wrap:anywhere}.outing-events-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.view-tabs{display:inline-flex;border:1px solid rgba(58,78,61,.22);border-radius:var(--radius-sm);overflow:hidden}.view-tab{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .75rem;border:0;background:transparent;color:var(--muted);font-size:.85rem;font-weight:700;cursor:pointer}.view-tab:hover{background:#6f84672e}.view-tab.active{background:var(--moss);color:#fff}.outing-event-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.outing-event-list ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.outing-event-date{margin:0 0 .35rem;color:var(--moss-deep);font-size:.85rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.outing-event-date.today{color:var(--ink)}.outing-event-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.7rem .85rem;border:1px solid rgba(58,78,61,.16);border-radius:var(--radius-sm);background:#374b3a52;min-width:0}.outing-event-body{flex:1 1 auto;min-width:0;display:grid;gap:.2rem}.outing-event-time{color:var(--moss-deep);font-size:.78rem;font-weight:800;letter-spacing:.02em}.outing-event-body strong{font-size:1rem;min-width:0;overflow-wrap:anywhere}.outing-event-body p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.4;min-width:0;overflow-wrap:anywhere}.outing-event-actions{display:flex;gap:.25rem;align-items:center;flex-shrink:0}.outing-month{display:grid;gap:.65rem}.outing-month-toolbar{display:flex;align-items:center;justify-content:center;gap:.5rem}.outing-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;background:#3a4e3d24;border-radius:var(--radius-sm);overflow:hidden}.outing-month-dow{padding:.4rem 0;text-align:center;font-size:.75rem;font-weight:800;color:var(--muted);background:#2c3d2f9e}.outing-month-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.2rem;min-height:56px;padding:.3rem .2rem;border:0;background:#2c3d2f9e;color:var(--ink);font-size:.85rem;cursor:pointer}.outing-month-cell.out-of-month{color:#ffffff38;background:#2c3d2f5c}.outing-month-cell.today .outing-month-num{background:var(--moss);color:#fff;border-radius:999px;width:24px;height:24px;display:grid;place-items:center}.outing-month-cell.has-events:not(.today){background:#6f84672e}.outing-month-cell:hover{background:#6f846747}.outing-month-num{font-weight:700}.outing-month-dots{display:inline-flex;align-items:center;gap:2px}.outing-month-dot{width:5px;height:5px;border-radius:50%;background:var(--moss-deep)}.outing-month-more{font-size:.7rem;font-weight:700;color:var(--moss-deep);margin-left:2px}.outing-idea-row{cursor:pointer}.outing-idea-row.selected{border-color:var(--moss);background:#6f846757;box-shadow:inset 0 0 0 1px #6f84678c}.outing-idea-row.scheduled{background:#374b3a38;border-style:dashed}.outing-idea-section-heading{display:flex;align-items:center;gap:.4rem;margin:1.1rem 0 .45rem;font-size:.85rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--moss-deep)}.outing-idea-scheduled-meta{display:inline-flex!important;align-items:center;gap:.3rem;margin:.1rem 0 0!important;font-size:.78rem!important;font-weight:700;color:var(--moss-deep)!important}.outing-week{display:grid;grid-template-columns:1fr;gap:.5rem}@media(min-width:720px){.outing-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem}}.outing-week-day{display:flex;flex-direction:column;gap:.35rem;padding:.5rem;border:1px solid rgba(58,78,61,.16);border-radius:var(--radius-sm);background:#2c3d2f85;min-width:0}.outing-week-day.today{border-color:var(--moss);background:#6f84673d}.outing-week-day-header{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.2rem .25rem;border:0;background:transparent;color:var(--ink);cursor:pointer;border-radius:var(--radius-sm)}.outing-week-day-header:hover{background:#6f846733}.outing-week-day-label{font-size:.82rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.outing-week-day-count{font-size:.78rem;color:var(--muted);font-weight:700}.outing-week-day-events{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}.outing-week-event{display:flex;align-items:baseline;gap:.4rem;width:100%;padding:.4rem .55rem;border:1px solid rgba(58,78,61,.18);border-radius:var(--radius-sm);background:#374b3a80;color:var(--ink);text-align:left;cursor:pointer;font-size:.85rem}.outing-week-event:hover{background:#6f846747}.outing-week-event-time{font-size:.72rem;font-weight:800;color:var(--moss-deep);flex-shrink:0}.outing-week-event-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.outing-week-day-empty{margin:0;font-size:.78rem;padding:0 .25rem}.outing-day-view{display:grid;gap:.7rem}.outing-day-view-actions{display:flex;justify-content:flex-end}.outing-day-detail-list{list-style:none;margin:0 0 .85rem;padding:0;display:grid;gap:.5rem;max-height:50vh;overflow-y:auto}.ghost-button.success{color:var(--moss-deep);border-color:#6f846766}.picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#000000b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:1rem}.picker-panel{background:var(--paper-soft);border:1px solid rgba(58,78,61,.2);border-radius:var(--radius-md);box-shadow:var(--shadow);width:100%;max-width:460px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.picker-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .5rem}.picker-header h3{margin:0;font-family:var(--font-serif);font-size:1.2rem}.picker-recipe-name{margin:0 1rem .5rem;color:var(--muted);font-size:.9rem}.picker-controls{display:flex;gap:.4rem;padding:0 1rem .6rem}.picker-list{list-style:none;margin:0;padding:0 1rem;overflow-y:auto;flex:1;border-top:1px solid rgba(58,78,61,.12);border-bottom:1px solid rgba(58,78,61,.12)}.picker-item{display:flex;align-items:center;gap:.65rem;padding:.6rem 0;border-bottom:1px solid rgba(58,78,61,.08);cursor:pointer}.picker-item input[type=checkbox]{width:auto;flex-shrink:0;accent-color:var(--moss)}.picker-footer{padding:.85rem 1rem}.picker-footer .primary-button{font-size:.95rem}.shopping-list{display:grid;gap:1.2rem}.shopping-list-toolbar{display:flex;align-items:center;gap:.65rem}.shopping-add-row{display:flex;gap:.5rem;align-items:center;flex:1;min-width:0}.shopping-add-row input{flex:1}.shopping-group{display:grid;gap:.3rem}.shopping-group-header{display:flex;align-items:center;justify-content:space-between}.shopping-group-label{margin:0;color:var(--moss-deep);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.shopping-items{list-style:none;margin:0;padding:0;border:1px solid rgba(58,78,61,.14);border-radius:var(--radius-sm);background:#374b3a80;overflow:hidden}.shopping-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.7rem .85rem;border-bottom:1px solid rgba(58,78,61,.08)}.shopping-item:last-child{border-bottom:0}.shopping-item.checked .shopping-item-name{text-decoration:line-through;color:var(--muted)}.shopping-item-check{display:flex;align-items:center;cursor:pointer}.shopping-item-check input[type=checkbox]{width:auto;flex-shrink:0;accent-color:var(--moss)}.shopping-item-main{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.65rem;min-width:0}.shopping-quantity-controls{display:flex;align-items:center;gap:.35rem}.shopping-amount-input{width:64px;padding:.38rem .5rem}.shopping-unit-select{width:88px;padding:.38rem .45rem}.shopping-item-content{display:grid;min-width:0;gap:.15rem}.shopping-item-name{overflow-wrap:anywhere}.item-note{color:var(--muted);font-size:.82rem}.pantry-note{width:fit-content;border-radius:999px;background:#6f846724;color:var(--moss-deep);padding:.12rem .45rem;font-size:.78rem;font-weight:750}.checked-group{opacity:.75}@media(max-width:640px){.shopping-item-main{grid-template-columns:1fr}.shopping-quantity-controls{order:2}}.pantry-view{display:grid;gap:1.2rem}.pantry-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.pantry-title{font-family:var(--font-serif);font-size:1.3rem;margin:0 0 .25rem}.pantry-add-row{display:flex;gap:.5rem;align-items:center}.pantry-add-row input{flex:1}.pantry-chips{display:flex;flex-wrap:wrap;gap:.45rem}.pantry-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:var(--radius-sm);background:#6f846726;color:var(--moss-deep);font-size:.85rem;font-weight:600}.pantry-chip-name{min-width:0;overflow-wrap:anywhere}.pantry-quantity-controls{display:inline-flex;align-items:center;gap:.3rem}.pantry-amount-input{width:58px;padding:.32rem .45rem}.pantry-unit-select{width:82px;padding:.32rem .4rem}.match-results{display:grid;gap:.75rem}.match-results-title{font-family:var(--font-serif);font-size:1.2rem;margin:0}.match-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.match-item-main{width:100%;text-align:left;padding:.85rem 1rem;border:1px solid rgba(58,78,61,.16);border-radius:var(--radius-sm);background:#2c3d2fd9;cursor:pointer;display:grid;gap:.3rem;transition:transform .1s ease,box-shadow .1s ease}.match-item-main:hover{transform:translateY(-1px);box-shadow:0 6px 16px #00000014}.match-item-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.match-item-title{font-weight:700;font-size:1rem}.match-item-detail{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.85rem}.missing-list{color:var(--clay)}.match-badge{flex-shrink:0;display:inline-grid;place-items:center;min-width:48px;padding:.15rem .5rem;border-radius:999px;font-size:.8rem;font-weight:800}.match-100{background:#6f846733;color:var(--moss-deep)}.match-75{background:#d8b26e40;color:#c9a253}.match-50{background:#c9795b2e;color:#c97d62}.match-low{background:#3a4e3d1f;color:var(--muted)}.import-preview{display:grid;gap:.7rem;padding:.5rem 0 .25rem}.import-preview h4{margin:0;font-family:var(--font-serif);font-size:1.2rem}.share-cal-fieldset{display:flex;flex-wrap:wrap;gap:.85rem;margin:0;padding:.55rem .8rem .65rem;border:1px solid rgba(58,78,61,.22);border-radius:var(--radius-sm);background:#2c3d2f66}.share-cal-fieldset legend{padding:0 .3rem;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--moss-deep)}.share-cal-checkbox{display:inline-flex;align-items:center;gap:.4rem;font-size:.95rem;font-weight:600;cursor:pointer}.share-cal-checkbox input[type=checkbox]{width:auto;margin:0;accent-color:var(--moss)}.share-cal-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}@media(max-width:480px){.share-cal-dates{grid-template-columns:minmax(0,1fr)}}.share-cal-error{margin:0;color:var(--clay);font-size:.85rem;font-weight:700}.share-cal-targets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.share-cal-targets>.primary-button{width:100%;justify-content:center}@media(max-width:380px){.share-cal-targets{grid-template-columns:minmax(0,1fr)}}.import-fields,.import-source-block{display:grid;gap:.75rem}.import-source-block{padding:.8rem;border:1px solid rgba(58,78,61,.14);border-radius:var(--radius-sm);background:#374b3a5c}.import-source-block label{display:grid;gap:.35rem;color:var(--muted);font-size:.85rem;font-weight:700}.import-url-row{display:flex;gap:.5rem}.import-url-row input{flex:1}.diff-list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.diff-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .75rem;border:1px solid rgba(58,78,61,.14);border-radius:var(--radius-sm);background:#374b3a80}.diff-label{font-weight:700}.diff-counts{display:inline-flex;flex-wrap:wrap;gap:.45rem;font-size:.85rem}.diff-add{color:var(--moss-deep);font-weight:700}.diff-update{color:#c9a253;font-weight:700}.diff-skip{color:var(--muted)}.import-actions{display:flex;gap:.5rem;margin-top:.25rem}.import-tip{margin:0 0 .25rem;padding:.55rem .75rem;border-left:3px solid var(--moss);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:#6f84671f;color:var(--muted);font-size:.82rem;line-height:1.45}.import-tip strong{color:var(--moss-deep);font-weight:800}.import-tip em{font-style:normal;font-weight:700;color:var(--ink)}.calendar-area{display:flex;flex-direction:column;gap:0}.week-view-scroll{overflow:visible}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 0 .75rem;flex-shrink:0;flex-wrap:wrap}.calendar-nav{display:flex;align-items:center;gap:.25rem}.calendar-heading{font-weight:650;font-size:1rem;min-width:13ch;text-align:center;color:var(--ink)}.calendar-view-switch{display:flex;gap:.2rem;background:var(--paper-deep);border-radius:10px;padding:3px}.view-tab{display:flex;align-items:center;gap:.3rem;padding:.3rem .65rem;border:none;border-radius:7px;background:transparent;color:var(--muted);font-size:.8rem;font-weight:550;cursor:pointer;transition:background .12s,color .12s}.view-tab:hover{background:#374b3a8c;color:var(--ink)}.view-tab.active{background:var(--paper-soft);color:var(--ink);box-shadow:0 1px 4px #0000004d}.slot-icon{display:flex;align-items:center;opacity:.65}.week-view{flex:1;overflow:auto;display:grid;grid-template-columns:72px repeat(7,minmax(0,1fr));grid-template-rows:auto repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;min-height:320px}.week-header-row{display:contents}.week-slot-label-col{background:var(--paper-soft)}.week-day-header{background:var(--paper-soft);color:var(--muted);font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.03em;padding:.45rem .25rem;text-align:center;border:none;cursor:pointer;transition:background .1s,color .1s}.week-day-header:hover{background:var(--paper-deep);color:var(--ink)}.week-day-header.today{color:var(--moss-deep);font-weight:750}.week-view.selecting-dates .week-day-header,.week-view.selecting-dates .week-cell,.month-cell.selected-day,.day-slot-card.selected-day{cursor:pointer}.week-day-header.selected-day,.week-cell.selected-day,.month-cell.selected-day,.day-slot-card.selected-day{outline:2px solid var(--moss);outline-offset:-2px;background:#7a94703d}.week-cell.selected-day.has-entry{background:#7a947047}.week-slot-row{display:contents}.week-slot-label{background:var(--paper-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.4rem .2rem}.slot-name{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:center}.week-cell{background:var(--paper-soft);border:none;cursor:pointer;padding:.35rem .3rem;display:flex;flex-direction:column;gap:.2rem;align-items:stretch;text-align:left;transition:background .1s;min-height:56px}.week-cell:hover{background:var(--paper-deep)}.week-cell.today{background:#6f846714}.week-cell.today:hover{background:#6f846726}.week-cell.has-entry{background:#6f846712}.week-cell-recipe{display:block;font-size:.72rem;line-height:1.3;color:var(--ink);background:#6f846726;border-radius:4px;padding:1px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-cell-empty{color:var(--line);font-size:1rem;align-self:center;margin:auto;display:block;line-height:1}.month-view{flex:1;overflow:auto;display:flex;flex-direction:column;gap:0}.month-day-names{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;padding-bottom:.35rem}.month-day-name{font-size:.7rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:center;padding:.2rem}.month-grid{flex:1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.month-cell{background:var(--paper-soft);padding:.3rem;display:flex;flex-direction:column;gap:.2rem;min-height:72px}.month-cell.out-of-month{background:var(--paper);opacity:.55}.month-cell.today .month-cell-date{background:var(--moss);color:#fff}.month-cell.selected-day .month-cell-date{background:var(--moss-deep);color:var(--paper-soft)}.month-cell-date{font-size:.78rem;font-weight:600;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:transparent;color:var(--ink);cursor:pointer;flex-shrink:0}.month-cell-date:hover{background:var(--paper-deep)}.month-cell-entries{display:flex;flex-direction:column;gap:.15rem}.month-entry-chip{display:flex;align-items:center;gap:.25rem;font-size:.7rem;color:var(--ink);background:#6f846724;border:none;border-radius:4px;padding:2px 5px;cursor:pointer;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%;transition:background .1s}.month-entry-chip:hover{background:#6f846742}.month-entry-chip.muted{background:var(--paper-deep);color:var(--muted)}.day-view{flex:1;overflow:auto}.day-view-slots{display:flex;flex-direction:column;gap:.75rem}.day-slot-card{display:flex;flex-direction:column;gap:.4rem;padding:1rem;background:var(--paper-soft);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color .12s,box-shadow .12s;width:100%}.day-slot-card:hover{border-color:var(--moss);box-shadow:0 2px 10px #6f84671f}.day-slot-card.has-entry{border-color:#6f846766;background:#6f84670d}.day-slot-header{display:flex;align-items:center;gap:.45rem}.day-slot-header strong{font-size:.85rem;font-weight:650;color:var(--ink)}.day-slot-recipes{margin:0;padding:0 0 0 1rem;font-size:.88rem;color:var(--ink);list-style:disc}.day-slot-empty{font-size:.83rem;margin:0}.slot-breakfast .week-slot-label{border-left:3px solid var(--honey)}.slot-lunch .week-slot-label{border-left:3px solid var(--dew)}.slot-dinner .week-slot-label{border-left:3px solid var(--clay)}.slot-snack .week-slot-label{border-left:3px solid var(--moss-deep)}.slot-breakfast .week-slot-label .slot-name{color:var(--honey)}.slot-lunch .week-slot-label .slot-name{color:var(--dew)}.slot-dinner .week-slot-label .slot-name{color:var(--clay)}.slot-snack .week-slot-label .slot-name{color:var(--moss-deep)}.week-cell-recipe.slot-breakfast{background:#c9a25338;color:var(--honey)}.week-cell-recipe.slot-lunch{background:#7ec5c238;color:var(--dew)}.week-cell-recipe.slot-dinner{background:#c97d6238;color:var(--clay)}.week-cell-recipe.slot-snack{background:#a8c19e38;color:var(--moss-deep)}.month-entry-chip.slot-breakfast{background:#c9a25340;color:var(--honey)}.month-entry-chip.slot-lunch{background:#7ec5c240;color:var(--dew)}.month-entry-chip.slot-dinner{background:#c97d6240;color:var(--clay)}.month-entry-chip.slot-snack{background:#a8c19e40;color:var(--moss-deep)}.month-entry-chip.slot-breakfast:hover{background:#c9a25361}.month-entry-chip.slot-lunch:hover{background:#7ec5c261}.month-entry-chip.slot-dinner:hover{background:#c97d6261}.month-entry-chip.slot-snack:hover{background:#a8c19e61}.day-slot-card.slot-breakfast{border-left:3px solid var(--honey)}.day-slot-card.slot-lunch{border-left:3px solid var(--dew)}.day-slot-card.slot-dinner{border-left:3px solid var(--clay)}.day-slot-card.slot-snack{border-left:3px solid var(--moss-deep)}.day-slot-card.slot-breakfast .day-slot-header strong{color:var(--honey)}.day-slot-card.slot-lunch .day-slot-header strong{color:var(--dew)}.day-slot-card.slot-dinner .day-slot-header strong{color:var(--clay)}.day-slot-card.slot-snack .day-slot-header strong{color:var(--moss-deep)}.day-slot-card.slot-breakfast.has-entry{background:#c9a25312;border-color:#c9a25373}.day-slot-card.slot-lunch.has-entry{background:#7ec5c212;border-color:#7ec5c273}.day-slot-card.slot-dinner.has-entry{background:#c97d6212;border-color:#c97d6273}.day-slot-card.slot-snack.has-entry{background:#a8c19e12;border-color:#a8c19e73}.day-slot-card.slot-breakfast:hover{border-color:var(--honey);box-shadow:0 2px 10px #c9a25326}.day-slot-card.slot-lunch:hover{border-color:var(--dew);box-shadow:0 2px 10px #7ec5c226}.day-slot-card.slot-dinner:hover{border-color:var(--clay);box-shadow:0 2px 10px #c97d6226}.day-slot-card.slot-snack:hover{border-color:var(--moss-deep);box-shadow:0 2px 10px #a8c19e26}.meal-slot-selected{display:flex;flex-wrap:wrap;gap:.4rem;padding:.5rem 0 .75rem}.meal-slot-chip{display:flex;align-items:center;gap:.3rem;background:#6f84672e;border-radius:20px;padding:.25rem .5rem .25rem .7rem;font-size:.82rem;color:var(--ink)}.meal-recipe-list{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-soft)}.meal-recipe-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .75rem;background:transparent;border:none;cursor:pointer;font-size:.88rem;color:var(--ink);text-align:left;transition:background .1s;border-bottom:1px solid var(--line)}.meal-recipe-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.meal-recipe-row:last-child{border-bottom:none}.meal-recipe-row:hover{background:var(--paper-deep)}.meal-recipe-row.selected{background:#6f84671f;font-weight:600}.calendar-add-to-list-bar{display:flex;align-items:center;gap:.6rem;padding:.6rem 0;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:.5rem}.calendar-slot-filter{display:flex;gap:.3rem;flex-wrap:wrap}.calendar-selection-copy{margin:0 0 .75rem}.calendar-selection-summary{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-bottom:.9rem;padding:.55rem .65rem;border:1px solid rgba(122,148,112,.22);border-radius:var(--radius-sm);background:#7a94701a}.calendar-selection-summary span{color:var(--muted);font-size:.86rem}.slot-filter-chip{padding:.25rem .6rem;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--muted);font-size:.78rem;cursor:pointer;transition:background .1s,color .1s,border-color .1s}.slot-filter-chip.active{background:var(--moss);color:#fff;border-color:var(--moss)}.meal-list{display:flex;flex-direction:column;gap:.5rem}.meal-list-item{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;width:100%;text-align:left;padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--radius-md);background:#2c3d2f99;cursor:pointer;transition:border-color .12s,background .12s}.meal-list-item:hover,.meal-list-item:focus-visible{border-color:var(--moss);background:#2c3d2fd9;outline:none}.meal-list-item-body{flex:1;min-width:0;display:grid;gap:.15rem}.meal-list-item-title{font-size:1rem;font-weight:650;color:var(--ink)}.meal-list-item-desc,.meal-list-item-recipes{margin:0;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-list-item-notes{margin:0;font-size:.78rem;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-card-actions{margin-left:auto}.meal-list-item-icon{color:var(--muted);flex-shrink:0}.meal-import-msg{margin:0;font-size:.85rem;color:var(--moss-deep)}.meal-form-selected-list{margin:0 0 .5rem;padding:0;list-style:none;display:flex;flex-direction:column;gap:3px}.meal-form-selected-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;background:var(--paper-deep);border-radius:var(--radius-sm)}.meal-form-order{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--moss);color:#fff;font-size:.7rem;font-weight:700;flex-shrink:0}.meal-form-recipe-name{flex:1;min-width:0;font-size:.88rem;color:var(--ink);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.meal-form-row-actions{display:flex;gap:.15rem;flex-shrink:0}.meal-detail-recipe-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:3px}.meal-detail-recipe-row{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .6rem;background:var(--paper-soft);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;color:var(--ink);text-align:left;transition:border-color .1s,background .1s}.meal-detail-recipe-row:hover{border-color:var(--moss);background:#6f84670f}.form-section{display:flex;flex-direction:column;gap:.4rem;margin-top:.25rem}.form-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--line)}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.65rem}.nutrition-cell{display:flex;flex-direction:column;gap:.3rem}.nutrition-cell>span{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.nutrition-input-wrap{position:relative;display:flex;align-items:center}.nutrition-input-wrap input{width:100%;padding-right:2.4rem}.nutrition-unit{position:absolute;right:.5rem;font-size:.7rem;color:var(--muted);pointer-events:none;font-weight:600}.nutrition-section h2{display:flex;align-items:baseline;gap:.5rem}.nutrition-per-serving{font-size:.7em;font-weight:400;color:var(--muted);text-transform:lowercase}.nutrition-display{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.5rem;margin-top:.6rem}.nutrition-stat{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.55rem .4rem;border:1px solid rgba(58,78,61,.18);border-radius:var(--radius-sm);background:#2c3d2f8c;text-align:center}.nutrition-stat-calories{background:#7a94702e;border-color:#7a947059;grid-column:span 2}.nutrition-value{font-size:1.2rem;font-weight:800;line-height:1;color:var(--ink)}.nutrition-stat-calories .nutrition-value{font-size:1.55rem;color:var(--moss-deep)}.nutrition-label{font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.nutrition-unit-label{font-size:.62rem;color:var(--muted);opacity:.7}.notes-section-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.notes-section-heading h2{margin:0}.notes-editor{display:flex;flex-direction:column;gap:.5rem}.notes-textarea{width:100%;resize:vertical;line-height:1.55}.notes-editor-actions{display:flex;gap:.5rem}.recipe-notes-empty{font-style:italic;font-size:.88rem;border:1px dashed rgba(58,78,61,.3);border-radius:var(--radius-sm);padding:.6rem .75rem;transition:border-color .15s,background .15s}.recipe-notes-empty:hover{border-color:var(--moss);background:#7a94700f}.walkthrough-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;pointer-events:none}.walkthrough-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0c120d70}.walkthrough-spotlight{position:absolute;border:2px solid rgba(235,244,221,.96);border-radius:var(--radius-md);box-shadow:0 0 0 6px #7a947047,0 18px 40px #0000003d;transition:top .16s ease,left .16s ease,width .16s ease,height .16s ease}.walkthrough-card{position:absolute;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));transform:translate(-50%);width:min(520px,calc(100vw - 2rem));display:grid;gap:.8rem;padding:1rem;border:1px solid rgba(235,244,221,.35);border-radius:var(--radius-md);background:#2c3d2ffa;box-shadow:0 22px 64px #00000047;color:var(--ink);pointer-events:auto}.walkthrough-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.walkthrough-card h2{margin:0;font-family:var(--font-serif);font-size:1.35rem;letter-spacing:0}.walkthrough-card p{margin:0;color:var(--muted);line-height:1.5}.walkthrough-progress{display:flex;gap:.3rem}.walkthrough-progress span{width:100%;height:.28rem;border-radius:999px;background:#ebf4dd38}.walkthrough-progress span.active{background:var(--moss)}.walkthrough-actions,.walkthrough-nav-actions{display:flex;align-items:center;gap:.5rem}.walkthrough-actions{justify-content:space-between}@media(max-width:560px){.walkthrough-card{width:calc(100vw - 1rem);padding:.85rem}.walkthrough-actions{align-items:stretch;flex-direction:column-reverse}.walkthrough-nav-actions{width:100%}.walkthrough-nav-actions>button{flex:1}}@media(max-width:820px){.calendar-area .week-view-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-gutter:stable;padding-bottom:.45rem}.calendar-area .week-view{width:680px;min-width:680px}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell.home .topbar{margin-bottom:.5rem;padding-top:max(.5rem,env(safe-area-inset-top));border:0;background:transparent}.app-shell.home .topbar-title{min-height:32px}.home-screen{display:grid;gap:1.4rem;max-width:560px;margin:0 auto;padding:.5rem .25rem 2rem}.home-header{display:flex;align-items:center;gap:1rem;padding:.25rem .25rem 0}.home-brand-mark{display:grid;width:56px;height:56px;place-items:center;border-radius:50%;background:var(--moss);color:var(--paper-soft);flex-shrink:0}.home-header h1{margin:0;font-family:var(--font-serif);font-size:1.9rem;font-weight:650;letter-spacing:0}.home-sage{display:grid;gap:.6rem;padding:1.15rem 1.2rem 1.25rem;border:1px solid rgba(168,193,158,.28);border-radius:var(--radius-md);background:linear-gradient(135deg,#7a947038,#2c3d2f73 70%),#212c24d9;box-shadow:0 18px 40px #00000047}.home-sage-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.home-sage-header .eyebrow{margin:0}.home-sage-date{margin:0;font-size:.78rem;font-weight:700;color:var(--muted)}.home-sage-quote{margin:0;padding:0;font-family:var(--font-serif);font-size:1.25rem;line-height:1.4;color:var(--ink);font-style:italic;text-wrap:balance}.home-sage-quote:before{content:"“";font-size:1.6em;line-height:0;vertical-align:-.25em;color:var(--moss-deep);margin-right:.15rem}.home-sage-quote:after{content:"”";font-size:1.6em;line-height:0;vertical-align:-.25em;color:var(--moss-deep);margin-left:.15rem}.home-tiles{display:grid;gap:.7rem}.home-tile{display:flex;align-items:center;gap:1rem;width:100%;min-height:78px;padding:1rem 1.15rem;border:1px solid rgba(58,78,61,.32);border-radius:var(--radius-md);background:#2c3d2fb8;color:var(--ink);text-align:left;cursor:pointer;transition:background .15s ease,transform .12s ease,border-color .15s ease}.home-tile:hover{background:#6f846747;border-color:#a8c19e5c}.home-tile:active{transform:scale(.985)}.home-tile-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:50%;background:#7a947052;color:var(--moss-deep);flex-shrink:0}.home-tile-body{display:grid;gap:.15rem;min-width:0}.home-tile-body strong{font-family:var(--font-serif);font-size:1.25rem;font-weight:650;letter-spacing:0}.home-tile-desc{color:var(--muted);font-size:.85rem;line-height:1.35}@media(min-width:720px){.home-screen{gap:1.7rem;padding-top:1rem}.home-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.home-tile{flex-direction:column;align-items:flex-start;justify-content:space-between;min-height:160px;padding:1.2rem}}
