:root{--bg:#fffdf9;--fg:#1f2933;--muted:#52606d;--accent:#15803d;--card:#ffffff;--border:#e4e7eb}@media (prefers-color-scheme:dark){:root{--bg:#171a1f;--fg:#f5f7fa;--muted:#9aa5b1;--accent:#4ade80;--card:#21262d;--border:#323a45}}:root[data-accent=blue]{--accent:#1d4ed8}:root[data-accent=teal]{--accent:#0f766e}:root[data-accent=berry]{--accent:#be123c}:root[data-accent=orange]{--accent:#d97706}@media (prefers-color-scheme:dark){:root[data-accent=blue]{--accent:#60a5fa}:root[data-accent=teal]{--accent:#2dd4bf}:root[data-accent=berry]{--accent:#fb7185}:root[data-accent=orange]{--accent:#f59e0b}}*{box-sizing:border-box}input:not([type=checkbox]):not([type=radio]),select,textarea{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem}textarea{min-height:5rem;resize:vertical}a,a:visited{color:var(--accent)}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg);line-height:1.6}main{max-width:60rem;margin:0 auto;padding:4rem 1.5rem}.hero h1{font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.2;margin:0 0 1rem}.hero p.lead{font-size:1.15rem;color:var(--muted);max-width:42rem}.status{display:inline-block;margin-top:1rem;padding:.25rem .75rem;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-size:.85rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));grid-gap:1rem;gap:1rem;margin-top:3rem;padding:0;list-style:none}.cards li{background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;overflow:hidden}.cards h2{font-size:1.05rem;margin:0 0 .5rem;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-tiles{margin-top:1.5rem;grid-template-columns:repeat(2,1fr)}.home-tiles li{padding:0}.home-tiles a{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.25rem .75rem;min-height:2.75rem;color:var(--fg);text-decoration:none;text-align:center}.home-tile-icon{font-size:1.6rem;line-height:1}.home-tiles h2{margin:0}@media (min-width:641px){.home-tiles{grid-template-columns:repeat(4,1fr)}}.home-tiles-heading{margin:2rem 0 .5rem;font-size:1.05rem;color:var(--muted)}.home-dashboard{margin-top:1.5rem}.home-dashboard-grid{display:grid;grid-gap:1rem;gap:1rem}@media (min-width:900px){.home-dashboard-grid{grid-template-columns:1fr 1fr}}.home-dashboard-grid>.event-section{min-width:0}.home-today-list,.home-todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.home-todo-list li{display:flex;align-items:baseline;gap:.5rem}.home-todo-list input[type=checkbox]{cursor:pointer;flex:0 0 auto}.home-todo-checked .home-todo-text{text-decoration:line-through;opacity:.6}.home-today-list li{display:flex;align-items:center;gap:.5rem;min-width:0}.home-slot-tag{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;width:2.75rem;font-size:1.1rem;line-height:1.1}.home-slot-name{font-size:.62rem;color:var(--muted)}.home-slot-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-cook-link{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;color:var(--accent);text-decoration:none;line-height:1.1}.home-cook-arrow{font-size:1rem}.home-cook-text{font-size:.6rem;white-space:nowrap}.home-slot-past{opacity:.5}.home-section-footer{margin:.6rem 0 0}.home-section-footer a{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none}.home-dashboard-grid .meta{margin:0}.home-shopping-line{margin:1rem 0 0}.home-shopping-quickadd{display:flex;gap:.5rem;margin:.5rem 0 0}.home-shopping-quickadd input{flex:1 1;min-width:0;padding:.5rem .7rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.5rem}.home-shopping-quickadd button{flex:0 0 auto;padding:0 1rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;cursor:pointer;min-height:2.5rem}.home-shopping-quickadd button:disabled{opacity:.5;cursor:not-allowed}.home-events-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.home-events-list a{display:flex;align-items:baseline;gap:.3rem}.home-event-title{font-weight:600}.cards p{margin:0;color:var(--muted);font-size:.95rem;overflow-wrap:anywhere}.card-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header{display:flex;align-items:center;gap:.75rem;max-width:60rem;margin:0 auto;padding:1rem 1.5rem;border-bottom:1px solid var(--border);flex-wrap:wrap;position:relative}.site-header .brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;margin-right:auto}.brand-logo{width:1.6rem;height:1.6rem;flex:none}.site-header nav{display:flex;gap:.25rem;align-items:center}.site-header a{display:inline-flex;align-items:center;padding:.6rem .65rem;color:var(--fg);text-decoration:none;font-size:.95rem;min-height:2.75rem}.site-header a:hover{color:var(--accent)}.site-header a:visited{color:var(--fg)}.nav-icon{margin-right:.4rem}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.3rem;height:1.3rem;margin-left:.4rem;padding:0 .35rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.7rem;font-weight:700}.nav-more{position:relative}.nav-more-flat{display:none}.nav-more summary{display:inline-flex;align-items:center;padding:.6rem .65rem;color:var(--fg);font-size:.95rem;min-height:2.75rem;cursor:pointer;list-style:none}.nav-more summary::-webkit-details-marker{display:none}.nav-more summary:hover{color:var(--accent)}.nav-more[open]{z-index:20}.nav-more .nav-more-menu{display:flex;flex-direction:column;position:absolute;top:100%;right:0;min-width:11rem;padding:.25rem;box-shadow:0 4px 12px rgba(0,0,0,.12)}.nav-more .nav-more-menu,.nav-toggle{background:var(--card);border:1px solid var(--border);border-radius:.5rem}.nav-toggle{display:none;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;color:var(--fg);font-size:1.25rem;cursor:pointer}main h1{margin-top:0}.cards h2 a{color:var(--fg);text-decoration:none}.cards h2 a:hover{color:var(--accent)}.recipe-detail .meta{color:var(--muted);margin:.25rem 0}.recipe-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:.75rem 0}.recipe-actions>.cooked,.recipe-actions>.favorite,.recipe-actions>.plan-recipe,.recipe-actions>.rating,.recipe-actions>.share{margin:0}.recipe-actions>.plan-recipe-form{flex:1 0 100%;margin:0}.recipe-detail .lead{font-size:1.05rem;max-width:42rem}.servings-control{display:inline-flex;align-items:center;gap:.75rem;border:1px solid var(--border);border-radius:999px;padding:.25rem .5rem;margin-bottom:.75rem}.servings-control button{width:2.75rem;height:2.75rem;border:none;border-radius:50%;background:var(--accent);color:#fff;font-size:1.2rem;cursor:pointer}.ingredients{list-style:none;padding:0;max-width:28rem}.ingredients li{display:flex;gap:.75rem;padding:.4rem 0;border-bottom:1px solid var(--border)}.ingredients .amount{min-width:6rem;color:var(--muted)}.steps li{margin-bottom:.75rem;max-width:42rem}.recipe-footer{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--border)}.report-link{display:inline-flex;align-items:center;background:none;border:none;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit;font-size:.9rem;padding:.5rem .3rem;min-height:2.75rem}.dismissible-hint{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem}.dismissible-hint .report-link{padding:0;min-height:auto}.report-done{color:var(--muted);font-size:.9rem}.report-form{gap:.75rem;max-width:28rem;border:1px solid var(--border);border-radius:.75rem;padding:1rem}.report-form,.report-form label{display:flex;flex-direction:column}.report-form label{gap:.3rem;font-size:.9rem;color:var(--muted)}.report-form select,.report-form textarea{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem}.report-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.report-actions button[type=submit],.report-list button:not(.report-link){padding:.5rem 1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;font-size:.9rem;cursor:pointer;min-height:2.75rem}.moderation-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.moderation-tabs button{padding:.5rem 1rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--fg);font:inherit;cursor:pointer;min-height:2.75rem}.moderation-tabs button.active{border-color:var(--accent);color:var(--accent)}.report-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:1rem}.report-list li{border:1px solid var(--border);border-radius:.75rem;padding:1rem;background:var(--card)}.report-category{font-weight:600;margin:0 0 .25rem}.report-note{font-style:italic;color:var(--muted)}.variant-hint{color:var(--muted);max-width:42rem}.variant-button{display:inline-block;padding:.55rem 1.1rem;border:1px solid var(--accent);border-radius:.5rem;background:none;color:var(--accent);text-decoration:none;font:inherit;font-size:.95rem;cursor:pointer;min-height:2.75rem;line-height:1.7}.duplicate-warning{border:1px solid var(--accent);border-radius:.75rem;padding:1rem;margin-bottom:1.5rem;max-width:42rem}.duplicate-warning h2{margin:0 0 .5rem;font-size:1.1rem}.duplicate-warning p{margin:0 0 .75rem;color:var(--muted);font-size:.95rem}.duplicate-warning ul{padding-left:1.2rem;margin:0 0 1rem}.duplicate-warning li{margin-bottom:.5rem}.duplicate-warning .variant-link{color:var(--accent);font-size:.9rem;white-space:nowrap}.rating{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.5rem 0}.rating-input{display:inline-flex}.rating .star{background:none;border:none;font-size:1.6rem;line-height:1;color:var(--border);cursor:pointer;padding:.15rem;min-width:2rem;min-height:2.4rem}.rating .star.active,.rating-static{color:var(--accent)}.rating-static{font-size:1.3rem}.rating-summary{color:var(--muted);font-size:.95rem}.recipes-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.recipes-header h1{margin:0}.header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.import-link{font-size:.9rem;color:var(--muted);white-space:nowrap}button.import-link{background:none;border:none;padding:0;font:inherit;cursor:pointer;min-height:2.75rem}.recipes-tabs{display:flex;gap:.5rem;margin:1rem 0 1.5rem;border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.recipes-tabs a{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 1rem;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;font-weight:600;white-space:nowrap;flex-shrink:0}.recipes-tabs a.active{color:var(--accent);border-bottom-color:var(--accent)}.recipes-tabs button{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 1rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font:inherit;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0}.recipes-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.status-badge{display:inline-block;margin-left:.5rem;padding:.15rem .5rem;border-radius:999px;background:var(--border);color:var(--muted);font-size:.7rem;font-weight:600;vertical-align:middle;text-transform:uppercase;letter-spacing:.02em}.event-section{margin-bottom:1rem}.event-form-card,.event-section{padding:1rem;border:1px solid var(--border);border-radius:.75rem;background:var(--card)}.event-section h2,.event-section summary{margin-top:0;font-size:1.05rem}.event-section summary{font-weight:700;cursor:pointer}.event-section[open] summary{margin-bottom:.75rem}.event-form-row{display:flex;gap:.5rem;flex-wrap:wrap}.event-form-row input{flex:1 1;min-width:8rem}.event-module-picker,.event-type-picker,.pill-picker{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.event-module-picker button,.event-type-picker button,.pill-picker button{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .9rem;border:1px solid var(--border);border-radius:999px;font:inherit;cursor:pointer;min-height:2.5rem}.event-module-picker button:not(.active),.event-type-picker button:not(.active),.pill-picker button:not(.active){background:var(--bg);color:var(--fg);width:auto}.event-module-picker button.active,.event-type-picker button.active,.pill-picker button.active{background:var(--accent);border-color:var(--accent);color:#fff;width:auto}.pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.2rem;padding:0 .3rem;border-radius:999px;background:var(--border);color:var(--muted);font-size:.7rem;font-weight:700}.pill-picker button.active .pill-count{background:rgba(0,0,0,.18);color:#fff}.event-module-badges{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.event-module-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .7rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.85rem;font-weight:600}.event-module-chip.muted{background:var(--border);color:var(--muted)}.event-module-soon{font-size:.7rem;font-weight:400;opacity:.85}.event-guest-chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0 0 .75rem;list-style:none}.event-guest-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .5rem .4rem .8rem;border-radius:999px;background:var(--bg);border:1px solid var(--border)}.event-guest-chip button{width:1.75rem;height:1.75rem;border-radius:999px;border:none;background:transparent;color:var(--muted);font-size:1.1rem;cursor:pointer}.event-guest-chip.cancelled{opacity:.55;text-decoration:line-through}.event-guest-cancel-toggle{font-size:.85rem;opacity:.65}.tag-input .event-guest-chips{margin-bottom:.5rem}.event-guest-add-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.event-invitation-slider{margin-top:1rem}.event-invitation-track-wrap{position:relative}.event-invitation-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:.75rem}.event-invitation-track::-webkit-scrollbar{display:none}.event-invitation-card{flex:0 0 100%;scroll-snap-align:center}.event-invitation-card img{width:100%;border-radius:.75rem;display:block}.event-invitation-slider-nav{position:absolute;top:50%;transform:translateY(-50%);width:2.25rem;height:2.25rem;border-radius:999px;border:none;background:rgba(0,0,0,.45);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer}.event-invitation-slider-nav:disabled{opacity:.35;cursor:default}.event-invitation-slider-nav.prev{left:.5rem}.event-invitation-slider-nav.next{right:.5rem}.event-invitation-dots{display:flex;justify-content:center;gap:.4rem;margin-top:.6rem}.event-invitation-dot{width:.5rem;height:.5rem;padding:.5rem;border:none;border-radius:999px;background:var(--border);background-clip:content-box;cursor:pointer}.event-invitation-dot.active{width:1.3rem;background:var(--accent)}.event-invitation-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem}.event-invitation-open{display:block;width:100%;padding:0;border:none;background:none;cursor:zoom-in}.event-subsection{margin-top:1.5rem;padding-top:1.25rem;border-top:1px dashed var(--border)}.event-subsection:first-of-type{margin-top:0;padding-top:0;border-top:none}.event-subsection h3{margin-top:0;font-size:1rem}.event-invitation-lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.85);padding:2rem}.event-invitation-lightbox img{max-width:100%;max-height:100%;border-radius:.75rem}.event-invitation-lightbox-close{top:1rem;right:1rem;width:2.5rem;height:2.5rem;font-size:1.5rem}.event-invitation-lightbox-close,.event-invitation-lightbox-nav{position:absolute;border-radius:999px;border:none;background:rgba(255,255,255,.15);color:#fff;cursor:pointer}.event-invitation-lightbox-nav{top:50%;transform:translateY(-50%);width:3rem;height:3rem;font-size:2rem;line-height:1}.event-invitation-lightbox-nav.prev{left:1rem}.event-invitation-lightbox-nav.next{right:1rem}.event-inline-form{display:flex;flex-direction:row;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}.event-inline-form input:not([type=checkbox]){flex:1 1;min-width:8rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem}.event-inline-form button{padding:.6rem 1.2rem;border:1px solid var(--accent);border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;cursor:pointer;min-height:2.75rem}.event-add-food-form{display:flex;flex-direction:column;gap:.6rem;padding:.75rem;margin:.5rem 0;border:1px dashed var(--border);border-radius:.5rem}.event-ingredients-toggle{margin-top:.5rem}.catalog-link-rows{display:flex;flex-direction:column;gap:.5rem;margin:.25rem 0}.catalog-link-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.catalog-link-row input{flex:1 1;min-width:6rem;padding:.5rem .6rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.5rem}.event-catalog-list{list-style:none;padding:0;margin:0 0 .75rem}.event-catalog-item{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.event-catalog-item input[type=checkbox]{width:1.4rem;height:1.4rem;margin-top:.15rem;flex-shrink:0;accent-color:var(--accent)}.material-check{color:#16a34a;font-weight:700;margin-left:.3rem}@media (prefers-color-scheme:dark){.material-check{color:#4ade80}}.event-catalog-item-photo{width:3rem;height:3rem;aspect-ratio:1;object-fit:cover;border-radius:.5rem;flex-shrink:0}.event-catalog-item-main{flex:1 1;min-width:0;overflow-wrap:anywhere}.event-catalog-item-links{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.85rem;margin-top:.2rem}.event-food-list{list-style:none;padding:0;margin:0 0 .75rem}.event-food-item{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.event-food-icon{font-size:1.2rem;flex:0 0 auto}.event-food-main{flex:1 1;min-width:0;overflow-wrap:anywhere}.event-food-servings{display:flex;align-items:center;gap:.3rem;flex:0 0 auto}.event-food-amount{display:flex;align-items:center;gap:.35rem;flex:0 1 auto}.event-servings-input{width:3.5rem}.event-unit-input{width:5.5rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.event-food-remove{width:2rem;height:2rem;flex:0 0 auto;border-radius:999px;border:none;background:transparent;color:var(--muted);font-size:1.1rem;cursor:pointer}.event-card-meta{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.85rem;color:var(--muted)}.event-card-meta span:not(:last-child):after{content:"·";margin-left:.4rem}.event-card-modules{margin-top:.5rem;font-size:1.1rem;letter-spacing:.2rem}.filter-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:1rem;border:1px solid var(--border);border-radius:.75rem;background:var(--card)}.filter-search{width:100%;font-size:1.05rem}.filter-pills{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.filter-pill{display:inline-flex;align-items:center;padding:.45rem .85rem;border-radius:999px;background:var(--bg);border:1px solid var(--accent);color:var(--accent);font-size:.85rem;text-decoration:none;min-height:2.5rem}.filter-pill-reset{border-style:dashed;color:var(--muted);border-color:var(--border)}.filter-details summary{cursor:pointer;color:var(--muted);font-size:.9rem;padding:.4rem 0;list-style:none}.filter-details summary::-webkit-details-marker{display:none}.filter-details summary:before{content:"▸ "}.filter-details[open] summary:before{content:"▾ "}.filter-details{border-top:1px solid var(--border);padding-top:.5rem}.filter-main{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}.filter-main select{flex:1 1;min-width:8rem}.filter-form input,.filter-form select{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg);color:var(--fg);font:inherit;min-height:2.75rem}.filter-tags{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;margin-top:.75rem}.filter-exclude-ingredient{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted);margin-top:.75rem;max-width:20rem}.filter-actions{display:flex;align-items:center;gap:1rem}.filter-actions button{padding:.55rem 1.5rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;min-height:2.75rem}.result-count{color:var(--muted);font-size:.9rem}.tag-area{margin:.75rem 0}.tag-chips{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0}.tag-chip button,.tag-chip.safety{display:inline-flex;align-items:center;padding:.45rem .85rem;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--fg);font:inherit;font-size:.9rem;cursor:pointer;min-height:2.4rem}.tag-chip.safety{cursor:default;border-color:var(--accent);color:var(--accent)}.tag-chip .votes{color:var(--muted)}.tag-chip .vote-mark{color:var(--accent);font-weight:700;margin-left:.25rem}.tag-select{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}.tag-option{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem!important;font-size:.95rem!important;color:var(--fg)!important;padding:.5rem 0!important;min-height:2.75rem!important;cursor:pointer}.tag-option input[type=checkbox]{width:1.5rem;height:1.5rem;min-height:0!important;accent-color:var(--accent);flex-shrink:0}.freeze-batch-option{margin-bottom:.5rem;border-bottom:1px solid var(--border)}.safety-checklist{border:1px solid var(--accent);border-radius:.75rem;padding:1rem;display:flex;flex-direction:column;gap:.6rem}.safety-checklist p{margin:0;font-size:.9rem}.checkbox-row{display:flex;align-items:center;gap:.75rem;min-height:2.75rem;cursor:pointer}.checkbox-row input[type=checkbox]{width:1.4rem;height:1.4rem;flex:0 0 auto;accent-color:var(--accent)}.checkbox-row-group{display:flex;flex-direction:column;gap:.25rem;margin:.5rem 0}.stacked-form label.checkbox-row{flex-direction:row;align-items:center;color:var(--fg);font-size:inherit}.hero-photo{width:100%;max-width:42rem;max-height:24rem;object-fit:cover;border-radius:.75rem;border:1px solid var(--border);margin:1rem 0 .5rem;cursor:zoom-in}.hero-photo.focus-mode{cursor:crosshair}.photo-strip{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}.photo-strip-item{display:flex;flex-direction:column;align-items:center;gap:.2rem}.photo-strip img{width:6rem;height:6rem;object-fit:cover;border-radius:.5rem;border:1px solid var(--border);cursor:zoom-in}.photo-strip-actions{display:flex;gap:.4rem;font-size:.8rem}.photo-manage-actions{margin-top:-.25rem}.photo-viewer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.photo-viewer-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:.5rem}.photo-viewer-close{position:fixed;top:1rem;right:1rem;width:2.75rem;height:2.75rem;border-radius:999px;border:none;background:rgba(255,255,255,.9);color:#000;font-size:1.1rem;cursor:pointer}.card-photo{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:.5rem;margin-bottom:.75rem}.card-cookbook-select{min-height:auto;font-size:.85rem;color:var(--muted);margin-bottom:.5rem}.photo-placeholder{display:flex;align-items:center;justify-content:center;background:var(--border);font-size:2rem}.card-remove{display:block;padding:.3rem 0}.card-owner-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.card-owner-actions .card-remove{padding:.3rem 0}.photo-upload{margin:.75rem 0 1rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.photo-upload-consent{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted);flex:1 0 100%}.photo-upload-button{display:inline-block;padding:.55rem 1rem;border:1px dashed var(--border);border-radius:.5rem;color:var(--accent);cursor:pointer;font-size:.95rem}.photo-upload-button.disabled{color:var(--muted);cursor:not-allowed}.photo-input-row{display:flex;gap:.75rem;flex-wrap:wrap;margin:.5rem 0}.photo-hint{color:var(--muted);font-size:.85rem}.recipe-form form,.stacked-form form,.todo-edit-form{display:flex;flex-direction:column;gap:1rem;max-width:42rem}.recipe-form label,.stacked-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted)}.dictation-button{align-self:flex-start;padding:.5rem 1rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted);font:inherit;cursor:pointer;min-height:2.75rem}.dictation-button.active{border-color:#dc2626;color:#dc2626;font-weight:600}.recipe-form h2{margin:1rem 0 0;font-size:1.1rem}.field-row{display:flex;gap:.75rem;align-items:flex-start;flex-wrap:wrap}.field-row label{flex:1 1;min-width:8rem}.ingredient-row input{flex:1 1}.ingredient-row .ingredient-typeahead{flex:1 1;position:relative}.ingredient-typeahead input{width:100%}.ingredient-suggestions{list-style:none;margin:.25rem 0 0;padding:.25rem;position:absolute;z-index:10;top:100%;left:0;right:0;background:var(--card);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 4px 12px rgba(0,0,0,.15);max-height:12rem;overflow-y:auto}.ingredient-row .ingredient-suggestions button{display:block;width:100%;height:auto;text-align:left;padding:.5rem .6rem;border:none;background:none;color:var(--fg);font:inherit;cursor:pointer;border-radius:.35rem;min-height:2.5rem}.ingredient-row .ingredient-suggestions button:focus-visible,.ingredient-row .ingredient-suggestions button:hover{background:var(--border)}.field-hint{color:var(--muted);font-size:.9rem;margin:-.5rem 0 .75rem}.step-row{align-items:center}.step-row .step-number{color:var(--muted);min-width:1.5rem}.step-row textarea{flex:1 1}.catalog-link-row button,.ingredient-row button,.step-row button{border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:.5rem;width:2.2rem;height:2.2rem;cursor:pointer}.add-row{align-self:flex-start;border:1px dashed var(--border);background:none;color:var(--accent);border-radius:.5rem;padding:.4rem .9rem;cursor:pointer;font:inherit}.recipe-form button[type=submit],.stacked-form button[type=submit],.todo-edit-form button[type=submit]{padding:.65rem 1rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;align-self:flex-start}.recipe-form button[type=submit]:disabled,.stacked-form button[type=submit]:disabled,.todo-edit-form button[type=submit]:disabled{opacity:.6;cursor:wait}.primary-button{padding:.65rem 1.2rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;min-height:2.75rem}.primary-button:disabled{opacity:.6;cursor:wait}.error{color:#dc2626}.auth-status{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;min-height:2.75rem;font-size:.9rem;color:var(--muted)}.auth .switch button,.auth-status a,.auth-status button{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem .3rem;color:var(--accent)}.auth .switch button,.auth-status button{background:none;border:none;cursor:pointer;font:inherit;text-decoration:underline}.auth{max-width:24rem}.auth h1{margin-bottom:1.5rem}.google-btn{border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg)}.apple-btn,.google-btn{display:block;text-align:center;padding:.6rem 1rem;text-decoration:none;font-weight:600}.apple-btn{border:1px solid #000;border-radius:.5rem;background:#000;color:#fff;margin-top:.5rem}.divider{text-align:center;color:var(--muted);font-size:.85rem;margin:1.25rem 0}.auth form{gap:1rem}.auth form,.auth label{display:flex;flex-direction:column}.auth label{gap:.3rem;font-size:.9rem;color:var(--muted)}.auth input{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit}.auth form button[type=submit]{padding:.65rem 1rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer}.auth form button[type=submit]:disabled{opacity:.6;cursor:wait}.auth .error{margin:0;color:#dc2626;font-size:.9rem}.auth .switch{margin-top:1.5rem;font-size:.9rem;color:var(--muted)}.feedback-page{max-width:32rem}.feedback-form{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.feedback-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted)}.feedback-form textarea{padding:.6rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;resize:vertical}.feedback-form button[type=submit]{padding:.65rem 1rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;align-self:flex-start}.feedback-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.quick-suggest,.surprise-me,.week-recipe{margin-top:3rem}.surprise-me .week-recipe-card{margin-top:1rem}.recipe-of-week-slider{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.5rem;-webkit-overflow-scrolling:touch}.recipe-of-week-slider .week-recipe-card{scroll-snap-align:start;flex:0 0 auto;width:min(22rem,85vw)}.week-recipe-card{display:flex;gap:1rem;align-items:flex-start;border:1px solid var(--accent);border-radius:.75rem;padding:1rem;background:var(--card);max-width:42rem;overflow:hidden}.week-recipe-card>div{min-width:0;flex:1 1 auto}.week-recipe-card .photo-placeholder,.week-recipe-card img{width:7rem;height:7rem;object-fit:cover;border-radius:.5rem;flex:0 0 auto}.cards h3,.week-recipe-card h3{margin:0 0 .35rem;font-size:1.1rem;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cards h3 a,.week-recipe-card h3 a{color:var(--fg);text-decoration:none}.cards h3 a:hover,.week-recipe-card h3 a:hover{color:var(--accent)}.quick-suggest form{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap;max-width:42rem}.quick-suggest-compact{margin-top:1.5rem}.quick-suggest-compact button:not(.report-link){padding:.45rem 1rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;cursor:pointer;min-height:2.5rem}.quick-suggest-start{display:flex;gap:.75rem;flex-wrap:wrap}.quick-suggest-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.quick-suggest-ingredient-form{display:flex;gap:.5rem;flex:1 1;min-width:14rem}.quick-suggest-ingredient-form input{flex:1 1;min-width:10rem;padding:.45rem .6rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.5rem}.quick-suggest label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted);flex:1 1;min-width:9rem}.quick-suggest input,.quick-suggest select{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem}.quick-suggest button{padding:.6rem 1.3rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;min-height:2.75rem}.cooked{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.75rem 0}.cooked-button{padding:.55rem 1.1rem;border:1px solid var(--accent);border-radius:999px;background:var(--card);color:var(--accent);font:inherit;cursor:pointer;min-height:2.75rem}.cooked-button.active{background:var(--accent);color:#fff}.favorite{margin:.75rem 0 0}.favorite-button{padding:.5rem 1rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted);font:inherit;cursor:pointer;min-height:2.75rem}.favorite-button.active{border-color:#f59e0b;color:#f59e0b;font-weight:600}.plan-recipe{margin:.75rem 0 0}.plan-recipe-form{display:flex;flex-direction:column;gap:.5rem;max-width:32rem;margin:.75rem 0 0;padding:1rem;border:1px solid var(--border);border-radius:.75rem;background:var(--card)}.plan-week-nav{display:flex;align-items:center;gap:.35rem}.plan-week-arrow{padding:.5rem .6rem;min-width:2.75rem;min-height:2.75rem;border:none;background:none;color:var(--muted);font-size:1.1rem;line-height:1;cursor:pointer}.plan-week-arrow:hover{color:var(--accent)}.plan-week-today-link{padding:.4rem .7rem;min-height:2.75rem;border:1px solid var(--border);border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:.8rem;cursor:pointer}.plan-week-today-link:hover{border-color:var(--accent);color:var(--accent)}.plan-message{border-left:3px solid var(--accent);padding:.75rem 1rem;background:var(--card);border-radius:0 .5rem .5rem 0;margin:1rem 0}.plan-table-wrap{overflow-x:auto;margin:1rem 0 2rem;border:1px solid var(--border);border-radius:.75rem;-webkit-overflow-scrolling:touch}.plan-table{display:grid;grid-template-columns:5.5rem repeat(7,minmax(8.5rem,1fr));min-width:44rem}.plan-meal-label,.plan-table-corner{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--card)}.plan-table-corner{border-bottom:1px solid var(--border)}.plan-day-header{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.6rem .4rem;text-align:center;border-bottom:1px solid var(--border);border-left:1px solid var(--border)}.plan-meal-label{align-items:center;color:var(--muted);font-size:.85rem}.plan-cell,.plan-meal-label{display:flex;padding:.5rem;border-top:1px solid var(--border)}.plan-cell{flex-direction:column;gap:.35rem;min-height:3.75rem;min-width:0;overflow-wrap:anywhere;border-left:1px solid var(--border)}.week-day-weekend{background:color-mix(in srgb,var(--accent) 6%,var(--card))}.week-day-holiday{background:color-mix(in srgb,var(--accent) 12%,var(--card))}.week-day-today{background:color-mix(in srgb,var(--accent) 18%,var(--card))}.plan-day-header.week-day-today strong{color:var(--accent)}.slot-filled{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:.35rem;font-size:.9rem}.slot-filled a,.suggestion-row a{color:var(--fg);text-decoration:underline}.slot-filled a:hover,.suggestion-row a:hover{color:var(--accent)}.slot-filled button{border:none;font-size:1.1rem;min-width:2.75rem}.slot-empty,.slot-filled button{background:none;color:var(--muted);cursor:pointer;min-height:2.75rem}.slot-empty{flex:1 1;text-align:left;border:1px dashed var(--border);border-radius:.5rem;padding:.5rem .7rem;font:inherit;font-size:.9rem}.suggestion-card{flex:1 1;gap:.5rem;border:1px dashed var(--accent);border-radius:.5rem;padding:.5rem .6rem}.suggestion-card,.suggestion-row{display:flex;flex-direction:column}.suggestion-row{gap:.35rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.suggestion-row:last-of-type{border-bottom:none;padding-bottom:0}.suggestion-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.vote-button{padding:.4rem .75rem;border:1px solid var(--accent);border-radius:999px;background:var(--card);color:var(--accent);font:inherit;font-size:.85rem;cursor:pointer;min-height:2.75rem}.vote-button.voted{background:var(--accent);color:#fff}.suggestion-deadline{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.suggestion-deadline input[type=datetime-local]{padding:.35rem .5rem;border:1px solid var(--border);border-radius:.4rem;background:var(--card);color:var(--fg);font:inherit;font-size:.85rem}.suggestion-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.suggestion-chips button{padding:.4rem .85rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--fg);font:inherit;font-size:.9rem;cursor:pointer;min-height:2.75rem}.restock-reminders ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.restock-reminders li{border:1px dashed var(--accent);border-radius:.75rem;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem}.reminder-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.plan-picker{position:-webkit-sticky;position:sticky;bottom:0;z-index:2;border:1px solid var(--accent);border-radius:.75rem;padding:1rem;background:var(--bg);margin-bottom:2rem;display:flex;flex-direction:column;gap:.75rem}.plan-picker h2{margin:0;font-size:1.05rem}.plan-picker input:not([type=checkbox]),.plan-share input:not([type=checkbox]),.plan-templates input:not([type=checkbox]){padding:.6rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem;width:100%}.plan-share label:has(input[type=checkbox]){display:flex;align-items:center;gap:.4rem;width:auto}.plan-picker form,.plan-share form,.plan-templates form{display:flex;gap:.5rem;flex-wrap:wrap}.plan-picker form button[type=submit],.plan-share form button[type=submit],.plan-templates form button[type=submit]{padding:.6rem 1.2rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;cursor:pointer;min-height:2.75rem}.picker-tabs{display:flex;gap:.5rem;margin-bottom:.5rem}.picker-tabs button{padding:.5rem 1rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted);font:inherit;cursor:pointer;min-height:2.5rem}.picker-tabs button.active{border-color:var(--accent);color:var(--accent);font-weight:600}.picker-results{list-style:none;padding:0;margin:0;max-height:14rem;overflow-y:auto;flex-shrink:0}.picker-results button,.quick-entries button{width:100%;text-align:left;padding:.65rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;cursor:pointer;margin-bottom:.4rem;min-height:2.75rem}.event-add-food-form .picker-results button{background:var(--bg)}.quick-entries{display:flex;gap:.5rem;flex-wrap:wrap}.quick-entries button{width:auto}.shopping a{color:var(--accent)}.shopping-list{list-style:none;padding:0;max-width:30rem}.push-toggle{margin:0 0 1.25rem}.shopping-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-bottom:1px solid var(--border)}.shopping-list label{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;min-height:2.75rem;cursor:pointer;flex:1 1}.shopping-list label.done span{text-decoration:line-through;color:var(--muted)}.shopping-list input[type=checkbox]{width:1.6rem;height:1.6rem;accent-color:var(--accent)}.todo-overview{margin:1rem 0 1.25rem}.todo-overview-label{margin:0 0 .35rem}.todo-date-field{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.5rem 0}.todo-date-field .pill-picker{margin:0}.todo-date-field input[type=date]{flex:1 1;min-width:9rem}.todo-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;min-height:2.75rem;flex:1 1}.todo-title-button{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;flex:1 1}.todo-title-button:disabled{cursor:default}.todo-row span.done{text-decoration:line-through;color:var(--muted)}.todo-row{flex-wrap:wrap}.todo-event-link{flex-basis:100%;margin-left:2.35rem;font-size:.85rem}.shopping-category-group h2{font-size:1.05rem;margin:1.5rem 0 .25rem}.shopping-category-group:first-of-type h2{margin-top:1rem}.category-select{padding:.4rem .5rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;font-size:.85rem;min-height:2.75rem;max-width:9rem}.item-store-badge{color:var(--muted);font-size:.85rem}.item-source-wrap{position:relative;display:inline-flex;flex-shrink:0}.item-source-button{background:none;border:none;padding:.15rem .25rem;margin:0;font:inherit;font-size:.95rem;cursor:pointer;border-radius:.35rem;line-height:1}.item-source-button:hover{background:var(--border)}.item-source-popup{position:absolute;top:calc(100% + .35rem);right:0;z-index:10;display:flex;flex-direction:column;gap:.35rem;min-width:10rem;max-width:16rem;padding:.5rem .6rem;background:var(--card);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 4px 12px rgba(0,0,0,.12);font-size:.9rem}.item-source-popup a{color:var(--accent);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-source-popup a:hover{text-decoration:underline}.item-edit-wrap{position:relative;display:inline-flex;flex-direction:column;flex:1 1;min-width:0}.item-edit-popup{position:absolute;top:calc(100% + .35rem);left:0;z-index:10;display:flex;flex-direction:column;gap:.5rem;min-width:12rem;max-width:18rem;padding:.6rem .75rem;background:var(--card);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 4px 12px rgba(0,0,0,.12);font-size:.9rem}.item-edit-popup .shopping-why-hint{margin:0;font-size:.85rem}.item-edit-popup .category-select{width:100%;max-width:none}.item-quantity-fields{display:flex;gap:.4rem}.item-quantity-fields input{flex:1 1;min-width:0;padding:.4rem .5rem;border:1px solid var(--border);border-radius:.4rem;background:var(--bg);color:var(--fg);font:inherit}.item-quantity-fields button{flex:0 0 auto;padding:0 .75rem;border:none;border-radius:.4rem;background:var(--accent);color:#fff;font:inherit;cursor:pointer}.share-menu-wrap{position:relative;display:inline-flex}.share-menu-popup{position:absolute;top:calc(100% + .35rem);left:0;z-index:10;display:flex;flex-direction:column;gap:.25rem;min-width:12rem;padding:.4rem;background:var(--card);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 4px 12px rgba(0,0,0,.12)}.share-menu-popup button{background:none;border:none;text-align:left;padding:.5rem .6rem;border-radius:.35rem;font:inherit;cursor:pointer;color:var(--fg)}.share-menu-popup button:hover{background:var(--border)}.store-manager-wrap{position:relative;display:inline-flex}.store-manager-popup{z-index:1000;display:flex;flex-direction:column;gap:.5rem;min-width:14rem;max-width:20rem;padding:.6rem .75rem;background:var(--card);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 4px 12px rgba(0,0,0,.12);font-size:.9rem}.store-manager-form{display:flex;gap:.4rem}.store-manager-form input{flex:1 1;min-width:0;padding:.4rem .5rem;border:1px solid var(--border);border-radius:.4rem;background:var(--bg);color:var(--fg);font:inherit}.store-manager-popup button{min-height:auto;padding:.3rem .5rem;border-bottom:none;font-weight:400}.store-manager-form button{flex:0 0 auto;background:var(--accent);color:#fff;border-radius:.4rem;cursor:pointer}.store-manager-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.store-manager-list li{display:flex;align-items:center;gap:.35rem;cursor:-webkit-grab;cursor:grab}.store-drag-handle{color:var(--muted)}.store-manager-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-categories-settings .category-list{list-style:none;padding:0;max-width:30rem}.shopping-categories-settings .category-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.shopping-categories-settings form{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.shopping-categories-settings form input{padding:.6rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem;flex:1 1;min-width:12rem}.shopping-categories-settings form button{padding:.6rem 1.2rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;cursor:pointer;min-height:2.75rem}.week-toggle{display:flex;gap:.5rem;margin-bottom:.75rem}.week-toggle button{padding:.5rem .9rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted);font:inherit;font-size:.85rem;cursor:pointer;min-height:2.75rem}.week-toggle button.active{border-color:var(--accent);background:var(--accent);color:#fff}.seasonal-calendar{max-width:42rem}.month-toggle{display:flex;gap:.4rem;flex-wrap:wrap;margin:1rem 0}.month-toggle a{padding:.5rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--fg);font-size:.85rem;text-decoration:none;min-height:2.75rem;display:flex;align-items:center}.month-toggle a.active{border-color:var(--accent);background:var(--accent);color:#fff}.produce-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0 0 1.5rem;list-style:none}.produce-list li a{display:inline-block;padding:.45rem .8rem;border:1px solid var(--accent);border-radius:999px;color:var(--accent);text-decoration:none;font-size:.9rem}.produce-list li a:hover{background:var(--accent);color:#fff}.weekday-toggle{display:flex;gap:.5rem;flex-wrap:wrap}.weekday-toggle button{padding:.5rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted);font:inherit;font-size:.85rem;cursor:pointer;min-height:2.75rem}.weekday-toggle button.active{border-color:var(--accent);background:var(--accent);color:#fff}.weekday-toggle button.occupied{opacity:.5;border-style:dashed}.weekday-toggle button:disabled{opacity:.5;cursor:not-allowed}.plan-overwrite-confirm{margin-top:.25rem;padding:.75rem;border:1px solid #dc2626;border-radius:.5rem}.ingredient-picker-list{max-height:18rem}.ingredient-picker-list label{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;min-height:2.75rem;border-bottom:1px solid var(--border);cursor:pointer}.ingredient-picker-list label.unchecked span{color:var(--muted)}.ingredient-picker-list input[type=checkbox]{width:1.6rem;height:1.6rem;accent-color:var(--accent);flex-shrink:0}.picker-actions{display:flex;gap:.5rem;flex-wrap:wrap}.picker-actions button:disabled{opacity:.5;cursor:default}.site-footer{max-width:60rem;margin:3rem auto 0;padding:1.25rem 1.5rem 2.5rem;border-top:1px solid var(--border);display:flex;gap:1.25rem;flex-wrap:wrap}.site-footer a{color:var(--muted);font-size:.9rem}.footer-version{margin-left:auto;white-space:nowrap}.footer-version,.footer-why{color:var(--muted);font-size:.85rem}.footer-why{flex-basis:100%;margin:.25rem 0 0;line-height:1.5}.footer-link-button{background:none;border:none;color:var(--muted);font-size:.9rem;font:inherit;text-decoration:underline;cursor:pointer;padding:0}.consent-banner{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:1rem 1.5rem;background:var(--card);border-top:1px solid var(--border);box-shadow:0 -8px 24px rgb(0 0 0/.15)}.consent-banner p{flex:1 1;min-width:16rem;margin:0;font-size:.9rem;color:var(--muted)}.consent-actions{display:flex;gap:.75rem;flex-wrap:wrap}.consent-actions button{padding:.6rem 1.1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg);color:var(--fg);font:inherit;cursor:pointer;min-height:2.75rem;white-space:nowrap}.consent-actions .consent-accept{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.ad-slot{margin:2rem 0;padding:.75rem;border:1px dashed var(--border);border-radius:.5rem}.ad-slot-label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.04em}.legal{max-width:44rem}.legal h2{margin-top:2rem;font-size:1.15rem}.legal .draft-note{border-left:3px solid var(--accent);padding:.75rem 1rem;background:var(--card);border-radius:0 .5rem .5rem 0;font-size:.95rem}.own-recipes{list-style:none;padding:0}.own-recipes li{padding:.6rem 0;border-bottom:1px solid var(--border)}.level-card{max-width:24rem;margin:1rem 0 2rem}.level-badge{display:inline-block;padding:.35rem .9rem;border-radius:999px;background:var(--accent);color:#fff;font-weight:600;font-size:.9rem;margin-bottom:.5rem}.header-level-badge{padding:.15rem .55rem;background:transparent;border:1px solid var(--accent);color:var(--accent);font-weight:600;font-size:.75rem;margin-bottom:0}.level-icon{font-size:1rem}.level-bar{height:.5rem;border-radius:999px;background:var(--border);overflow:hidden}.level-bar-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.achievement-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:2rem}.achievement-grid li{display:flex;gap:.75rem;align-items:flex-start;padding:.85rem;border:1px solid var(--border);border-radius:.75rem;background:var(--card)}.achievement-grid li.locked{opacity:.55}.achievement-icon{font-size:1.4rem;line-height:1}.achievement-grid p{margin:.15rem 0 0}.level-list{list-style:none;padding:0;max-width:24rem;margin:0 0 2rem}.level-list li{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border)}.level-list li.current .level-list-label{color:var(--accent);font-weight:700}.ics-row{display:flex;gap:.6rem;max-width:32rem}.ics-row input{flex:1 1;padding:.55rem .75rem;color:var(--muted);font:inherit;font-size:.85rem}.ics-row button,.ics-row input{border:1px solid var(--border);border-radius:.5rem;background:var(--card);min-height:2.75rem}.ics-row button{padding:.55rem 1rem;color:var(--fg);font:inherit;cursor:pointer;white-space:nowrap}.accent-color-options{display:flex;flex-wrap:wrap;gap:.75rem;margin:.5rem 0 1.5rem}.accent-color-option{width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem;border-radius:50%;border:2px solid var(--border);cursor:pointer;padding:0}.accent-color-option.selected{border-color:var(--fg);box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--fg)}.role-select{padding:.4rem .5rem;border:1px solid var(--border);border-radius:.4rem;background:var(--card);color:var(--fg);font:inherit;font-size:.85rem;min-height:2.5rem}.admin-users-table-wrap{overflow-x:auto;margin:1rem 0 1.5rem;border:1px solid var(--border);border-radius:.75rem;-webkit-overflow-scrolling:touch}.admin-users-table{width:100%;min-width:34rem;border-collapse:collapse}.admin-users-table th{text-align:left;font-size:.85rem;color:var(--muted);white-space:nowrap}.admin-users-table td,.admin-users-table th{padding:.6rem .75rem;border-bottom:1px solid var(--border)}.admin-users-table td{vertical-align:top}.admin-users-table tr:last-child td{border-bottom:none}.admin-users-tier-cell{font-size:1.3rem;text-align:center;width:2.5rem}.admin-users-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.admin-users-delete-confirm{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.admin-settings{border:1px solid var(--border);border-radius:.75rem;padding:1rem;margin:1rem 0}.admin-settings h2{margin:0 0 .75rem;font-size:1.05rem}.admin-settings form{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.admin-settings label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.admin-settings input:not([type=checkbox]){padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem;width:8rem}.admin-settings input[type=checkbox]{width:1.4rem;height:1.4rem;accent-color:var(--accent)}.admin-settings label:has(input[type=checkbox]){flex-direction:row;align-items:center}.admin-settings button{padding:.55rem 1.2rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;cursor:pointer;min-height:2.75rem}.admin-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.admin-filters input,.admin-filters select{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem}.admin-filters input{flex:1 1;min-width:12rem}.admin-pagination{display:flex;align-items:center;gap:1rem;margin:1.5rem 0}.admin-pagination button{padding:.5rem 1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;cursor:pointer;min-height:2.75rem}.admin-pagination button:disabled{opacity:.4;cursor:not-allowed}.recipes-pagination{display:flex;align-items:center;gap:1rem;margin:1.5rem 0}.recipes-pagination a,.recipes-pagination span[aria-disabled]{padding:.5rem 1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);text-decoration:none;min-height:2.75rem;display:inline-flex;align-items:center}.recipes-pagination span[aria-disabled]{opacity:.4;cursor:not-allowed}.recipe-detail-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.recipe-detail-nav a,.recipe-detail-nav button,.recipe-detail-nav span[aria-disabled]{padding:.5rem 1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);text-decoration:none;min-height:2.75rem;display:inline-flex;align-items:center;font:inherit;cursor:pointer}.recipe-detail-nav span[aria-disabled]{opacity:.4}.recipe-detail-nav button:disabled{opacity:.6;cursor:default}.admin-source-platform-list{list-style:none;margin:0;padding:0}.admin-source-platform{display:flex;flex-direction:column;gap:.5rem;padding:.85rem 0;border-bottom:1px solid var(--border)}.admin-source-platform:last-child{border-bottom:none}.admin-source-platform label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.admin-source-platform label:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:.5rem}.admin-source-platform textarea{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;resize:vertical}.admin-source-platform button{align-self:flex-start;padding:.5rem 1.1rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;cursor:pointer;min-height:2.5rem}.admin-source-platform button:disabled{opacity:.5;cursor:not-allowed}.admin-billing{display:inline-block}.admin-billing-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem}.admin-billing-form button,.admin-billing-form input,.admin-billing-form select{padding:.4rem .6rem;border:1px solid var(--border);border-radius:.4rem;background:var(--card);color:var(--fg);font:inherit;font-size:.85rem;min-height:2.5rem}.admin-billing-form button:disabled{opacity:.5;cursor:not-allowed}.family-invites{border:1px solid var(--accent);border-radius:.75rem;padding:1rem;margin-bottom:1rem}.family-invites h3{margin:0 0 .5rem;font-size:1rem}.own-recipes button:not(.report-link){padding:.5rem .9rem;border:1px solid var(--accent);border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;font-size:.85rem;cursor:pointer;min-height:2.5rem}.family-form{gap:.85rem;max-width:28rem;margin-top:1rem}.family-form,.family-form label{display:flex;flex-direction:column}.family-form label{gap:.3rem;font-size:.9rem;color:var(--muted)}.family-form input,.family-form select{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem}.family-form button{align-self:flex-start;padding:.55rem 1.2rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;min-height:2.75rem}.meal-time-editor{max-width:28rem}.meal-time-editor label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted)}.meal-time-editor input[type=time]{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem}.meal-time-editor>button{padding:.55rem 1.2rem;border:none;border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;min-height:2.75rem}.meal-time-editor>button:disabled{opacity:.5;cursor:not-allowed}.meal-time-days,.meal-time-quick-select,.meal-time-slots{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.meal-time-days button,.meal-time-slots button{min-height:2.75rem;min-width:2.75rem;padding:.5rem .9rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;cursor:pointer}.meal-time-days button.active,.meal-time-slots button.active{border-color:var(--accent);background:var(--accent);color:#fff}.meal-time-quick-select .report-link{font-size:.85rem}.meal-time-overview{list-style:none;padding:0;margin:1rem 0 0}.meal-time-overview li{padding:.6rem 0;border-bottom:1px solid var(--border)}.family-warnings{display:flex;flex-direction:column;gap:.4rem;margin:.5rem 0}.family-warnings p{margin:0;padding:.55rem .85rem;border-radius:.5rem;font-size:.92rem}.warning-allergy{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.warning-dislike{background:var(--card);color:var(--muted);border:1px solid var(--border)}@media (prefers-color-scheme:dark){.warning-allergy{background:#3f1d1d;color:#fca5a5;border-color:#7f1d1d}}.danger-zone{margin-top:3rem;border:1px solid #dc2626;border-radius:.75rem;padding:1rem;max-width:42rem}.danger-zone h2,.danger-zone summary{margin-top:0;color:#dc2626;font-size:1.1rem}.danger-zone summary{font-weight:700;cursor:pointer}.danger-zone label,.danger-zone[open] summary{margin-bottom:.75rem}.danger-zone label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted);max-width:18rem}.danger-zone input{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;min-height:2.75rem}.help-page section{margin:1.75rem 0}.help-page section h2{margin-bottom:.4rem}.billing-plans{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem}.billing-plan{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--border);border-radius:.75rem;min-width:12rem}.billing-plan h3{margin:0;font-size:1rem}.billing-plan button{padding:.55rem .9rem;border:1px solid var(--accent);border-radius:.5rem;background:var(--accent);color:#fff;font:inherit;cursor:pointer;min-height:2.75rem}.billing-plan button:disabled{opacity:.6;cursor:default}.billing-plan-current{border-color:var(--accent);border-width:2px}.onboarding-steps{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.75rem}.onboarding-steps li{display:flex;align-items:flex-start;gap:.6rem}.onboarding-step-check{font-size:1.2rem;line-height:1.4;flex:0 0 auto}.onboarding-step-done{opacity:.6}.onboarding-step-done .onboarding-step-check{color:var(--accent)}.billing-trial{border-color:var(--accent);border-width:2px;max-width:24rem}.danger-button{padding:.6rem 1.2rem;border:none;border-radius:.5rem;background:#dc2626;color:#fff;font:inherit;font-weight:600;cursor:pointer;min-height:2.75rem}.danger-button:disabled{opacity:.5;cursor:not-allowed}.cooking{max-width:40rem}.cooking-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.cooking h1{font-size:1.4rem}.cooking-ingredients{list-style:none;padding:0;margin:1rem 0 2rem}.cooking-ingredients label{display:flex;align-items:center;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--border);font-size:1.05rem;cursor:pointer}.cooking-ingredients label.done span{text-decoration:line-through;color:var(--muted)}.cooking-ingredients input[type=checkbox]{width:1.6rem;height:1.6rem;accent-color:var(--accent)}.cooking-step{border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;background:var(--card)}.step-counter{color:var(--muted);font-size:.9rem;margin:0 0 .5rem}.step-text{font-size:1.35rem;line-height:1.5;margin:0 0 1.5rem}.cooking-nav{display:flex;gap:.75rem}.cooking-nav button{flex:1 1;padding:.9rem 1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg);color:var(--fg);font:inherit;font-size:1.05rem;cursor:pointer;min-height:3.2rem}.cooking-nav button:disabled{opacity:.4}@media (max-width:640px){main{padding:1.25rem 1rem 3rem}.site-header{padding:.75rem 1rem;flex-wrap:nowrap}.nav-toggle{display:inline-flex;order:2}.auth-status{order:1}.site-header nav{display:none}.site-header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:.25rem;position:absolute;top:100%;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);padding:.5rem 1rem 1rem;z-index:20}.site-header nav.open a{padding:.85rem .5rem;border-bottom:1px solid var(--border)}.nav-more{display:none}.nav-more-flat{display:contents}.hero h1{font-size:1.6rem}.cards{grid-template-columns:1fr}.home-tiles{grid-template-columns:repeat(2,1fr);gap:.5rem}.home-tiles a{padding:.85rem .4rem;gap:.25rem}.home-tile-icon{font-size:1.3rem}.home-tiles h2{font-size:.85rem}.auth input,.recipe-form input,.recipe-form select,.recipe-form textarea{font-size:1rem;min-height:2.75rem}.add-row,.auth form button[type=submit],.photo-upload-button,.recipe-form button[type=submit]{width:100%;text-align:center;min-height:2.75rem}.todo-edit-form button[type=submit],.todo-quick-add button[type=submit]{width:100%;text-align:center}.field-row label{min-width:calc(50% - .4rem)}.ingredient-row button,.step-row button{width:2.75rem;height:2.75rem}.ingredients .amount{min-width:5rem}.hero-photo{max-height:16rem}.plan-picker{position:fixed;left:0;right:0;bottom:0;border-radius:.75rem .75rem 0 0;max-height:75vh;overflow-y:auto;z-index:10;box-shadow:0 -8px 24px rgb(0 0 0/.18)}.plan-picker form button[type=submit],.plan-share form button[type=submit]{width:100%}.week-recipe-card{flex-direction:column}.week-recipe-card .photo-placeholder,.week-recipe-card img{width:100%;height:10rem}.quick-suggest form{flex-direction:column;align-items:stretch}.quick-suggest button{width:100%}.billing-plans{flex-direction:column}}