.loading{padding:2rem}.skip-link{z-index:10;background:var(--surface);border-radius:var(--radius);padding:.5rem 1rem;position:absolute;top:.5rem;left:-999rem}.skip-link:focus{left:.5rem}.shell{grid-template-columns:12rem minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);align-self:start;height:100vh;padding:1.25rem .75rem;position:sticky;top:0}.brand{color:var(--primary);margin:0 .5rem 1.25rem;font-size:1.15rem;font-weight:700}.sidebar ul{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.nav-icon{flex:none}.sidebar a{border-radius:var(--radius);min-height:2.75rem;color:var(--text);align-items:center;gap:.6rem;padding:.5rem .75rem;text-decoration:none;display:flex}.sidebar a:hover{background:var(--surface-alt)}.sidebar a[aria-current=page]{background:var(--surface-alt);box-shadow:inset 4px 0 0 var(--primary);font-weight:700}.content{max-width:96rem;padding:1.5rem 2rem 4rem}.content:focus{outline:none}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--gap);flex-wrap:wrap;margin-bottom:1rem;display:flex}.page-header h1{margin-bottom:0}.week-nav{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.week-nav-arrow{width:2.75rem;padding:0;font-size:1.2rem}.week-range{color:var(--muted);margin:0}.storage-notice{margin-top:2rem;font-size:.9rem}.storage-notice p{margin-bottom:.5rem}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.stack{align-content:start;gap:.75rem;display:grid}.actions{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.card{margin-bottom:var(--gap);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.callout{background:var(--accent-bg);border-left:4px solid var(--accent);border-radius:var(--radius);padding:.75rem 1rem}.callout ul{margin:0 0 .5rem;padding-left:1.25rem}.callout-title{font-size:1rem}.status{margin:.75rem 0}.status>:last-child{margin-bottom:0}.empty{text-align:center;background:var(--surface-alt);border-radius:var(--radius);margin:1rem 0;padding:2rem}.tag{border:1px solid var(--border);border-radius:999px;margin:0;padding:.1rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.tag-warn{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.button-small{min-height:2.75rem;padding:.25rem .6rem;font-size:.9rem}.button-quiet{color:var(--primary);background:0 0;border-color:#0000;text-decoration:underline}.button-danger{border-color:var(--danger);color:var(--danger)}.button[aria-pressed=true]{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);font-weight:600}.field{border:0;min-width:0;margin:0 0 1.25rem;padding:0}.field-label,legend{margin-bottom:.25rem;padding:0;font-weight:600;display:block}input[type=search],input:not([type]),select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-width:100%;min-height:2.75rem;color:var(--text);font:inherit;padding:.5rem .75rem}input[type=search]{width:100%}input[type=checkbox],input[type=radio]{width:1.25rem;height:1.25rem;accent-color:var(--primary);flex:none}.choice{cursor:pointer;align-items:flex-start;gap:.6rem;min-height:2.75rem;padding:.5rem 0;display:flex}.check-grid{column-gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));display:grid}.stepper{align-items:center;gap:.75rem;display:inline-flex}.stepper .button{width:2.75rem;padding:0;font-size:1.25rem}.stepper output{text-align:center;min-width:2ch;font-size:1.15rem;font-weight:700}.option-list,.chips,.picker-list{margin:.5rem 0;padding:0;list-style:none}.option-list,.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{background:var(--surface-alt);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.25rem;padding:.25rem .75rem;display:inline-flex}.chip-remove{width:2rem;height:2rem;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:50%;margin-right:-.5rem;font-size:1.2rem}.slot-table{border-collapse:collapse}.slot-table th,.slot-table td{text-align:center;padding:.4rem .75rem .4rem 0}.slot-table th:first-child{text-align:left}.slot-table thead th{font-size:.9rem}.slot-table tbody th{font-weight:400}.slot-table abbr{text-decoration:none}.dialog{background:var(--surface);width:min(34rem,100vw - 2rem);max-height:calc(100vh - 2rem);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:0}.dialog::backdrop{background:#00000073}.dialog-header{justify-content:space-between;align-items:center;gap:var(--gap);padding:1rem 1.25rem 0;display:flex}.dialog-header h2{margin:0}.dialog-body{padding:1rem 1.25rem 1.25rem}.picker-list{gap:.25rem;display:grid}.picker-option{justify-content:space-between;align-items:center;gap:var(--gap);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-height:2.75rem;color:var(--text);font:inherit;text-align:left;cursor:pointer;padding:.5rem .75rem;display:flex}.picker-option:hover{border-color:var(--primary)}.saved-row{justify-content:space-between;align-items:center;gap:var(--gap);padding:.25rem 0;display:flex}.onboarding{max-width:40rem;margin:0 auto;padding:2.5rem 1.25rem 4rem}.onboarding .card{margin-top:1.5rem}.onboarding h2:focus{outline:none}.week{grid-template-rows:auto auto auto;grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.day{grid-row:span 3;grid-template-rows:subgrid;display:grid}.week-with-breakfast{grid-template-rows:auto auto auto auto}.week-with-breakfast .day{grid-row:span 4}.day-title{margin-bottom:0;font-size:1rem}.day-number{color:var(--muted);font-weight:400}.day-kcal{color:var(--muted);margin:.15rem 0 0;font-size:.85rem}.kcal-reference{max-width:44rem;margin-top:1rem}.day-today{vertical-align:middle;margin-left:.35rem}.day-strip{display:none}.day-chip{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:3rem;color:var(--text);font:inherit;cursor:pointer;justify-items:center;padding:.25rem 0;font-size:.8rem;display:grid}.day-chip-number{font-size:1rem;font-weight:700}.day-chip-today .day-chip-number{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.day-chip[aria-pressed=true]{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.day-slots{list-style:none;display:contents}.slot{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.4rem;padding:.6rem;display:flex}.slot-off{background:0 0;border-style:dashed}.slot>.tag{place-self:flex-start start}.slot-meal{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:700}.slot-name{overflow-wrap:anywhere;font-weight:600}.slot-meta,.slot-placeholder{color:var(--muted);margin:0;font-size:.9rem}.slot-note{border-left:3px solid var(--accent);background:var(--accent-bg);overflow-wrap:anywhere;border-radius:4px;margin:0;padding:.2rem .5rem;font-size:.9rem}.note-suggestions{margin-top:.5rem}@media (width>=76.01rem){.slot-cook{display:none}}.slot-actions{flex-wrap:wrap;gap:.35rem;margin-top:auto;display:flex}.slot-actions .button{flex:auto;padding-inline:.35rem}.recipe-image{aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--radius) - 4px);background:var(--surface-alt);width:100%;height:auto;display:block}.recipe-image-empty{color:var(--muted);place-items:center;display:grid}@media (width<=76rem){.week{grid-template-rows:none;grid-template-columns:1fr}.day{grid-row:auto;display:block}.day-head{margin-bottom:.5rem}.day-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0;padding:0;display:grid}.slot{grid-template-columns:7rem minmax(0,1fr);align-content:start;column-gap:.75rem;display:grid}.slot>*{grid-column:2}.slot>.recipe-image{grid-area:2/1/span 4;align-self:start}.slot>.slot-meal,.slot>.slot-actions{grid-column:1/-1}}.filters{flex-wrap:wrap;align-items:flex-end;gap:.5rem 1.25rem;margin-bottom:.5rem;display:flex}.filters .field{margin-bottom:0}.filters .field:first-child{flex:16rem}.recipe-grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,9.5rem),1fr));margin:0;padding:0;list-style:none;display:grid}@media (width>=44.01rem){.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr))}}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-content:start;display:grid;position:relative;overflow:hidden}.recipe-card .recipe-image{border-radius:0}.recipe-card-body{justify-items:start;gap:.35rem;padding:.75rem;display:grid}.recipe-card-name{font-weight:600}.recipe-card-name:after{content:"";position:absolute;inset:0}.recipe-card:hover{border-color:var(--primary)}.recipe{max-width:68rem}.recipe-top{grid-template-columns:minmax(0,24rem) minmax(0,1fr);gap:1.5rem;margin-bottom:1.5rem;display:grid}.recipe-figure{margin:0}.recipe-figure figcaption{margin-top:.35rem}.facts{flex-wrap:wrap;gap:.75rem 2rem;margin:0;display:flex}.facts dt{color:var(--muted);font-size:.85rem}.facts dd{margin:0;font-weight:600}.recipe-columns{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:2rem;margin-bottom:1.5rem;display:grid}.ingredient-list,.step-list{gap:.5rem;padding-left:1.25rem;display:grid}.step-list li::marker{color:var(--primary);font-weight:700}@media (width<=56rem){.recipe-top,.recipe-columns{grid-template-columns:1fr}}.editor{max-width:52rem}.form-error{color:var(--danger);margin:.25rem 0;font-weight:600}.form-error:empty{display:none}.input-wide{width:100%}.input-number,input[type=number]{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:7rem;min-height:2.75rem;color:var(--text);font:inherit;padding:.5rem .75rem}textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);font:inherit;resize:vertical;padding:.5rem .75rem}.editor-row{align-items:flex-start;gap:.5rem 1.5rem}.editor-ingredients{margin:0 0 1rem;padding:0;list-style:none}.editor-ingredient{border-top:1px solid var(--surface-alt);flex-wrap:wrap;align-items:center;gap:.35rem .6rem;padding:.6rem 0;display:flex}.editor-ingredient-name{flex:100%;margin:0}.editor-note{flex:10rem;min-width:0}.editor-steps{gap:.75rem;margin:0 0 1rem;padding-left:1.5rem;display:grid}.editor-steps li::marker{color:var(--primary);font-weight:700}.editor-notes{margin-top:1.25rem}.editor-photo{border-radius:var(--radius);width:10rem;height:auto;margin-bottom:.75rem;display:block}.cook{max-width:48rem;min-height:100dvh;padding:1rem 1.25rem calc(1rem + env(safe-area-inset-bottom));grid-template-rows:auto 1fr auto;gap:1rem;margin:0 auto;display:grid}.cook-header{justify-content:space-between;align-items:center;gap:var(--gap);display:flex}.cook-recipe{color:var(--muted);margin:0;font-weight:600}.cook-body{align-self:center}.cook-body h1:focus{outline:none}.cook-progress{color:var(--muted);font-size:1.1rem}.cook-bar{width:100%;height:.5rem;accent-color:var(--primary);margin-bottom:1.5rem;display:block}.cook-step{font-size:clamp(1.4rem,2.5vw + 1rem,2.1rem);line-height:1.35}.cook-ingredients{margin:0;padding:0;font-size:1.15rem;list-style:none}.cook-ingredients li+li{border-top:1px solid var(--border)}.cook-ingredients input[type=checkbox]{width:1.5rem;height:1.5rem}.cook-ingredients input:checked+span{color:var(--muted);text-decoration:line-through}.cook-footer{gap:.75rem;display:flex}.cook-footer .button{flex:1 1 0;padding-inline:.75rem}.shop-columns{columns:22rem;column-gap:var(--gap)}.shop-section{break-inside:avoid}.shop-list{margin:0;padding:0;list-style:none}.shop-item{border-top:1px solid var(--surface-alt);grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.5rem;display:grid}.shop-item>.shop-sources{grid-area:2/1/auto/-1;padding-left:1.85rem}.shop-name{font-weight:600}.shop-quantity{color:var(--muted)}.shop-item-done .shop-name,.shop-item-done .shop-quantity{color:var(--muted);text-decoration:line-through}.shop-sources{color:var(--muted);font-size:.9rem}.shop-sources summary,details.card>summary{cursor:pointer}details.card>summary{font-weight:600}.shop-sources summary{width:fit-content;min-height:1.75rem;text-decoration:underline}.shop-sources ul{margin:0 0 .5rem;padding-left:1.25rem}.profile-list{margin:0 0 1rem;padding:0;list-style:none}.profile-row{border-top:1px solid var(--surface-alt);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;padding:.5rem 0;display:flex}.profile-row .hint{margin:0}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;display:grid}@media (width<=64rem){.settings-grid{grid-template-columns:1fr}}@media (width<=44rem){.shell{grid-template-columns:1fr}.sidebar{z-index:5;height:auto;padding:.25rem .25rem calc(.25rem + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--border);position:fixed;inset:auto 0 0}.brand{display:none}.sidebar ul{grid-template-columns:repeat(4,minmax(0,1fr))}.sidebar a{flex-direction:column;justify-content:center;gap:.1rem;min-height:3.25rem;padding:.25rem;font-size:.8rem}.sidebar a[aria-current=page]{box-shadow:inset 0 3px 0 var(--primary)}.content{padding:1rem 1rem calc(5.5rem + env(safe-area-inset-bottom))}h1{font-size:1.5rem}.only-wide{display:none}.day-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;margin-top:.75rem;display:grid}.week .day:not(.day-selected){display:none}.day-slots{grid-template-columns:1fr}.shop-columns{columns:auto}.shop-item input[type=checkbox]{width:1.5rem;height:1.5rem}}
