:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s}:root,:root[data-theme=light]{--brand:#2f7a58;--brand-weak:#dceee4;--on-brand:#fff;--danger:#b43b3b;--surface:#f7faf8;--surface-muted:#edf2ef;--border:#cdd8d1;--text:#1f3028;--text-muted:#45594f;--shadow:0 8px 24px #1d262114}@media (prefers-color-scheme:dark){:root{--brand:#6ac99a;--brand-weak:#183226;--on-brand:#0f1d17;--danger:#ff8f8f;--surface:#15201b;--surface-muted:#0f1713;--border:#2b3a33;--text:#e7efe9;--text-muted:#b3c2ba;--shadow:none}}:root[data-theme=dark]{--brand:#6ac99a;--brand-weak:#183226;--on-brand:#0f1d17;--danger:#ff8f8f;--surface:#15201b;--surface-muted:#0f1713;--border:#2b3a33;--text:#e7efe9;--text-muted:#b3c2ba;--shadow:none}body{color:var(--text);background:var(--surface-muted)}#app{min-height:100vh}.app-shell{background:var(--surface-muted);min-height:100vh;overflow-x:clip}.top-header{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);padding:1rem;position:sticky;top:0}.top-header h1{font-size:1.125rem;font-weight:700}.logo-link{color:inherit;align-items:center;gap:.5rem;text-decoration:none;display:flex}.logo-icon{width:1.75rem;height:1.75rem;color:var(--brand);flex-shrink:0}.logo-wordmark{letter-spacing:-.02em;color:var(--brand);font-size:1.25rem;font-weight:800}.auth-logo{flex-direction:column;align-items:center;gap:.5rem;display:flex}.auth-logo-icon{width:3.5rem;height:3.5rem;color:var(--brand)}.auth-logo-name{letter-spacing:-.03em;color:var(--brand);margin:0;font-size:2rem;font-weight:800}.top-header-content{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.theme-toggle{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.theme-toggle select{width:auto;min-height:2rem;padding:.375rem .5rem}.content{min-width:0;max-width:960px;margin:0 auto;padding:1rem 1rem 6rem}.page{gap:1rem;display:grid}.page>h1{letter-spacing:-.03em;margin:0;font-size:clamp(1.85rem,2vw + 1rem,2.35rem)}.page>h1+.muted{max-width:42rem;margin:-.35rem 0 0;font-size:.96rem;line-height:1.5}.page-header-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.page-section{gap:1rem}.section-header{gap:.3rem;display:grid}.section-header h3{margin:0}.section-header .muted,.section-header p{margin:0;font-size:.89rem;line-height:1.45}.helper-note{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;font-size:.89rem;line-height:1.45;display:flex}.helper-note button{width:auto;min-height:2rem;padding:.35rem .7rem}.empty-state{border:1px dashed var(--border);background:color-mix(in srgb, var(--surface) 92%, var(--surface-muted));border-radius:.75rem;margin:0;padding:.8rem .95rem}.detail-list{gap:.75rem;margin:0;display:grid}.detail-row{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 94%, var(--surface-muted));border-radius:.8rem;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem .95rem;display:flex}.detail-row dt,.detail-row dd,.detail-row p{margin:0}.detail-row dt{color:var(--text-muted);font-weight:600}.detail-row dd{text-align:right;min-width:0}.meal-plans-page{gap:1.25rem}.meal-plans-hero{gap:.35rem;display:grid}.meal-plans-hero h1{letter-spacing:-.02em;margin:0}.meal-plans-intro{max-width:42rem;margin:0;font-size:.96rem}.meal-plans-overview,.meal-plans-panel{gap:1rem;display:grid}.meal-plans-panel-header{gap:.3rem;display:grid}.meal-plans-panel-header h3{margin:0}.meal-plans-panel-copy{color:var(--text-muted);margin:0;font-size:.875rem}.card{align-content:start;gap:.9rem;min-width:0;transition:border-color .15s,box-shadow .15s;display:grid;overflow:hidden}.card>h3{letter-spacing:-.01em;margin:0;font-size:1.05rem}.card>p{margin:0}.card>.form,.card>.stack,.card>.grid,.card>.plain-list,.card>.check-list{margin-top:0}.grid{gap:.75rem;display:grid}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.stack{gap:.5rem;display:grid}.muted{color:var(--text-muted)}a{overflow-wrap:break-word;word-break:break-all}.stat-card h2{margin:0;font-size:1.75rem;font-weight:700;line-height:1.2}.stat-card p{color:var(--text-muted);margin:0}.dashboard-stat-link{color:inherit;border:1px solid var(--border);text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}.dashboard-stat-link:hover{border-color:color-mix(in srgb, var(--brand) 25%, var(--border));box-shadow:var(--shadow);transform:translateY(-2px)}.dashboard-stat-link:active{transform:translateY(0)}.form{gap:.75rem;display:grid}.form label{gap:.25rem;font-size:.925rem;display:grid}.form.inline{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end}.form .button-row{flex-wrap:wrap}input,select,textarea,button{border:1px solid var(--border);width:100%;min-height:2.625rem;font:inherit;color:inherit;background:var(--surface);border-radius:.625rem;padding:.625rem .75rem}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 20%, transparent);outline:none}textarea{min-height:unset;resize:none;field-sizing:content;line-height:1.6;overflow:hidden}.form.inline textarea{grid-column:1/-1}button,.button-link,.list-button{cursor:pointer}button,.button-link{border-color:var(--brand);background:var(--brand);color:var(--on-brand);text-align:center;text-decoration:none}.button-link{border-radius:.625rem;padding:.625rem .75rem;transition:opacity .15s,transform .15s,box-shadow .15s;display:inline-block}.button-link:hover{opacity:.95;box-shadow:var(--shadow);transform:translateY(-1px)}.button-secondary{border-color:var(--border);background:var(--surface);color:var(--text)}.btn-edit,.btn-delete{width:auto;min-height:unset;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.btn-edit{border-color:var(--border);background:var(--surface);color:var(--text)}.btn-delete{border-color:var(--danger);background:var(--danger);color:#fff}.button-row{align-items:center;gap:.5rem;display:flex}.plain-list li>.button-row{justify-content:flex-end;justify-self:end}.with-icon{justify-content:center;align-items:center;gap:.4rem;display:inline-flex}.btn-icon{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;fill:none;flex-shrink:0;width:.95rem;height:.95rem}button:disabled{opacity:.5;cursor:not-allowed}.danger{border-color:var(--danger);background:var(--danger)}.mode-toggle{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem;display:grid}.mode-toggle button{background:var(--surface);color:inherit;border-color:var(--border)}.mode-toggle button.active{background:var(--brand-weak);border-color:var(--brand);color:var(--text)}.list-button{text-align:left;background:var(--surface);color:inherit;border:1px solid var(--border);border-radius:.875rem;gap:.125rem;padding:.85rem .95rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.list-button:hover{border-color:color-mix(in srgb, var(--brand) 25%, var(--border));box-shadow:var(--shadow);transform:translateY(-1px)}.recipe-list-item{grid-template-columns:auto 1fr;align-items:center;gap:.75rem;display:grid}.list-button.active{border-color:var(--brand);background:var(--brand-weak)}.plain-list,.check-list{gap:.5rem;margin-top:.75rem;list-style:none;display:grid}.plain-list li{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;align-items:center;gap:.5rem;min-width:0;padding:.65rem 0;display:grid}.plain-list li:last-child{border-bottom:none}.entity-list-item{grid-template-columns:1fr auto}.entity-list-item small{margin-top:.125rem;display:block}.meal-plan-list{margin-top:0}.meal-plan-list-item{padding:.35rem 0}.meal-plan-list-button{border-radius:.875rem;padding:.85rem .95rem;transition:border-color .15s,box-shadow .15s,transform .15s}.meal-plan-list-button:hover{border-color:color-mix(in srgb, var(--brand) 25%, var(--border));box-shadow:var(--shadow);transform:translateY(-1px)}.meal-plan-list-meta{color:var(--text-muted)}.warning-list li{padding:.25rem 0;display:block}.check-list label{align-items:center;gap:.5rem;display:flex}.check-list input{width:auto;min-height:auto}.check-list{margin-top:0}.check-list li{border:1px solid var(--border);background:var(--surface);border-radius:.75rem;padding:.75rem .85rem}.check-list span{flex:1}.bottom-nav{z-index:20;border-top:1px solid var(--border);background:var(--surface);grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;padding:.5rem;display:grid;position:fixed;bottom:0;left:0;right:0}.nav-item{color:inherit;text-align:center;white-space:nowrap;border-radius:.5rem;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:.45rem .25rem;text-decoration:none;display:inline-flex}.nav-item-icon{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;fill:none;width:1rem;height:1rem}.nav-item-label{font-size:.72rem;line-height:1}.nav-item.router-link-active{background:var(--brand-weak);color:var(--text);font-weight:600}.auth-page{align-content:center;gap:.75rem;max-width:440px;min-height:100vh;margin:0 auto;padding:1rem;display:grid}.subtitle{color:var(--text-muted)}.error{color:var(--danger)}.success{color:var(--brand)}.error,.success{border:1px solid var(--border);background:var(--surface);border-radius:.75rem;margin:0;padding:.75rem .9rem}.error{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--surface))}.success{border-color:color-mix(in srgb, var(--brand) 40%, var(--border));background:color-mix(in srgb, var(--brand) 10%, var(--surface))}.update-toast{z-index:90;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:.75rem;gap:.5rem;padding:.75rem;display:grid;position:fixed;bottom:5.5rem;left:1rem;right:1rem}.update-toast-title{margin:0;font-weight:700}.update-toast-message{color:var(--text-muted);margin:0;font-size:.9rem}.update-toast-actions{justify-content:flex-end;gap:.5rem;display:flex}.update-toast-actions button{width:auto;min-height:2.25rem}.dialog-backdrop{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog-panel{background:var(--surface);border:1px solid var(--border);border-radius:1rem;gap:.75rem;width:100%;max-width:400px;padding:1.5rem;display:grid;box-shadow:0 20px 60px #00000040}.dialog-title{margin:0;font-size:1.05rem;font-weight:700}.dialog-message{color:var(--text-muted);margin:0;font-size:.925rem}.dialog-actions{justify-content:flex-end;gap:.625rem;margin-top:.25rem;display:flex}.dialog-actions button{width:auto}.dialog-confirm-btn{min-width:5rem}.recipe-detail-header{border-bottom:1px solid color-mix(in srgb, var(--border) 72%, transparent);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;padding-bottom:.25rem;display:flex}.recipe-detail-header h3{margin:0}.recipe-description{white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;margin-top:.75rem;line-height:1.6}.recipe-detail-header+.recipe-image{margin-bottom:.75rem}.card>.recipe-image+.form{margin-top:.75rem}.recipe-edit-actions{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.recipe-edit-actions button{width:100%}.meal-plan-calendar{gap:.875rem;margin-top:1rem;padding-bottom:.25rem;display:grid;overflow-x:visible}.planner-weekdays,.planner-week{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.875rem;min-width:0;display:grid}@media (width<=1700px){.planner-weekdays{display:none}}@media (width<=900px){.planner-week{gap:.625rem}}@media (width<=640px){.meal-plan-calendar{overflow-x:visible}.planner-weekdays,.planner-week{grid-template-columns:repeat(7,1fr);gap:.5rem;min-width:auto}.planner-weekday-label{min-height:1.75rem;padding:.375rem .5rem;font-size:.7rem}.planner-week-cell{min-width:auto}.planner-day{gap:.625rem;padding:.625rem}.planner-day-name{font-size:.9rem}.planner-day-date{font-size:.75rem}.planner-today-badge{padding:.2rem .4rem;font-size:.65rem}.planner-day-sections{gap:.5rem}.planner-day-section{border-top-width:3px;gap:.375rem;padding:.55rem}.planner-section-header{gap:.25rem}.planner-section-header h4{font-size:.8rem}.planner-section-controls{gap:.25rem}.planner-count-badge{min-width:1.25rem;min-height:1.25rem;padding:0 .3rem;font-size:.65rem}.planner-collapse-btn{padding:.15rem}.planner-empty-slot{border:1px dashed var(--border);padding:.375rem .5rem;font-size:.75rem}.planner-meal-entry{flex-direction:column;gap:.5rem;padding:.5rem}.planner-meal-content{gap:.1rem}.planner-meal-title-row{gap:.3rem}.planner-meal-title-row strong{font-size:.9rem}.planner-meal-content small{font-size:.7rem}.planner-drag-handle{width:1.25rem;height:1.25rem}.planner-meal-actions{flex-shrink:0;align-self:flex-end;gap:.5rem;width:auto}.btn-edit,.btn-delete{padding:.25rem .5rem;font-size:.7rem}.btn-icon{width:.8rem;height:.8rem}.planner-week-number{padding:.375rem .5rem;font-size:.75rem}}.planner-weekdays{z-index:5;background:var(--surface-muted);padding-bottom:.5rem;position:sticky;top:0}.planner-weekday-label{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;padding:.5rem .75rem;font-size:.8rem;font-weight:700;display:inline-flex}.planner-week-cell{min-width:0}.planner-week-cell--empty{background:color-mix(in srgb, var(--surface-muted) 82%, transparent);border:1px dashed var(--border);border-radius:.875rem;min-height:9rem}.planner-week-number{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);text-align:center;border-radius:.625rem;grid-column:1/-1;padding:.5rem .75rem;font-size:.85rem;font-weight:600}.planner-card{gap:1rem;display:grid}.planner-card-header{border-bottom:1px solid color-mix(in srgb, var(--border) 72%, transparent);justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:.25rem;display:flex}.planner-card-title-group{gap:.2rem;display:grid}.planner-card-title-group h3{margin:0}.planner-plan-summary{color:var(--text-muted);margin:0;font-size:.92rem}.planner-plan-range{border:1px solid var(--border);background:var(--surface-muted);color:var(--text-muted);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;margin:0;padding:.45rem .75rem;font-size:.82rem;font-weight:600;display:inline-flex}.planner-empty-state{margin:0}.planner-day{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, var(--brand-weak));border-radius:.875rem;gap:.625rem;height:100%;padding:.625rem;display:grid}.planner-day--today{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb, var(--brand) 24%, transparent)}.planner-day-header{border-bottom:1px solid color-mix(in srgb, var(--border) 65%, transparent);justify-content:space-between;align-items:flex-start;gap:.75rem;padding-bottom:.25rem;display:flex}.planner-day-name,.planner-day-date{margin:0}.planner-day-name{font-size:1rem;font-weight:700}.planner-day-date{color:var(--text-muted);font-size:.875rem}.planner-today-badge{background:var(--brand);color:var(--on-brand);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:.25rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.planner-day-sections{gap:.5rem;display:grid}.planner-day-section{background:var(--surface);border:1px solid var(--border);border-top-width:4px;border-radius:.75rem;gap:.375rem;padding:.55rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.planner-day-section--droppable{min-height:4.75rem}.planner-day-section--droppable:not(.planner-day-section--drag-over){background:color-mix(in srgb, var(--surface) 88%, var(--brand-weak))}.planner-day-section--drag-over{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent);transform:translateY(-1px)}.planner-day-section--sunrise{border-top-color:#f1b64b}.planner-day-section--daylight{border-top-color:#58a6ff}.planner-day-section--evening{border-top-color:#8b6cff}.planner-day-section--berry{border-top-color:#e15d97}.planner-section-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.planner-section-header h4{margin:0;font-size:.9rem}.planner-section-controls{align-items:center;gap:.5rem;display:flex}.planner-count-badge{background:var(--brand-weak);min-width:1.5rem;min-height:1.5rem;color:var(--text);border-radius:999px;justify-content:center;align-items:center;padding:0 .4rem;font-size:.75rem;font-weight:700;display:inline-flex}.planner-collapse-btn{width:auto;min-height:unset;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:.25rem;transition:background-color .15s,color .15s;display:inline-flex}.planner-collapse-btn:hover{background:var(--brand-weak);border-color:var(--brand);color:var(--text)}.planner-add-meal-btn{width:auto;min-height:unset;border:1px solid var(--brand);background:var(--brand);color:var(--on-brand);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:.25rem .35rem;font-size:.95rem;font-weight:700;line-height:1;transition:opacity .15s,background-color .15s;display:inline-flex}.planner-add-meal-btn:hover{opacity:.9;background-color:color-mix(in srgb, var(--brand) 85%, transparent)}.planner-add-meal-btn:disabled{opacity:.5;cursor:not-allowed}.planner-day-section--collapsed{min-height:unset}.planner-day-section--collapsed .planner-empty-slot,.planner-day-section--collapsed .planner-meal-list{display:none}.planner-empty-slot{background:var(--surface-muted);border:1px dashed var(--border);border-radius:.625rem;min-height:2.5rem;margin:0;padding:.4rem .5rem;font-size:.8rem}.planner-meal-list{gap:.4rem;display:grid}.planner-meal-entry{background:var(--surface-muted);cursor:grab;border:1px solid #0000;border-radius:.75rem;flex-direction:column;justify-content:space-between;align-items:stretch;gap:.55rem;padding:.5rem;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.planner-meal-entry:hover{border-color:color-mix(in srgb, var(--brand) 24%, var(--border));box-shadow:var(--shadow)}.planner-meal-entry:active{cursor:grabbing}.planner-meal-entry--dragging{opacity:.65;transform:rotate(1deg)scale(.99)}.planner-meal-content{gap:.2rem;min-width:0;display:grid}.planner-meal-title-row{align-items:center;gap:.4rem;min-width:0;display:flex}.planner-meal-title-row strong{min-width:0}.planner-drag-handle{width:1.5rem;height:1.5rem;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.planner-meal-content small{line-height:1.4;display:block}.planner-meal-actions{flex-shrink:0;justify-content:flex-end;align-self:flex-end;margin-left:0}.meal-selection-dialog{gap:1rem;max-width:34rem}.meal-search-group{gap:.45rem;display:grid}.meal-search-label{font-size:.875rem;font-weight:600}.meal-search-input{width:100%}.meal-search-input::placeholder{color:var(--text-muted)}.meal-search-meta{min-height:1.25rem;color:var(--text-muted);font-size:.8125rem}.meal-search-select{background:color-mix(in srgb, var(--surface) 94%, var(--surface-muted));min-height:2.625rem}.meal-search-select[size]:not([size="1"]){min-height:14rem;padding:.35rem}.meal-selection-summary{border:1px solid var(--border);background:var(--surface-muted);color:var(--text-muted);border-radius:.625rem;margin:0;padding:.625rem .75rem;font-size:.9rem}.meal-selection-summary strong{color:var(--text)}.meal-selection-actions{margin-top:.35rem}@media (width<=640px){.helper-note{align-items:flex-start}.detail-row{flex-direction:column;align-items:flex-start}.detail-row dd{text-align:left}.recipe-edit-actions{grid-template-columns:1fr}.meal-plan-calendar{overflow-x:visible}.planner-weekdays{display:none}.planner-week{grid-template-columns:1fr;gap:1rem;min-width:auto}.planner-week-cell{min-width:auto}.planner-week-cell--empty{display:none}.planner-day{gap:.75rem;min-height:auto;padding:1rem}.planner-card-header{flex-direction:column;align-items:flex-start}.planner-day-header{flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:.5rem}.planner-day-name{font-size:1.1rem;font-weight:700}.planner-day-date{color:var(--text-muted);font-size:.9rem}.planner-today-badge{padding:.3rem .6rem;font-size:.75rem}.planner-day-sections{gap:.75rem}.planner-day-section{border-top-width:4px;gap:.5rem;padding:.75rem}.planner-section-header{gap:.5rem}.planner-section-header h4{font-size:.95rem}.planner-section-controls{gap:.5rem}.planner-count-badge{min-width:1.5rem;min-height:1.5rem;padding:0 .4rem;font-size:.75rem}.planner-collapse-btn,.planner-add-meal-btn{padding:.25rem}.planner-empty-slot{padding:.75rem;font-size:.9rem}.planner-meal-entry{flex-direction:column;align-items:stretch;gap:.75rem;padding:.75rem}.planner-meal-actions{flex-shrink:0;align-self:flex-end;gap:.5rem;width:auto}.meal-selection-dialog{max-width:100%;padding:1rem}.meal-search-select[size]:not([size="1"]){min-height:10rem}}@media (width>=960px){.meal-plans-overview{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}@media (width<=420px){.top-header{padding:.75rem}.content{padding:.75rem .75rem calc(5.75rem + env(safe-area-inset-bottom))}.card{border-radius:.625rem;padding:.875rem}.form.inline{grid-template-columns:1fr}.plain-list li{grid-template-columns:1fr;align-items:start;gap:.375rem}.entity-list-item{grid-template-columns:1fr}.button-row{flex-wrap:wrap}.plain-list li>.button-row{justify-self:end}.bottom-nav{overscroll-behavior-x:contain;padding:.375rem .5rem calc(.375rem + env(safe-area-inset-bottom));scrollbar-width:none;grid-template-columns:none;grid-auto-columns:minmax(4.25rem,1fr);grid-auto-flow:column;overflow-x:auto}.bottom-nav::-webkit-scrollbar{display:none}.nav-item{padding:.4rem .2rem}.nav-item-icon{width:.9rem;height:.9rem}.nav-item-label{font-size:.68rem}}.dialog-fade-enter-active,.dialog-fade-leave-active{transition:opacity .15s}.update-toast-fade-enter-active,.update-toast-fade-leave-active{transition:opacity .15s,transform .15s}.dialog-fade-enter-from,.dialog-fade-leave-to{opacity:0}.update-toast-fade-enter-from,.update-toast-fade-leave-to{opacity:0;transform:translateY(8px)}.dialog-fade-enter-active .dialog-panel,.dialog-fade-leave-active .dialog-panel{transition:transform .15s}.dialog-fade-enter-from .dialog-panel,.dialog-fade-leave-to .dialog-panel{transform:scale(.95)translateY(8px)}@media (width>=960px){.update-toast{max-width:420px;bottom:1rem;left:auto;right:1rem}.content--full-width{max-width:none;margin:0;padding:1.25rem 1.25rem 1.5rem}.bottom-nav{border:1px solid var(--border);border-radius:.75rem;grid-template-columns:repeat(7,minmax(0,1fr));max-width:none;margin:0;position:sticky;top:0;bottom:auto}.two-cols{grid-template-columns:repeat(4,minmax(0,1fr))}}.recipe-image[data-v-e03f8e93]{border:1px solid var(--border);background:var(--surface-muted);border-radius:.625rem;overflow:hidden}.recipe-image img[data-v-e03f8e93]{object-fit:cover;width:100%;height:100%;display:block}.recipe-image--thumb[data-v-e03f8e93]{flex-shrink:0;width:4rem;height:4rem}.recipe-image--hero[data-v-e03f8e93]{aspect-ratio:16/9;width:100%;max-height:320px}.recipe-image__placeholder[data-v-e03f8e93]{width:100%;height:100%;color:var(--text-muted);text-align:center;place-items:center;gap:.375rem;padding:.5rem;font-size:.75rem;display:grid}.recipe-image__placeholder svg[data-v-e03f8e93]{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;width:2rem;height:2rem}.recipe-image--hero .recipe-image__placeholder[data-v-e03f8e93]{font-size:.875rem}.recipe-image--hero .recipe-image__placeholder svg[data-v-e03f8e93]{width:3rem;height:3rem}
