:root{--color-bg:#f8f6f1;--color-header:#f8f6f1;--color-card:#ffffff;--color-accent:#3b7942;--color-accent-dark:#2a5c30;--color-accent-light:#4a9652;--color-text:#232323;--color-subtle:#6b6b6b;--color-border:#e5e5e5;--color-shadow:rgba(0,0,0,0.08);--color-shadow-hover:rgba(0,0,0,0.12);--color-success:#2e7d32;--color-success-light:#e8f5e9;--color-success-dark:#1b5e20;--color-success-text:#155724;--color-success-border:#c3e6cb;--color-info:#1976d2;--color-info-light:#e3f2fd;--color-info-text:#0c5460;--color-info-border:#b8daff;--color-error:#d32f2f;--color-error-light:#ffebee;--color-error-text:#721c24;--color-error-border:#f5c6cb;--color-warning:#f59e0b;--color-warning-light:#fffbeb;--color-warning-text:#92400e;--color-warning-border:#fde68a;--skeleton-base:#e8e8e8;--skeleton-shine:#f5f5f5;--color-variant-dietary:#a855f7;--color-variant-dietary-light:#f3e8ff;--color-variant-dietary-text:#6b21a8;--color-variant-star:#fbbf24;--color-variant-check:#86efac;--color-variant-info:#60a5fa;--color-admin-bg:#f8f9fa;--color-admin-muted:#6c757d;--color-admin-review:#17a2b8;--color-admin-published:#28a745;--color-admin-gradient-start:#ffc107;--color-admin-gradient-end:#ff9800;--color-rating:#ffa000;--color-rating-empty:#e0e0e0;--color-quality-excellent:#4caf50;--color-quality-excellent-light:#e8f5e9;--color-quality-good:#2196f3;--color-quality-good-light:#e3f2fd;--color-quality-acceptable:#ff9800;--color-quality-acceptable-light:#fff3e0;--color-passive-bg:#fffef5;--color-passive-border:#f0ecd9;--color-passive-border-dark:#d4c896;--color-passive-accent:#c9b96f;--color-passive-text:#7a6f47;--header-height:80px;--border-radius-sm:8px;--border-radius-md:12px;--border-radius-lg:16px;--border-radius-pill:999px;--control-height:2.8rem;--control-height-sm:2.2rem;--focus-outline-color:var(--color-accent);--focus-outline-width:2px;--focus-outline-offset:2px;--color-accent-alpha-2:rgba(59,121,66,0.02);--color-accent-alpha-5:rgba(59,121,66,0.05);--color-accent-alpha-8:rgba(59,121,66,0.08);--color-accent-alpha-10:rgba(59,121,66,0.1);--color-accent-alpha-15:rgba(59,121,66,0.15);--color-accent-alpha-20:rgba(59,121,66,0.2);--color-accent-alpha-25:rgba(59,121,66,0.25);--color-accent-alpha-30:rgba(59,121,66,0.3);--color-accent-alpha-40:rgba(59,121,66,0.4);--color-tag-role:rgb(59,130,246);--color-tag-role-light:rgba(59,130,246,0.1);--color-tag-role-border:rgba(59,130,246,0.3);--color-tag-cuisine:rgb(234,88,12);--color-tag-cuisine-light:rgba(234,88,12,0.1);--color-tag-cuisine-border:rgba(234,88,12,0.3);--color-tag-occasion:rgb(168,85,247);--color-tag-occasion-light:rgba(168,85,247,0.1);--color-tag-occasion-border:rgba(168,85,247,0.3);--color-backdrop:rgba(0,0,0,0.5);--color-overlay-dark:rgba(31,31,31,0.95)}:root[data-theme='dark']{--color-bg:#0f0f0f;--color-header:#1a1a1a;--color-card:#1f1f1f;--color-accent:#5fb069;--color-accent-dark:#4a9652;--color-accent-light:#70c57a;--color-text:#e8e8e8;--color-subtle:#a8a8a8;--color-border:#2a2a2a;--color-shadow:rgba(0,0,0,0.3);--color-shadow-hover:rgba(0,0,0,0.5);--color-success:#66bb6a;--color-success-light:rgba(76,175,80,0.15);--color-success-dark:#4caf50;--color-success-text:#a5d6a7;--color-success-border:rgba(102,187,106,0.4);--color-info:#42a5f5;--color-info-light:rgba(33,150,243,0.15);--color-info-text:#90caf9;--color-info-border:rgba(66,165,245,0.4);--color-error:#ef5350;--color-error-light:rgba(244,67,54,0.15);--color-error-text:#ef9a9a;--color-error-border:rgba(239,83,80,0.4);--color-warning:#ffa726;--color-warning-light:rgba(255,152,0,0.15);--color-warning-text:#ffcc80;--color-warning-border:rgba(255,167,38,0.4);--skeleton-base:#2a2a2a;--skeleton-shine:#3a3a3a;--color-variant-dietary:#c084fc;--color-variant-dietary-light:rgba(168,85,247,0.2);--color-variant-dietary-text:#e9d5ff;--color-variant-star:#fbbf24;--color-variant-check:#86efac;--color-variant-info:#60a5fa;--color-admin-bg:#2a2a2a;--color-admin-muted:#9ca3af;--color-admin-review:#38bdf8;--color-admin-published:#4ade80;--color-admin-gradient-start:#fbbf24;--color-admin-gradient-end:#f97316;--color-rating:#ffb74d;--color-rating-empty:#424242;--color-quality-excellent:#81c784;--color-quality-excellent-light:rgba(76,175,80,0.15);--color-quality-good:#64b5f6;--color-quality-good-light:rgba(33,150,243,0.15);--color-quality-acceptable:#ffb74d;--color-quality-acceptable-light:rgba(255,152,0,0.15);--focus-outline-color:var(--color-accent-light);--color-accent-alpha-2:rgba(95,176,105,0.03);--color-accent-alpha-5:rgba(95,176,105,0.05);--color-accent-alpha-8:rgba(95,176,105,0.08);--color-accent-alpha-10:rgba(95,176,105,0.1);--color-accent-alpha-15:rgba(95,176,105,0.15);--color-accent-alpha-20:rgba(95,176,105,0.2);--color-accent-alpha-25:rgba(95,176,105,0.25);--color-accent-alpha-30:rgba(95,176,105,0.3);--color-accent-alpha-40:rgba(95,176,105,0.4);--color-tag-role:rgb(96,165,250);--color-tag-role-light:rgba(96,165,250,0.15);--color-tag-role-border:rgba(96,165,250,0.4);--color-tag-cuisine:rgb(251,146,60);--color-tag-cuisine-light:rgba(251,146,60,0.15);--color-tag-cuisine-border:rgba(251,146,60,0.4);--color-tag-occasion:rgb(192,132,252);--color-tag-occasion-light:rgba(192,132,252,0.15);--color-tag-occasion-border:rgba(192,132,252,0.4);--color-backdrop:rgba(0,0,0,0.7);--color-overlay-dark:rgba(15,15,15,0.95)}html{box-sizing:border-box;font-size:100%;scroll-behavior:smooth}*,*::before,*::after{box-sizing:inherit}body{font-family:'Lora',serif;margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-size:clamp(1.05rem,2vw,1.2rem);line-height:1.6;min-height:100vh}a{color:var(--color-accent);text-decoration:none;transition:color 0.18s ease}a:hover{color:var(--color-accent-dark)}.form-block a,.checkbox-label a,p a,.text-content a{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;transition:text-decoration-color 0.18s ease,color 0.18s ease}.form-block a:hover,.checkbox-label a:hover,p a:hover,.text-content a:hover{color:var(--color-accent-dark);text-decoration-color:var(--color-accent-dark);background:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,[role="button"]:focus-visible{outline:var(--focus-outline-width) solid var(--focus-outline-color);outline-offset:var(--focus-outline-offset)}a:focus:not(:focus-visible),button:focus:not(:focus-visible),[tabindex]:focus:not(:focus-visible),[role="button"]:focus:not(:focus-visible){outline:none}.card:focus-within{box-shadow:0 0 0 var(--focus-outline-width) var(--focus-outline-color)}button:focus-visible,.btn:focus-visible,[class*="btn-"]:focus-visible{outline:var(--focus-outline-width) solid var(--focus-outline-color);outline-offset:var(--focus-outline-offset);box-shadow:0 0 0 4px var(--color-accent-alpha-20)}.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}.hidden{display:none !important}img{max-width:100%;display:block;height:auto;border-radius:var(--border-radius-sm)}h1,.page-title{text-align:center;color:var(--color-accent);font-family:'Lora',serif;font-weight:700;font-size:clamp(1.8rem,4vw,3rem);margin:0 0 0.5rem 0}h2,.section-title{text-align:center;color:var(--color-accent);font-family:'Lora',serif;font-weight:700;font-size:clamp(1.4rem,3vw,2rem);margin:1rem 0 0.75rem 0}h3{text-align:center;color:var(--color-accent);font-family:'Lora',serif;font-weight:500;font-size:clamp(1.1rem,2.5vw,1.6rem);margin:1rem 0}h4{text-align:center;color:var(--color-accent);font-family:'Lora',serif;font-weight:400;font-size:clamp(0.95rem,2vw,1.4rem);margin:0.8rem 0}@keyframes fadeIn{from{opacity:0;transform:scale(0.98)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{from{transform:translate(-50%,-10px);opacity:0}to{transform:translate(-50%,0);opacity:1}}.site-footer{background:var(--color-card);border-top:1px solid var(--color-border);padding:1rem;margin-top:3rem}.footer-content{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-content p{margin:0;color:var(--color-subtle);font-size:0.9rem}.footer-content a{color:var(--color-accent);text-decoration:none;transition:color 0.18s ease}.footer-content a:hover{color:var(--color-accent-dark);background:none}@media (max-width:640px){.footer-content{flex-direction:column;text-align:center;gap:0.5rem}}.page-info-box{padding:1rem 1.25rem;background:linear-gradient(135deg,var(--color-accent-alpha-5),var(--color-accent-alpha-2));border:1px solid var(--color-accent-alpha-15);border-radius:var(--border-radius-md);margin-bottom:1rem;box-shadow:0 2px 8px var(--color-shadow)}.page-info-box.centered{text-align:center}.info-intro{font-size:1rem;color:var(--color-text);margin:0;line-height:1.5}.info-toggle-link{display:inline-flex;align-items:center;gap:0.5rem;background:none;border:2px solid var(--color-accent);border-radius:var(--border-radius-md);color:var(--color-accent);font-size:0.9rem;font-weight:600;cursor:pointer;padding:0.5rem 1rem;text-decoration:none;transition:all 0.2s ease;margin:0.5rem auto 0}.info-toggle-link:hover{background:var(--color-accent);color:white;transform:translateY(-2px);box-shadow:0 4px 12px var(--color-accent-alpha-25)}.info-toggle-link[aria-expanded="true"]{background:var(--color-accent);color:white}.info-toggle-link .toggle-icon{display:inline-block;font-size:0.75rem;transition:transform 0.3s ease;transform-origin:center}.info-toggle-link .toggle-text{font-weight:600}.info-details{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-accent-alpha-15)}.info-link{color:var(--color-accent);text-decoration:underline;font-weight:600}.info-link:hover{color:white}.info-hierarchy{display:flex;flex-direction:column;align-items:center;gap:0.5rem;margin-top:0.75rem}.hierarchy-level{display:flex;flex-direction:column;align-items:center;gap:0.25rem;padding:0.75rem 1.5rem;background:rgba(255,255,255,0.6);border-radius:var(--border-radius-sm);max-width:500px;width:100%}.hierarchy-level strong{color:var(--color-accent);font-weight:600;font-size:1rem}.hierarchy-level span{color:var(--color-subtle);font-size:0.875rem;text-align:center}.hierarchy-arrow{color:var(--color-accent);font-weight:700;font-size:1.5rem;opacity:0.5}.info-footnote{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-accent-alpha-15);font-size:0.9rem;color:var(--color-text);line-height:1.5}.info-footnote strong{color:var(--color-accent)}.recipe-tip{position:relative;padding:0.75rem 1.5rem 0.75rem 1.5rem;margin:1rem 0;font-size:0.95rem;line-height:1.5;color:var(--color-text)}.recipe-tip::before{content:'';position:absolute;left:0;top:0.25rem;bottom:0.25rem;width:8px;border:2px solid var(--color-accent);border-right:none;border-radius:8px 0 0 8px}.recipe-tip p{margin:0 0 0.4rem 0}.recipe-tip p:last-child{margin-bottom:0}.recipe-tip strong{color:var(--color-accent);font-style:italic}.recipe-tip-intro{max-width:700px;margin:0.5rem auto 0.75rem auto}.recipe-tip-steps{max-width:700px;margin:0 auto 0.75rem auto}.tip-dismiss-btn{position:absolute;top:0;right:0;width:24px;height:24px;background:transparent;border:none;color:var(--color-subtle);font-size:1.2rem;line-height:1;cursor:pointer;opacity:0.5;transition:opacity 0.2s,color 0.2s;display:flex;align-items:center;justify-content:center}.tip-dismiss-btn:hover{opacity:1;color:var(--color-text)}.btn-link{background:none;border:none;color:var(--color-subtle);font-size:0.85rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--color-accent)}.btn-link:disabled{opacity:0.6;cursor:default}.reset-tutorial-btn{display:block;margin-top:0.75rem}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:0.75rem}.info-grid.wide{grid-template-columns:repeat(3,1fr)}.info-item{display:flex;flex-direction:column;gap:0.25rem;padding:0.75rem;background:rgba(255,255,255,0.5);border-radius:var(--border-radius-sm);transition:transform 0.2s ease,background 0.2s ease}.info-item:hover{transform:translateY(-2px);background:rgba(255,255,255,0.8)}.info-item strong{color:var(--color-accent);font-weight:600;font-size:0.95rem}.info-item span{color:var(--color-subtle);font-size:0.85rem;line-height:1.4}:root[data-theme='dark'] .info-item{background:rgba(255,255,255,0.03)}:root[data-theme='dark'] .info-item:hover{background:rgba(255,255,255,0.06)}:root[data-theme='dark'] .hierarchy-level{background:rgba(255,255,255,0.04)}@media (max-width:900px){.info-grid.wide{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.page-info-box{padding:0.75rem 1rem}.info-intro{font-size:0.9rem}.info-grid,.info-grid.wide{grid-template-columns:1fr;gap:0.75rem}.hierarchy-level{padding:0.65rem 1rem}.hierarchy-level strong{font-size:0.95rem}.hierarchy-level span{font-size:0.8rem}.hierarchy-arrow{font-size:1.25rem}.info-footnote{font-size:0.85rem}}.skip-link{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;background:var(--color-accent);color:white;text-decoration:none;z-index:10000}.skip-link:focus{position:fixed;top:0;left:0;width:auto;height:auto;padding:8px 16px;margin:0;overflow:visible;clip:auto;white-space:normal;border-radius:0 0 var(--border-radius-sm) 0}.error-page{text-align:center;padding:2rem 1rem;max-width:500px;margin:0 auto}.error-page h1{font-size:3rem;color:var(--color-error);margin:0 0 0.5rem 0}.error-page.not-found h1{color:var(--color-accent)}.error-page h2{margin:0 0 1rem 0;color:var(--color-heading)}.error-page p{color:var(--color-subtle);margin-bottom:1.5rem}.error-actions{display:flex;gap:0.5rem;justify-content:center;flex-wrap:wrap}.button-secondary{background:transparent;border:1px solid var(--color-accent);color:var(--color-accent)}body{display:flex;flex-direction:column;min-height:100vh}.page-wrapper{flex:1 0 auto}.site-footer{flex-shrink:0}.page-wrapper{max-width:1400px;width:100%;margin:0 auto;padding:0.25rem 1rem 1rem}main,section{max-width:1200px;margin:0 auto;padding:0 1rem}.layout .card-grid{max-width:none;margin:0;padding:0}:root{--sidebar-width:300px;--layout-gap:1rem}.layout{display:grid;gap:var(--layout-gap)}@media (min-width:1024px){.layout{grid-template-columns:var(--sidebar-width) 1fr;align-items:start}.layout-sidebar{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;width:100%}.card-grid.card-grid-4{display:flex;flex-wrap:wrap;justify-content:center;gap:0.75rem}.card-grid.card-grid-4 > *{flex:0 0 calc(25% - 0.5625rem);max-width:calc(25% - 0.5625rem)}.card-grid.card-grid-4 .card{padding:0.5rem}.card-grid.card-grid-4 .card-image img{aspect-ratio:4/3;object-fit:cover}.card-grid.card-grid-4 .card-title{font-size:0.9rem;margin-top:0.5rem}.cuisine-grid{grid-template-columns:repeat(4,1fr);gap:0.875rem}.cuisine-grid .card{padding:0.75rem 0.5rem}.cuisine-grid .card-title{font-size:0.9rem}@media (max-width:900px){.card-grid{grid-template-columns:repeat(2,1fr)}.card-grid.card-grid-4 > *{flex:0 0 calc(33.333% - 0.5rem);max-width:calc(33.333% - 0.5rem)}.cuisine-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:600px){.card-grid{gap:0.75rem}.card-grid.card-grid-4 > *{flex:0 0 calc(50% - 0.375rem);max-width:calc(50% - 0.375rem)}.cuisine-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:450px){main,section{padding:0 0.375rem}.page-wrapper{padding:0.25rem 0.375rem 1rem}.card-grid{grid-template-columns:repeat(2,1fr);gap:0.375rem}.card-grid.summary{grid-template-columns:repeat(2,1fr);gap:0.25rem}.card-grid.mini{grid-template-columns:repeat(auto-fit,minmax(70px,90px));gap:0.25rem}.cuisine-grid{grid-template-columns:repeat(2,1fr);gap:0.375rem}}@media (max-width:360px){main,section{padding:0 0.25rem}.page-wrapper{padding:0.25rem 0.25rem 1rem}.card-grid{gap:0.25rem}}.features{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:2rem;margin:2rem 0;padding:0;width:100%}@media (max-width:900px){.features{flex-direction:column;gap:1.125rem;align-items:center}}@media (max-width:700px){body{max-width:100vw;padding:0.25rem}}.hero-assembly-section{text-align:center;padding:1.25rem 1rem;margin-bottom:1rem;background:var(--color-card);border-radius:var(--border-radius-lg);border:1px solid var(--color-border)}.hero-title{font-size:2rem;font-weight:700;color:var(--color-accent);margin:0 0 0.5rem 0}.hero-subtitle{font-size:1.1rem;color:var(--color-subtle);margin:0 0 1rem 0}.assembly-line{display:flex;align-items:center;justify-content:center;gap:0.75rem;flex-wrap:wrap;margin-bottom:1.25rem}.assembly-item{display:flex;flex-direction:column;align-items:center;gap:0.5rem}.assembly-card{width:100px;height:100px;border-radius:var(--border-radius-md);overflow:hidden;border:2px solid var(--color-border);transition:border-color 0.2s ease,transform 0.2s ease}.assembly-card:hover{border-color:var(--color-accent);transform:scale(1.05)}.assembly-card img{width:100%;height:100%;object-fit:cover}.assembly-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-bg);font-size:2rem;font-weight:600;color:var(--color-subtle)}.assembly-role{font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--color-accent);background:var(--color-bg);padding:0.2rem 0.5rem;border-radius:var(--border-radius-pill)}.assembly-title{font-size:0.8rem;color:var(--color-text);max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assembly-plus,.assembly-equals{font-size:1.5rem;font-weight:300;color:var(--color-subtle)}.assembly-result{display:flex;flex-direction:column;align-items:center;gap:0.5rem}.assembly-result-icon{width:100px;height:100px;border-radius:var(--border-radius-md);background:var(--color-accent);color:white;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:0.9rem}.assembly-result-image{width:100px;height:100px;border-radius:var(--border-radius-md);object-fit:cover;border:2px solid var(--color-border)}.hero-cta-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:0.75rem}.button-large{padding:0.875rem 2rem;font-size:1.1rem}.button-primary{background:var(--color-accent);color:white;border:2px solid var(--color-accent);border-radius:var(--border-radius-sm);padding:0.6rem 1.6rem}.button-primary:hover{background:var(--color-accent-dark)}.button-secondary{background:transparent;color:var(--color-accent);border:2px solid var(--color-accent)}.button-secondary:hover{background:var(--color-accent);color:white}.discovery-promo{margin:1rem 0 0.75rem}.discovery-promo-link{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--color-bg);border:2px solid var(--color-accent);border-radius:var(--border-radius-md);text-decoration:none;color:var(--color-text);transition:transform 0.2s ease,box-shadow 0.2s ease,background 0.2s ease}.discovery-promo-link:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--color-shadow);background:var(--color-card)}.discovery-promo-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);border-radius:50%;color:white}.discovery-promo-text{flex:1;text-align:left}.discovery-promo-text strong{display:block;font-size:1.1rem;font-weight:600;color:var(--color-accent);margin-bottom:0.2rem}.discovery-promo-text span{font-size:0.9rem;color:var(--color-subtle)}.discovery-promo-arrow{flex-shrink:0;color:var(--color-accent);opacity:0.7;transition:transform 0.2s ease}.discovery-promo-link:hover .discovery-promo-arrow{transform:translateX(4px);opacity:1}.hero-occasions{display:flex;align-items:center;justify-content:center;gap:0.75rem;flex-wrap:wrap}.occasions-label{font-size:0.9rem;color:var(--color-subtle)}.occasion-chip{display:inline-block;padding:0.4rem 0.8rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);font-size:0.85rem;color:var(--color-text);text-decoration:none;transition:all 0.2s ease}.occasion-chip:hover{background:var(--color-accent);color:white;border-color:var(--color-accent)}.occasion-chip.tutorial-highlight{background:var(--color-accent-light);border-color:var(--color-accent);color:white}.occasion-chip.tutorial-highlight:hover{background:var(--color-accent-dark)}.tutorial-badge{font-size:0.7rem;background:rgba(255,255,255,0.3);padding:0.1rem 0.4rem;border-radius:var(--border-radius-sm);margin-left:0.3rem}.browse-by-role-section{margin-bottom:2.5rem}.role-cards-row{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.role-card{display:flex;flex-direction:column;align-items:center;padding:1rem 1.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);text-decoration:none;transition:all 0.2s ease;min-width:120px}.role-card:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 4px 12px var(--color-shadow)}.role-card-name{font-size:1rem;font-weight:600;color:var(--color-heading)}.role-card-count{font-size:0.8rem;color:var(--color-subtle)}.featured-builder-section{margin-bottom:2.5rem}.featured-components-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem;max-width:800px;margin-left:auto;margin-right:auto}.featured-component-card{display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);text-decoration:none;color:var(--color-text);transition:all 0.2s ease}.featured-component-card:hover{transform:translateY(-3px);border-color:var(--color-accent);box-shadow:0 4px 12px var(--color-shadow)}.featured-component-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--border-radius-sm);margin-bottom:0.75rem}.featured-placeholder{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border-radius:var(--border-radius-sm);margin-bottom:0.75rem;font-size:2rem;color:var(--color-accent)}.featured-title{font-weight:600;font-size:0.95rem;text-align:center;color:var(--color-heading)}.featured-role{font-size:0.8rem;color:var(--color-subtle);margin-top:0.25rem}.popular-combinations-section{margin-bottom:2.5rem}.section-subtitle{text-align:center;color:var(--color-subtle);margin-top:-0.5rem;margin-bottom:1.5rem;font-size:0.95rem}.combinations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.combination-card{display:flex;flex-direction:column;padding:1.25rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);text-decoration:none;transition:all 0.2s ease}.combination-card:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 6px 20px var(--color-shadow)}.combination-components{display:flex;align-items:center;justify-content:center;gap:0.5rem;margin-bottom:1rem}.combination-component-thumb{width:50px;height:50px;border-radius:var(--border-radius-sm);overflow:hidden;background:var(--color-bg)}.combination-component-thumb img{width:100%;height:100%;object-fit:cover}.combination-component-thumb .thumb-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:1.2rem;font-weight:600;color:var(--color-subtle)}.combination-plus{font-size:1rem;color:var(--color-subtle)}.combination-more{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:var(--border-radius-sm);background:var(--color-bg);font-size:0.85rem;font-weight:600;color:var(--color-subtle)}.combination-title{margin:0 0 0.5rem 0;font-size:1.1rem;font-weight:600;color:var(--color-heading);text-align:center}.combination-meta{display:flex;justify-content:center;gap:0.75rem;font-size:0.8rem;color:var(--color-subtle)}.combination-occasion{padding:0.15rem 0.5rem;background:var(--color-bg);border-radius:var(--border-radius-pill)}.section-footer{text-align:center;margin-top:1.5rem}@media (max-width:700px){.hero-assembly-section{padding:1.5rem 1rem}.hero-title{font-size:1.5rem}.hero-subtitle{font-size:1rem}.assembly-card{width:70px;height:70px}.assembly-result-icon{width:70px;height:70px;font-size:0.75rem}.assembly-result-image{width:70px;height:70px}.assembly-plus,.assembly-equals{font-size:1.2rem}.assembly-role{font-size:0.6rem}.assembly-title{font-size:0.7rem;max-width:70px}.hero-cta-row{flex-direction:column;align-items:center}.button-large{width:100%;max-width:280px}.role-card{min-width:100px;padding:0.75rem 1rem}.discovery-promo-link{padding:0.875rem 1rem}.discovery-promo-icon{width:40px;height:40px}.discovery-promo-icon svg{width:22px;height:22px}.discovery-promo-text strong{font-size:1rem}.discovery-promo-text span{font-size:0.85rem}}@media (max-width:450px){.assembly-line{gap:0.5rem}.assembly-card{width:60px;height:60px}.assembly-result-icon{width:60px;height:60px}.assembly-result-image{width:60px;height:60px}}.kitchen-based-section{margin:2rem 0;padding:1.5rem;background:linear-gradient(135deg,var(--color-accent-alpha-5),var(--color-accent-alpha-2));border:1px solid var(--color-accent-light);border-radius:var(--border-radius-lg)}.kitchen-based-section .section-header-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:0.5rem}.kitchen-based-section .section-title{display:flex;align-items:center;gap:0.5rem;margin:0;color:var(--color-accent)}.kitchen-count-badge{padding:0.25rem 0.75rem;background:var(--color-accent);color:white;font-size:0.8rem;font-weight:600;border-radius:var(--border-radius-pill)}.kitchen-based-section .section-subtitle{margin:0 0 1.5rem 0;color:var(--color-subtle)}.kitchen-subsection{margin-bottom:1.5rem}.kitchen-subsection:last-child{margin-bottom:0}.kitchen-subsection h3{margin:0 0 1rem 0;font-size:1.1rem;color:var(--color-heading)}.kitchen-search-wrapper{position:relative;margin-bottom:1.5rem;max-width:400px}.kitchen-search-input{width:100%;padding:0.6rem 1rem;border:1px solid var(--color-border);border-radius:var(--border-radius-sm,6px);background:var(--color-card);color:var(--color-text);font-size:0.95rem}.kitchen-search-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px rgba(59,121,66,0.15)}.card-grid.compact{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.card-grid.summary{grid-template-columns:repeat(auto-fit,minmax(120px,140px));gap:0.75rem;justify-content:center}.card-grid.summary .card{padding:0.5rem}.card-grid.summary .card img{border-radius:var(--border-radius-sm);cursor:pointer}.card-grid.summary .card img:hover{opacity:0.9}.card-grid.summary .card-title{font-size:0.8rem;padding:0.25rem 0;line-height:1.2}.card-grid.mini{grid-template-columns:repeat(auto-fit,minmax(90px,110px));gap:0.5rem;justify-content:center}.card-grid.mini .card{padding:0.375rem}.card-grid.mini .card img{border-radius:var(--border-radius-sm);aspect-ratio:1 / 1;object-fit:cover;cursor:pointer}.card-grid.mini .card img:hover{opacity:0.9}.card-grid.mini .card-title{font-size:0.75rem;padding:0.25rem 0 0;line-height:1.2}.card-placeholder{aspect-ratio:1 / 1;background:var(--color-bg);border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--color-accent);opacity:0.4}.card-grid.mini .card-placeholder{font-size:1.25rem}.match-badge{position:absolute;top:0.5rem;right:0.5rem;padding:0.25rem 0.5rem;background:var(--color-subtle);color:white;font-size:0.7rem;font-weight:700;border-radius:var(--border-radius-pill);box-shadow:0 2px 4px rgba(0,0,0,0.2);min-width:60px;text-align:center}.match-badge.complete{background:var(--color-accent)}.recipe-count-badge{position:absolute;bottom:0.5rem;left:0.5rem;padding:0.2rem 0.5rem;background:var(--color-accent);color:white;font-size:0.65rem;font-weight:600;border-radius:var(--border-radius-pill);box-shadow:0 2px 4px rgba(0,0,0,0.15)}.todays-dish-section{margin:2rem 0;padding:1.5rem;background:linear-gradient(135deg,var(--color-accent-alpha-5),var(--color-accent-alpha-2));border:1px solid var(--color-accent-light);border-radius:var(--border-radius-lg);text-align:center}.todays-dish-section .section-header-row{display:flex;align-items:center;justify-content:center;gap:0.5rem;margin-bottom:1rem}.todays-dish-section .section-title{display:flex;align-items:center;gap:0.5rem;margin:0;color:var(--color-accent)}.todays-dish-card{display:flex;align-items:center;gap:1.5rem;background:var(--color-card);border-radius:var(--border-radius-md);padding:1rem;margin:1rem auto;max-width:500px;text-align:left}.todays-dish-image{flex-shrink:0;width:100px;height:100px;border-radius:var(--border-radius-md);overflow:hidden}.todays-dish-image img{width:100%;height:100%;object-fit:cover}.todays-dish-image .dish-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-bg);color:var(--color-accent);font-size:2rem;font-weight:600}.todays-dish-info{flex:1}.todays-dish-title{margin:0 0 0.25rem 0;font-size:1.2rem;color:var(--color-heading)}.todays-dish-meta{margin:0 0 0.75rem 0;font-size:0.9rem;color:var(--color-subtle)}.upcoming-dishes{display:flex;align-items:center;justify-content:center;gap:0.75rem;flex-wrap:wrap;margin-bottom:1rem}.upcoming-label{font-size:0.9rem;color:var(--color-subtle)}.upcoming-chip{display:inline-block;padding:0.3rem 0.6rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);font-size:0.8rem;color:var(--color-text)}@media (max-width:500px){.todays-dish-card{flex-direction:column;text-align:center}.todays-dish-image{width:80px;height:80px}.todays-dish-info{text-align:center}}.kitchen-cta{text-align:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.kitchen-cta .button{display:inline-flex;align-items:center;gap:0.5rem}.kitchen-empty-prompt{margin:2rem 0;padding:2rem;background:var(--color-card);border:2px dashed var(--color-border);border-radius:var(--border-radius-lg);text-align:center}.empty-prompt-content svg{color:var(--color-subtle);margin-bottom:1rem}.empty-prompt-content h3{margin:0 0 0.5rem 0;font-size:1.2rem;color:var(--color-heading)}.empty-prompt-content p{margin:0 0 1.5rem 0;color:var(--color-subtle)}@media (max-width:600px){.kitchen-based-section{padding:1rem;margin:1rem 0}.kitchen-based-section .section-header-row{flex-direction:column;align-items:flex-start;gap:0.5rem}.card-grid.compact{grid-template-columns:repeat(2,1fr)}.card-grid.summary{grid-template-columns:repeat(auto-fit,minmax(100px,120px));gap:0.5rem}.card-grid.mini{grid-template-columns:repeat(auto-fit,minmax(80px,100px));gap:0.375rem}.kitchen-empty-prompt{padding:1.5rem}}.guides-promo-section{margin:2rem 0;padding:1.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-lg)}.guides-promo-content{display:flex;align-items:center;gap:1.5rem}.guides-promo-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:linear-gradient(135deg,var(--color-accent-alpha-10),var(--color-accent-alpha-5));border-radius:50%;color:var(--color-accent)}.guides-promo-text{flex:1}.guides-promo-text h3{margin:0 0 0.25rem 0;font-size:1.2rem;color:var(--color-heading)}.guides-promo-text p{margin:0;color:var(--color-subtle)}.guides-promo-content .button{flex-shrink:0;display:inline-flex;align-items:center;gap:0.5rem}@media (max-width:600px){.guides-promo-content{flex-direction:column;text-align:center;gap:1rem}.guides-promo-icon{width:56px;height:56px}.guides-promo-icon svg{width:32px;height:32px}}.site-header{position:sticky;top:0;left:0;right:0;z-index:1000;width:100%;background-color:var(--color-header);box-shadow:0 2px 8px rgba(0,0,0,0.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.header-content-flex{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:1000px;margin:0 auto;padding:0.5rem 1rem}.logo-title{display:flex;align-items:center;gap:0.6rem}.logo img{max-height:60px;transition:max-height 0.3s ease}.site-title{margin:0;font-family:'Lora',serif;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:bold;color:var(--color-accent)}.site-title a{color:inherit;text-decoration:none;border-radius:6px;transition:background 0.2s ease,color 0.2s ease}.site-title a:hover{background:var(--color-accent-dark);color:#fff;padding:0.2rem 0.4rem;margin:-0.2rem -0.4rem}.main-nav{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:0.5rem;background:var(--color-header);border-top:1px solid var(--color-border);font-size:1.1rem}.main-nav a{padding:0.4rem 0.8rem;font-weight:bold;color:var(--color-accent);text-decoration:none;border-radius:6px;transition:background 0.2s ease}.main-nav a:hover{background:var(--color-accent-dark);color:#fff}.nav-icons{display:flex;align-items:center;gap:0.6rem}.nav-item{padding:0.5rem 1.2rem;font-weight:500;color:var(--color-text);border-radius:var(--border-radius-pill);cursor:pointer;transition:all 0.2s ease}.nav-item:hover{background:var(--color-accent-alpha-10);color:var(--color-accent)}.nav-item.active{background:var(--color-accent);color:white}.profile-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:1rem;font-weight:bold;background:var(--color-card);color:var(--color-accent);border:2px solid var(--color-accent);border-radius:50%;cursor:pointer}.header-login-btn{display:inline-block;padding:0.5rem 1.5rem;font-family:'Lora',serif;font-size:1rem;font-weight:600;white-space:nowrap;color:white;background:var(--color-accent);border:none;border-radius:50px;text-decoration:none;cursor:pointer;transition:background 0.2s ease,transform 0.2s ease}.header-login-btn:hover{background:var(--color-accent-dark);color:white}.header-login-btn--secondary{background:transparent;color:var(--color-accent);border:2px solid var(--color-accent)}.header-login-btn--secondary:hover{background:var(--color-accent);color:white}.theme-toggle-button{display:flex;align-items:center;justify-content:center;padding:0.5rem;margin-left:0.5rem;font-size:1.4rem;background:none;border:none;color:var(--color-accent);cursor:pointer;transition:opacity 0.2s ease}.theme-toggle-button:hover{opacity:0.7}.theme-toggle-button svg{display:block;width:25px;height:25px;stroke:var(--color-accent);transition:stroke 0.2s ease}.search-wrapper{display:flex;align-items:center;position:relative}.search-bar{display:flex;align-items:center;max-width:300px;margin-left:1rem;transition:max-width 0.3s ease}.search-bar input[type="text"]{width:100%;padding:0.65rem 1rem;font-size:1rem;background:var(--color-card);border:2px solid var(--color-border);border-radius:var(--border-radius-md);color:var(--color-text);transition:all 0.2s ease}.search-bar input[type="text"]:focus{outline:none;border-color:var(--color-accent)}.search-toggle-button{padding:0.3rem;background:none;border:none;color:var(--color-accent);cursor:pointer}.autocomplete-box{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;width:max-content;max-width:500px;max-height:400px;margin-top:0.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.1);overflow-y:auto;z-index:9999;display:none}.autocomplete-box.active{display:block}.autocomplete-item{padding:2px 4px}.autocomplete-item a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:10px 14px;background:transparent;border:2px solid transparent;border-radius:6px;color:var(--color-text);text-decoration:none;transition:all 0.15s ease}.autocomplete-item:hover a,.autocomplete-item.selected a{background:var(--color-bg);border-color:var(--color-accent)}.autocomplete-title{flex:1;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-title mark{font-weight:600;background:transparent;color:inherit}.autocomplete-type{flex-shrink:0;padding:3px 8px;font-size:0.7rem;font-weight:500;letter-spacing:0.3px;text-transform:uppercase;white-space:nowrap;background:var(--color-border);color:var(--color-subtle);border-radius:4px}.autocomplete-no-results{padding:12px 14px;font-size:0.9rem;font-style:italic;color:var(--color-subtle);text-align:center}.autocomplete-box::-webkit-scrollbar{width:6px}.autocomplete-box::-webkit-scrollbar-track{background:transparent}.autocomplete-box::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.autocomplete-box::-webkit-scrollbar-thumb:hover{background:var(--color-subtle)}.menu-icon{display:none;flex-direction:column;justify-content:center;align-items:center;width:30px;height:30px;background:none;border:none;cursor:pointer}.menu-icon span{display:block;width:20px;height:3px;margin:3px 0;background:var(--color-accent);border-radius:2px;transition:0.3s ease}.menu-icon.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-icon.open span:nth-child(2){opacity:0}.menu-icon.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.mobile-nav{position:fixed;top:0;right:0;width:100vw;max-width:320px;height:100vh;padding:80px 24px 24px 24px;background:var(--color-header);box-shadow:-2px 0 16px rgba(0,0,0,0.10);display:none;flex-direction:column;gap:1.5rem;z-index:1500;transform:translateX(100%);transition:transform 0.3s ease-in-out}.mobile-nav.open{display:flex;transform:translateX(0)}.close-mobile-nav{position:absolute;top:16px;right:16px;font-size:2rem;background:none;border:none;color:var(--color-accent);cursor:pointer}.mobile-nav a{padding-bottom:1rem;font-size:1.2rem;font-weight:bold;color:var(--color-accent);text-decoration:none;border-bottom:1px solid var(--color-border);transition:background 0.2s ease,color 0.2s ease}.mobile-nav a:hover{background:var(--color-accent-dark);color:#fff;border-radius:6px;padding:0.5rem 0.8rem;margin:-0.5rem -0.8rem;margin-bottom:calc(1rem - 0.5rem)}.mobile-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.5);z-index:900;display:none}.mobile-backdrop.show{display:block}.mobile-icons{display:flex;flex-direction:column;gap:0;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.mobile-icon-link{display:flex;align-items:center;gap:0.75rem;padding:0.875rem 1.5rem;font-family:'Lora',serif;font-size:1rem;color:var(--color-text);text-decoration:none;transition:background-color 0.2s ease}.mobile-icon-link:hover,.mobile-icon-link:focus{background-color:rgba(0,0,0,0.05)}.mobile-icon{flex-shrink:0;width:18px;height:18px;stroke:currentColor}.mobile-icon-link span{flex:1}.mobile-theme-toggle{display:flex !important;align-items:center;gap:0.75rem;width:100%;cursor:pointer;border:none;background:none;text-align:left}.mobile-theme-toggle svg{flex-shrink:0;width:25px;height:25px;stroke:var(--color-accent)}.mobile-theme-text{flex:1;font-size:0}.mobile-theme-text::before{font-size:1rem;content:"Mørkt tema"}[data-theme="dark"] .mobile-theme-text::before{content:"Lyst tema"}@media (max-width:900px){.main-nav{display:none !important}.menu-icon{display:flex}.nav-icons{display:none}.site-title{font-size:1.6rem}.logo img{max-height:50px}}@media (max-width:700px){.header-content-flex{flex-direction:row;flex-wrap:nowrap;gap:0.5rem;padding:0.5rem 1rem}.logo-title{flex:1 1 auto;gap:0.4rem;max-width:60%}.logo img{max-height:40px}.site-title{font-size:1.3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-wrapper{display:flex;align-items:center;justify-content:flex-end;gap:0.4rem;flex-shrink:0}.search-toggle-button{padding:0.3rem;font-size:1.4rem}.search-bar{position:fixed;top:var(--header-height);left:50%;transform:translateX(-50%);width:calc(100% - 2rem);max-width:500px;padding:0.8rem 1rem;background:var(--color-header);border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:none;z-index:2000;animation:slideIn 0.25s ease-out forwards}.search-bar.active{display:flex;align-items:center;gap:0.6rem}.search-close-button{flex-shrink:0;padding:0 0.5rem;font-size:1.6rem;background:none;border:none;color:var(--color-accent);cursor:pointer}.search-bar input[type="text"]{flex:1;width:auto;padding:0.6rem 1rem;font-size:1.05rem;border:1px solid var(--color-border);border-radius:var(--border-radius-sm)}.search-wrapper .autocomplete-box{position:fixed;top:calc(var(--header-height) + 4.5rem);left:50%;transform:translateX(-50%);width:calc(100% - 2rem);max-width:500px}}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:1rem;box-shadow:0 2px 8px var(--color-shadow);transition:all 0.2s ease}.card:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--color-shadow-hover)}.card--in-season{border:2px solid var(--color-accent)}.card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--border-radius-md);margin-bottom:0.3rem}.cuisine-card img{aspect-ratio:1 / 1;max-height:200px}.cuisine-card .card-placeholder-image{height:200px}.card-stats{display:flex;gap:0.6rem;padding:0.5rem 0.5rem 0.3rem;align-items:center;justify-content:center;font-size:0.75rem}.card-stat{display:inline-flex;align-items:center;gap:0.25rem;color:var(--color-subtle)}.card-rating-stars{display:flex;gap:0.05rem;font-size:0.75rem;line-height:1}.card-rating-stars .star{display:inline-block;width:0.75rem;text-align:center}.card-rating-stars .star.filled{color:var(--color-rating)}.card-rating-stars .star.half-filled{position:relative;color:var(--color-rating-empty)}.card-rating-stars .star.half-filled::before{content:"★";position:absolute;left:0;width:50%;overflow:hidden;color:var(--color-rating)}.card-rating-stars .star.empty{color:var(--color-rating-empty)}.card-rating-text{font-size:0.75rem;font-weight:500;margin-left:0.25rem}.card-favorites{display:inline-flex;align-items:center;gap:0.2rem}.card-favorites .favorite-icon{color:var(--color-accent);font-size:0.85rem;line-height:1}.card-favorites .favorite-count{font-weight:500}.card-title{width:100%;margin:0.3rem 0 0 0;font-size:1rem;font-weight:600;line-height:1.3;text-align:center;overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}.card-subtitle{font-size:0.9rem;font-weight:normal;color:var(--color-subtle)}.card-meta{padding:0 0.75rem 0.5rem;font-size:0.85rem;color:var(--color-subtle)}.card-badge{margin-top:0.3rem}.card-badges-container{display:flex;flex-direction:column;gap:0.3rem;align-items:center;margin-top:0.3rem}.card-time-row{display:flex;justify-content:center;align-items:center;gap:0.4rem;padding:0.35rem 0 0.2rem;font-size:0.75rem;color:var(--color-subtle)}.card-time-row .time-item{white-space:nowrap}.card-time-row .time-separator{color:var(--color-border)}.feature-card{flex:1 1 260px;min-width:240px;max-width:320px;padding:1.625rem 1.375rem;background:var(--color-card);border:1.5px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:0 6px 20px var(--color-shadow);text-align:center;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;transition:box-shadow 0.18s ease,border-color 0.18s ease}.feature-card h3{margin:0 0 0.6rem 0;font-size:1.3rem;color:var(--color-accent)}.carousel-section{margin-bottom:2rem;max-width:100%}.carousel-wrapper{display:flex;align-items:center;position:relative;max-width:100%}.carousel-track{display:flex;gap:1rem;padding:0 1rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;min-width:0;flex:1}.carousel-track::-webkit-scrollbar{display:none}.carousel-card{flex:0 0 auto;width:80vw;max-width:300px;background:var(--color-bg);border-radius:var(--border-radius-md);overflow:hidden;scroll-snap-align:start}.carousel-card .main-image-container{width:100%;height:auto;aspect-ratio:4 / 3;overflow:hidden}.carousel-card .main-image-container img{width:100%;height:100%;object-fit:cover;display:block}.carousel-arrow{padding:0.25rem 0.75rem;font-size:2rem;background:var(--color-accent);color:white;border:none;border-radius:var(--border-radius-sm);cursor:pointer;z-index:1;transition:background 0.2s ease}.carousel-arrow:hover{background:var(--color-accent-dark)}.carousel-footer{margin-top:0.5rem;text-align:center}.card-role-badge{display:flex;justify-content:center;margin-top:0.25rem}.role-badge{display:inline-flex;align-items:center;padding:0.2rem 0.6rem;background:var(--color-accent);border-radius:var(--border-radius-pill);font-size:0.7rem;font-weight:600;color:white;text-transform:uppercase;letter-spacing:0.03em}.season-badge{display:inline-flex;align-items:center;padding:0.35rem 0.85rem;background:transparent;border:1.5px solid var(--color-accent);border-radius:var(--border-radius-pill);font-size:0.8rem;font-weight:500;color:var(--color-accent);transition:all 0.2s ease}.make-ahead-badge{display:inline-flex;align-items:center;gap:0.3rem;padding:0.35rem 0.7rem;background:transparent;border:1.5px solid var(--color-info);border-radius:var(--border-radius-pill);font-size:0.75rem;font-weight:600;color:var(--color-info);transition:all 0.2s ease;cursor:help}.make-ahead-badge svg{flex-shrink:0}.make-ahead-badge:hover{background:var(--color-info);color:white}.hero-image-wrapper{display:flex;justify-content:center;margin:1.5rem 0 2rem 0}.hero-image-container{position:relative;width:100%;max-width:700px;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--border-radius-md);box-shadow:0 4px 16px var(--color-shadow);background:var(--color-bg)}.hero-image{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;transition:transform 0.3s ease;animation:fadeIn 0.6s ease}.hero-image:hover{transform:scale(1.02)}.hero-image-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--color-bg);color:var(--color-subtle)}.hero-image-placeholder svg{width:64px;height:64px;opacity:0.3}.hero-image-placeholder span{font-size:1.1rem;font-style:italic}.variant-card-image{width:100%;aspect-ratio:1 / 1;overflow:hidden;border-radius:var(--border-radius-sm);background:var(--color-bg)}.variant-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.3s ease}.variant-card:hover .variant-card-image img{transform:scale(1.05)}.image-wrapper{position:relative}.favorite-icon-wrapper{position:absolute;top:0.5rem;right:0.5rem;z-index:10;opacity:1;visibility:visible}.svg-star-button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background-color:white;border:none;border-radius:50%;box-shadow:0 1px 6px rgba(0,0,0,0.15);cursor:pointer}.star-icon{width:22px;height:22px;fill:white;stroke:var(--color-accent)}.svg-star-button.active .star-icon{fill:var(--color-accent);stroke:var(--color-accent)}.kitchen-action-section{display:flex;justify-content:center;margin:1rem 0 2rem 0}.kitchen-toggle-form{display:inline-block}.kitchen-button{padding:0.75rem 1.5rem;font-family:'Lora',serif;font-size:1rem;font-weight:500;background-color:white;color:var(--color-accent);border:2px solid var(--color-accent);border-radius:var(--border-radius-pill);cursor:pointer;transition:all 0.3s ease;box-shadow:0 2px 8px var(--color-shadow)}.kitchen-button:hover{background-color:var(--color-accent);color:white;transform:translateY(-2px);box-shadow:0 4px 12px var(--color-shadow-hover)}.kitchen-button.active{background-color:var(--color-accent);color:white}:root[data-theme='dark'] .kitchen-button{background-color:var(--color-card)}:root[data-theme='dark'] .kitchen-button:hover,:root[data-theme='dark'] .kitchen-button.active{background-color:var(--color-accent);color:white}.kitchen-remove-form{position:absolute;top:0.3rem;right:0.3rem}.remove-button{width:44px;height:44px;font-size:1.1rem;background:rgba(255,255,255,0.85);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:50%;cursor:pointer;transition:background 0.2s ease}.remove-button:hover{background:var(--color-accent);color:white}.selector-description{margin-bottom:1.5rem;color:var(--color-subtle);text-align:center}.component-variant-card{position:relative}.variant-count-badge{position:absolute;top:0.5rem;left:0.5rem;padding:0.25rem 0.5rem;background:rgba(0,0,0,0.7);color:white;border-radius:var(--border-radius-pill);font-size:0.75rem;font-weight:600}.variant-selector-wrapper{padding:0.75rem;margin-top:0.5rem}.variant-label{display:block;margin-bottom:0.5rem;font-size:0.9rem;font-weight:600;color:var(--color-text)}.variant-select{width:100%;padding:0.5rem;font-size:0.95rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);cursor:pointer}.variant-single{padding:0.5rem;font-size:0.9rem;color:var(--color-subtle);text-align:center}.variant-notice{margin-top:0.5rem;padding:0.5rem;border-radius:var(--border-radius-sm);font-size:0.85rem}.dietary-notice{background:var(--color-success-light);color:var(--color-success);border-left:3px solid var(--color-success)}.recommendation-notice{background:var(--color-quality-acceptable-light);color:var(--color-quality-acceptable);border-left:3px solid var(--color-quality-acceptable)}.variant-card-badges-wrapper{display:flex;flex-wrap:wrap;gap:0.35rem;margin-top:0.5rem;align-items:center}.allergen-free-badge{display:inline-flex;align-items:center;padding:0.25rem 0.5rem;background-color:var(--color-success-light);color:var(--color-success);border-radius:var(--border-radius-pill);font-size:0.7rem;font-weight:500;border:1px solid var(--color-success-border)}.dietary-badge{display:inline-flex;align-items:center;padding:0.25rem 0.5rem;background-color:var(--color-info-light);color:var(--color-info);border-radius:var(--border-radius-pill);font-size:0.7rem;font-weight:500;border:1px solid var(--color-info-border)}.btn-compare-variant{width:100%;margin-top:0.75rem;padding:0.5rem 0.75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:0.85rem;color:var(--color-text);cursor:pointer;transition:all 0.2s ease}.btn-compare-variant:hover{background:var(--color-card);border-color:var(--color-accent);color:var(--color-accent)}.btn-compare-variant-card{width:100%;margin-top:0.5rem;padding:0.4rem 0.6rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:0.8rem;color:var(--color-text);cursor:pointer;transition:all 0.2s ease}.btn-compare-variant-card:hover{background:var(--color-card);border-color:var(--color-accent);color:var(--color-accent)}.variant-selection-section{margin:2rem 0}.variant-selection-section .section-description{margin-bottom:1.5rem;color:var(--color-subtle)}.variant-selection-section .card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.variant-relationship-section{margin:2rem 0;padding:2rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-lg)}.variant-relationship-section .section-title{display:flex;align-items:center;gap:0.5rem;margin:0 0 0.5rem 0;font-size:1.3rem;color:var(--color-accent)}.variant-relationship-section .section-title svg{flex-shrink:0}.variant-relationship-section .variant-section-description{margin-bottom:1.5rem;font-size:0.95rem;color:var(--color-subtle)}.variant-relationship-section .variant-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.5rem}.variant-relationship-section .variant-card.selected{border-color:var(--color-accent);border-width:2px}.parent-context{margin-top:0.25rem}.parent-context small{font-weight:normal;color:var(--color-subtle)}.note-preview{padding:0.5rem 0.75rem;font-size:0.85rem;font-style:italic;color:var(--color-subtle)}.no-results{padding:2rem;font-style:italic;color:var(--color-subtle);text-align:center}.collapsible-grid .hidden-card{display:none}.btn-show-more-cards{display:flex;align-items:center;justify-content:center;gap:0.5rem;margin:1.5rem auto 0;padding:0.75rem 1.5rem;background:var(--color-bg);color:var(--color-text);border:2px solid var(--color-border);border-radius:var(--border-radius-pill);font-size:0.9375rem;font-weight:500;cursor:pointer;transition:all 0.2s ease;width:fit-content;max-width:100%}.btn-show-more-cards:hover{background:var(--color-accent);color:white;border-color:var(--color-accent);transform:translateY(-2px)}.btn-show-more-cards:active{transform:translateY(0)}.btn-show-more-cards svg{transition:transform 0.2s ease;flex-shrink:0}.btn-show-more-cards[data-expanded="true"] svg{transform:rotate(180deg)}.collapsible-grid .card{animation:fadeIn 0.3s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.variant-relationship-section{padding:1.5rem 1rem}.variant-relationship-section .variant-cards-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.btn-show-more-cards{padding:0.625rem 1.25rem;font-size:0.875rem;margin-top:1rem}.season-badge{padding:0.3rem 0.7rem;font-size:0.7rem}}@media (max-width:700px){.card{padding:0.75rem 0.375rem 1rem 0.375rem}.card-grid .favorite-icon-wrapper{top:0.01rem;right:0.01rem}.card-grid .svg-star-button{width:32px;height:32px;min-width:32px;min-height:32px}.card-grid .star-icon{width:16px;height:16px}}@media (max-width:600px){.hero-image-container{aspect-ratio:4 / 3;border-radius:var(--border-radius-sm)}.hero-image-placeholder svg{width:48px;height:48px}.hero-image-placeholder span{font-size:0.95rem}.kitchen-button{padding:0.6rem 1.2rem;font-size:0.95rem}.card{padding:0.375rem;max-width:100%}.card-title{padding:0 0.25rem;font-size:0.9rem}.card img{border-radius:var(--border-radius-sm);margin-bottom:0.2rem}.carousel-card .main-image-container img{border-radius:var(--border-radius-sm)}.carousel-card{width:72vw;max-width:250px}.carousel-track{padding:0 0.5rem;gap:0.75rem}.main-image-container{aspect-ratio:4 / 3;overflow:hidden;border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center}.main-image-container img,.main-image{max-width:100vw;width:100%;height:100%;object-fit:cover}.feature-card{max-width:100vw;width:100%}}.carousel-container{position:relative}.carousel-swipe-hint{display:none;position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.5);color:white;padding:0.5rem 0.75rem;border-radius:var(--border-radius-pill);font-size:0.75rem;pointer-events:none;z-index:5;animation:carousel-hint-pulse 2s ease-in-out infinite}.carousel-swipe-hint svg{width:16px;height:16px;vertical-align:middle;margin-left:0.25rem}@keyframes carousel-hint-pulse{0%,100%{opacity:0.7;transform:translateY(-50%) translateX(0)}50%{opacity:1;transform:translateY(-50%) translateX(3px)}}@media (max-width:768px){.carousel-swipe-hint{display:flex;align-items:center;gap:0.25rem}.carousel-container.interacted .carousel-swipe-hint{display:none}}@media (max-width:768px){.card a,.card button,.card .card-action{min-height:44px;min-width:44px}.favorite-icon-wrapper,.svg-star-button,.kitchen-button{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.card-badges{gap:0.5rem}.card-badges .badge{padding:0.4rem 0.75rem}.carousel-arrow{display:none}}@media (max-width:360px){.feature-card{min-width:0;padding:0.75rem}.card{padding:0.25rem;border-radius:var(--border-radius-sm)}.card-body{padding:0.375rem}.card-title{font-size:0.85rem;padding:0 0.125rem}.card img{margin-bottom:0.15rem}.carousel-card{width:85vw;max-width:none}.carousel-track{padding:0 0.25rem;gap:0.5rem}}input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="search"],select,textarea{background:var(--color-card);border:2px solid var(--color-border);border-radius:var(--border-radius-md);padding:0.65rem 1rem;font-size:1rem;transition:all 0.2s ease;color:var(--color-text)}input[type="text"]:focus,input[type="search"]:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-alpha-10)}select{appearance:none;background:var(--color-card);border:2px solid var(--color-border);border-radius:var(--border-radius-md);padding:0.65rem 2.5rem 0.65rem 1rem;font-size:1rem;cursor:pointer;transition:all 0.2s ease;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%233b7942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;color:var(--color-text)}select:hover{border-color:var(--color-accent)}textarea{resize:vertical;min-height:100px}.button,.landing-buttons .button{display:inline-flex;align-items:center;justify-content:center;padding:0.65rem 1.4rem;min-height:44px;background:transparent;color:var(--color-accent);border:2px solid var(--color-accent);border-radius:var(--border-radius-md);font-weight:600;font-size:1rem;cursor:pointer;transition:all 0.2s ease;position:relative;overflow:hidden}.button:hover,.landing-buttons .button:hover{background:var(--color-accent);color:white;transform:translateY(-1px);box-shadow:0 4px 12px var(--color-accent-alpha-25)}.button:disabled,.button.loading{opacity:0.7;cursor:not-allowed;transform:none}.button.loading{position:relative}.button.loading::after{content:'';position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin 0.6s linear infinite}@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}.button-filled{background:var(--color-accent);color:white;border:2px solid var(--color-accent);border-radius:var(--border-radius-sm);padding:0.6rem 1.6rem}.button-filled:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark);transform:translateY(-1px)}.btn-ghost{display:inline-flex;align-items:center;gap:8px;height:var(--control-height-sm);padding:0 14px;border:1.5px solid var(--color-border);border-radius:var(--border-radius-pill);background:var(--color-card);color:var(--color-text);box-shadow:0 1px 3px var(--color-shadow);font-family:'Lora',serif;cursor:pointer}.btn-ghost:hover{background:var(--color-bg)}.btn-clear-checks{display:inline-flex;align-items:center;justify-content:center;height:var(--control-height-sm);padding:0 0.8rem;border-radius:var(--border-radius-sm);border:1.5px solid var(--color-border);background:var(--color-card);color:var(--color-text);box-shadow:0 1px 3px var(--color-shadow);font-family:'Lora',serif;font-size:0.95rem;line-height:1;cursor:pointer}.btn-clear-checks:hover{background:var(--color-bg);border-color:var(--color-accent)}.form-vertical{max-width:500px;margin:0 auto}.form-block{background-color:var(--color-card);padding:1rem 1.2rem;margin-bottom:1rem;border-radius:var(--border-radius-md);box-shadow:0 2px 10px var(--color-shadow);max-width:700px;margin-left:auto;margin-right:auto}.form-block label{font-weight:bold;display:block;margin-bottom:0.4rem;font-size:1.05rem;color:var(--color-accent)}.form-block input{width:100%;padding:0.6rem 1rem;font-size:1rem;border:1.5px solid var(--color-border);border-radius:var(--border-radius-sm);font-family:'Lora',serif;background-color:var(--color-card);color:var(--color-text);transition:border-color 0.2s ease,background-color 0.2s ease}.form-block input:focus{outline:none;border-color:var(--color-accent);background:var(--color-bg)}.form-help{font-size:0.9rem;color:var(--color-subtle);margin-top:0.3rem}.form-error{font-size:0.9rem;color:var(--color-error);margin-top:0.3rem}.messages{max-width:700px;margin:1.5rem auto;padding:0;list-style:none}.message{padding:1rem 1.2rem;margin-bottom:1rem;border-radius:var(--border-radius-md);border:2px solid;font-size:0.95rem;line-height:1.5}.message.success{background:var(--color-success-light);color:var(--color-success-dark);border-color:var(--color-success)}.message.error{background:var(--color-error-light);color:var(--color-error);border-color:var(--color-error)}.message.info{background:var(--color-info-light);color:var(--color-info);border-color:var(--color-info)}.message.warning{background:var(--color-warning-light);color:var(--color-warning);border-color:var(--color-warning)}.message{animation:slideInDown 0.3s ease}@keyframes slideInDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.social-login{margin:2rem 0}.social-login-divider{position:relative;text-align:center;margin:1.5rem 0}.social-login-divider::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:var(--color-border)}.social-login-divider span{position:relative;display:inline-block;padding:0 1rem;background:var(--color-bg);color:var(--color-subtle);font-size:0.9rem}.social-buttons{display:flex;flex-direction:column;gap:0.75rem}.btn-social{display:flex;align-items:center;justify-content:center;gap:0.75rem;padding:0.75rem 1.5rem;min-height:44px;border:2px solid var(--color-border);border-radius:var(--border-radius-md);background:var(--color-card);color:var(--color-text);text-decoration:none;font-weight:500;font-size:0.95rem;transition:all 0.2s ease;cursor:pointer}.btn-social:hover{border-color:var(--color-accent);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.1);background:var(--color-card)}.social-icon{width:20px;height:20px;flex-shrink:0}.btn-google:hover{border-color:#4285F4}.password-wrapper{position:relative;display:flex;align-items:center}.password-wrapper input{flex:1}.toggle-password{margin-left:0.5rem;padding:0.4rem 0.8rem;min-width:44px;min-height:44px;background-color:var(--color-accent);border:none;color:white;border-radius:var(--border-radius-sm);cursor:pointer;font-size:0.9rem;transition:background-color 0.2s ease,transform 0.1s ease}.toggle-password:hover{background-color:var(--color-accent-dark);transform:scale(1.05)}.toggle-password:active{transform:scale(0.98)}input[type="checkbox"]{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer}.unit-switch{display:inline-flex;align-items:center;gap:0.25rem;padding:4px;border:1px solid var(--color-border);border-radius:var(--border-radius-pill);background:var(--color-card);box-shadow:0 1px 4px var(--color-shadow)}.unit-toggle{appearance:none;-webkit-appearance:none;border:0;background:transparent;color:var(--color-accent);font:inherit;padding:0.4rem 0.85rem;border-radius:var(--border-radius-pill);cursor:pointer;transition:background 0.18s ease,color 0.18s ease;line-height:1}.unit-toggle:hover{background:rgba(0,0,0,0.04)}:root[data-theme='dark'] .unit-toggle:hover{background:rgba(255,255,255,0.06)}.unit-toggle.active,.unit-toggle.is-active,.unit-switch[data-selected="metric"] .unit-toggle[data-unit="metric"],.unit-switch[data-selected="cups"] .unit-toggle[data-unit="cups"],.unit-switch[data-selected="author"] .unit-toggle[data-unit="author"]{background:var(--color-accent);color:#fff}.unit-toggle:focus-visible{outline:2px solid var(--color-accent-dark);outline-offset:2px}.unit-switch.small .unit-toggle{padding:0.3rem 0.7rem;font-size:0.95rem}.servings-switch.pill{display:inline-flex;align-items:center;gap:8px;background:var(--color-card);border:1.5px solid var(--color-border);border-radius:var(--border-radius-pill);padding:4px 8px;box-shadow:0 1px 4px var(--color-shadow)}.servings-btn{width:2.1rem;height:2.1rem;border:1.5px solid var(--color-border);border-radius:var(--border-radius-sm);background:var(--color-card);color:var(--color-text);box-shadow:0 1px 3px var(--color-shadow);cursor:pointer;font-size:1.05rem;line-height:1;transition:all 0.2s ease}.servings-btn:hover{background:var(--color-accent);color:white;border-color:var(--color-accent)}.servings-input{width:3.8rem;height:2.1rem;text-align:center;border:1.5px solid var(--color-border);border-radius:10px;background:var(--color-card);color:var(--color-text);box-shadow:0 1px 3px var(--color-shadow);font-family:'Lora',serif;font-size:1rem}.servings-switch .tooltip.tt-hover .tooltip-bubble{bottom:auto !important;top:calc(100% + 0.5rem) !important;left:auto !important;right:0 !important;transform:none !important;z-index:100;background:var(--color-card) !important;border:1.5px solid var(--color-border) !important;box-shadow:0 4px 12px var(--color-shadow) !important}.servings-switch .tooltip.tt-hover .tooltip-bubble::after{bottom:auto !important;top:-8px !important;left:auto !important;right:12px !important;transform:rotate(135deg) !important;background:var(--color-card) !important;border-top:1.5px solid var(--color-border) !important;border-left:1.5px solid var(--color-border) !important;border-bottom:none !important;border-right:none !important}.component-inline .servings-switch.pill{padding:3px 6px}.component-inline .servings-btn{width:1.8rem;height:1.8rem}.component-inline .servings-input{width:4.2rem;height:1.8rem;font-size:0.95rem}.ingredients-controls{display:flex;flex-direction:column;align-items:center;gap:10px;margin:4px 0 12px;overflow:visible}.servings-stack{display:flex;flex-direction:column;align-items:center;gap:6px;overflow:visible;position:relative;z-index:10}.servings-stack .servings-small-label{font-size:0.9rem;opacity:0.9;letter-spacing:.2px}.servings-base-hint{font-size:0.8rem;color:var(--color-subtle);font-weight:400}.nutrition-unit-switch{display:inline-flex;border:1px solid var(--color-border);border-radius:4px;overflow:hidden;background:var(--color-card)}.nutrition-unit-btn{padding:0.25rem 0.75rem;background:var(--color-card);color:var(--color-text);border:none;cursor:pointer;font-size:0.875rem;transition:background 0.2s}.nutrition-unit-btn:not(:last-child){border-right:1px solid var(--color-border)}.nutrition-unit-btn.active{background:var(--color-accent);color:white}.nutrition-unit-btn:hover:not(.active){background:var(--color-bg)}@media (max-width:640px){.servings-switch.pill{flex:1 1 auto}.servings-btn,.btn-ghost{height:2.6rem}.servings-input{height:2.6rem;width:4.2rem}.ingredients-controls{gap:10px;margin:6px 0 12px}}button[onclick*="clearAll"]{padding:0.6rem 1.2rem;font-family:'Lora',serif;font-size:0.95rem;font-weight:500;background:var(--color-card);color:var(--color-text);border:2px solid var(--color-border);border-radius:var(--border-radius-pill);cursor:pointer;transition:all 0.2s ease;box-shadow:0 2px 4px var(--color-shadow)}button[onclick*="clearAll"]:hover{background:var(--color-error);color:white;border-color:var(--color-error);transform:translateY(-2px);box-shadow:0 4px 8px var(--color-shadow-hover)}:root[data-theme='dark'] input[type="text"],:root[data-theme='dark'] input[type="email"],:root[data-theme='dark'] input[type="password"],:root[data-theme='dark'] input[type="number"],:root[data-theme='dark'] input[type="search"],:root[data-theme='dark'] select,:root[data-theme='dark'] textarea{background:var(--color-card);color:var(--color-text);border-color:var(--color-border)}:root[data-theme='dark'] input[type="text"]:focus,:root[data-theme='dark'] input[type="email"]:focus,:root[data-theme='dark'] input[type="password"]:focus,:root[data-theme='dark'] input[type="number"]:focus,:root[data-theme='dark'] input[type="search"]:focus{border-color:var(--color-accent);background:var(--color-bg)}:root[data-theme='dark'] .form-block input{background:var(--color-card);color:var(--color-text);border-color:var(--color-border)}:root[data-theme='dark'] .form-block input:focus{border-color:var(--color-accent);background:var(--color-bg)}:root[data-theme='dark'] .form-help{color:var(--color-subtle)}:root[data-theme='dark'] .form-error{color:var(--color-error-text)}:root[data-theme='dark'] .servings-input,:root[data-theme='dark'] input[type="text"].servings-input,:root[data-theme='dark'] input[type="number"].servings-input{background:var(--color-bg) !important;color:var(--color-text) !important}:root[data-theme='dark'] .btn-ghost{background:var(--color-card) !important;color:var(--color-text) !important}:root[data-theme='dark'] .btn-clear-checks{background:var(--color-card) !important;color:var(--color-text) !important}:root[data-theme='dark'] .message.success{background:var(--color-success-light);color:var(--color-success-text);border-color:var(--color-success-border)}:root[data-theme='dark'] .message.error{background:var(--color-error-light);color:var(--color-error-text);border-color:var(--color-error)}:root[data-theme='dark'] .message.info{background:var(--color-info-light);color:var(--color-info-text);border-color:var(--color-info)}:root[data-theme='dark'] .message.warning{background:var(--color-warning-light);color:var(--color-warning-text);border-color:var(--color-warning-border)}:root[data-theme='dark'] .social-login-divider::before{background:var(--color-border)}:root[data-theme='dark'] .social-login-divider span{background:var(--color-bg)}:root[data-theme='dark'] .btn-social{background:var(--color-card);border-color:var(--color-border)}:root[data-theme='dark'] .btn-social:hover{background:var(--color-card);box-shadow:0 4px 12px rgba(0,0,0,0.3)}.checkbox-list{display:flex;flex-direction:column;gap:0.5rem}.checkbox-list--two-col{display:grid;grid-template-columns:repeat(2,1fr);gap:0.5rem 1.5rem}@media (max-width:480px){.checkbox-list--two-col{grid-template-columns:1fr}}.checkbox-item{display:flex;align-items:center;gap:0.5rem;cursor:pointer}.checkbox-item input[type="checkbox"]{margin:0}.topbar{position:sticky;top:0;z-index:100;padding:0.5rem 0;background:var(--color-bg)}.topbar-row{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;align-items:end}.topbar-search{position:relative}.topbar-sort-group{display:flex;flex-wrap:wrap;gap:0.75rem}.topbar-sort{flex:0 0 auto;min-width:120px}.topbar-nutrient{flex:0 0 auto;min-width:140px}@media (min-width:1024px){.topbar-row{grid-template-columns:var(--sidebar-width) 1fr;gap:var(--layout-gap)}.topbar-sort-group{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-items:end}.topbar-sort,.topbar-nutrient{min-width:0}}.sort-dropdown{position:relative;display:flex;flex-direction:column;gap:4px}.sort-dropdown .field-label{margin:0 0 0.25rem 2px;font-size:0.92rem;font-weight:600;line-height:1;color:var(--color-subtle)}.sort-dropdown-trigger{display:flex;justify-content:space-between;align-items:center;gap:0.5rem;cursor:pointer;text-align:left;width:100%}.sort-dropdown-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sort-dropdown-chevron{font-size:0.6rem;transition:transform 0.2s;color:var(--color-subtle)}.sort-dropdown[data-open="true"] .sort-dropdown-chevron{transform:rotate(180deg)}.sort-dropdown-menu{position:absolute;top:100%;left:0;right:0;min-width:200px;margin-top:4px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 4px 12px rgba(0,0,0,0.1);z-index:1000}.sort-dropdown-section{max-height:300px;overflow-y:auto}.sort-dropdown-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:0.6rem 1rem;background:none;border:none;text-align:left;cursor:pointer;font-size:0.95rem;font-family:inherit;color:var(--color-text)}.sort-dropdown-item:hover{background:var(--color-bg)}.sort-dropdown-item[aria-current="true"]{color:var(--color-accent);font-weight:600}.sort-dropdown-item .checkmark{color:var(--color-accent);font-size:0.9rem}.sort-dropdown-divider{height:1px;background:var(--color-border);margin:0.25rem 0}.sort-dropdown-submenu-container{position:relative}.sort-dropdown-item.has-submenu{position:relative}.submenu-arrow{font-size:0.8rem;color:var(--color-subtle)}.sort-dropdown-submenu{position:absolute;top:0;left:100%;min-width:200px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 4px 12px rgba(0,0,0,0.1);max-height:300px;overflow-y:auto;z-index:1001}:root[data-theme='dark'] .sort-dropdown-menu,:root[data-theme='dark'] .sort-dropdown-submenu{box-shadow:0 4px 12px rgba(0,0,0,0.3)}.topbar .control{box-sizing:border-box;height:30px;padding:0 0.8rem;font:inherit;font-size:1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:0.6rem;appearance:none;-webkit-appearance:none;-moz-appearance:none}.topbar select.control{padding-right:2rem;background-image:linear-gradient(45deg,transparent 50%,var(--color-text) 50%),linear-gradient(135deg,var(--color-text) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}.field{display:flex;flex-direction:column;gap:4px}.field-label{margin:0 0 0.25rem 2px;font-size:0.92rem;font-weight:600;line-height:1;color:var(--color-subtle)}.topbar-toggles{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.topbar .toggle{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.95rem;white-space:nowrap}.active-chips{display:flex;flex-wrap:wrap;gap:0.5rem;max-width:1200px;margin:0.5rem auto 1rem;padding:0 1rem}.chip{display:inline-flex;align-items:center;gap:0.35rem;padding:0.2rem 0.6rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);font-size:0.9rem;color:var(--color-text);text-decoration:none;transition:all 0.15s ease}.chip:hover{background:var(--color-accent-alpha-5);border-color:var(--color-accent)}.chip-remove{font-size:1.1rem;line-height:1;opacity:0.6}.chip.clear-all{background:var(--color-success-light);border-color:var(--color-accent);color:var(--color-accent);font-weight:500}.selected-chip{display:inline-flex;align-items:center;gap:0.35rem;padding:0.3rem 0.7rem;background:var(--color-accent);color:white;border-radius:var(--border-radius-pill);font-size:0.95rem}.selected-chip button{padding:0;margin-left:0.25rem;background:none;border:none;color:white;font-size:1.2rem;line-height:1;cursor:pointer;opacity:0.8}.selected-chip button:hover{opacity:1}.filters-sidebar{padding:0.75rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:0.8rem}@media (min-width:1024px){.filters-sidebar{max-height:none;overflow:visible}}.filters-sidebar,.filters-sidebar *{text-align:left}.filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem}.filters-header h3{margin:0;font-size:1.35rem;font-weight:700;color:var(--color-accent);text-align:left}.icon-btn.close-filters{display:none;background:transparent;border:0;font-size:1.8rem;color:var(--color-text);cursor:pointer;opacity:0.6}.icon-btn.close-filters:hover{opacity:1}.display-options{padding:0 0 0.5rem 0}.display-options-title{margin:0 0 0.5rem 0;font-size:0.85rem;font-weight:600;color:var(--color-subtle);text-transform:uppercase;letter-spacing:0.5px}body:not(.show-all-allergens) .allergen-section:not(.has-user-match),body:not(.show-all-allergens) .allergen-badge:not(.allergen-warning){display:none !important}body:not(.show-all-allergens) .allergen-section:not(.has-user-match){display:none !important}body.show-all-allergens .allergen-section,body.show-all-allergens .allergen-badge{display:inline-flex !important}body.show-all-allergens .allergen-section{display:block !important}.quick-filters{margin-bottom:0.75rem}.quick-filters-title{margin:0 0 0.5rem 0;font-size:0.85rem;font-weight:600;color:var(--color-subtle);text-transform:uppercase;letter-spacing:0.5px}.quick-filter-chips{display:grid;grid-template-columns:1fr 1fr;gap:0.4rem}.quick-filter-chip{display:flex;align-items:center;justify-content:center;gap:0.35rem;padding:0.4rem 0.5rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:0.8rem;color:var(--color-text);text-decoration:none;transition:all 0.15s ease;white-space:nowrap;text-align:center}.quick-filter-chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.quick-filter-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:white}.quick-filter-chip svg{flex-shrink:0}.quick-filter-clear{display:inline-block;margin-top:0.5rem;font-size:0.8rem;color:var(--color-subtle);text-decoration:underline}.quick-filter-clear:hover{color:var(--color-accent)}.quick-filter-chips.inline-chips{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:1rem}.filter-divider{border:none;border-top:1px solid var(--color-border);margin:0.75rem 0}.facet-divider{border:none;border-top:1px solid var(--color-border);margin:0.5rem 0;opacity:0.5}.filters-form{display:flex;flex-direction:column;gap:1rem}.facet{margin:0.1rem 0}.facet header{display:flex;align-items:center;gap:0.5rem;margin:0 0 0.4rem;cursor:pointer;user-select:none;justify-content:space-between;padding:0.5rem 0}.facet header h3{display:block;margin:0;font-size:1.05rem;font-weight:700;letter-spacing:0.01em;color:var(--color-accent);text-align:left}.facet-toggle{display:inline-flex;width:20px;height:20px;transition:transform 0.2s ease;flex-shrink:0}.facet-toggle svg{width:14px;height:14px;stroke:var(--color-subtle)}.facet.is-collapsed .facet-toggle{transform:rotate(-90deg)}.facet-body{margin-top:0.4rem;overflow:visible;opacity:1}.facet.is-collapsed .facet-body{display:none}.facet.highlight-section{animation:highlight-pulse 1.5s ease}@keyframes highlight-pulse{0%,100%{background:transparent}50%{background:var(--color-accent-alpha-10)}}.facet-options{display:grid;gap:0.24rem}.time-filter-group{margin-bottom:0.75rem}.time-filter-group:last-child{margin-bottom:0}.time-filter-heading{font-size:0.85rem;font-weight:600;color:var(--color-subtle);margin:0 0 0.35rem 0;padding-bottom:0.25rem;border-bottom:1px solid var(--color-border)}.check{display:grid;grid-template-columns:1.2rem auto;align-items:center;column-gap:0.5rem;cursor:pointer;text-align:left}.check input[type="checkbox"]{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer}.check span{font-size:0.95rem;line-height:1.35}.count{margin-left:0.25rem;font-size:0.85em;font-weight:normal;color:var(--color-subtle)}.mobile-filter-trigger{display:none;margin:1rem 0}.filter-toggle-btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.45rem 0.9rem;font-family:'Lora',serif;font-size:0.95rem;font-weight:500;background:transparent;color:var(--color-accent);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);cursor:pointer;transition:all 0.2s ease}.filter-toggle-btn:hover{background:var(--color-accent-alpha-5);border-color:var(--color-accent)}.filter-toggle-btn svg{width:18px;height:18px}.mobile-topbar-section{display:none;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--color-border)}.filter-group{position:relative;margin-bottom:0.75rem}.filter-group .autocomplete-box{position:absolute;top:100%;left:0;right:0;margin-top:4px}.filter-group label{display:block;margin-bottom:0.25rem;font-size:0.9rem;font-weight:600;color:var(--color-accent);text-align:left}.filter-control{width:100%;padding:0.6rem 0.8rem;font-family:'Lora',serif;font-size:1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:0.6rem;text-align:left}select.filter-control{padding-right:2.5rem;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.8rem center}.filter-checkbox{position:relative;width:20px;height:20px;background:var(--color-card);border:2px solid var(--color-border);border-radius:6px;appearance:none;cursor:pointer;transition:all 0.2s ease}.filter-checkbox:checked{background:var(--color-accent);border-color:var(--color-accent)}.filter-checkbox:checked::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:white;font-size:14px;font-weight:bold}.filters-actions{display:none;margin-top:1rem}.filter-apply-btn{padding:0.75rem 2rem;font-family:'Lora',serif;font-size:0.95rem;font-weight:500;background:var(--color-accent);color:white;border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:all 0.2s ease}.filter-apply-btn:hover{background:var(--color-accent-dark)}.filter-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:1000}.filter-backdrop.is-open{display:block}.filters-sidebar select,.filters-sidebar .filter-control{max-width:100%;text-align:left;text-align-last:left}.time-info{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0.75rem;margin:1rem 0}.time-badge{display:inline-flex;align-items:center;gap:0.4rem;padding:0.4rem 0.85rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);font-size:0.9rem;color:var(--color-text);transition:background-color 0.2s ease,border-color 0.2s ease}.time-badge svg{opacity:0.6}.time-badge.total{background:var(--color-accent);color:white;border-color:var(--color-accent)}.time-badge.total svg{opacity:0.9;stroke:white}@media (max-width:480px){.time-label{display:none}}.time-badge-small{display:inline-flex;align-items:center;gap:0.2rem;padding:0.15rem 0.4rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);font-size:0.7rem;color:var(--color-text);white-space:nowrap;transition:background-color 0.2s ease,border-color 0.2s ease}.time-badge-small svg{opacity:0.6}.time-badges-row{display:flex;gap:0.5rem;align-items:center}.metadata-tags{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0.5rem;margin:1.5rem 0;padding:0 1rem}.tag{display:inline-flex;align-items:center;padding:0.5rem 1rem;border-radius:var(--border-radius-pill);font-size:0.875rem;font-weight:500;text-decoration:none;white-space:nowrap;transition:all 0.2s ease}.tag:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,0.15)}.tag-primary{background:var(--color-accent-light);color:var(--color-accent-dark);border:1px solid var(--color-accent)}.tag-primary:hover{background:var(--color-accent);color:white}.tag-role{background:var(--color-tag-role-light);color:var(--color-tag-role);border:1px solid var(--color-tag-role-border)}.tag-role:hover{background:var(--color-tag-role);color:white}.tag-cuisine{background:var(--color-tag-cuisine-light);color:var(--color-tag-cuisine);border:1px solid var(--color-tag-cuisine-border)}.tag-cuisine:hover{background:var(--color-tag-cuisine);color:white}.tag-occasion{background:var(--color-tag-occasion-light);color:var(--color-tag-occasion);border:1px solid var(--color-tag-occasion-border)}.tag-occasion:hover{background:var(--color-tag-occasion);color:white}.level-indicator{display:flex;flex-direction:column;gap:0.5rem;padding:0.75rem 1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);font-size:0.9rem;color:var(--color-text);margin-bottom:1.5rem;box-shadow:0 1px 3px var(--color-shadow)}.level-main{display:flex;align-items:center;gap:0.5rem}.level-indicator svg{flex-shrink:0;color:var(--color-accent);width:18px;height:18px}.level-text{color:var(--color-text);flex:1}.level-name{color:var(--color-accent);font-weight:600}.level-hint{color:var(--color-subtle);font-size:0.85rem;font-style:italic;padding-left:26px}.level-change-link{padding:0.35rem 0.75rem;background:var(--color-accent);color:white;text-decoration:none;border-radius:var(--border-radius-pill);font-size:0.85rem;font-weight:500;white-space:nowrap;transition:background 0.2s ease}.level-change-link:hover{background:var(--color-accent-hover)}.parent-category.has-children{display:flex;align-items:center}.parent-category.has-children > span:first-of-type{flex:1}.category-toggle{padding:0.2rem;cursor:pointer;color:var(--color-subtle);transition:transform 0.2s ease}.category-toggle svg{width:0.9rem;height:0.9rem}.category-toggle:hover{color:var(--color-text)}.parent-category.is-collapsed .category-toggle{transform:rotate(-90deg)}.facet-options label.check[data-level="1"]{padding-left:1.5rem;position:relative}.facet-options label.check[data-level="1"]::before{content:'';position:absolute;left:0.5rem;top:0;bottom:0;width:2px;background:var(--color-border)}@media (max-width:768px){.level-indicator{padding:0.6rem 0.8rem;font-size:0.85rem}.level-hint{font-size:0.75rem;padding-left:22px}}:root[data-theme='dark'] .level-indicator{background:rgba(59,130,246,0.1);border-color:rgba(59,130,246,0.3);color:var(--color-variant-info)}:root[data-theme='dark'] .level-indicator svg{color:var(--color-variant-info)}:root[data-theme='dark'] .level-value{color:var(--color-info-text)}:root[data-theme='dark'] .facet-options label.check[data-level="1"]::before{background:rgba(255,255,255,0.2)}@media (max-width:768px){.level-indicator{font-size:0.8rem;padding:0.4rem 0.6rem}}@media (max-width:1023px){.topbar{display:none !important}.mobile-filter-trigger{display:block;text-align:left}.mobile-topbar-section{display:block}.filters-sidebar{position:fixed;bottom:0;left:50%;right:auto;top:auto;max-height:75vh;width:100%;max-width:420px;padding:0.375rem 1rem 6rem;border-radius:16px 16px 0 0;transform:translate(-50%,100%);overflow-y:auto;z-index:1001;transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);background:var(--color-card);box-shadow:0 -4px 20px rgba(0,0,0,0.15)}.filters-sidebar.is-open{transform:translate(-50%,0)}.filters-sidebar .quick-filter-chips{display:flex;flex-wrap:wrap;gap:0.375rem}.filters-sidebar::before{content:'';display:block;width:40px;height:4px;background:var(--color-border);border-radius:2px;margin:0.375rem auto 0.75rem}.icon-btn.close-filters{display:block}.filters-actions{display:flex;justify-content:center;margin:1rem 0 0.5rem;padding:0}.filters-sidebar label.check{min-height:44px;display:flex;align-items:center;padding:0.375rem 0}.filters-sidebar label.check input[type="checkbox"]{width:22px;height:22px;margin-right:0.5rem}.filters-sidebar .facet-group h4{padding:0.5rem 0}}@media (min-width:1024px){.mobile-filter-trigger,.mobile-topbar-section,.icon-btn.close-filters,.filters-actions{display:none !important}}@media (max-width:400px){.filters-sidebar{max-height:85vh}}.mobile-quick-filters{display:none;margin:0.75rem -0.5rem;padding:0 0.5rem;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.mobile-quick-filters::-webkit-scrollbar{display:none}.mobile-quick-chips{display:flex;gap:0.5rem;padding:0.25rem 0.5rem;white-space:nowrap}.mobile-quick-chip{display:inline-flex;align-items:center;gap:0.35rem;padding:0.5rem 0.85rem;font-size:0.875rem;font-weight:500;background:var(--color-card);color:var(--color-text);border:1px solid var(--color-border);border-radius:999px;text-decoration:none;cursor:pointer;transition:all 0.15s ease;flex-shrink:0}.mobile-quick-chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.mobile-quick-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:white}.mobile-quick-chip.more-filters{background:var(--color-accent);border-color:var(--color-accent);color:white}.mobile-quick-chip.more-filters:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark);color:white}.mobile-quick-chip.more-filters svg{width:14px;height:14px}.mobile-filter-fab{display:none;position:fixed;bottom:1.5rem;right:1rem;z-index:100;align-items:center;gap:0.5rem;padding:0.75rem 1.25rem;background:var(--color-accent);color:white;border:none;border-radius:999px;box-shadow:0 4px 12px rgba(0,0,0,0.2);font-size:0.9rem;font-weight:600;cursor:pointer;transition:transform 0.2s ease,box-shadow 0.2s ease}.mobile-filter-fab:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,0.25)}.mobile-filter-fab:active{transform:translateY(0)}.mobile-filter-fab svg{width:18px;height:18px}.mobile-filter-fab .filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 0.35rem;font-size:0.75rem;font-weight:700;background:white;color:var(--color-accent);border-radius:999px}@media (max-width:1023px){.mobile-quick-filters{display:block}.mobile-filter-fab{display:flex}.mobile-filter-trigger{display:none !important}}@media (min-width:1024px){.mobile-quick-filters,.mobile-filter-fab{display:none !important}}@media (max-width:360px){.sort-dropdown,.sort-dropdown-menu{min-width:0;width:100%}.filter-chip,.active-chip{font-size:0.7rem;padding:0.25rem 0.5rem}.filters-sidebar{padding:0.25rem 0.625rem 5rem}.facet-group h4{font-size:0.8rem}.facet-group label{font-size:0.75rem}.quick-filter-chip{padding:0.3rem 0.4rem;font-size:0.75rem}.active-chips{padding:0 0.5rem;gap:0.375rem}.chip{padding:0.15rem 0.5rem;font-size:0.8rem}}.ingredient-description{max-width:700px;margin:1.5rem auto 2rem auto;font-size:1.05rem;line-height:1.7;color:var(--color-text)}.ingredient-description p{margin:0}.ingredient-description p + p{margin-top:1rem}.ingredient-item{display:block}.ingredient-item:has(.btn-toggle-recipe){display:flex;flex-direction:column;gap:0.3rem}.ingredient-item .ingredient-line{display:flex;align-items:center;gap:0.5rem;width:100%}.ingredient-item .ingredient-amount{flex-shrink:0;white-space:nowrap;font-weight:500;min-width:140px;color:var(--color-text)}.ingredient-item .ingredient-link{flex:1 1 auto;min-width:0;margin:0;color:var(--color-accent);text-decoration:none}.ingredient-item .ingredient-link:hover{text-decoration:underline;background:transparent}.ingredient-item .btn-toggle-recipe{align-self:flex-start;margin-left:2rem;padding:0.4rem 0.9rem;font-size:0.875rem;font-family:'Lora',serif;white-space:nowrap;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;transition:all 0.2s ease}.ingredient-item .btn-toggle-recipe:hover{background:var(--color-accent);color:white;border-color:var(--color-accent)}.ingredient-item .btn-toggle-component-recipe{margin-left:auto;padding:0.35rem 0.75rem;font-size:0.8rem;font-family:'Lora',serif;white-space:nowrap;background:var(--color-accent-light,var(--color-accent));border:1px solid var(--color-accent);border-radius:var(--border-radius-sm);color:white;cursor:pointer;transition:all 0.2s ease}.ingredient-item .btn-toggle-component-recipe:hover{background:var(--color-accent-dark,var(--color-accent));border-color:var(--color-accent-dark,var(--color-accent))}.ingredient-item .btn-toggle-component-recipe:disabled{opacity:0.6;cursor:not-allowed}.btn-revert-to-storebought{margin-left:auto;padding:0.3rem 0.65rem;font-size:0.75rem;font-family:'Lora',serif;white-space:nowrap;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-subtle);cursor:pointer;transition:all 0.2s ease}.btn-revert-to-storebought:hover{background:var(--color-bg);border-color:var(--color-accent);color:var(--color-accent)}.btn-revert-to-storebought:disabled{opacity:0.5;cursor:not-allowed}.storebought-item{background:var(--color-bg);border-radius:var(--border-radius-sm);padding:0.25rem 0.5rem;margin:0.25rem 0}.optional-badge{display:inline-block;margin-left:0.75rem;padding:0.3rem 0.6rem;font-size:0.75rem;font-weight:500;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-subtle)}.ingredient-list,.component-list{display:flex;flex-wrap:wrap;justify-content:center;gap:0.5rem;margin-bottom:1rem}.ingredient-badge{position:relative;display:inline-block;padding:0.5rem 0.75rem;font-size:0.95rem;font-weight:500;background-color:var(--color-card);border:2px solid var(--color-border);border-radius:8px;color:var(--color-text);box-shadow:0 1px 3px var(--color-shadow);cursor:pointer;transition:all 0.2s ease}.ingredient-badge:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,0.15)}.ingredient-badge.selected{background-color:var(--color-success-light);border-color:var(--color-success);font-weight:600;box-shadow:0 2px 6px rgba(74,150,82,0.3)}.ingredient-badge.selected:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(74,150,82,0.4)}.ingredient-badge.seasonal{border-color:var(--color-accent);border-width:2px}.ingredient-badge.seasonal:hover{box-shadow:0 6px 18px rgba(74,150,82,0.25)}.seasonal-badge{display:inline-block;margin-left:0.35rem;padding:0.1rem 0.35rem;font-size:0.7rem;font-weight:600;color:white;background-color:var(--color-accent);border-radius:3px;vertical-align:middle}.seasonal-legend-inline{font-size:0.85rem;color:var(--color-subtle);margin:0.5rem 0}.seasonal-indicator{display:inline-block;width:10px;height:10px;border:2px solid var(--color-accent);border-radius:2px;vertical-align:middle}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--color-subtle)}.loading-spinner .spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin 0.8s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.empty-results-message{text-align:center;padding:3rem 1.5rem;color:var(--color-subtle);font-size:1.05rem}.results-limit-notice{text-align:center;margin-top:1rem;padding:0.75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;color:var(--color-subtle);font-size:0.95rem}.ingredient-badge:hover::after{background:var(--color-accent);color:white;border-color:var(--color-accent)}#ingredient-options.card-grid{grid-template-columns:repeat(4,1fr)}@media (max-width:900px){#ingredient-options.card-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:600px){#ingredient-options.card-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:450px){#ingredient-options.card-grid{grid-template-columns:1fr}}.ingredient-list-clean{display:flex;flex-direction:column;gap:0.25rem;max-width:600px;margin:1rem auto 1.5rem auto;padding:0;list-style:none;font-size:1.05rem}.ingredient-list-clean li{padding-bottom:0.2rem;border-bottom:1px solid var(--color-border)}.ingredient-table-hint{margin-top:0.5rem;font-size:0.9rem;color:var(--color-subtle);text-align:center}.ingredient-amount{min-width:100px;font-weight:600;color:var(--color-text)}.amount-secondary{margin-left:4px;font-size:0.95em;color:var(--color-subtle)}.ingredient-link{font-weight:500;color:var(--color-accent);text-decoration:none}.ingredient-link:hover{text-decoration:underline;background:transparent}.ingredient-note{display:inline;margin-left:0.5rem;font-size:0.95em;font-weight:400;font-style:italic;color:var(--color-subtle)}.ingredient-tree{margin-left:0}.ingredient-tree[data-depth="1"]{margin-left:1rem;padding-left:1rem;border-left:2px solid var(--color-border)}.ingredient-tree[data-depth="2"]{margin-left:2rem;padding-left:1rem;border-left:2px solid var(--color-border)}.ingredient-section-header{margin:2.5rem 0 0.75rem 0;padding-bottom:0.4rem;font-family:'Lora',serif;font-size:1.15rem;font-weight:600;color:var(--color-accent);border-bottom:2px solid var(--color-border)}.ingredient-section-header:first-child{margin-top:0}.ingredient-recipe-badge{background:#fff3e0;color:#e65100}:root[data-theme='dark'] .ingredient-recipe-badge{background:rgba(255,152,0,0.2);color:#ffb74d}.help-feature{padding:0.75rem 1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;text-align:center}.help-feature strong{display:block;color:var(--color-accent);font-size:0.95rem;margin-bottom:0.25rem}.help-feature p{margin:0;font-size:0.85rem;color:var(--color-subtle)}.ingredient-search-wrapper{margin:1rem 0;text-align:center}.ingredient-search{width:300px;max-width:90%;padding:0.6rem 1rem;font-family:'Lora',serif;border:1px solid var(--color-border);border-radius:8px}.selection-bar{position:sticky;top:0;z-index:50;padding:0.75rem 0;background:var(--color-bg);border-bottom:1px solid var(--color-border);margin-bottom:1rem}.selection-bar .selected-display{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0.5rem}.selection-bar .selected-list{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:0.5rem}.selection-bar #clearSelectionBtn{font-size:0.85rem;padding:0.3rem 0.7rem}.ingredient-count{text-align:center;margin-bottom:1rem;color:var(--color-subtle);font-size:0.95rem}.results-divider{margin:2rem 0;border:none;border-top:1px solid var(--color-border)}.results-limit-notice{margin-top:1rem;font-style:italic;text-align:center}.empty-results-message{margin-top:2rem;font-style:italic;text-align:center;opacity:0.8}@media (max-width:768px){.ingredient-item .ingredient-line{gap:0.5rem}.ingredient-item .ingredient-amount{min-width:100px}.ingredient-item .btn-toggle-recipe{margin-left:0;padding:0.3rem 0.65rem;font-size:0.78rem}}@media (max-width:480px){.ingredient-item .ingredient-amount{min-width:80px}.ingredient-item .btn-toggle-recipe{margin-left:0;padding:0.25rem 0.6rem;font-size:0.75rem}}.ingredient-subsection{margin-bottom:1.5rem}.ingredient-list-indented{max-width:550px;margin:0.25rem auto;padding-left:0.5rem;border-left:3px solid var(--color-accent);padding-top:0.25rem;padding-bottom:0.25rem}.ingredient-list-deep-indented{max-width:500px;margin:0.25rem auto;padding-left:0.5rem;border-left:3px solid var(--color-accent);padding-top:0.25rem;padding-bottom:0.25rem}.ingredient-section-header-indented{max-width:550px;margin:0 auto}.ingredient-section-header-deep-indented{max-width:500px;margin:0 auto}@media (max-width:768px){.ingredient-list-indented,.ingredient-section-header-indented{max-width:90%}.ingredient-list-deep-indented,.ingredient-section-header-deep-indented{max-width:85%}}.ingredient-component-section{margin-bottom:2rem;padding:1rem;background:var(--color-bg-secondary,#f9f9f9);border-radius:8px}.ingredient-component-included{border-left:3px solid var(--color-accent,#0066cc);padding-left:1.5rem}.ingredient-component-header{margin-bottom:1rem}.ingredient-section-title{font-size:1.1rem;font-weight:600;color:var(--color-text-primary,#333);margin:0;display:flex;align-items:center;gap:0.5rem}.component-indicator{color:var(--color-accent,#0066cc);font-size:1.2rem}.component-parent-hint{font-size:0.85rem;font-weight:400;color:var(--color-text-secondary,#666);font-style:italic}.no-ingredients{color:var(--color-text-secondary,#666);font-style:italic;margin:0.5rem 0}@media (max-width:768px){.ingredient-component-section{padding:0.75rem;margin-bottom:1.5rem}.ingredient-component-included{padding-left:1rem}.ingredient-section-title{font-size:1rem}.component-parent-hint{display:block;margin-top:0.25rem}}.substitutions-section{margin:var(--spacing-6) 0;padding:var(--spacing-4);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius)}.substitution-group{margin-bottom:var(--spacing-5)}.substitution-group:last-child{margin-bottom:0}.substitution-list{display:flex;flex-direction:column;gap:var(--spacing-3);margin-top:var(--spacing-3)}.substitution-item{padding:var(--spacing-3);background:var(--color-bg);border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--border-radius);transition:all 0.2s ease}.substitution-item:hover{border-left-color:var(--color-accent);box-shadow:0 2px 8px rgba(0,0,0,0.1)}.substitution-item.quality-excellent{border-left-color:var(--color-quality-excellent)}.substitution-item.quality-good{border-left-color:var(--color-quality-good)}.substitution-item.quality-acceptable{border-left-color:var(--color-quality-acceptable)}.substitution-header{display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2);flex-wrap:wrap}.substitution-name{font-size:1.0625rem;font-weight:600;color:var(--color-accent);text-decoration:none;flex-shrink:0}.substitution-name:hover{text-decoration:underline;background:transparent}.substitution-ratio{padding:0.25rem 0.75rem;background:var(--color-accent);color:white;border-radius:var(--border-radius-sm);font-size:0.875rem;font-weight:600;flex-shrink:0}.substitution-quality-badge{padding:0.25rem 0.75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:0.8125rem;font-weight:500;flex-shrink:0}.quality-excellent .substitution-quality-badge{background:var(--color-quality-excellent-light);color:var(--color-success);border-color:var(--color-quality-excellent)}.quality-good .substitution-quality-badge{background:var(--color-quality-good-light);color:var(--color-info);border-color:var(--color-quality-good)}.quality-acceptable .substitution-quality-badge{background:var(--color-quality-acceptable-light);color:#e65100;border-color:var(--color-quality-acceptable)}:root[data-theme='dark'] .quality-excellent .substitution-quality-badge{background:rgba(76,175,80,0.2);color:#81c784}:root[data-theme='dark'] .quality-good .substitution-quality-badge{background:rgba(33,150,243,0.2);color:#64b5f6}:root[data-theme='dark'] .quality-acceptable .substitution-quality-badge{background:rgba(255,152,0,0.2);color:#ffb74d}.substitution-context{margin:var(--spacing-1) 0;font-size:0.9375rem;font-weight:500;color:var(--color-text)}.substitution-notes{margin:var(--spacing-1) 0;font-size:0.875rem;color:var(--color-subtle);line-height:1.5}.substitution-guide-link{display:inline-flex;align-items:center;gap:0.25rem;margin-top:var(--spacing-2);padding:0.5rem 0.75rem;background:var(--color-accent);color:white;text-decoration:none;font-size:0.875rem;font-weight:500;border-radius:var(--border-radius-sm);transition:all 0.2s ease}.substitution-guide-link:hover{background:var(--color-accent-dark);transform:translateX(2px)}@media (max-width:768px){.substitutions-section{padding:var(--spacing-3)}.substitution-header{flex-direction:column;align-items:flex-start}.substitution-ratio,.substitution-quality-badge{align-self:flex-start}}.substitution-badge{display:inline-flex;align-items:center;gap:0.25rem;margin-left:0.5rem;padding:0.25rem 0.5rem;background:var(--color-accent);color:white;border:none;border-radius:var(--border-radius-sm);font-size:0.75rem;font-weight:600;cursor:pointer;transition:all 0.2s ease;vertical-align:middle}.substitution-badge:hover{background:var(--color-accent-dark);transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,0.15)}.substitution-popup{position:fixed;z-index:1000;width:320px;max-width:90vw;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:0 4px 16px rgba(0,0,0,0.2);overflow:hidden}.substitution-popup-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3);background:var(--color-bg);border-bottom:1px solid var(--color-border)}.substitution-popup-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--color-heading)}.substitution-popup-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--color-subtle);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color 0.2s ease}.substitution-popup-close:hover{color:var(--color-text)}.substitution-popup-content{max-height:400px;overflow-y:auto;padding:var(--spacing-2)}.substitution-popup-item{padding:var(--spacing-2);margin-bottom:var(--spacing-2);background:var(--color-bg);border:1px solid var(--color-border);border-left-width:3px;border-radius:var(--border-radius-sm)}.substitution-popup-item:last-child{margin-bottom:0}.substitution-popup-item.quality-excellent{border-left-color:var(--color-quality-excellent)}.substitution-popup-item.quality-good{border-left-color:var(--color-quality-good)}.substitution-popup-item.quality-acceptable{border-left-color:var(--color-quality-acceptable)}.substitution-popup-main{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.5rem}.substitution-popup-name{font-weight:600;color:var(--color-accent);text-decoration:none;font-size:0.9375rem}.substitution-popup-name:hover{text-decoration:underline;background:transparent}.substitution-popup-ratio{padding:0.125rem 0.5rem;background:var(--color-accent);color:white;border-radius:var(--border-radius-sm);font-size:0.75rem;font-weight:600}.quality-badge{padding:0.125rem 0.5rem;border-radius:var(--border-radius-sm);font-size:0.75rem;font-weight:500}.quality-badge.excellent{background:var(--color-accent-alpha-15);color:var(--color-accent-dark)}.quality-badge.good{background:var(--color-accent-alpha-15);color:var(--color-accent)}.quality-badge.acceptable{background:#fff3e0;color:#e65100}:root[data-theme='dark'] .quality-badge.excellent{background:var(--color-accent-alpha-20);color:var(--color-accent-light)}:root[data-theme='dark'] .quality-badge.good{background:var(--color-accent-alpha-15);color:var(--color-accent)}:root[data-theme='dark'] .quality-badge.acceptable{background:rgba(255,152,0,0.2);color:#ffb74d}.substitution-popup-context{margin:0.25rem 0;font-size:0.875rem;color:var(--color-text);font-style:italic}.substitution-popup-guide{display:inline-flex;align-items:center;gap:0.25rem;margin-top:0.5rem;padding:0.25rem 0.5rem;background:var(--color-accent);color:white;text-decoration:none;font-size:0.8125rem;border-radius:var(--border-radius-sm);transition:background 0.2s ease}.substitution-popup-guide:hover{background:var(--color-accent-dark)}.substitution-popup-footer{padding:var(--spacing-2);background:var(--color-bg);border-top:1px solid var(--color-border);text-align:center}.substitution-popup-footer .btn-link{color:var(--color-accent);text-decoration:none;font-size:0.875rem;font-weight:500}.substitution-popup-footer .btn-link:hover{text-decoration:underline}@media (max-width:768px){.substitution-popup{width:calc(100vw - 2rem);max-width:320px}.substitution-badge{font-size:0.7rem;padding:0.2rem 0.4rem}}.storage-info{display:flex;flex-direction:column;align-items:center;gap:0.5rem;margin:1.5rem 0;text-align:center}.storage-label{font-size:0.9rem;font-weight:600;color:var(--color-subtle)}.storage-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:0.5rem}.storage-pill{display:inline-flex;align-items:center;padding:0.5rem 1rem;font-size:0.9rem;font-weight:500;color:var(--color-text);background:var(--color-card);border:1px solid var(--color-border);border-radius:100px}.storage-pill--freezable{color:#1976d2;border-color:#90caf9;background:var(--color-info-light,#e3f2fd)}:root[data-theme='dark'] .storage-pill--freezable{background:rgba(33,150,243,0.15);color:#64b5f6;border-color:rgba(33,150,243,0.4)}.storage-section{max-width:700px;margin:2rem auto}.storage-section .section-title{margin:0 0 1rem 0;font-size:1.1rem;font-weight:600;color:var(--color-accent)}.storage-info-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem;margin-bottom:1rem}.storage-info-item{text-align:center}.storage-info-item strong{display:block;font-size:0.95rem;font-weight:600;color:var(--color-heading);margin-bottom:0.25rem}.storage-info-item p{margin:0;font-size:0.9rem;color:var(--color-subtle);line-height:1.4}.storage-notes{padding:1rem;background:var(--color-bg);border-left:3px solid var(--color-accent);border-radius:var(--border-radius-sm,6px)}.storage-notes p{margin:0;font-size:0.95rem;color:var(--color-text);line-height:1.6}@media (max-width:600px){.storage-section{margin:1.5rem 0}.storage-info-grid{flex-direction:column;gap:1rem}}.pairings-section{max-width:800px;margin:2rem auto;text-align:center}.pairings-section .section-title{margin-bottom:1.5rem}.pairings-category{margin-bottom:1rem}.pairings-category-title{font-size:0.75rem;font-weight:600;color:var(--color-subtle);text-transform:uppercase;letter-spacing:0.05em;margin:0 0 0.4rem 0}.pairings-section .pairings-grid{display:flex;flex-wrap:wrap;gap:0.4rem;justify-content:center;margin:0}.pairings-section .pairing-chip{padding:0.3rem 0.7rem;font-size:0.85rem;border-radius:4px}.pairings-section .pairing-chip:hover{transform:none;box-shadow:none}.converter-section{max-width:500px;margin:2rem auto}.converter-widget{background:var(--color-card);border-radius:var(--border-radius-md);padding:1.5rem;border:1px solid var(--color-border)}.converter-input-row{display:flex;align-items:center;justify-content:center;gap:0.4rem;flex-wrap:nowrap}.converter-amount{width:4.5rem;padding:0.5rem;font-size:1rem;font-weight:500;text-align:center;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background:var(--color-card);color:var(--color-text)}.converter-amount:focus{outline:none;border-color:var(--color-accent)}.converter-unit-from,.converter-unit-to{padding:0.5rem 1.5rem 0.5rem 0.5rem;font-size:0.95rem;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background:var(--color-bg);color:var(--color-text);cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b6b6b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.5rem center;min-width:4rem}.converter-unit-from:focus,.converter-unit-to:focus{outline:none;border-color:var(--color-accent)}.converter-equals{font-size:1.1rem;color:var(--color-subtle);padding:0 0.15rem;flex-shrink:0}.converter-result-value{padding:0.5rem;font-size:1rem;font-weight:600;color:var(--color-accent);min-width:3rem;text-align:right;border:1px solid var(--color-accent);border-radius:var(--border-radius-sm);background:var(--color-accent-alpha-10,rgba(59,121,66,0.08))}.converter-notes{margin:0.75rem 0 0 0;font-size:0.85rem;font-style:italic;color:var(--color-subtle)}.converter-reference{margin-top:1rem;text-align:left}.converter-reference summary{font-size:0.85rem;color:var(--color-accent);cursor:pointer;text-align:center}.converter-reference summary:hover{text-decoration:underline}.converter-table{width:100%;margin-top:0.75rem;border-collapse:collapse;font-size:0.9rem}.converter-table th,.converter-table td{padding:0.4rem 0.75rem;border-bottom:1px solid var(--color-border)}.converter-table th{font-weight:600;color:var(--color-subtle);font-size:0.8rem;text-transform:uppercase;letter-spacing:0.03em}.converter-table th:first-child,.converter-table td:first-child{text-align:left}.converter-table th:last-child,.converter-table td:last-child{text-align:right;font-family:'Lora',serif;color:var(--color-accent)}.converter-table th:last-child{font-family:inherit;color:var(--color-subtle)}.converter-section-empty{opacity:0.7}.converter-no-data{font-size:0.9rem;color:var(--color-subtle);font-style:italic;margin:0}@media (max-width:400px){.converter-input-row{gap:0.25rem}.converter-amount{width:3.5rem;padding:0.4rem 0.25rem;font-size:0.9rem}.converter-unit-from,.converter-unit-to{padding:0.4rem 1.2rem 0.4rem 0.35rem;font-size:0.85rem;min-width:3rem}.converter-equals{font-size:0.95rem;padding:0 0.1rem}.converter-result-value{font-size:0.9rem;padding:0.4rem;min-width:2.5rem}}.nutrition-block{max-width:800px;margin:2rem auto;padding:1.5rem;background:var(--color-card);border:2px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:0 2px 8px var(--color-shadow)}.nutrition-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--color-border)}.nutrition-header h3{margin:0;font-size:1.4rem;color:var(--color-accent);text-align:left}.nutrition-header-controls{display:flex;align-items:center;gap:1rem}.nutrition-label{font-size:0.9rem;color:var(--color-subtle);font-weight:500}.nutrition-toggle{display:flex;align-items:center;gap:0.3rem;padding:0.25rem 0.6rem;background:transparent;color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--border-radius-pill);font-family:'Lora',serif;font-size:0.8rem;font-weight:500;cursor:pointer;transition:all 0.2s ease}.nutrition-toggle:hover{background:var(--color-accent);color:white}.nutrition-toggle .toggle-icon{transition:transform 0.3s ease}.nutrition-toggle[aria-expanded="true"] .toggle-icon{transform:rotate(180deg)}.nutrition-macros{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:0.75rem;margin-bottom:1rem}.macro-item{padding:0.75rem;background:var(--color-bg);border-radius:var(--border-radius-md);text-align:center}.macro-label{font-size:0.75rem;color:var(--color-subtle);text-transform:uppercase;letter-spacing:0.3px;margin-bottom:0.3rem}.macro-value{font-size:1.15rem;font-weight:700;color:var(--color-text);margin-bottom:0.15rem}.macro-percent{font-size:0.7rem;color:var(--color-accent);font-weight:500}.nutrition-details{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.nutrition-grid{columns:3 200px;column-gap:1.5rem;column-rule:1px solid var(--color-border)}.nutrient-row{display:flex;justify-content:space-between;align-items:center;padding:0.6rem 0.75rem;background:var(--color-bg);border-radius:var(--border-radius-sm);margin-bottom:0.75rem;break-inside:avoid}.nutrient-info{display:flex;flex-direction:column;gap:0.2rem}.nutrient-name{font-size:0.9rem;color:var(--color-text);font-weight:500}.nutrient-dri{font-size:0.75rem;color:var(--color-accent);font-weight:600}.nutrient-value{font-size:0.95rem;color:var(--color-text);font-weight:600;white-space:nowrap}.nutrient-unit{font-size:0.85rem;color:var(--color-subtle);font-weight:400;margin-left:0.2rem}.nutrient-category{margin-bottom:1.5rem}.nutrient-category:last-child{margin-bottom:0}.nutrient-category-title{margin:0 0 1rem 0;padding-bottom:0.5rem;border-bottom:2px solid var(--color-border);font-size:1rem;font-weight:600;color:var(--color-accent);text-align:left}.nutrition-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border);text-align:center;font-size:0.9rem;color:var(--color-subtle)}.nutrition-disclaimer{margin-top:0.5rem;padding:0.75rem;background:var(--color-bg);border-radius:var(--border-radius-sm);font-size:0.85rem;line-height:1.6;color:var(--color-subtle);text-align:left}.nutrition-disclaimer a{color:var(--color-accent)}.nutrition-disclaimers{margin-top:0.75rem}.nutrition-disclaimers-toggle{display:block;text-align:center;padding:0.5rem;font-size:0.8rem;color:var(--color-subtle);cursor:pointer;transition:color 0.2s ease}.nutrition-disclaimers-toggle:hover{color:var(--color-accent)}.nutrition-disclaimers-content{margin-top:0.5rem}.nutrition-disclaimers-content .nutrition-disclaimer:first-child{margin-top:0}@media (max-width:768px){.nutrition-block{margin:1.5rem auto;padding:1rem}.nutrition-header{flex-direction:column;align-items:flex-start;gap:0.75rem;margin-bottom:1rem;padding-bottom:0.75rem}.nutrition-header-controls{width:100%;justify-content:space-between;gap:0.5rem}.nutrition-toggle{padding:0.2rem 0.5rem;font-size:0.75rem}.nutrition-macros{grid-template-columns:repeat(2,1fr);gap:0.4rem;margin-bottom:0.75rem}.macro-item{padding:0.4rem 0.5rem}.macro-label{font-size:0.7rem;letter-spacing:0.2px;margin-bottom:0.25rem}.macro-value{font-size:1rem;margin-bottom:0.1rem}.macro-percent{font-size:0.65rem}.nutrition-details{margin-top:1rem;padding-top:1rem}.nutrient-category{margin-bottom:1rem}.nutrient-category-title{margin-bottom:0.5rem;font-size:0.95rem}.nutrition-grid{columns:2 150px;column-gap:0.5rem;column-rule:none}.nutrient-row{padding:0.4rem 0.5rem;margin-bottom:0.4rem}.nutrient-name{font-size:0.85rem}.nutrient-dri{font-size:0.7rem}.nutrient-value{font-size:0.9rem}}@media (max-width:480px){.nutrition-block{margin:1rem auto;padding:0.75rem}.nutrition-macros{gap:0.35rem}.macro-item{padding:0.35rem 0.4rem}.macro-label{font-size:0.65rem}.macro-value{font-size:0.95rem}.macro-percent{font-size:0.6rem}.nutrient-row{padding:0.35rem 0.4rem;margin-bottom:0.3rem}}.steps-list{max-width:700px;margin:2rem auto}.step-item{display:flex;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;background:var(--color-card);border-radius:var(--border-radius-md);border:1px solid var(--color-border);box-shadow:0 2px 4px var(--color-shadow)}.step-number-circle{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:white;border-radius:50%;font-size:1.5rem;font-weight:700}.step-content{flex:1}.step-text{margin-bottom:1rem;font-size:1.05rem;line-height:1.6;color:var(--color-text)}.step-text strong{font-weight:700;color:var(--color-heading)}.step-image{width:100%;max-width:400px;border-radius:var(--border-radius-sm);box-shadow:0 2px 8px var(--color-shadow)}.step-meta{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.75rem}.step-badge{display:inline-flex;align-items:center;gap:0.25rem;padding:0.25rem 0.6rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);font-size:0.85rem;color:var(--color-subtle)}.technique-tip{margin-top:1rem;padding:1rem;background:var(--color-info-light);border-left:4px solid var(--color-info);border-radius:var(--border-radius-sm)}.technique-tip-header{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.5rem;font-weight:600;color:var(--color-info)}.technique-tip-content{font-size:0.95rem;line-height:1.5;color:var(--color-text)}.notes-section{margin:2rem 0;padding:1.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 2px 4px var(--color-shadow)}.notes-section h4{margin:0 0 1rem 0;color:var(--color-accent)}.note-item{margin-bottom:1rem;padding:1rem;background:var(--color-bg);border-left:3px solid var(--color-accent);border-radius:var(--border-radius-sm)}.note-item:last-child{margin-bottom:0}.note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem}.note-header h5{margin:0;font-size:1rem;color:var(--color-text)}.note-content{font-size:0.95rem;line-height:1.5;color:var(--color-text);white-space:pre-wrap}.note-edit-actions{display:flex;gap:0.5rem;margin-top:0.5rem}.notes-print-block{margin:1rem 0;padding:1rem;background:var(--color-bg);border-left:4px solid var(--color-info)}.notes-print-block strong{display:block;margin-bottom:0.5rem}.notes-print-block p{margin:0.5rem 0 0 0;white-space:pre-wrap}@media (max-width:768px){.step-item{flex-direction:column;gap:1rem;padding:1rem}.step-number-circle{width:40px;height:40px;font-size:1.25rem}.step-image{max-width:100%}}.step-container{max-width:700px;margin:0 auto 2rem auto}.prep-boundary-divider{max-width:700px;margin:0 auto 2rem auto;display:flex;align-items:center;gap:1rem}.prep-boundary-divider[hidden]{display:none}.prep-boundary-divider::before,.prep-boundary-divider::after{content:"";flex:1;height:2px;background:linear-gradient( to right,transparent,var(--color-accent),var(--color-accent),transparent )}.prep-boundary-text{font-size:0.85rem;font-weight:600;color:var(--color-accent);text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap}.step-image{display:block;width:100%;max-width:600px;height:auto;margin:0 auto 1rem auto;border-radius:var(--border-radius-md);box-shadow:0 2px 8px rgba(0,0,0,0.1)}.note-collapsible{max-width:650px;width:100%;margin:18px auto;padding:12px 14px;background:var(--color-card);border:1.5px solid var(--color-border);border-radius:14px;box-shadow:0 1px 4px var(--color-shadow)}.note-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.note-head h4{margin:0}.note-body{margin-top:12px}.note-collapsible .note-body,.note-collapsible .add-note-form{max-width:760px;margin:0 auto}.note-collapsible textarea{width:100%;box-sizing:border-box}.note-toggle{padding:6px 10px;font-family:'Lora',serif;background:var(--color-card);color:var(--color-text);border:1.5px solid var(--color-border);border-radius:var(--border-radius-pill);box-shadow:0 1px 3px var(--color-shadow);cursor:pointer}.note-toggle:hover{background:var(--color-card)}.note-preview{margin-top:0.25rem;font-size:0.85rem;line-height:1.4;color:var(--color-subtle)}.note-hint{max-width:800px;margin:2rem auto;padding:1rem;background-color:var(--color-bg);border-left:4px solid var(--color-accent);border-radius:6px;font-style:italic;color:var(--color-subtle)}.add-note-form{margin-bottom:2rem;padding:1rem;background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 2px 8px var(--color-shadow)}.add-note-form textarea{width:100%;padding:0.6rem 1rem;font-family:'Lora',serif;font-size:1rem;background-color:var(--color-card);color:var(--color-text);border:1.5px solid var(--color-border);border-radius:var(--border-radius-sm);box-shadow:0 1px 3px var(--color-shadow);resize:vertical}.note-list{max-width:600px;margin:0 auto;padding:0;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);box-shadow:0 1px 6px rgba(0,0,0,0.06);list-style:none;overflow:hidden}.note-list li{position:relative;padding:0.75rem 1rem;font-size:1rem;line-height:1.4;border-bottom:1px solid var(--color-border)}.note-list li:last-child{border-bottom:none}.step-image-wrapper{position:relative;width:100%;max-width:600px;aspect-ratio:4 / 3;overflow:hidden;margin:0 auto 1.5rem auto;border-radius:var(--border-radius-md);box-shadow:0 2px 12px var(--color-shadow);background:var(--color-bg);cursor:pointer}.step-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.3s ease}.step-image-wrapper:hover .step-image{transform:scale(1.05)}.step-image-zoom-hint{position:absolute;bottom:0.75rem;right:0.75rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.9);border-radius:50%;opacity:0;transition:opacity 0.3s ease;pointer-events:none}.step-image-wrapper:hover .step-image-zoom-hint{opacity:1}.step-image-zoom-hint svg{color:var(--color-accent)}.lightbox-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.95);z-index:10000;opacity:0;transition:opacity 0.3s ease}.lightbox-modal.active{display:flex;align-items:center;justify-content:center;opacity:1}.lightbox-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:1rem}.lightbox-image{max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:var(--border-radius-sm);box-shadow:0 8px 32px rgba(0,0,0,0.5)}.lightbox-caption{padding:0.75rem 1.5rem;background:rgba(255,255,255,0.95);color:var(--color-text);border-radius:var(--border-radius-pill);font-size:1rem;font-weight:500;text-align:center}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;padding:0.75rem;background:rgba(255,255,255,0.9);border:none;border-radius:50%;cursor:pointer;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:white;transform:scale(1.1)}.lightbox-close{top:1.5rem;right:1.5rem}.lightbox-prev{left:1.5rem;top:50%;transform:translateY(-50%)}.lightbox-next{right:1.5rem;top:50%;transform:translateY(-50%)}.lightbox-close svg,.lightbox-prev svg,.lightbox-next svg{color:var(--color-accent)}:root[data-theme='dark'] .lightbox-caption{background:var(--color-overlay-dark);color:var(--color-text)}:root[data-theme='dark'] .step-image-zoom-hint{background:var(--color-overlay-dark)}:root[data-theme='dark'] .lightbox-close,:root[data-theme='dark'] .lightbox-prev,:root[data-theme='dark'] .lightbox-next{background:var(--color-overlay-dark)}:root[data-theme='dark'] .lightbox-close:hover,:root[data-theme='dark'] .lightbox-prev:hover,:root[data-theme='dark'] .lightbox-next:hover{background:var(--color-card)}@media (max-width:600px){.step-image-wrapper{aspect-ratio:1 / 1;border-radius:var(--border-radius-sm)}.step-image-zoom-hint{width:32px;height:32px;bottom:0.5rem;right:0.5rem}.step-image-zoom-hint svg{width:16px;height:16px}.lightbox-close{top:1rem;right:1rem}.lightbox-prev{left:0.5rem}.lightbox-next{right:0.5rem}.lightbox-caption{font-size:0.9rem;padding:0.5rem 1rem}}:root[data-theme='dark'] .note-collapsible{background:var(--color-card);border-color:var(--color-border)}:root[data-theme='dark'] .note-toggle{background:var(--color-card);border-color:var(--color-border);color:var(--color-text)}:root[data-theme='dark'] .note-toggle:hover{background:var(--color-bg)}:root[data-theme='dark'] .note-hint{background:var(--color-card);border-left-color:var(--color-accent);color:var(--color-subtle)}:root[data-theme='dark'] .add-note-form{background:var(--color-card);border-color:var(--color-border)}:root[data-theme='dark'] .add-note-form textarea{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text)}@media (max-width:640px){.note-collapsible{max-width:100%;margin:12px 0}.note-collapsible .note-body,.note-collapsible .add-note-form{max-width:100%}}@media (max-width:600px){.step-container{margin-bottom:1.5rem}.step-image{max-width:100%;border-radius:var(--border-radius-sm)}}.steps-clear{display:flex;justify-content:center;margin:1.5rem 0 1rem}.allergen-section{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0.25rem;margin:0.25rem 0 0 0}.allergen-label{font-size:0.8rem;color:var(--color-subtle)}.allergen-badges{display:inline-flex;flex-wrap:wrap;gap:0.25rem}.allergen-badge{display:inline-block;padding:0.15rem 0.5rem;font-size:0.75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text)}.allergen-badge.allergen-warning{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text)}.allergen-section.has-user-match{flex-direction:column;align-items:center}.allergen-alert{margin-top:0.75rem;margin-bottom:0.5rem;padding:0.75rem;background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--border-radius-sm);color:#856404;font-size:0.9rem}:root[data-theme='dark'] .allergen-alert{background:#664d03;border-color:#997404;color:#ffecb5}.make-ahead-info{margin:0.5rem auto;padding:0.4rem 0.75rem;background:color-mix(in srgb,var(--color-accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-accent) 25%,transparent);border-radius:6px;font-size:0.8rem;line-height:1.4;max-width:fit-content}.make-ahead-storage{color:var(--color-subtle);font-weight:500}.make-ahead-notes{display:block;color:var(--color-text)}.make-ahead-reheat{display:block;color:var(--color-subtle);margin-top:0.2rem}.make-ahead-info.compact{margin:0.25rem 0;padding:0.3rem 0.6rem;font-size:0.75rem}.make-ahead-divider-toggle{display:flex;align-items:center;justify-content:center;gap:0.5rem;margin-top:0.5rem;padding-top:0.5rem;border-top:1px dashed color-mix(in srgb,var(--color-accent) 30%,transparent);cursor:pointer;font-size:0.85rem;color:var(--color-subtle)}.make-ahead-divider-toggle:hover{color:var(--color-text)}.make-ahead-divider-toggle input[type="checkbox"]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.included-component-card{position:relative;margin:2rem 0;padding:0;overflow:hidden;border-left:3px solid var(--color-accent)}.included-component-header{position:relative;display:grid;grid-template-columns:180px 1fr 180px;align-items:center;padding:1.5rem;min-height:140px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.collapse-toggle{position:absolute;top:1rem;left:1rem;padding:0.25rem;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--color-subtle);z-index:10}.collapse-toggle:hover{color:var(--color-accent)}.collapse-toggle .chevron-icon{transition:transform 0.3s ease}.collapse-toggle[aria-expanded="false"] .chevron-icon{transform:rotate(-90deg)}.component-header-image{width:120px;height:120px;border-radius:var(--border-radius-md);overflow:hidden;background:var(--color-card);border:1px solid var(--color-border);transition:all 0.2s ease;display:block;justify-self:center}.component-header-image:hover{transform:scale(1.05);box-shadow:0 4px 12px var(--color-shadow-hover)}.component-header-image img{width:100%;height:100%;object-fit:cover;display:block}.component-header-content{display:flex;flex-direction:column;align-items:center;text-align:center;grid-column:2}.component-header-content h4{margin:0 0 0.75rem 0;font-size:1.3rem;font-weight:600;color:var(--color-accent)}.component-header-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem}.time-badge{display:inline-flex;align-items:center;gap:0.4rem;padding:0.25rem 0.5rem;font-size:0.875rem;background:var(--color-card);border-radius:var(--border-radius-sm);color:var(--color-subtle)}.time-badge svg{flex-shrink:0}.variant-selector-inline{padding:1rem 1.5rem;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.variant-selector-content{display:flex;align-items:center;flex-wrap:wrap;gap:0.75rem}.variant-selector-inline label{display:inline-flex;align-items:center;gap:0.5rem;margin:0;font-weight:500;color:var(--color-text)}.variant-selector-inline label svg{color:var(--color-accent)}.variant-select{padding:0.5rem 2.5rem 0.5rem 1rem;font-family:'Lora',serif;font-size:0.95rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%233b7942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.75rem center;transition:all 0.2s ease}.variant-select:hover{border-color:var(--color-accent)}.variant-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-alpha-10)}.auto-selection-badge{display:inline-flex;align-items:center;gap:0.4rem;padding:0.35rem 0.7rem;font-size:0.8rem;font-weight:500;background:var(--color-success-light);color:var(--color-success);border-radius:var(--border-radius-sm)}.auto-selection-badge svg{flex-shrink:0}.btn-compare-variants,.btn-revert-to-ingredient{display:inline-flex;align-items:center;gap:0.4rem;margin-left:auto;padding:0.4rem 0.8rem;font-family:'Lora',serif;font-size:0.85rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text);cursor:pointer;transition:all 0.2s ease}.btn-compare-variants:hover,.btn-revert-to-ingredient:hover{background:var(--color-bg);border-color:var(--color-accent);color:var(--color-accent)}.btn-revert-to-ingredient:disabled{opacity:0.5;cursor:not-allowed}.btn-compare-variants svg,.btn-revert-to-ingredient svg{flex-shrink:0}.component-content-wrapper{max-height:10000px;overflow:hidden;transition:max-height 0.3s ease-out}.component-content-wrapper.collapsed{max-height:0}.variant-cards-section{padding:1.5rem;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.variant-section-header{margin-bottom:1rem}.variant-section-title{display:flex;align-items:center;gap:0.5rem;margin:0 0 0.5rem 0;font-size:1rem;font-weight:600;color:var(--color-text)}.variant-section-description{margin-bottom:1rem;font-size:0.9rem;color:var(--color-subtle);line-height:1.5}.variant-section-title svg{flex-shrink:0;color:var(--color-accent)}.auto-selection-hint{display:inline-flex;align-items:center;gap:0.3rem;margin-left:auto;padding:0.25rem 0.6rem;font-size:0.75rem;font-weight:500;background:var(--color-success-light);color:var(--color-success);border-radius:var(--border-radius-sm)}.auto-selection-hint svg{color:var(--color-success)}.variant-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.variant-cards-grid.collapsible .hidden-variant{display:none}.btn-show-all-variants{display:flex;align-items:center;justify-content:center;gap:0.5rem;width:100%;margin-top:1rem;padding:0.75rem;font-family:'Lora',serif;font-size:0.95rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);color:var(--color-text);cursor:pointer;transition:all 0.2s ease}.btn-show-all-variants:hover{background:var(--color-bg);border-color:var(--color-accent);color:var(--color-accent)}.btn-show-all-variants svg{transition:transform 0.3s ease}.btn-show-all-variants[data-expanded="true"] svg{transform:rotate(180deg)}.variant-option-card{position:relative;cursor:pointer;transition:all 0.2s ease}.variant-option-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px var(--color-shadow-hover)}.variant-option-card.selected{border-color:var(--color-accent);border-width:2px;box-shadow:0 0 0 3px var(--color-accent-alpha-15)}.variant-option-card.selected:hover{transform:translateY(-4px);box-shadow:0 0 0 3px var(--color-accent-alpha-15),0 8px 24px var(--color-shadow-hover)}.variant-importance-badge{display:inline-block;padding:0.2rem 0.4rem;font-size:0.65rem;font-weight:600;letter-spacing:0.3px;text-transform:uppercase;border-radius:var(--border-radius-sm)}.variant-importance-badge.importance-dietary{background:var(--color-success-light);color:var(--color-success)}.variant-importance-badge.importance-flavor{background:#fff3e0;color:#e65100}.variant-importance-badge.importance-technique{background:var(--color-info-light);color:var(--color-info)}.variant-option-card .time-badge-small{padding:0.2rem 0.4rem;font-size:0.7rem}.variant-cards-grid.loading{opacity:0.6;pointer-events:none}.component-body{padding:1.5rem}.component-section{margin-bottom:1.5rem}.component-section:last-child{margin-bottom:0}.component-section h5{margin:0 0 1rem 0;font-size:1.1rem;font-weight:600;color:var(--color-text);text-align:center}.component-steps-list{display:none;margin:0;padding-left:1.5rem;list-style:decimal}.component-steps-list.active-level{display:block}.component-steps-list li{margin-bottom:0.75rem;padding-left:0.25rem;line-height:1.6}.component-steps-list li:last-child{margin-bottom:0}.deep-dive-collapsible{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.deep-dive-toggle{display:flex;align-items:center;gap:0.5rem;width:100%;padding:0.75rem 0;font-family:'Lora',serif;font-size:0.9rem;font-weight:500;background:transparent;border:none;color:var(--color-subtle);cursor:pointer;transition:all 0.2s ease}.deep-dive-toggle::before,.deep-dive-toggle::after{content:'';flex:1;height:1px;background:var(--color-border)}.deep-dive-toggle::before{margin-right:1rem}.deep-dive-toggle::after{margin-left:1rem}.deep-dive-toggle:hover{color:var(--color-accent)}.deep-dive-toggle:hover::before,.deep-dive-toggle:hover::after{background:var(--color-accent)}.deep-dive-toggle .chevron-icon{transition:transform 0.3s ease}.deep-dive-toggle[aria-expanded="true"] .chevron-icon{transform:rotate(90deg)}.deep-dive-collapsible .deep-dive-content{margin-top:1rem;padding:1rem;background:var(--color-bg);border-radius:var(--border-radius-sm)}.recipe-extras-section{max-width:800px;margin:1.5rem auto;padding:0 1rem}.extras-collapsible{margin-bottom:0.75rem;text-align:center}.extras-collapsible .deep-dive-toggle{margin:0 auto}.extras-collapsible .deep-dive-content h4{margin-top:1.5rem;margin-bottom:0.75rem;padding-bottom:0.5rem;border-bottom:1px solid var(--color-border);text-align:left}.extras-collapsible .deep-dive-content h4:first-child{margin-top:0}@media (max-width:600px){.recipe-extras-section{margin:1rem auto;padding:0 0.5rem}}.collapsible-section{margin-bottom:1.5rem}.section-header-centered{display:flex;align-items:center;justify-content:center;gap:0.75rem;margin-bottom:1rem}.section-header-centered .collapse-toggle{position:static;flex-shrink:0}.section-header-centered .section-title{margin:0}.section-header-with-toggle{display:flex;align-items:center;gap:0.5rem;margin-bottom:1rem}.section-header-with-toggle .collapse-toggle{position:static;flex-shrink:0}.section-header-with-toggle .section-title{flex:1;text-align:center;margin:0}.component-body .section-title{font-size:1.25rem}.component-body .section-header-with-toggle .section-title{font-size:1.25rem}.collapsible-section .section-content{transition:max-height 0.3s ease,opacity 0.2s ease;overflow:hidden}.collapsible-section .section-content.collapsed{max-height:0 !important;opacity:0;padding:0;margin:0}.component-link-top{padding:0.75rem 1.5rem 0.5rem}.btn-component-link{display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;font-size:0.9rem;background:transparent;color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--border-radius-sm);text-decoration:none;transition:all 0.2s ease}.btn-component-link:hover{background:var(--color-accent);color:white}.component-body .ingredient-tree{width:100%;max-width:800px;margin:0 auto;border-left:none !important;padding-left:0 !important}.component-body .ingredient-list-clean:not(.ingredient-list-indented):not(.ingredient-list-deep-indented){width:100%;padding:0;margin:0 auto;list-style:none;border-left:none}.component-body .ingredient-item{padding:0.5rem 0}.component-body .ingredient-item input[type="checkbox"]{justify-self:center}.component-body .ingredient-amount{justify-self:center;text-align:center}.component-body .ingredient-name{justify-self:start}.component-body .ingredient-subheader{text-align:center;grid-column:1 / -1;font-weight:600;color:var(--color-text);margin:1rem 0 0.5rem 0;padding-top:1rem;border-top:1px solid var(--color-border)}.component-body .ingredient-subheader:first-child{margin-top:0;padding-top:0;border-top:none}.component-body .btn-toggle-recipe{display:none}.component-body.loading{position:relative;opacity:0.6;pointer-events:none}.component-body.loading::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin 0.8s linear infinite}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.level-selector-section{margin:1rem 0;text-align:center}.level-selector-section .page-info-box{background:transparent;border:none;box-shadow:none}.level-selector-section .section-title{margin-bottom:0.5rem}.step-level-tabs-container{display:flex;justify-content:center;margin-bottom:0.75rem}.step-level-tabs{display:inline-flex;padding:0.25rem;gap:0.25rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md)}.step-level-tab{padding:0.75rem 1.5rem;font-family:'Lora',serif;font-size:1rem;font-weight:500;background:transparent;color:var(--color-text);border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:all 0.2s ease}.step-level-tab:hover{background:var(--color-bg)}.step-level-tab.active{background:var(--color-accent);color:white}.step-level-tab{position:relative}.level-tooltip{display:none;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);width:200px;padding:0.75rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 4px 16px var(--color-shadow);text-align:left;z-index:100;pointer-events:none}.level-tooltip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--color-card)}.step-level-tab:hover .level-tooltip,.step-level-tab:focus .level-tooltip{display:flex;flex-direction:column;gap:0.25rem;animation:tooltipFadeIn 0.2s ease}@keyframes tooltipFadeIn{from{opacity:0;transform:translateX(-50%) translateY(5px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.level-tooltip strong{font-size:0.85rem;color:var(--color-heading)}.level-tooltip span{font-size:0.8rem;color:var(--color-subtle);line-height:1.4}.level-header{display:flex;align-items:center;justify-content:center;gap:0.5rem;margin-bottom:0.5rem;min-height:28px;overflow:visible}.level-help-toggle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;min-height:24px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:50%;color:var(--color-subtle);cursor:pointer;transition:all 0.2s ease;overflow:visible;flex-shrink:0}.level-help-toggle svg{width:16px;height:16px;flex-shrink:0}.help-icon{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:14px;font-weight:600;line-height:1}.level-help-toggle:hover{background:var(--color-accent);border-color:var(--color-accent);color:white}.level-help-panel{max-width:500px;margin:1rem auto 0;padding:1.25rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-md);text-align:left;animation:slideDown 0.2s ease-out}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.level-help-content h4{margin:0 0 1rem 0;font-size:1rem;color:var(--color-heading);text-align:center}.level-help-list{margin:0 0 1rem 0}.level-help-list dt{margin-top:0.75rem;color:var(--color-text)}.level-help-list dt:first-child{margin-top:0}.level-help-list dd{margin:0.25rem 0 0 0;padding-left:1.5rem;color:var(--color-subtle);font-size:0.9rem;line-height:1.5}.level-help-close{display:block;width:100%;padding:0.5rem 1rem;background:var(--color-border);border:none;border-radius:var(--border-radius-sm);color:var(--color-text);font-size:0.9rem;cursor:pointer;transition:background 0.2s ease}.level-help-close:hover{background:var(--color-accent);color:white}@media (max-width:768px){.level-tooltip{display:none !important}.level-help-panel{margin-left:1rem;margin-right:1rem}.level-help-list dd{padding-left:1rem}.level-selector-section{margin:1rem 0}.step-level-tabs-container{margin-bottom:1rem}}.single-level-note{max-width:700px;margin:1rem auto;padding:0.75rem 1rem;text-align:center;font-size:0.9rem;color:var(--color-subtle);font-style:italic}.step-level-content{display:none;opacity:0;transition:opacity 0.5s ease}.step-level-content.visible{display:block;opacity:1}.step-level-content .check-item{display:flex;gap:10px;align-items:flex-start;margin-top:0.5rem}.step-level-content .check-item label{flex:1}.check-item input[type="checkbox"]:checked + label .step-text{opacity:0.6;text-decoration:line-through}.check-item-wrapper{margin-top:0.5rem}.step-subitems{margin-top:0.5rem;margin-left:1.6rem;padding-left:1rem;border-left:2px solid var(--color-border)}.step-subitem{display:flex;align-items:flex-start;gap:10px;margin-top:0.4rem}.step-subitem:first-child{margin-top:0}.step-subitem label{flex:1;cursor:pointer}.step-subitem-text{font-size:1rem;line-height:1.5;font-weight:400;color:var(--color-text)}.step-subitem .ingredient-ref{font-weight:500}.step-subitem .check-toggle{flex-shrink:0}.step-subitem input[type="checkbox"]:checked + label .step-subitem-text{opacity:0.6;text-decoration:line-through}.check-item-wrapper.parent-checked .step-subitems{opacity:0.6}.step-continuation{margin:0.75rem 0 0 0;padding-left:1.6rem;font-size:1.05rem;line-height:1.6;color:var(--color-text)}.check-item-wrapper.parent-checked .step-continuation{opacity:0.6;text-decoration:line-through}.check-item-wrapper.parent-checked .step-subitem-text{text-decoration:line-through}.included-components-section{margin:3rem 0}.included-components-section .helper-text{margin-bottom:2rem;font-size:1.05rem;color:var(--color-subtle);text-align:center}#component-detail-container{transition:all 0.3s ease}.component-inline .ingredient-list-clean li.check-item{display:grid !important;grid-template-columns:1.1rem minmax(90px,auto) 1fr;column-gap:12px;align-items:start}.pairings-grid{display:flex;flex-wrap:wrap;gap:0.75rem;justify-content:center;margin:1rem 0}.pill{display:inline-block;padding:0.5rem 1rem;font-weight:500;background:var(--color-card);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);transition:all 0.2s ease}.pill:hover{background:var(--color-accent);color:white;border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 2px 8px var(--color-shadow)}.pairing-chip{display:inline-block;padding:0.5rem 1rem;font-size:0.95rem;font-weight:500;background:var(--color-card);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);cursor:pointer;transition:all 0.2s ease;text-decoration:none}.pairing-chip:hover{background:var(--color-accent);color:white;border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 2px 8px var(--color-shadow)}.component-builder-cta{text-align:center;margin:0.5rem 0;padding:0.5rem;background:var(--color-bg);border-radius:var(--border-radius-md)}.builder-cta-text{margin:0 0 0.5rem 0;color:var(--color-subtle);font-size:0.9rem}#description-section{margin:1.5rem 0;text-align:center}#description-section .section-title{margin-bottom:0.75rem}h4.section-title{margin:0.5rem 0 0.25rem 0}.action-buttons-group{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:1.5rem}.topbar-sort-notice{display:block;margin-top:0.25rem;font-size:0.85rem;color:var(--color-subtle)}:root[data-theme='dark'] .variant-option-card{background:var(--color-card);border-color:var(--color-border)}:root[data-theme='dark'] .variant-option-card:hover{border-color:var(--color-accent)}:root[data-theme='dark'] .variant-importance-badge.importance-dietary{background:rgba(46,125,50,0.2);color:#81c784}:root[data-theme='dark'] .variant-importance-badge.importance-flavor{background:rgba(230,81,0,0.2);color:#ffb74d}:root[data-theme='dark'] .variant-importance-badge.importance-technique{background:rgba(21,101,192,0.2);color:#64b5f6}@media (max-width:600px){.variant-cards-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}@media (max-width:360px){.variant-cards-grid{grid-template-columns:1fr}}.recipe-toc{background:transparent;border:none;padding:0.5rem 0;margin:0.5rem 0;text-align:center}.toc-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:0.25rem;justify-content:center;align-items:center}.toc-list li{display:inline-flex;align-items:center}.toc-list li + li::before{content:"";display:inline-block;width:1px;height:1em;background:var(--color-accent);margin-right:0.25rem}.toc-link{display:inline-flex;align-items:center;padding:0.375rem 0.5rem;color:var(--color-subtle);text-decoration:none;font-size:0.875rem;font-weight:500;transition:color 0.15s ease;white-space:nowrap}.toc-link:hover{color:var(--color-accent)}.jump-to-recipe{position:fixed;bottom:2rem;right:2rem;display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1.25rem;background:var(--color-accent);color:white;text-decoration:none;border-radius:var(--border-radius-pill);font-size:0.9rem;font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,0.2);z-index:100;opacity:0;visibility:hidden;transform:translateY(20px);transition:all 0.3s ease}.jump-to-recipe.visible{opacity:1;visibility:visible;transform:translateY(0)}.jump-to-recipe:hover{background:var(--color-accent-dark);transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,0.25)}.jump-to-recipe svg{flex-shrink:0}@media (max-width:600px){.jump-to-recipe{bottom:1.5rem;right:1.5rem;padding:0.875rem;border-radius:50%}.jump-to-recipe span{display:none}}.related-subsection{margin-bottom:3rem}.related-subsection:last-child{margin-bottom:0}html{scroll-behavior:smooth;scroll-padding-top:125px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}#description-section,#nutrition-section{scroll-margin-top:140px}.component-description,.dish-description{position:relative;width:fit-content;max-width:700px;margin:0 auto;padding:0.75rem 0 0.75rem 1.5rem;background:transparent;text-align:left;line-height:1.7;font-size:1.05rem;color:var(--color-text);font-style:italic}.component-description::before,.dish-description::before{content:'';position:absolute;left:0;top:0.25rem;bottom:0.25rem;width:8px;border:2px solid var(--color-accent);border-right:none;border-radius:8px 0 0 8px}.component-description p,.dish-description p{margin:0 0 0.75rem 0}.component-description p:last-child,.dish-description p:last-child{margin-bottom:0}.component-description h3,.dish-description h3{font-family:'Lora',serif;font-size:1.1rem;font-weight:600;color:var(--color-accent);margin:1.25rem 0 0.5rem 0}.component-description h3:first-child,.dish-description h3:first-child{margin-top:0}.component-description ul,.component-description ol,.dish-description ul,.dish-description ol{margin:0.75rem 0;padding-left:1.5rem}.component-description li,.dish-description li{margin-bottom:0.4rem;line-height:1.6}.component-description li:last-child,.dish-description li:last-child{margin-bottom:0}.component-description strong,.dish-description strong{font-weight:600;color:var(--color-heading)}.component-description em,.dish-description em{font-style:italic}.prose{line-height:1.7}.prose p{margin:0.75rem 0}.prose p:first-child{margin-top:0}.prose p:last-child{margin-bottom:0}.facet header{display:flex;justify-content:space-between;align-items:flex-start}.facet-helper{position:relative;display:inline-block}.helper-icon{display:inline-block;width:20px;height:20px;text-align:center;line-height:20px;border-radius:50%;background:var(--color-accent-light,#e6f2ff);color:var(--color-accent,#0066cc);font-size:14px;cursor:help;transition:background 0.2s ease}.helper-icon:hover{background:var(--color-accent,#0066cc);color:white}.helper-tooltip{display:none;position:absolute;right:0;top:100%;margin-top:0.5rem;width:280px;padding:1rem;background:white;border:1px solid var(--color-border,#ddd);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:1000;font-size:0.9rem;line-height:1.5}.facet-helper:hover .helper-tooltip,.facet-helper:focus-within .helper-tooltip{display:block}.helper-tooltip strong{display:block;margin-bottom:0.5rem;color:var(--color-accent,#0066cc)}.helper-tooltip p{margin:0.5rem 0}.helper-tooltip ul{margin:0.5rem 0;padding-left:1.25rem;list-style-type:none}.helper-tooltip ul li{margin-bottom:0.25rem;position:relative}.helper-tooltip ul li::before{content:"→";position:absolute;left:-1.25rem;color:var(--color-accent,#0066cc)}.helper-tooltip em{display:block;margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid var(--color-border-light,#eee);color:var(--color-text-secondary,#666);font-size:0.85rem}.component-dependency-hint{font-size:0.85rem;font-weight:400;color:var(--color-text-secondary,#666);font-style:italic;margin-left:0.5rem}.simple-view-container .included-component-card{margin-bottom:2.5rem}.simple-view-container .dependency-component .included-component-header{background:var(--color-bg-secondary,#f9f9f9)}.cooking-plan-overview{margin-bottom:2rem;padding:1.25rem 0;border-bottom:1px solid var(--color-border)}.cooking-plan-overview h3{margin:0 0 0.75rem 0;font-size:1.1rem;color:var(--color-heading)}.cooking-plan-list{margin:0;padding-left:1.5rem;list-style-type:decimal}.cooking-plan-list li{padding:0.35rem 0;line-height:1.5}.cooking-plan-list li + li{border-top:1px solid var(--color-border)}.plan-component-link{font-weight:600;color:var(--color-accent);text-decoration:none}.plan-component-link:hover{text-decoration:underline}.plan-timing{color:var(--color-subtle);font-size:0.9em}.plan-passive-context{color:var(--color-subtle);font-size:0.85em;font-style:italic}@media (max-width:1024px){.variant-cards-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));max-width:none}}@media (max-width:768px){.included-component-header{grid-template-columns:100px 1fr 100px;padding:1rem;min-height:100px}.collapse-toggle{top:0.75rem;left:0.75rem}.component-header-image{width:80px;height:80px}.component-header-content h4{font-size:1.1rem}.component-header-meta{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:0.5rem}.component-header-meta .time-badge{padding:0.2rem 0.6rem;font-size:0.8rem}.component-title-row h4{font-size:1.1rem}.variant-cards-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:0.75rem}.variant-section-title{flex-wrap:wrap;font-size:0.9rem}.auto-selection-hint{width:100%;margin-left:0;margin-top:0.5rem;justify-content:center}.component-body .ingredient-item{grid-template-columns:1.1rem minmax(80px,120px) 1fr;column-gap:8px}.recipe-toc{padding:0.25rem 0;margin:0.25rem 0}.toc-link{padding:0.25rem 0.375rem;font-size:0.8125rem}.helper-tooltip{width:240px;right:auto;left:0}.included-component-card{margin:1.5rem 0}.component-body{padding:1rem 0.5rem}.component-body .ingredient-tree{max-width:none}.component-steps-list{padding-left:1.25rem}.component-section h5{text-align:left}.variant-cards-section{padding:1rem 0.5rem}.included-component-header{padding:0.75rem 0.5rem}}@media (max-width:600px){.variant-cards-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}@media (max-width:480px){.included-component-header{display:flex;flex-direction:column;align-items:center;gap:0.5rem;padding:0.75rem;min-height:auto}.included-component-card .collapse-toggle{position:absolute;top:0.5rem;left:0.5rem}.component-header-image{width:64px;height:64px}.component-header-content{width:100%}.component-header-content h4{font-size:1rem;margin-bottom:0.5rem}.component-header-meta{flex-direction:row;flex-wrap:wrap;gap:0.5rem;justify-content:center}.component-header-meta .time-badge{padding:0.2rem 0.5rem;font-size:0.75rem;gap:0.25rem}.component-header-meta .btn-revert-to-ingredient,.component-header-meta .btn-revert-to-storebought{font-size:0.8rem;padding:0.3rem 0.6rem;margin-left:0}.component-header-content .btn-component-link{font-size:0.8rem;padding:0.35rem 0.75rem}.included-component-card{margin:1rem 0}}@media (max-width:360px){.variant-cards-grid{grid-template-columns:1fr}}.leftover-section{margin:3rem 0}.leftover-intro{margin-bottom:1.5rem;padding:1rem;background:var(--color-card);border-left:4px solid var(--color-accent);border-radius:4px;text-align:left}.leftover-intro p{margin:0.5rem 0}@media (max-width:640px){.leftover-intro{padding:0.75rem}}#related-section{margin:3rem 0}.see-more-link{text-align:center;margin-top:1.5rem}.see-more-link .link-btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.75rem 1.5rem;background:var(--color-bg);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--border-radius-md);font-weight:500;text-decoration:none;transition:all 0.2s ease}.see-more-link .link-btn:hover{background:var(--color-accent);color:white}.count-badge{font-weight:400;font-size:0.9em;color:var(--color-subtle)}.usage-section{margin-bottom:3rem}.usage-section:last-child{margin-bottom:0}.page-subtitle{text-align:center;color:var(--color-subtle);font-size:1.1rem;margin:-0.5rem 0 2rem 0}.back-link{color:var(--color-accent);text-decoration:none;font-size:0.9em}.back-link:hover{text-decoration:underline;color:white}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem;padding:1rem 0}.pagination-link{padding:0.5rem 1rem;background:var(--color-card);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);text-decoration:none;transition:all 0.2s ease}.pagination-link:hover{background:var(--color-accent);color:white;border-color:var(--color-accent)}.pagination-info{color:var(--color-subtle);font-size:0.9rem}.customize-dish-cta{text-align:center;margin:1.5rem 0}.discovery-section{margin-bottom:2rem}.discovery-group-title{display:flex;align-items:center;gap:0.5rem;margin-bottom:1rem}.discovery-group-title .group-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:0.875rem;font-weight:bold}.discovery-group-title.ready .group-icon{background:var(--color-accent);color:white}.discovery-group-title.almost .group-icon{background:#f59e0b;color:white}.discovery-group-title.more .group-icon{background:var(--color-subtle);color:white}.card-actions{padding:0.5rem;text-align:center}.btn-add-to-builder{display:inline-flex;align-items:center;gap:0.25rem;padding:0.375rem 0.75rem;font-size:0.8rem;background:transparent;border:1px solid var(--color-accent);color:var(--color-accent);border-radius:var(--border-radius-sm);cursor:pointer;transition:all 0.2s ease}.btn-add-to-builder:hover:not(:disabled){background:var(--color-accent);color:white}.btn-add-to-builder:disabled{opacity:0.7;cursor:default}.btn-add-to-builder.added{background:var(--color-accent);color:white;border-color:var(--color-accent)}.match-badge{position:absolute;top:0.5rem;right:0.5rem;padding:0.25rem 0.5rem;font-size:0.7rem;font-weight:600;border-radius:var(--border-radius-sm);background:var(--color-subtle);color:white}.match-badge.complete{background:var(--color-accent)}.match-badge.almost{background:#f59e0b}.match-badge.more{background:var(--color-subtle)}.match-mode-toggle{margin:1rem 0}.toggle-label{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.9rem;color:var(--color-subtle);cursor:pointer}.toggle-label input[type="checkbox"]{width:1rem;height:1rem;accent-color:var(--color-accent)}.spinner-small{display:inline-block;width:14px;height:14px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin 0.6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hero-secondary-cta{margin-top:1rem;text-align:center}.hero-secondary-cta .link-btn{display:inline-flex;align-items:center;gap:0.5rem;color:var(--color-accent);text-decoration:none;font-size:0.95rem}.hero-secondary-cta .link-btn:hover{text-decoration:underline}.scaling-warning{display:flex;gap:0.75rem;max-width:700px;margin:0 auto 1rem;padding:0.75rem 1rem;background:var(--color-card);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--border-radius-sm)}.scaling-warning-icon{font-size:1.25rem;flex-shrink:0}.scaling-warning-content{flex:1}.scaling-warning-text{margin:0;font-size:0.9rem;line-height:1.5;color:var(--color-text)}.scaling-hint{margin:0.5rem 0 0 0;padding:0.5rem 0.75rem;background:var(--color-bg);border-radius:var(--border-radius-sm);font-size:0.85rem;color:var(--color-subtle);line-height:1.5}:root[data-theme='dark'] .scaling-warning{background:var(--color-card);border-color:var(--color-border)}:root[data-theme='dark'] .scaling-hint{background:#252525}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-backdrop.hidden{display:none}.modal,.modal-overlay{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;background-color:rgba(0,0,0,0.5);overflow:auto}.modal.hidden{display:none}.modal-overlay[aria-hidden="true"]{display:none !important}.modal-overlay[aria-hidden="false"]{display:flex !important}.modal-content,.modal-dialog{max-width:600px;width:100%;max-height:90vh;background:var(--color-card);border-radius:var(--border-radius-lg);box-shadow:0 8px 32px rgba(0,0,0,0.3);overflow:hidden;animation:fadeIn 0.3s ease;position:relative}.modal-content{padding:2rem;text-align:center}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--color-border)}.modal-header h3{margin:0;font-size:1.5rem;color:var(--color-accent)}.confirm-dialog{max-width:360px;padding:2rem;box-shadow:0 4px 24px rgba(0,0,0,0.15)}.confirm-dialog__title{margin:0 0 0.75rem 0;font-size:1.25rem;color:var(--color-heading)}.confirm-dialog__message{margin:0 0 1.5rem 0;color:var(--color-text);line-height:1.6;font-size:0.95rem}.confirm-dialog__actions{display:flex;gap:0.75rem;justify-content:center}.confirm-dialog__actions .btn{flex:1;padding:0.75rem 1.25rem;font-size:0.95rem;border-radius:var(--border-radius-pill,50px)}.confirm-dialog__cancel{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--border-radius-pill,50px)}.confirm-dialog__cancel:hover{background:var(--color-card);border-color:var(--color-subtle)}.modal-close,.modal-content .close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;font-size:1.5rem;font-weight:bold;color:var(--color-subtle);cursor:pointer;border-radius:var(--border-radius-sm);transition:all 0.2s ease;position:absolute;top:0.5rem;right:1rem}.modal-close:hover,.modal-content .close:hover{background:var(--color-bg);color:var(--color-text)}.modal-body{padding:1.5rem;overflow-y:auto;max-height:calc(90vh - 140px)}.modal-footer{display:flex;justify-content:flex-end;gap:0.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.tooltip{position:relative;display:inline-block}.tooltip.tt-hover{position:relative;display:inline-flex;margin-left:4px}.tt-icon{width:1.6rem;height:1.6rem;display:inline-flex;align-items:center;justify-content:center;font-family:'Lora',serif;font-size:0.9rem;line-height:1;background:var(--color-card);color:var(--color-accent);border:1.5px solid var(--color-border);border-radius:var(--border-radius-pill);box-shadow:0 1px 3px var(--color-shadow);cursor:help}.tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:50%;font-size:0.8rem;font-weight:600;color:var(--color-subtle);cursor:help;padding:10px}.tooltip-content,.tooltip.tt-hover .tooltip-bubble{position:absolute;z-index:50;bottom:2.2rem;left:50%;transform:translateX(-50%);min-width:220px;max-width:360px;padding:10px 12px;background:var(--color-card);color:var(--color-text);border:1.5px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 8px 22px rgba(0,0,0,0.12);font-size:0.95rem;line-height:1.4;display:none}.tooltip:hover .tooltip-content,.tooltip.tt-hover:hover .tooltip-bubble,.tooltip.tt-hover:focus-within .tooltip-bubble,.tooltip.tt-hover:active .tooltip-bubble{display:block}.tooltip-content::after,.tooltip.tt-hover .tooltip-bubble::after{content:"";position:absolute;left:50%;bottom:-8px;width:12px;height:12px;background:var(--color-card);border-left:1.5px solid var(--color-border);border-bottom:1.5px solid var(--color-border);transform:translateX(-50%) rotate(-45deg)}.help-section{background:var(--color-bg);border-radius:var(--border-radius-md)}.help-content h3{margin:0 0 1rem 0}.help-content ul{margin:1rem 0;padding-left:1.5rem}.help-content li{margin-bottom:0.5rem}.help-tip{margin-top:1rem;padding:0.75rem;background:var(--color-card);border-left:3px solid var(--color-accent);border-radius:var(--border-radius-sm)}:root[data-theme='dark'] .tooltip.tt-hover .tooltip-bubble{background:var(--color-card);border-color:var(--color-border);color:var(--color-text)}:root[data-theme='dark'] .tooltip.tt-hover .tooltip-bubble::after{background:var(--color-card);border-left-color:var(--color-border);border-bottom-color:var(--color-border)}:root[data-theme='dark'] .tt-icon{background:var(--color-card);border-color:var(--color-border);color:var(--color-accent)}:root[data-theme='dark'] .modal{background-color:rgba(0,0,0,0.7)}:root[data-theme='dark'] .modal-content{background:var(--color-card);color:var(--color-text)}:root[data-theme='dark'] .modal-content .close{color:var(--color-subtle)}.modal-description{margin:0 0 1.5rem 0;color:var(--color-subtle);font-size:0.95rem}.occasion-list{display:flex;flex-direction:column;gap:0.75rem}.occasion-option{padding:1rem;background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--border-radius-md);font-size:1rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:all 0.2s ease;text-align:left}.occasion-option:hover{border-color:var(--color-accent);background:var(--color-card);transform:translateY(-1px);box-shadow:0 2px 8px var(--color-shadow)}.occasion-option:active{transform:translateY(0)}.loading-text,.error-text{padding:2rem;text-align:center;color:var(--color-subtle);font-style:italic}.error-text{color:var(--color-error,#dc3545)}.comparison-modal-dialog{max-width:900px}.comparison-headers{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--color-border)}.comparison-item-title{margin:0;font-size:1.25rem;color:var(--color-accent);text-align:center}.comparison-section{margin-bottom:2rem}.comparison-section-title{margin:0 0 1rem 0;font-size:1.1rem;font-weight:600;color:var(--color-text)}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.comparison-column{background:var(--color-bg);border-radius:var(--border-radius-md);padding:1rem}.comparison-common-all{background:var(--color-accent);background:linear-gradient(135deg,var(--color-accent-light) 0%,var(--color-accent) 100%);border-radius:var(--border-radius-md);padding:1rem;margin-bottom:1rem;color:white}.comparison-common-all strong{display:block;margin-bottom:0.5rem;font-size:0.95rem}.comparison-common-all ul{margin:0;padding-left:1.25rem;list-style:disc}.comparison-common-all li{margin-bottom:0.25rem;font-size:0.95rem}.comparison-diff{margin-bottom:0.75rem}.comparison-diff ul,.comparison-common ul{margin:0;padding-left:1.25rem;list-style:disc}.comparison-diff li,.comparison-common li{margin-bottom:0.25rem;font-size:0.95rem}.comparison-diff.only-in-1 li{color:var(--color-text)}.comparison-diff.only-in-2 li{color:var(--color-text)}.comparison-common{padding-top:0.5rem;border-top:1px dashed var(--color-border)}.comparison-common li{color:var(--color-subtle)}.comparison-nutrition-list{list-style:none;padding:0;margin:0}.comparison-nutrition-list li{display:flex;justify-content:space-between;padding:0.5rem 0;border-bottom:1px solid var(--color-border);font-size:0.95rem}.comparison-nutrition-list li:last-child{border-bottom:none}.comparison-nutrition-list .nutrient-name{font-weight:500}.comparison-nutrition-list .nutrient-value{color:var(--color-accent)}.comparison-nutrition-charts{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;margin-bottom:2rem;padding:1rem;background:var(--color-bg);border-radius:var(--border-radius-md)}.nutrition-chart-container{position:relative;width:100%;max-width:300px;margin:0 auto}.nutrition-chart-container canvas{max-height:250px}@media (max-width:768px){.comparison-nutrition-charts{grid-template-columns:1fr;gap:1.5rem}}.comparison-nutrition-list .nutrient-diff-text{margin-left:0.5rem;font-weight:500}.comparison-nutrition-list li.nutrient-diff-higher{background:var(--color-warning-light);padding-left:0.5rem;padding-right:0.5rem;margin-left:-0.5rem;margin-right:-0.5rem;border-radius:4px}.comparison-nutrition-list li.nutrient-diff-lower{background:var(--color-success-light);padding-left:0.5rem;padding-right:0.5rem;margin-left:-0.5rem;margin-right:-0.5rem;border-radius:4px}.comparison-timing,.comparison-levels{font-size:0.95rem}.comparison-timing p,.comparison-levels p{margin:0.5rem 0}.comparison-timing strong,.comparison-levels strong{font-weight:600}@media (max-width:768px){.modal{max-width:100%;max-height:100vh;border-radius:0}.modal-body{max-height:calc(100vh - 140px)}.comparison-modal-dialog{max-width:100%}.comparison-headers,.comparison-grid{grid-template-columns:1fr;gap:1rem}.comparison-item-title{font-size:1rem}}@media (max-width:640px){.tooltip-content,.tooltip.tt-hover .tooltip-bubble{bottom:2rem;left:50%;transform:translateX(-50%);max-width:min(92vw,360px)}}.builder-card--hidden-base{display:none}.variant-list-section{margin:1.5rem 0;padding:0.75rem 0;border-top:1px solid var(--color-border);text-align:center}.variant-list-heading{margin:0 0 0.25rem 0;font-size:1.4rem;font-weight:700;color:var(--color-accent);font-family:'Lora',serif}.variant-intro{margin:0 0 1.25rem 0;color:var(--color-subtle);font-size:0.9rem}.variant-group{margin-bottom:0.75rem;max-width:500px;margin-left:auto;margin-right:auto;text-align:left}.variant-group:last-child{margin-bottom:0.25rem}.variant-group-heading{margin:0 0 0.5rem 0;font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--color-subtle)}.variant-row{padding:0.5rem 0.75rem;border-radius:var(--border-radius-sm);margin-bottom:0.25rem;transition:background 0.15s ease}.variant-row:hover{background:var(--color-bg)}.variant-row--current{border:2px solid var(--color-accent);background:var(--color-bg);max-width:500px;margin-left:auto;margin-right:auto;text-align:left}.variant-row-main{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}.variant-row-link{color:var(--color-accent);text-decoration:none;font-weight:500;font-size:0.95rem}.variant-row-link:hover{text-decoration:underline;color:var(--color-accent-dark)}.variant-current-label{font-size:0.75rem;color:var(--color-accent);font-style:italic}.variant-safe-badge{font-size:0.7rem;font-weight:600;color:var(--color-success);white-space:nowrap}.variant-badge-cuisine{font-size:0.7rem;color:var(--color-subtle);background:var(--color-bg);border:1px solid var(--color-border);padding:0.1rem 0.4rem;border-radius:3px}.variant-badge-free{font-size:0.7rem;font-weight:500;color:var(--color-success);border:1px solid var(--color-success);padding:0.1rem 0.4rem;border-radius:3px;white-space:nowrap}.variant-row-badges{display:flex;flex-wrap:wrap;gap:0.25rem;margin-top:0.15rem}.variant-group--horizontal{display:flex;flex-wrap:wrap;gap:0.5rem;align-items:stretch;justify-content:center;max-width:none}.variant-group--horizontal + .variant-group--horizontal{border-top:1px solid var(--color-border);padding-top:0.75rem}.variant-group--horizontal .variant-row--current{max-width:none;margin-left:0;margin-right:0}.variant-group--horizontal .variant-group-heading{width:100%;margin-bottom:0.25rem}a.variant-row{cursor:pointer;text-decoration:none;display:inline-flex;flex-direction:column;align-items:flex-start;color:inherit}a.variant-row:hover{background:var(--color-bg)}.variant-group--horizontal .variant-row{margin-bottom:0}.variant-group--horizontal a.variant-row + a.variant-row{border-left:1px solid var(--color-border);padding-left:1rem}@media (max-width:480px){.variant-group--horizontal{flex-direction:column}.variant-group--horizontal .variant-row{display:flex;width:100%}.variant-group--horizontal a.variant-row + a.variant-row{border-left:none;padding-left:0}}.variant-hint{font-size:0.85rem;color:var(--color-subtle);margin:0.5rem 0 0 0;line-height:1.5}.variant-hint a{color:var(--color-accent);text-decoration:none}.variant-hint a:hover{text-decoration:underline}.variant-hint-type{color:var(--color-subtle);font-size:0.8rem}.builder-variant-hint{margin-top:0.25rem;font-size:0.8rem}@media (max-width:768px){.variant-row-main{gap:0.35rem}}.flavorization-selector{margin:1.5rem 0;padding:1.25rem;background:linear-gradient(135deg,var(--color-card) 0%,var(--color-bg) 100%);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,0.04)}.flavorization-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:0.75rem;border-bottom:1px solid var(--color-border)}.flavorization-label{display:flex;align-items:center;gap:0.5rem;font-weight:600;font-size:1rem;color:var(--color-heading)}.flavorization-label svg{color:var(--color-accent);width:20px;height:20px}.required-badge{font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;padding:0.25rem 0.625rem;background:var(--color-accent);color:white;border-radius:20px}.flavorization-options{display:flex;flex-wrap:wrap;gap:0.75rem}.flavorization-option{display:flex;flex-direction:column;align-items:flex-start;padding:0.875rem 1rem;background:var(--color-card);border:2px solid var(--color-border);border-radius:10px;cursor:pointer;transition:all 0.2s ease;text-align:left;font-family:inherit;min-width:120px;position:relative;overflow:hidden}.flavorization-option::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:transparent;transition:background 0.2s ease}.flavorization-option:hover{border-color:var(--color-accent-light);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.08)}.flavorization-option:hover::before{background:var(--color-accent-light)}.flavorization-option.active{border-color:var(--color-accent);box-shadow:0 4px 12px rgba(59,121,66,0.15)}.flavorization-option.active::before{background:var(--color-accent)}.flavorization-option.cuisine-match{border-color:var(--color-accent-light)}.option-name{font-weight:600;font-size:0.95rem;color:var(--color-heading);margin-bottom:0.25rem}.option-label{font-size:0.75rem;color:var(--color-subtle);font-style:italic}.option-cuisines{display:flex;flex-wrap:wrap;gap:0.375rem;margin-top:0.5rem}.cuisine-tag{font-size:0.7rem;font-weight:500;padding:0.2rem 0.5rem;background:var(--color-bg);border-radius:4px;color:var(--color-subtle)}.flavorization-option.active .cuisine-tag{background:rgba(59,121,66,0.1);color:var(--color-accent)}.flavorization-feedback{margin-top:0.75rem;padding:0.625rem 0.875rem;background:rgba(59,121,66,0.08);border-radius:6px;font-size:0.85rem;color:var(--color-accent);font-weight:500}.flavorization-feedback.error{background:rgba(220,53,69,0.08);color:#dc3545}@media (max-width:480px){.flavorization-selector{padding:1rem}.flavorization-options{flex-direction:column}.flavorization-option{width:100%}}.technique-selector{margin:1.5rem 0;padding:1rem;background:var(--color-card);border-radius:8px;border:1px solid var(--color-border)}.technique-intro{color:var(--color-subtle);font-size:0.9rem;margin-bottom:1rem}.technique-options{display:flex;flex-wrap:wrap;gap:0.75rem}.technique-btn{display:flex;flex-direction:column;align-items:flex-start;gap:0.25rem;padding:0.75rem 1rem;background:var(--color-bg);border:2px solid var(--color-border);border-radius:6px;cursor:pointer;text-align:left;transition:all 0.15s ease;min-width:150px;flex:1 1 auto;max-width:250px}.technique-btn:hover{border-color:var(--color-accent);background:var(--color-bg)}.technique-btn.active{border-color:var(--color-accent);background:var(--color-accent);color:white}.technique-btn.active .technique-desc,.technique-btn.active .technique-time,.technique-btn.active .technique-equipment{color:rgba(255,255,255,0.85)}.technique-name{font-weight:600;font-size:1rem}.technique-desc{font-size:0.8rem;color:var(--color-subtle);line-height:1.3}.technique-time,.technique-equipment{font-size:0.75rem;color:var(--color-subtle)}.loading-text,.error-text{color:var(--color-subtle);font-style:italic}.error-text{color:var(--color-error,#c53030)}@media (max-width:600px){.technique-options{flex-direction:column}.technique-btn{max-width:none}}.inline-customizer{margin:0.5rem 0 0 0}.inline-customizer-toggle{cursor:pointer;font-size:0.85rem;font-weight:600;color:var(--color-accent);list-style:none;padding:0.25rem 0;display:flex;align-items:center;gap:0.35rem}.inline-customizer-toggle::-webkit-details-marker{display:none}.inline-customizer-toggle .chevron-icon{transition:transform 0.3s ease;transform:rotate(-90deg);flex-shrink:0;color:var(--color-accent)}details[open] > .inline-customizer-toggle .chevron-icon{transform:rotate(0deg)}.inline-customizer-summary{font-weight:400;color:var(--color-subtle);font-size:0.8rem}.inline-customizer-content{padding-top:0.5rem}.inline-customizer .variant-group{margin-bottom:0.5rem}.inline-customizer .variant-group-heading{font-size:0.7rem;margin-bottom:0.25rem}.variant-recommendation-badge{padding:0.75rem 1rem;border-radius:var(--border-radius-md);margin-bottom:1rem;font-size:0.9rem;display:flex;align-items:center;gap:0.5rem;border-left:4px solid}.variant-recommendation-badge .badge-icon{font-size:1.1rem}.variant-recommendation-allergy,.variant-recommendation-session{background:var(--color-warning-light);border-left-color:var(--color-warning);color:var(--color-text)}.variant-recommendation-dietary{background:var(--color-success-light);border-left-color:var(--color-success);color:var(--color-text)}.variant-recommendation-recommended{background:var(--color-info-light);border-left-color:var(--color-info);color:var(--color-text)}.variant-badge{display:inline-block;padding:0.25rem 0.6rem;border-radius:var(--border-radius-pill);font-size:0.8rem;font-weight:500;margin-right:0.4rem;margin-bottom:0.4rem;border:1px solid}.variant-badge-allergy{background:var(--color-warning-light);color:var(--color-text);border-color:var(--color-warning)}.variant-badge-dietary{background:var(--color-success-light);color:var(--color-text);border-color:var(--color-success)}.variant-badge-store_bought{background:var(--color-info-light);color:var(--color-text);border-color:var(--color-info)}.variant-badge-flavor{background:var(--color-variant-dietary-light);color:var(--color-text);border-color:var(--color-variant-dietary)}:root[data-theme='dark'] .variant-badge-flavor{background:var(--color-variant-dietary-light);color:var(--color-variant-dietary-text);border-color:var(--color-variant-dietary)}.variant-badge-optional{background:var(--color-border);color:var(--color-subtle);border-color:var(--color-subtle)}.allergen-free-badge{background:var(--color-success-light);color:var(--color-success-dark);border-color:var(--color-success)}.dietary-badge{background:var(--color-accent-light);color:var(--color-card);border-color:var(--color-accent-dark)}.allergy-coverage-safe{display:flex;align-items:center;gap:0.4rem;padding:0.5rem 0.75rem;background:var(--color-success-light);color:var(--color-success-dark);border-radius:var(--border-radius-md);font-size:0.85rem;margin-top:0.5rem}.allergy-coverage-warning{display:flex;align-items:center;gap:0.4rem;padding:0.5rem 0.75rem;background:var(--color-warning-light);color:var(--color-text);border-radius:var(--border-radius-md);font-size:0.85rem;margin-top:0.5rem}.safety-icon,.warning-icon{font-size:1.1rem}.dietary-variant-warning{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 0.75rem;background:var(--color-success-light);border-left:3px solid var(--color-accent);border-radius:var(--border-radius-sm);margin:0.5rem 0;font-size:0.85rem}.dietary-variant-warning .warning-icon{font-size:1rem;flex-shrink:0}.dietary-variant-warning .warning-text{flex:1;color:var(--color-text)}.dietary-variant-warning .warning-switch-btn{background:transparent;border:1px solid var(--color-accent);color:var(--color-accent);padding:0.25rem 0.6rem;border-radius:var(--border-radius-sm);font-size:0.8rem;font-weight:600;cursor:pointer;transition:all 0.15s ease;flex-shrink:0}.dietary-variant-warning .warning-switch-btn:hover{background:var(--color-accent);color:white}:root[data-theme='dark']{.variant-recommendation-allergy,.variant-recommendation-session{background:rgba(245,158,11,0.15);color:var(--color-variant-star)}.variant-recommendation-dietary{background:rgba(94,176,105,0.15);color:var(--color-variant-check)}.variant-recommendation-recommended{background:rgba(25,118,210,0.15);color:var(--color-variant-info)}.variant-badge-allergy{background:rgba(245,158,11,0.2);color:var(--color-variant-star)}.variant-badge-dietary{background:rgba(94,176,105,0.2);color:var(--color-variant-check)}.variant-badge-store_bought{background:rgba(25,118,210,0.2);color:var(--color-variant-info)}.allergen-free-badge{background:rgba(94,176,105,0.2);color:var(--color-variant-check)}.dietary-badge{background:rgba(94,176,105,0.3);color:var(--color-variant-check)}.allergy-coverage-safe{background:rgba(94,176,105,0.2);color:var(--color-variant-check)}.allergy-coverage-warning{background:rgba(245,158,11,0.2);color:var(--color-variant-star)}}.inheritance-diff-section{margin:2rem 0;padding:1.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px}.inheritance-diff-section .section-title{display:flex;align-items:center;gap:0.5rem;margin-bottom:1rem;font-size:1.25rem;color:var(--color-heading)}.inheritance-diff-section .section-title svg{flex-shrink:0;color:var(--color-accent)}.inheritance-description{margin-bottom:1rem;color:var(--color-text);line-height:1.5}.inheritance-description .parent-link{color:var(--color-accent);text-decoration:none;font-weight:500}.inheritance-description .parent-link:hover{text-decoration:underline;color:white}.inheritance-summary{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:1.5rem}.inheritance-badge{display:inline-flex;align-items:center;gap:0.3rem;padding:0.4rem 0.8rem;border-radius:4px;font-size:0.875rem;font-weight:500;border:1px solid}.inheritance-badge svg{flex-shrink:0}.inheritance-inherited{background:var(--color-success-light);color:var(--color-text);border-color:var(--color-success)}.inheritance-added{background:var(--color-info-light);color:var(--color-text);border-color:var(--color-info)}.inheritance-substituted{background:var(--color-warning-light);color:var(--color-text);border-color:var(--color-warning)}.inheritance-removed{background:var(--color-error-light);color:var(--color-text);border-color:var(--color-error)}.inheritance-details{margin-top:1rem}.inheritance-details-summary{cursor:pointer;padding:0.75rem 1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;font-weight:500;color:var(--color-text);user-select:none;transition:background 0.2s}.inheritance-details-summary:hover{background:var(--color-border)}.inheritance-details[open] .inheritance-details-summary{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.inheritance-ingredients-list{padding:1rem;background:var(--color-bg);border:1px solid var(--color-border);border-top:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.inheritance-group{margin-bottom:1.5rem}.inheritance-group:last-child{margin-bottom:0}.inheritance-group-title{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.75rem;font-size:1rem;font-weight:600;color:var(--color-heading);cursor:default}.inheritance-group.inheritance-group-inherited{margin-top:1.5rem;padding-top:1.5rem;border-top:1px dashed var(--color-border)}.inheritance-group.inheritance-group-inherited > .inheritance-group-title{cursor:pointer;padding:0.5rem 0;user-select:none}.inheritance-group.inheritance-group-inherited > .inheritance-group-title:hover{color:var(--color-accent)}.inheritance-group-title svg{flex-shrink:0}.inheritance-group-added .inheritance-group-title{color:var(--color-info)}.inheritance-group-substituted .inheritance-group-title{color:var(--color-warning)}.inheritance-group-inherited .inheritance-group-title{color:var(--color-subtle)}.inheritance-ingredient-items{list-style:none;padding:0;margin:0}.inheritance-ingredient-item{display:flex;align-items:flex-start;gap:0.75rem;padding:0.5rem;margin-bottom:0.5rem;background:var(--color-card);border-radius:4px;font-size:0.95rem;line-height:1.5}.inheritance-ingredient-item:last-child{margin-bottom:0}.ingredient-info{display:flex;flex-direction:column;gap:0.25rem;flex:1}.ingredient-amount{font-weight:600;color:var(--color-text);margin-right:0.5rem}.ingredient-name{color:var(--color-text)}.ingredient-source-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;background:var(--color-bg);border-radius:50%;font-weight:bold;font-size:0.875rem}.inheritance-group-added .ingredient-source-icon{color:var(--color-info);background:var(--color-info-light)}.inheritance-group-substituted .ingredient-source-icon{color:var(--color-warning);background:var(--color-warning-light)}.inheritance-group-inherited .ingredient-source-icon{color:var(--color-subtle);background:var(--color-bg)}.substitution-pair{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}.original-ingredient{color:var(--color-subtle);font-size:0.875rem}.substitution-arrow{color:var(--color-warning);font-weight:bold}.new-ingredient{font-weight:500}.ingredient-notes{display:block;margin-top:0.25rem;font-size:0.85rem;color:var(--color-subtle);font-style:italic}.inheritance-actions{margin:1rem 0 1.5rem}.btn-compare-with-parent{display:inline-flex;align-items:center;gap:0.5rem;padding:0.75rem 1.25rem;background:var(--color-accent);color:white;border:none;border-radius:var(--border-radius-pill,999px);font-size:0.95rem;font-weight:500;cursor:pointer;transition:background 0.2s,transform 0.1s}.btn-compare-with-parent:hover{background:var(--color-accent-dark);transform:translateY(-1px)}.btn-compare-with-parent:active{transform:translateY(0)}.btn-compare-with-parent svg{flex-shrink:0}@media (prefers-color-scheme:dark){.inheritance-details-summary:hover{background:var(--color-accent-dark)}.ingredient-source-icon{font-weight:600}.btn-compare-with-parent{background:var(--color-accent-light)}.btn-compare-with-parent:hover{background:var(--color-accent)}}@media (max-width:768px){.inheritance-diff-section{padding:1rem}.inheritance-summary{gap:0.4rem}.inheritance-badge{font-size:0.8rem;padding:0.3rem 0.6rem}.inheritance-ingredients-list{padding:0.75rem}.inheritance-ingredient-item{flex-direction:column;gap:0.5rem}.substitution-pair{margin-left:0}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 2rem;max-width:400px;margin:2rem auto}.empty-state-icon{width:80px;height:80px;margin-bottom:1.5rem;color:var(--color-subtle);opacity:0.6}.empty-state-icon svg{width:100%;height:100%}.empty-state--search .empty-state-icon{color:var(--color-accent);opacity:0.5}.empty-state--heart .empty-state-icon{color:var(--color-error);opacity:0.5}.empty-state--chef .empty-state-icon{color:var(--color-accent);opacity:0.5}.empty-state--filter .empty-state-icon{color:var(--color-subtle)}.empty-state-title{margin:0 0 0.5rem 0;font-size:1.25rem;font-weight:600;color:var(--color-heading)}.empty-state-message{margin:0 0 1rem 0;font-size:0.95rem;color:var(--color-subtle);line-height:1.5}.empty-state-suggestions{list-style:none;margin:0 0 1.5rem 0;padding:0;text-align:left;background:var(--color-bg);border-radius:var(--border-radius-md);padding:1rem 1.25rem;width:100%}.empty-state-suggestions li{position:relative;padding-left:1.25rem;margin-bottom:0.5rem;font-size:0.9rem;color:var(--color-text)}.empty-state-suggestions li:last-child{margin-bottom:0}.empty-state-suggestions li::before{content:'→';position:absolute;left:0;color:var(--color-accent)}.empty-state-action{margin-top:0.5rem}.empty-state-secondary{margin-top:1rem;font-size:0.85rem;color:var(--color-subtle);text-decoration:underline}.empty-state-secondary:hover{color:var(--color-accent)}.empty-state--inline{padding:1.5rem 1rem;margin:1rem 0}.empty-state--inline .empty-state-icon{width:48px;height:48px;margin-bottom:1rem}.empty-state--inline .empty-state-title{font-size:1rem}.empty-state--inline .empty-state-message{font-size:0.85rem}.no-results{text-align:center;padding:2rem 1rem;color:var(--color-subtle);font-size:0.95rem}.no-results-hint{display:block;margin-top:0.5rem;font-size:0.85rem;opacity:0.8}@media (max-width:600px){.empty-state{padding:2rem 1rem}.empty-state-icon{width:60px;height:60px}.empty-state-title{font-size:1.1rem}.empty-state-suggestions{padding:0.75rem 1rem}}@keyframes skeleton-shimmer{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}.card-skeleton{pointer-events:none;user-select:none}.skeleton-image,.skeleton-title,.skeleton-stat,.skeleton-badge,.skeleton-text,.skeleton-line{background:linear-gradient( 90deg,var(--skeleton-base,#e8e8e8) 0px,var(--skeleton-shine,#f5f5f5) 40px,var(--skeleton-base,#e8e8e8) 80px );background-size:200px 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--border-radius-sm)}.skeleton-image{aspect-ratio:4 / 3;border-radius:var(--border-radius-md);margin-bottom:0.75rem}.skeleton-content{padding:0.5rem}.skeleton-title{height:1.25rem;width:80%;margin-bottom:0.75rem}.skeleton-meta{display:flex;gap:0.75rem;margin-bottom:0.75rem}.skeleton-stat{height:1rem;width:60px}.skeleton-badges{display:flex;gap:0.5rem}.skeleton-badge{height:1.5rem;width:70px;border-radius:var(--border-radius-pill)}.skeleton-text{height:1rem;margin-bottom:0.5rem}.skeleton-text:last-child{width:60%}.skeleton-line{height:0.875rem;margin-bottom:0.5rem}.skeleton-line.short{width:40%}.skeleton-line.medium{width:70%}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}:root[data-theme='dark'] .skeleton-image,:root[data-theme='dark'] .skeleton-title,:root[data-theme='dark'] .skeleton-stat,:root[data-theme='dark'] .skeleton-badge,:root[data-theme='dark'] .skeleton-text,:root[data-theme='dark'] .skeleton-line{--skeleton-base:#2a2a2a;--skeleton-shine:#3a3a3a}.skeleton-inline{display:inline-block;height:1em;width:100px;vertical-align:middle;background:linear-gradient( 90deg,var(--skeleton-base,#e8e8e8) 0px,var(--skeleton-shine,#f5f5f5) 40px,var(--skeleton-base,#e8e8e8) 80px );background-size:200px 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:4px}.loading-container{min-height:200px;display:flex;flex-direction:column;gap:1rem}.is-loading > *:not(.skeleton-grid):not(.card-skeleton){display:none}@media (max-width:600px){.skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.skeleton-image{aspect-ratio:1 / 1}.skeleton-title{height:1rem}.skeleton-badge{height:1.25rem;width:60px}}@keyframes pop-in{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}@keyframes checkmark-draw{0%{stroke-dashoffset:50}100%{stroke-dashoffset:0}}@keyframes pulse-success{0%{box-shadow:0 0 0 0 var(--color-accent-alpha-40)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}@keyframes slide-up-fade{0%{transform:translateY(20px);opacity:0}100%{transform:translateY(0);opacity:1}}.favorite-success{animation:pop-in 0.3s ease-out}.favorite-icon.is-active{animation:pop-in 0.3s ease-out}.success-checkmark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;background:var(--color-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;font-size:1.5rem;animation:pop-in 0.4s ease-out;z-index:10}.success-checkmark svg{width:24px;height:24px;stroke:white;stroke-width:3;stroke-dasharray:50;stroke-dashoffset:0;animation:checkmark-draw 0.3s ease-out 0.1s forwards}.btn-success-flash{animation:pulse-success 0.6s ease-out}.card-added{animation:pop-in 0.3s ease-out}.card-removed{animation:pop-in 0.2s ease-out reverse}.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%);padding:0.75rem 1.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:1000;animation:slide-up-fade 0.3s ease-out}.toast-success{border-left:4px solid var(--color-accent)}.toast-error{border-left:4px solid var(--color-error)}.toast-info{border-left:4px solid var(--color-info)}.toast-content{display:flex;align-items:center;gap:0.75rem}.toast-icon{width:20px;height:20px;flex-shrink:0}.toast-success .toast-icon{color:var(--color-accent)}.toast-error .toast-icon{color:var(--color-error)}.toast-info .toast-icon{color:var(--color-info)}.toast-message{font-size:0.95rem;color:var(--color-text)}.toast.dismissing{animation:slide-up-fade 0.2s ease-in reverse forwards}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin 0.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn.is-loading{position:relative;color:transparent;pointer-events:none}.btn.is-loading::after{content:'';position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin 0.6s linear infinite}.btn-ripple{position:relative;overflow:hidden}.btn-ripple::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,0.3);border-radius:50%;transform:translate(-50%,-50%);opacity:0}.btn-ripple:active::after{width:200px;height:200px;opacity:1;transition:width 0.3s ease-out,height 0.3s ease-out,opacity 0.3s ease-out}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.shake-error{animation:shake 0.5s ease-in-out}@keyframes scale-bounce{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}.bounce-emphasis{animation:scale-bounce 0.3s ease-in-out}@media (prefers-reduced-motion:reduce){.favorite-success,.favorite-icon.is-active,.success-checkmark,.success-checkmark svg,.btn-success-flash,.card-added,.card-removed,.toast,.spinner,.btn.is-loading::after,.shake-error,.bounce-emphasis{animation:none}.toast{opacity:1;transform:translateX(-50%)}}.tag{padding:0.35rem 0.75rem;font-size:0.9rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);color:var(--color-text);text-decoration:none;transition:all 0.2s ease}.tag:hover{background:var(--color-accent);color:white;border-color:var(--color-accent)}.tag.active{background:var(--color-accent);color:white;border-color:var(--color-accent)}.category-filter-btn{padding:0.45rem 0.9rem;margin:0.25rem;font-family:'Lora',serif;font-size:0.95rem;font-weight:500;background:transparent;color:var(--color-accent);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);cursor:pointer;transition:all 0.2s ease}.category-filter-btn:hover{background:var(--color-accent-alpha-5);border-color:var(--color-accent)}.category-filter-btn.active{background:var(--color-accent);color:white;border-color:var(--color-accent)}.user-dropdown{position:relative;display:inline-block}.user-dropdown-content{position:absolute;right:0;min-width:160px;background-color:var(--color-card);border-radius:var(--border-radius-sm);box-shadow:0 4px 8px rgba(0,0,0,0.1);overflow:hidden;z-index:1000;display:none}.user-dropdown-content a{display:block;padding:0.6rem 1rem;font-size:1rem;color:var(--color-accent);text-decoration:none}.user-dropdown-content a:hover{background-color:var(--color-accent);color:white}.user-dropdown:hover .user-dropdown-content{display:block}.component-description{max-width:900px;margin:2rem auto;font-size:1.05rem;line-height:1.6;text-align:center}#ingredientSearch{display:block;width:100%;max-width:500px;margin:0 auto 1rem auto;padding:0.6rem 1rem;font-size:1.1rem;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);box-shadow:0 2px 4px rgba(0,0,0,0.06)}#clearSelectionBtn{transition:opacity 0.2s ease}.link-btn{padding:0.25rem;font:inherit;background:transparent;border:0;border-radius:6px;color:var(--color-accent);cursor:pointer}.link-btn:hover{text-decoration:underline}:root[data-theme='dark'] h1,:root[data-theme='dark'] h2,:root[data-theme='dark'] h3,:root[data-theme='dark'] h4,:root[data-theme='dark'] h5,:root[data-theme='dark'] h6{color:var(--color-accent-light)}:root[data-theme='dark'] .tag{background:rgba(255,255,255,0.05);color:var(--color-text);border-color:var(--color-border)}:root[data-theme='dark'] .tag:hover{background:var(--color-accent);color:var(--color-bg)}:root[data-theme='dark'] .filter-backdrop{background:rgba(0,0,0,0.7)}:root[data-theme='dark'] .chip.clear-all{background:var(--color-accent-alpha-10)}:root[data-theme='dark'] .season-badge.subtle{background:var(--color-accent-alpha-15);border:1.5px solid var(--color-accent-alpha-30);color:var(--color-accent)}:root[data-theme='dark'] .show-all-button{box-shadow:0 2px 12px rgba(0,0,0,0.3)}:root[data-theme='dark'] .show-all-button:hover{color:var(--color-bg)}:root[data-theme='dark'] .nav-item:hover{background:var(--color-accent-alpha-15)}:root[data-theme='dark'] .nav-item.active{color:var(--color-bg)}:root[data-theme='dark'] input[type="text"]:focus,:root[data-theme='dark'] input[type="search"]:focus{box-shadow:0 0 0 3px var(--color-accent-alpha-20)}:root[data-theme='dark'] select{background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%235fb069' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}:root[data-theme='dark'] .topbar select.control{background-image:linear-gradient(45deg,transparent 50%,var(--color-accent) 50%),linear-gradient(135deg,var(--color-accent) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}:root[data-theme='dark'] select.filter-control{background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%235fb069' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 0.8rem center}:root[data-theme='dark'] .btn-clear-checks:hover,:root[data-theme='dark'] .btn-ghost:hover,:root[data-theme='dark'] .note-toggle:hover,:root[data-theme='dark'] .servings-btn:hover{background:var(--color-accent-alpha-10)}:root[data-theme='dark'] .ingredient-badge.selected{background:var(--color-accent-alpha-20)}:root[data-theme='dark'] .help-section{background:linear-gradient(135deg,var(--color-accent-alpha-8) 0%,var(--color-accent-alpha-5) 100%)}:root[data-theme='dark'] .pill:hover,:root[data-theme='dark'] .pairing-chip:hover{background:var(--color-accent);color:var(--color-bg)}:root[data-theme='dark'] .autocomplete-item a:hover,:root[data-theme='dark'] .autocomplete-item.selected a{background:var(--color-accent);color:var(--color-bg)}:root[data-theme='dark'] .modal{background-color:rgba(0,0,0,0.7)}:root[data-theme='dark'] .toggle-password{color:var(--color-bg)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-0{margin-top:0}.mt-05{margin-top:0.5rem}.mt-1{margin-top:1rem}.mt-15{margin-top:1.5rem}.mt-2{margin-top:2rem}.mb-05{margin-bottom:0.5rem}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}.mx-auto{margin-left:auto;margin-right:auto}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-block{display:block}.d-inline-block{display:inline-block}.d-none{display:none}.flex-wrap{flex-wrap:wrap}.flex-align-center{align-items:center}.flex-justify-center{justify-content:center}.flex-justify-between{justify-content:space-between}.gap-025{gap:0.25rem}.gap-05{gap:0.5rem}.gap-075{gap:0.75rem}.gap-1{gap:1rem}.font-italic{font-style:italic}.font-weight-normal{font-weight:normal}.opacity-70{opacity:0.7}.opacity-80{opacity:0.8}.text-muted{color:var(--color-subtle)}.text-subtle{color:var(--color-subtle)}.form-actions{text-align:center;margin-top:1.5rem}.form-centered{max-width:400px;margin:0 auto}.checkbox-label{display:inline-flex;align-items:center;gap:0.5rem;cursor:pointer}.builder-container{max-width:900px;margin:0 auto;padding:0 1rem}.builder-start{max-width:1200px;margin:0 auto;padding:0 1rem}.page-header{margin-bottom:0.5rem;text-align:center}.page-header .lead{font-size:1.2rem;color:var(--color-subtle);margin-top:0.5rem}.filter-result-count{font-size:0.9rem;color:var(--color-subtle);margin:0.5rem 0 0.75rem;padding:0 0.25rem}.filter-result-count strong{color:var(--color-text)}.progress-hint{padding:0.75rem 1rem;background:linear-gradient(135deg,var(--color-accent-alpha-8),var(--color-accent-alpha-5));border-left:3px solid var(--color-accent);border-radius:var(--border-radius-sm);margin:0.75rem 0;font-size:0.95rem;color:var(--color-text)}.progress-hint strong{color:var(--color-accent)}.first-visit-hint{background:linear-gradient(135deg,var(--color-accent-alpha-8),var(--color-accent-alpha-5));border:1px solid var(--color-accent);border-radius:var(--border-radius-md);padding:0.875rem 1rem;margin-bottom:1.5rem}.first-visit-hint .hint-content{display:flex;align-items:center;gap:0.75rem}.first-visit-hint svg{flex-shrink:0;color:var(--color-accent)}.first-visit-hint span{flex:1;font-size:0.9rem;color:var(--color-text);line-height:1.4}.first-visit-hint .hint-dismiss{background:none;border:none;font-size:1.25rem;color:var(--color-subtle);cursor:pointer;padding:0.25rem;line-height:1;transition:color 0.2s ease}.first-visit-hint .hint-dismiss:hover{color:var(--color-text)}.occasion-card.first-visit-active{border:2px solid var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-alpha-15);animation:firstVisitPulse 2s ease-in-out infinite}@keyframes firstVisitPulse{0%,100%{box-shadow:0 0 0 4px var(--color-accent-alpha-15)}50%{box-shadow:0 0 0 8px transparent}}.builder-start__header{text-align:center;margin-bottom:1rem}.builder-start__subtitle{font-size:1.1rem;color:var(--color-subtle);margin-top:0.25rem}.builder-start__empty{text-align:center;padding:3rem 1rem;color:var(--color-subtle)}.builder-start__empty svg{margin-bottom:1rem;opacity:0.5}.builder-start__empty p{margin-bottom:1rem}.draft-recovery-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;background:var(--color-card);border:1px solid var(--color-accent);border-left:4px solid var(--color-accent);border-radius:var(--radius-md);padding:1rem 1.25rem;margin-bottom:1.5rem}.draft-recovery-banner__content{display:flex;align-items:center;gap:0.75rem;flex:1;min-width:200px}.draft-recovery-banner__icon{color:var(--color-accent);flex-shrink:0}.draft-recovery-banner__text{display:flex;flex-direction:column;gap:0.125rem}.draft-recovery-banner__text strong{font-size:0.95rem}.draft-recovery-banner__text span{font-size:0.85rem;color:var(--color-subtle)}.draft-recovery-banner__actions{display:flex;gap:0.5rem;flex-shrink:0}@media (max-width:600px){.draft-recovery-banner{flex-direction:column;align-items:stretch}.draft-recovery-banner__actions{justify-content:flex-end}}.featured-section{margin-bottom:2rem}.featured-section__header{display:flex;align-items:center;gap:0.5rem;margin-bottom:1rem;padding-bottom:0.5rem;border-bottom:2px solid var(--color-accent)}.featured-section__header svg{color:var(--color-accent);flex-shrink:0}.featured-section__title{font-size:1.1rem;font-weight:700;color:var(--color-accent);margin:0;text-transform:uppercase;letter-spacing:0.03em}.featured-occasions{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.category-row{margin-bottom:2.5rem}.category-row__header{display:flex;align-items:center;gap:0.5rem;margin-bottom:1rem;padding:0 0 0.75rem 0;background:none;border:none;border-bottom:2px solid var(--color-border);width:100%;text-align:left}.category-row__header--collapsible{cursor:pointer;transition:border-color 0.2s ease}.category-row__header--collapsible:hover{border-bottom-color:var(--color-accent)}.category-row__header--collapsible:hover .category-row__title{color:var(--color-accent-dark)}.category-row__title{font-size:1.15rem;font-weight:700;color:var(--color-accent);margin:0;transition:color 0.2s ease;letter-spacing:0.01em}.category-row__count{font-size:0.85rem;color:var(--color-subtle);font-weight:500;margin-left:auto;padding:0.2rem 0.6rem;background:var(--color-bg);border-radius:var(--border-radius-pill)}.category-row__toggle-icon{display:flex;align-items:center;color:var(--color-subtle);transition:transform 0.2s ease,color 0.2s ease;margin-left:0.5rem}.category-row__header--collapsible:hover .category-row__toggle-icon{color:var(--color-accent)}.category-row--collapsed .category-row__toggle-icon{transform:rotate(-90deg)}.category-row__content{}.category-row__content--hidden{display:none}.occasion-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.occasion-card{display:flex;flex-direction:column;text-decoration:none;cursor:pointer;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:0.75rem;box-shadow:0 2px 8px var(--color-shadow);transition:all 0.2s ease}.occasion-card:hover,.occasion-card:focus,.occasion-card:active{transform:translateY(-2px);box-shadow:0 6px 20px var(--color-shadow-hover);background:var(--color-card)}.occasion-card--featured{}.occasion-card--featured:hover{}.occasion-card__image{width:100%;aspect-ratio:4 / 3;overflow:hidden;border-radius:var(--border-radius-md);margin-bottom:0.3rem;background:var(--color-bg)}.occasion-card__image img{width:100%;height:100%;object-fit:cover}.occasion-card__image--placeholder{display:flex;align-items:center;justify-content:center;color:var(--color-subtle);background:var(--color-bg)}.occasion-card__image--placeholder svg{opacity:0.4}.occasion-card__name{width:100%;margin:0.25rem 0 0 0;padding:0 0.25rem;font-size:0.95rem;font-weight:600;line-height:1.3;text-align:center;color:var(--color-accent);word-wrap:break-word}.occasion-card-wrapper{position:relative}.occasion-card__favorite{position:absolute;top:0.5rem;right:0.5rem;z-index:10;width:44px;height:44px;padding:0;border:none;border-radius:50%;background-color:white;color:var(--color-accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;box-shadow:0 1px 6px rgba(0,0,0,0.15)}.occasion-card__favorite:hover{transform:scale(1.05)}.occasion-card__favorite--active{color:var(--color-accent)}.occasion-card__favorite--active svg{fill:currentColor}.occasion-card__favorite--active:hover{color:var(--color-accent-dark)}:root[data-theme='dark'] .occasion-card__favorite{background-color:var(--color-card)}@media (max-width:1100px){.featured-occasions,.occasion-row{grid-template-columns:repeat(3,1fr)}}@media (max-width:800px){.featured-occasions,.occasion-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:0.75rem;padding-bottom:0.5rem;margin:0 -1rem;padding-left:1rem;padding-right:1rem}.featured-occasions .occasion-card-wrapper,.occasion-row .occasion-card-wrapper{flex:0 0 calc(45% - 0.375rem);scroll-snap-align:start}.featured-occasions::-webkit-scrollbar,.occasion-row::-webkit-scrollbar{height:4px}.featured-occasions::-webkit-scrollbar-track,.occasion-row::-webkit-scrollbar-track{background:var(--color-border);border-radius:2px}.featured-occasions::-webkit-scrollbar-thumb,.occasion-row::-webkit-scrollbar-thumb{background:var(--color-subtle);border-radius:2px}}@media (max-width:640px){.featured-section__header{padding-bottom:0.4rem}.featured-section__title{font-size:1rem}.featured-occasions,.occasion-row{gap:0.75rem}.occasion-card{padding:0.5rem}.category-row__title{font-size:1.05rem}.category-row__count{font-size:0.75rem;padding:0.15rem 0.5rem}.occasion-card__name{font-size:0.9rem}.occasion-card__favorite{width:40px;height:40px}}.occasion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:0.75rem;margin:1rem 0}.occasion-grid .occasion-card{width:auto}.occasion-image-wrapper{width:100%;aspect-ratio:4 / 3;overflow:hidden;border-radius:var(--border-radius-md);margin-bottom:0.4rem;background:var(--color-bg)}.occasion-image-wrapper img{width:100%;height:100%;object-fit:cover}.occasion-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.placeholder-icon{width:40px;height:40px;color:var(--color-subtle)}.occasion-title,.occasion-grid .occasion-card .card-title{font-size:0.9rem;font-weight:600;margin:0.2rem 0;overflow-wrap:break-word;word-break:keep-all;hyphens:auto;-webkit-hyphens:auto}.occasion-description{font-size:0.75rem;color:var(--color-subtle);margin-top:0.2rem;line-height:1.3}.builder-wizard{max-width:1400px;margin:0 auto;padding:0 1rem 1rem}.wizard-header{margin-bottom:0.25rem;text-align:center;position:relative}.autosave-status{position:absolute;top:0;right:0;font-size:0.75rem;color:var(--color-subtle);padding:0.25rem 0.5rem;opacity:0;transition:opacity 0.2s ease}.autosave-status:not(:empty){opacity:1}.autosave-status.saving{color:var(--color-accent)}@media (max-width:600px){.autosave-status{position:static;display:block;text-align:center;margin-top:0.25rem}}.wizard-header .progress-bar{display:flex;justify-content:center;align-items:center;gap:0.5rem;margin:0.25rem auto 0.5rem;max-width:800px;height:auto;overflow:visible;background:transparent;border-radius:0}.wizard-header .progress-step{display:flex;flex-direction:column;align-items:center;gap:0.5rem;flex:1;position:relative}.wizard-header .progress-step:not(:last-child)::after{content:'';position:absolute;top:20px;left:50%;width:100%;height:2px;background:var(--color-border);z-index:0}.wizard-header .progress-step.active:not(:last-child)::after,.wizard-header .progress-step.completed:not(:last-child)::after{background:var(--color-accent)}.wizard-header .progress-step .number{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-bg);border:2px solid var(--color-border);font-size:1rem;font-weight:600;color:var(--color-text);z-index:1;transition:all 0.3s ease}.wizard-header .progress-step.active .number{background:var(--color-accent);color:white;border-color:var(--color-accent);transform:scale(1.1)}.wizard-header .progress-step.completed .number{background:var(--color-accent);color:white;border-color:var(--color-accent)}.wizard-header .progress-step .label{display:block;font-size:0.85rem;font-weight:500;color:var(--color-subtle);text-align:center}.wizard-header .progress-step.active .label{color:var(--color-accent);font-weight:600}.view-mode-toggle{max-width:800px;margin:2rem auto;padding:1.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:0 2px 8px var(--color-shadow)}.toggle-label{display:block;margin-bottom:1rem;font-size:1.1rem;font-weight:700;color:var(--color-accent);text-align:center}.toggle-buttons{display:flex;gap:0.5rem;padding:0.25rem;background:var(--color-bg);border-radius:var(--border-radius-md);margin-bottom:1rem}.toggle-btn{flex:1;padding:0.85rem 1.25rem;font-family:'Lora',serif;font-size:0.95rem;font-weight:600;text-align:center;background:transparent;color:var(--color-text);border:none;border-radius:var(--border-radius-sm);text-decoration:none;transition:all 0.2s ease}.toggle-btn:hover{background:var(--color-accent-alpha-8)}.toggle-btn.active{background:var(--color-accent);color:white}.mode-description{padding:1rem 1.25rem;background:linear-gradient(135deg,var(--color-accent-alpha-5),var(--color-accent-alpha-2));border-radius:var(--border-radius-sm);border-left:4px solid var(--color-accent-light);font-size:0.9rem;line-height:1.6;color:var(--color-subtle)}.mode-description p{margin:0}.mode-description p{margin:0}.component-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin:0.5rem 0}.builder-wizard .layout-main > .component-grid:first-child,.builder-wizard .layout-main #availableComponentCards{margin-top:0}@media (max-width:450px){.component-grid{grid-template-columns:repeat(2,1fr);gap:0.5rem}}.review-section{max-width:1200px;margin:2rem auto}.review-section .selected-components .component-grid{max-width:100%}.selected-components{margin-bottom:2rem}.existing-dish-notice{margin:0 0 2rem 0;padding:1.5rem;background:var(--color-card);border:2px solid var(--color-accent);border-radius:var(--border-radius-lg);box-shadow:0 4px 8px var(--color-shadow)}.existing-dish-content h3{margin:0 0 1rem 0;font-size:1.2rem;color:var(--color-accent)}.dish-notice-description{margin:0 0 1.25rem 0;padding:1rem;background:var(--color-bg);border-left:4px solid var(--color-accent);border-radius:var(--border-radius-sm);color:var(--color-text);font-size:1rem;line-height:1.6}.dish-title-highlight{font-weight:600;color:var(--color-accent)}.dish-extras-details{margin:1rem 0}.dish-extras-details summary{cursor:pointer;font-weight:500;color:var(--color-accent);font-size:0.9rem;padding:0.5rem 0;list-style:none;user-select:none}.dish-extras-details summary::-webkit-details-marker{display:none}.dish-extras-details summary::before{content:"▶";display:inline-block;margin-right:0.5rem;transition:transform 0.2s ease}.dish-extras-details[open] summary::before{transform:rotate(90deg)}.dish-extras-content{margin-top:0.75rem;padding:1rem;background:var(--color-bg);border-radius:var(--border-radius-sm);font-size:0.9rem}.extras-section{margin-bottom:0.75rem}.extras-section:last-child{margin-bottom:0}.extras-section strong{display:block;margin-bottom:0.25rem;color:var(--color-text)}.extras-section ul{margin:0;padding-left:1.5rem;list-style:disc}.extras-section li{margin-bottom:0.25rem;color:var(--color-text)}.existing-dish-actions{display:flex;gap:0.75rem;align-items:center;flex-wrap:wrap;margin-top:1rem}.or-continue-text{font-size:0.9rem;color:var(--color-subtle)}.review-variant-section{margin:0.5rem 0;padding:0.5rem 0}.review-variant-section h3{margin-top:0;color:var(--color-accent)}.section-description{color:var(--color-subtle);margin-bottom:0.75rem}.review-info-banner{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;margin:1.5rem auto;max-width:800px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);border-left:4px solid var(--color-accent)}.review-info-banner .info-banner-icon{flex-shrink:0;color:var(--color-accent)}.review-info-banner .info-banner-content{flex:1;min-width:0}.review-info-banner .info-banner-content strong{display:block;margin-bottom:0.25rem;color:var(--color-heading)}.review-info-banner .info-banner-content p{margin:0;font-size:0.9rem;color:var(--color-subtle)}.review-info-banner .button{flex-shrink:0;white-space:nowrap}@media (max-width:600px){.review-info-banner{flex-direction:column;align-items:flex-start;text-align:left}.review-info-banner .button{align-self:stretch;text-align:center}}.make-ahead-section{max-width:800px;margin:1.5rem auto;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);border-left:4px solid var(--color-accent);overflow:hidden}.make-ahead-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem}.make-ahead-header-content{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.make-ahead-header-content .info-banner-icon{flex-shrink:0;color:var(--color-accent)}.make-ahead-header-content strong{display:block;color:var(--color-heading);margin-bottom:0.15rem}.make-ahead-header-content p{margin:0;font-size:0.9rem;color:var(--color-subtle)}.make-ahead-toggle{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;background:transparent;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-accent);cursor:pointer;font-size:0.85rem;white-space:nowrap;transition:all 0.15s}.make-ahead-toggle:hover{background:var(--color-bg);border-color:var(--color-accent)}.make-ahead-toggle .toggle-icon{font-size:0.7rem;transition:transform 0.2s}.make-ahead-details{border-top:1px solid var(--color-border);padding:1rem 1.25rem;background:var(--color-bg)}.make-ahead-components{display:flex;flex-direction:column;gap:0.75rem}.make-ahead-component{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-sm)}.make-ahead-component .component-info{flex:1;min-width:0}.make-ahead-component .component-name{margin:0 0 0.25rem 0;font-size:1rem;color:var(--color-heading)}.make-ahead-component .storage-info{margin:0;font-size:0.85rem;color:var(--color-subtle)}.make-ahead-component .component-servings-input-group{flex-shrink:0}.make-ahead-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border);text-align:center}@media (max-width:600px){.make-ahead-header{flex-direction:column;align-items:stretch;gap:0.75rem}.make-ahead-toggle{justify-content:center}.make-ahead-component{flex-direction:column;align-items:flex-start;gap:0.75rem}.make-ahead-component .component-servings-input-group{width:100%;justify-content:flex-start}}.make-ahead-selection-list{display:flex;flex-direction:column;gap:0.5rem}.make-ahead-selection-item{display:flex;gap:0.75rem;cursor:pointer;align-items:flex-start;padding:0.75rem 1rem;border-radius:var(--border-radius-md);border:1px solid var(--color-border);transition:all 0.2s ease}.make-ahead-selection-item:has(.make-ahead-checkbox:checked){background:var(--color-success-light);border-color:var(--color-accent)}.make-ahead-selection-item .make-ahead-checkbox{margin-top:0.2rem;width:1.25rem;height:1.25rem;cursor:pointer;flex-shrink:0}.make-ahead-selection-content{flex:1}.make-ahead-selection-title{font-weight:600;color:var(--color-heading)}.make-ahead-selection-storage{display:flex;align-items:center;gap:0.5rem;font-size:0.85rem;color:var(--color-subtle);margin-top:0.25rem}.make-ahead-selection-storage svg{flex-shrink:0}.make-ahead-selection-notes{font-size:0.85rem;color:var(--color-subtle);margin-top:0.25rem}.make-ahead-card{border-left:4px solid var(--color-accent)}.make-ahead-instructions{padding:1rem;margin-bottom:1rem;background:var(--color-card);border-left:3px solid var(--color-accent);border-radius:var(--border-radius-md)}.make-ahead-instructions h5{margin:0 0 0.5rem 0;color:var(--color-accent)}.make-ahead-instructions p{margin:0;font-size:0.95rem;color:var(--color-text)}.storage-info{display:inline-flex;align-items:center;gap:0.25rem;font-size:0.9rem;color:var(--color-accent);font-weight:500;margin-left:0.5rem}.storage-info svg{flex-shrink:0}.make-ahead-timeline-section{margin-bottom:3rem;padding:1.5rem;background:var(--color-info-light);border:2px solid var(--color-accent);border-radius:var(--border-radius-lg)}.make-ahead-footer-note{margin-top:1.5rem;padding:1rem;background:white;border-left:3px solid var(--color-accent);border-radius:var(--border-radius-md);font-size:0.95rem}.reheat-card{padding:1rem 1.25rem;margin-bottom:1rem;background:var(--color-card);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--border-radius-md)}.reheat-header{display:flex;align-items:center;gap:0.75rem}.reheat-icon{color:var(--color-accent);flex-shrink:0}.reheat-header h4{margin:0;font-size:1rem}.reheat-time{font-size:0.85rem;color:var(--color-subtle)}.reheat-instructions{margin:0.5rem 0 0 2.75rem;font-size:0.9rem;color:var(--color-text)}.make-ahead-mode-selector{display:flex;gap:0.25rem;margin-top:0.5rem}.make-ahead-mode-selector .mode-option{display:flex;align-items:center;gap:0.35rem;padding:0.25rem 0.5rem;font-size:0.8rem;cursor:pointer;border-radius:var(--border-radius-sm);transition:background-color 0.15s}.make-ahead-mode-selector .mode-option:hover{background:var(--color-bg)}.make-ahead-mode-selector .mode-option input[type="radio"]{margin:0;accent-color:var(--color-accent)}.reheat-info-hint{margin:0.25rem 0 0;font-size:0.8rem;color:var(--color-subtle)}.partial-finish-note{padding:0.5rem 0.75rem;margin-bottom:0.75rem;font-size:0.85rem;color:var(--color-subtle);font-style:italic;border-left:2px solid var(--color-border)}.wizard-navigation{position:sticky;bottom:0;display:flex;justify-content:space-between;gap:1rem;padding:1rem;background:var(--color-header);border-top:1px solid var(--color-border);box-shadow:0 -2px 8px var(--color-shadow);z-index:100}.wizard-navigation .nav-left,.wizard-navigation .nav-right{display:flex;align-items:center;gap:0.75rem}.btn-next,.btn-primary{padding:0.6rem 1.6rem;font-size:1rem;font-weight:600;background:var(--color-accent);color:white;border:2px solid var(--color-accent);border-radius:var(--border-radius-sm);cursor:pointer;margin-left:auto;transition:all 0.2s ease}.btn-next:hover,.btn-primary:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark);transform:translateY(-1px)}.btn-outline{padding:0.6rem 1.6rem;font-size:1rem;font-weight:600;background:transparent;color:var(--color-accent);border:2px solid var(--color-accent);border-radius:var(--border-radius-sm);cursor:pointer;transition:all 0.2s ease;text-decoration:none}.btn-outline:hover{background:var(--color-accent);color:white;transform:translateY(-1px)}.nav-filter-btn{display:none;align-items:center;gap:0.35rem}.nav-filter-btn svg{flex-shrink:0}.nav-filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.1rem;height:1.1rem;padding:0 0.3rem;font-size:0.7rem;font-weight:700;background:var(--color-accent);color:white;border-radius:999px}.builder-wizard .component-grid .card{position:relative;cursor:pointer;transition:all 0.2s ease}.builder-wizard .component-grid .card.selected{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-alpha-15)}.builder-wizard .component-grid .card:hover{transform:translateY(-2px)}.builder-wizard .component-grid .card.selected::after{content:'✓';position:absolute;top:0.5rem;right:0.5rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:white;border-radius:50%;font-size:1.2rem;font-weight:bold;box-shadow:0 2px 8px rgba(0,0,0,0.3)}.layout-main h2,.layout-main h3{margin-top:1rem;margin-bottom:0.75rem}.layout-main h3:first-child{margin-top:0}.selected-section-collapsible{margin-bottom:0.5rem}.selected-section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;cursor:default;text-align:left;font:inherit;color:inherit}.selected-section-toggle h3{margin:0.5rem 0}.selected-section-chevron{display:none}#selectedComponentCards{margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid var(--color-border)}#selectedComponentCards:empty{display:none}.builder-wizard .layout-main{padding-bottom:80px}.builder-wizard .review-section{padding-bottom:80px}.page-info-box.compact{padding:0.25rem 1rem;background:transparent;border:none;box-shadow:none;margin-bottom:0}.page-info-box.compact .info-toggle-link{margin:0;font-size:0.85rem;padding:0.4rem 0.85rem}.review-section .component-grid .card{cursor:default}.review-section .component-grid .card:hover{transform:none}.builder-card{display:flex;flex-direction:column;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);overflow:hidden;box-shadow:0 2px 8px var(--color-shadow);cursor:pointer;transition:all 0.2s ease}.builder-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--color-shadow-hover)}.builder-card.selected{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-alpha-15)}#availableComponentCards .builder-card.selected{opacity:0.55;border-color:var(--color-border);box-shadow:none;position:relative}#availableComponentCards .builder-card.selected::after{content:'✓ Valgt';position:absolute;top:0.5rem;right:0.5rem;padding:0.25rem 0.5rem;background:var(--color-accent);color:white;font-size:0.7rem;font-weight:600;border-radius:var(--border-radius-sm);z-index:10}#availableComponentCards .builder-card.selected:hover{opacity:0.75;transform:none;box-shadow:none}#availableComponentCards .builder-card.selected .builder-card-image{filter:grayscale(40%)}.builder-card.card--in-season{border:2px solid var(--color-accent)}.builder-card.card--store-bought{border:2px dashed var(--color-subtle)}.builder-card.suggested{border-color:var(--color-accent);position:relative;animation:suggestedPulse 2s ease-in-out infinite}.builder-card.suggested::before{content:'Anbefalt';position:absolute;top:0.5rem;left:0.5rem;padding:0.25rem 0.5rem;background:var(--color-accent);color:white;font-size:0.7rem;font-weight:600;border-radius:var(--border-radius-sm);z-index:10}@keyframes suggestedPulse{0%,100%{box-shadow:0 0 0 0 var(--color-accent-alpha-40)}50%{box-shadow:0 0 0 6px transparent}}.first-time-suggestion{background:linear-gradient(135deg,var(--color-accent-alpha-8),var(--color-accent-alpha-5));border:1px solid var(--color-accent);border-radius:var(--border-radius-md);padding:0.875rem 1rem;margin-bottom:1.5rem;transition:opacity 0.2s ease,transform 0.2s ease}.suggestion-content{display:flex;align-items:center;gap:0.75rem}.suggestion-icon{font-size:1.25rem;flex-shrink:0}.suggestion-text{flex:1;font-size:0.9rem;color:var(--color-text);line-height:1.4}.suggestion-dismiss{background:none;border:none;font-size:1.25rem;color:var(--color-subtle);cursor:pointer;padding:0.25rem;line-height:1;transition:color 0.2s ease}.suggestion-dismiss:hover{color:var(--color-text)}@media (max-width:600px){.suggestion-content{flex-wrap:wrap}.suggestion-text{width:calc(100% - 3rem)}}.builder-card-image{position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;background:var(--color-bg)}.builder-card-image img{width:100%;height:100%;object-fit:cover;display:block}.builder-card-image .card-placeholder-image{width:100%;height:100%;border-radius:0;border:none}.builder-card-body{display:flex;flex-direction:column;padding:0.75rem;flex:1}.builder-card-title{margin:0 0 0.5rem 0;font-size:1rem;font-weight:600;color:var(--color-text);text-align:center;line-height:1.3}.builder-card-meta{display:flex;justify-content:center;gap:0.4rem;margin-bottom:0.5rem}.time-badge-small{display:inline-flex;align-items:center;gap:0.2rem;padding:0.15rem 0.4rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);font-size:0.7rem;color:var(--color-text);white-space:nowrap}.builder-card-badges{display:flex;justify-content:center;flex-wrap:wrap;gap:0.4rem;margin-bottom:0.75rem}.builder-card-body .card-badges-container{margin-bottom:0.75rem}.btn-builder-action{width:100%;padding:0.6rem 0.875rem;margin-top:auto;font-family:'Lora',serif;font-size:0.9rem;font-weight:600;background:transparent;color:var(--color-accent);border:2.5px solid var(--color-accent);border-radius:var(--border-radius-md);cursor:pointer;transition:all 0.2s ease}.btn-builder-action:hover{background:var(--color-accent);color:white;transform:translateY(-1px)}.btn-builder-action.btn-remove{background:transparent;color:var(--color-subtle);border-color:var(--color-border)}.btn-builder-action.btn-remove:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-subtle)}.all-selected-message{grid-column:1 / -1;text-align:center;padding:2rem 1rem;color:var(--color-subtle)}.all-selected-message p{margin:0;font-size:1rem}.all-selected-message .all-selected-hint{margin-top:0.5rem;font-size:0.9rem;font-style:italic}@media (max-width:768px){.builder-container{padding:0 0.375rem}.builder-wizard{padding:0 0.375rem 1rem}.builder-start{padding:0 0.375rem}.wizard-header .progress-bar{padding:1rem 0.5rem}.wizard-header .progress-step .label{font-size:0.75rem}.wizard-header .progress-step .number{width:35px;height:35px;font-size:0.9rem}.toggle-buttons{flex-direction:column}.component-grid{grid-template-columns:repeat(2,1fr);gap:0.375rem}.wizard-navigation{flex-direction:column;padding:0.75rem 0.5rem}.selected-section-toggle{cursor:pointer;padding:0.5rem 0;border-bottom:1px solid var(--color-border);margin-bottom:0.5rem}.selected-section-chevron{display:flex;align-items:center;color:var(--color-subtle);transition:transform 0.2s ease}.selected-section-toggle[aria-expanded="true"] .selected-section-chevron{transform:rotate(180deg)}.selected-section-content.collapsed{max-height:0;overflow:hidden;opacity:0;transition:max-height 0.3s ease,opacity 0.2s ease;margin:0;padding:0}.selected-section-content:not(.collapsed){max-height:2000px;opacity:1;transition:max-height 0.3s ease,opacity 0.2s ease}.builder-wizard .layout-main{padding-bottom:140px}.builder-wizard .review-section{padding-bottom:140px}.builder-wizard .mobile-filter-fab,.builder-wizard .mobile-quick-filters{display:none !important}.nav-filter-btn{display:inline-flex !important}.wizard-navigation .nav-right{display:flex;flex-direction:row;width:100%;gap:0.5rem}.wizard-navigation .nav-right .btn-next{flex:1;margin-left:0}.wizard-navigation .nav-right .btn-primary{margin-left:0;width:100%}.builder-card-image{aspect-ratio:4 / 3}.builder-card-body{padding:0.625rem}.builder-card-title{font-size:0.95rem;margin-bottom:0.4rem}.builder-card-meta{gap:0.3rem;margin-bottom:0.4rem}.time-badge-small{padding:0.15rem 0.4rem;font-size:0.7rem}.builder-card-badges{margin-bottom:0.5rem;gap:0.3rem}.btn-builder-action{padding:0.5rem 0.75rem;font-size:0.85rem}.occasion-grid{grid-template-columns:repeat(2,1fr);gap:0.75rem}.occasion-image-wrapper{margin-bottom:0.4rem}.occasion-title{font-size:0.9rem}.occasion-description{font-size:0.75rem}.featured-occasions .occasion-card-wrapper,.occasion-row .occasion-card-wrapper{flex:0 0 calc(55% - 0.375rem)}.btn-start-over{font-size:0.85rem;padding:0.6rem 0.8rem}.btn-start-over span{display:none}.view-mode-toggle{padding:1rem;margin:1rem 0}.toggle-label{font-size:1rem;margin-bottom:0.75rem}.toggle-btn{padding:0.65rem 0.85rem;font-size:0.85rem}.mode-description{padding:0.75rem 1rem;font-size:0.85rem}.level-selector-description{font-size:0.85rem;margin-bottom:1rem}.step-level-tab{padding:0.65rem 1rem;font-size:0.9rem}.step-level-tab .tab-text{font-size:0.85rem}.review-variant-section{margin:0.25rem 0;padding:0.25rem 0}.review-variant-section h3{margin-bottom:0.25rem;font-size:1.1rem}.review-section{padding:0}.section-description{margin-bottom:0.75rem}.existing-dish-notice{padding:1rem;margin:0 0 1.5rem 0}.component-servings-section .section-toggle{padding:0.75rem}.component-servings-section .section-content{padding:0 0.75rem 0.75rem}}@media (max-width:1023px) and (min-width:769px){.builder-wizard .mobile-filter-fab{display:none !important}}@media (max-width:480px){.wizard-header .progress-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:0;padding:0.5rem 0.25rem;scrollbar-width:none}.wizard-header .progress-bar::-webkit-scrollbar{display:none}.wizard-header .progress-step{flex:0 0 auto;min-width:56px;gap:0.25rem;padding:0.25rem 0.125rem}.wizard-header .progress-step:not(:last-child)::after{display:block;top:14px}.wizard-header .progress-step .number{width:28px;height:28px;font-size:0.8rem}.wizard-header .progress-step .label{font-size:0.65rem;white-space:nowrap;max-width:70px;overflow:hidden;text-overflow:ellipsis}.builder-card-image{aspect-ratio:4 / 3}.builder-card-body{padding:0.375rem}.builder-card-title{font-size:0.85rem;margin-bottom:0.25rem}.builder-card-meta{margin-bottom:0.25rem}.time-badge-small{font-size:0.65rem;padding:0.1rem 0.3rem}.builder-card-badges{margin-bottom:0.35rem;gap:0.25rem}.btn-builder-action{padding:0.4rem 0.5rem;font-size:0.8rem}.occasion-grid{grid-template-columns:repeat(2,1fr);gap:0.375rem}.occasion-image-wrapper{aspect-ratio:4 / 3}.occasion-title{font-size:0.85rem}.occasion-description{display:none}.placeholder-icon{width:32px;height:32px}}.timeline-conflicts,.timeline-parallel-tasks{margin:1.5rem 0;padding:1rem;background:var(--color-surface,#fff);border-radius:8px;border-left:4px solid var(--color-warning,#ffc107)}.timeline-parallel-tasks{border-left-color:var(--color-info,#17a2b8)}.timeline-conflicts h4,.timeline-parallel-tasks h4{margin:0 0 0.5rem;font-size:1.1rem;color:var(--color-text,#333)}.conflicts-intro,.parallel-intro{margin:0 0 1rem;color:var(--color-text-secondary,#666);font-size:0.95rem}.conflict-warning,.parallel-suggestion{display:flex;gap:0.75rem;padding:0.75rem;margin:0.75rem 0;background:var(--color-warning-light,#fffbeb);border-radius:var(--border-radius-sm);border:1px solid var(--color-warning,#fde68a)}.parallel-suggestion{background:var(--color-info-light);border-color:var(--color-info)}.conflict-icon,.parallel-icon{display:flex;align-items:center;justify-content:center;padding:0.4rem 0.6rem;background:var(--color-warning);color:white;border-radius:var(--border-radius-sm);font-size:0.9rem;font-weight:700;flex-shrink:0}.parallel-icon{background:var(--color-info)}.conflict-content,.parallel-content{flex:1}.conflict-message,.parallel-message{margin:0 0 0.5rem;color:var(--color-text,#333);font-size:0.95rem}.conflict-details,.parallel-details{margin:0.5rem 0;padding-left:1.5rem;color:var(--color-text-secondary,#666);font-size:0.9rem}.conflict-details li,.parallel-details li{margin:0.25rem 0}.conflict-suggestion{margin:0.75rem 0 0;padding:0.5rem;background:rgba(255,255,255,0.6);border-radius:4px;font-size:0.9rem;color:var(--color-text-secondary,#666)}.variant-badges-container{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.5rem;margin-bottom:0.5rem}.variant-badge{display:inline-flex;align-items:center;gap:0.25rem;padding:0.25rem 0.75rem;border-radius:12px;font-size:0.8rem;font-weight:500;line-height:1.2;white-space:nowrap}.variant-badge-dietary{background:var(--color-success-light);color:var(--color-accent-dark);border:1px solid var(--color-accent-light)}.variant-badge-flavor{background:var(--color-info-light);color:var(--color-info);border:1px solid var(--color-info)}.variant-badge-recommended{background:var(--color-warning-light);color:var(--color-warning-text);border:1px solid var(--color-warning-border)}.variant-badge-optional{background:var(--color-bg);color:var(--color-subtle);border:1px solid var(--color-border)}.variant-notice{display:flex;align-items:flex-start;gap:0.5rem;margin-top:0.75rem;padding:0.75rem;border-radius:6px;font-size:0.9rem}.variant-notice .notice-icon{font-size:1.1rem;line-height:1;flex-shrink:0}.dietary-notice{background:var(--color-info-light);border:1px solid var(--color-info);color:var(--color-info)}.recommendation-notice{background:var(--color-warning-light);border:1px solid var(--color-warning-border);color:var(--color-warning-text)}.variant-select{width:100%;padding:0.6rem;font-size:0.95rem;border:2px solid var(--color-border);border-radius:var(--border-radius-sm);background:var(--color-card);color:var(--color-text);cursor:pointer;transition:all 0.2s ease}.variant-select:hover{border-color:var(--color-accent-light)}.variant-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-alpha-10)}.variant-select option[data-importance="dietary"]{font-weight:600}.variant-select option[data-is-recommended="true"]{font-weight:500}.ingredient-choices-list{display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem}.ingredient-choice-item{padding:1.25rem;background:var(--color-card);border-radius:var(--border-radius-md);border:1px solid var(--color-border)}.ingredient-choice-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:0.75rem;border-bottom:1px solid var(--color-border)}.ingredient-choice-header strong{font-size:1.1rem;color:var(--color-text)}.has-recipe-badge{font-size:0.85rem;padding:0.25rem 0.75rem;background:var(--color-info-light);color:var(--color-info);border-radius:12px;border:1px solid var(--color-info)}.ingredient-choice-options{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.choice-option{display:flex;align-items:center;padding:1rem;border:2px solid var(--color-border);border-radius:var(--border-radius-sm);background:var(--color-card);cursor:pointer;transition:all 0.2s ease}.choice-option:hover{border-color:var(--color-accent-light);background:var(--color-bg)}.choice-option.active{border-color:var(--color-accent);background:var(--color-success-light)}.choice-option input[type="radio"]{position:absolute;opacity:0;pointer-events:none}.choice-content{display:flex;align-items:flex-start;gap:0.75rem;width:100%}.choice-icon{font-size:2rem;line-height:1;flex-shrink:0}.choice-text{flex:1}.choice-label{font-weight:600;font-size:1rem;color:var(--color-text);margin-bottom:0.25rem}.choice-description{font-size:0.9rem;color:var(--color-subtle);line-height:1.4}.choice-description a{color:var(--color-accent);text-decoration:underline}.choice-description a:hover{color:var(--color-accent-dark)}@media (max-width:768px){.ingredient-choice-options{grid-template-columns:1fr}.choice-icon{font-size:1.5rem}}.ingredient-ref{font-weight:600}@media (max-width:768px){.builder-card-actions button,.builder-card-actions .btn{min-height:44px;min-width:44px;padding:0.75rem}.builder-card{min-height:100px}.builder-card .card-select-overlay{min-height:44px}.servings-control button,.servings-btn{min-width:44px;min-height:44px;font-size:1.25rem}.servings-input{min-height:44px;font-size:1.1rem;text-align:center}.step-level-tab{min-height:44px;padding:0.75rem 1rem}.wizard-header .progress-step{min-height:auto;padding:0.25rem}.occasion-card{min-height:80px;padding:1rem}.role-chip,.filter-chip{min-height:40px;padding:0.5rem 1rem}.btn-generate,.btn-primary-large{min-height:52px;font-size:1rem;padding:1rem 2rem}.variant-option,.variant-selector-option{min-height:48px;padding:0.75rem 1rem}}@media (max-width:360px){.builder-container,.builder-wizard,.builder-start{padding:0 0.25rem}.component-grid{grid-template-columns:repeat(2,1fr);gap:0.25rem}.builder-card{border-radius:var(--border-radius-sm)}.builder-card-body{padding:0.25rem}.builder-card-title{font-size:0.8rem}.wizard-header .progress-step .number{width:26px;height:26px;font-size:0.75rem}.wizard-header .progress-step .label{font-size:0.6rem;max-width:52px}.wizard-header .progress-step:not(:last-child)::after{top:12px}.btn-generate,.btn-primary-large{padding:0.625rem 0.875rem;font-size:0.85rem}.wizard-navigation{padding:0.5rem 0.375rem}.occasion-grid{gap:0.25rem}}.step-guidance-text{color:var(--color-subtle);font-size:0.95rem;line-height:1.5;margin-top:0.25rem;margin-bottom:1rem;max-width:600px}.role-guidance-text{color:var(--color-subtle);font-size:0.875rem;line-height:1.4;margin-top:0.25rem;margin-bottom:0.75rem}.ingredient-selection-panel{padding:0;margin-bottom:1rem}.ingredient-selection-header h3{margin:0 0 0.25rem 0;font-size:1.1rem;color:var(--color-heading)}.ingredient-selection-content{margin-top:0.25rem}.ingredient-role-group{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.ingredient-role-group:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.role-group-title{font-size:1rem;font-weight:600;color:var(--color-heading);margin:0 0 0.5rem 0}.ingredient-suggestions-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0.75rem}.ingredient-suggestion-item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);padding:0.75rem 1rem;transition:border-color 0.2s ease,box-shadow 0.2s ease}.ingredient-suggestion-item:hover{border-color:var(--color-accent-light)}.ingredient-suggestion-item.selected{border-color:var(--color-accent);background:linear-gradient(135deg,var(--color-accent-alpha-5),var(--color-accent-alpha-2));box-shadow:0 0 0 2px var(--color-accent-alpha-10)}.ingredient-checkbox-label{display:flex;align-items:flex-start;gap:0.75rem;cursor:pointer}.ingredient-checkbox{flex-shrink:0;width:18px;height:18px;accent-color:var(--color-accent);margin-top:2px}.ingredient-info{display:flex;flex-direction:column;gap:0.25rem}.ingredient-name{font-weight:500;color:var(--color-text)}.ingredient-quantity{font-size:0.85rem;color:var(--color-subtle)}.ingredient-selection-summary{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.selected-count{font-size:0.9rem;color:var(--color-subtle)}#ingredientCount{font-weight:600;color:var(--color-accent)}@media (max-width:640px){.ingredient-selection-panel{padding:1rem}.ingredient-suggestions-list{grid-template-columns:1fr}.ingredient-suggestion-item{padding:0.625rem 0.875rem}}.tilbehor-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.tilbehor-section h3{margin-bottom:0.5rem}.tilbehor-section .section-note{font-size:0.875rem;color:var(--color-subtle);font-style:italic;margin-bottom:1rem}.tilbehor-list{list-style:none;padding:0;margin:0}.tilbehor-list .check-item{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 0;border-bottom:1px solid var(--color-border)}.tilbehor-list .check-item:last-child{border-bottom:none}.tilbehor-list .ingredient-amount{min-width:80px;color:var(--color-subtle);font-size:0.9rem}.tilbehor-list .ingredient-link{color:var(--color-text);text-decoration:none}.tilbehor-list .ingredient-link:hover{text-decoration:underline;background:transparent}.first-time-banner{background:color-mix(in srgb,var(--color-accent) 10%,var(--color-bg));border:1px solid var(--color-accent);border-radius:var(--border-radius-md,8px);padding:12px 16px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:1rem}.first-time-banner .banner-content p{margin:0;color:var(--color-text);font-size:0.95rem}.first-time-banner .banner-dismiss{color:var(--color-accent);text-decoration:underline;background:none;border:none;cursor:pointer;padding:0.25rem 0.5rem;font-size:0.9rem;white-space:nowrap;flex-shrink:0}.first-time-banner .banner-dismiss:hover{color:var(--color-accent-dark)}.first-time-banner--start{flex-direction:column;text-align:center;padding:1.5rem 2rem;margin:1.5rem auto;max-width:600px}.first-time-banner--start .first-time-banner__text{text-align:center;margin-bottom:1.25rem}.first-time-banner__text strong{display:block;margin-bottom:0.5rem;color:var(--color-heading);font-size:1.1rem}.first-time-banner__text span{color:var(--color-text);font-size:0.95rem;line-height:1.5}.first-time-banner__text em{font-style:normal;font-weight:600;color:var(--color-accent)}.first-time-banner__actions{display:flex;gap:0.75rem;justify-content:center;flex-wrap:wrap}.first-time-banner--start .btn-link{margin-top:1rem;font-size:0.9rem}.first-time-banner__content{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.first-time-banner__icon{color:var(--color-accent);flex-shrink:0}.first-time-banner__content .first-time-banner__text{text-align:left}.first-time-banner--review{margin-bottom:1.5rem}.first-time-banner--review .first-time-banner__content{margin-bottom:0}.signup-prompt-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.signup-prompt-modal{background:var(--color-card);border-radius:var(--border-radius-lg,12px);padding:2rem;max-width:400px;width:100%;text-align:center;box-shadow:0 4px 24px rgba(0,0,0,0.15)}.signup-prompt-modal h3{margin:0 0 0.75rem 0;color:var(--color-heading);font-size:1.25rem}.signup-prompt-modal p{margin:0 0 1.5rem 0;color:var(--color-text);line-height:1.5}.signup-prompt-actions{display:flex;gap:0.75rem;justify-content:center;margin-bottom:1rem}.signup-prompt-actions .btn{flex:1;max-width:150px}.signup-prompt-close{background:none;border:none;color:var(--color-subtle);font-size:0.9rem;cursor:pointer;text-decoration:underline;padding:0.5rem}.signup-prompt-close:hover{color:var(--color-text)}.btn-primary.highlighted,.wizard-actions .btn-primary.highlighted{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 30%,transparent);animation:subtle-pulse 2s ease-in-out infinite}@keyframes subtle-pulse{0%,100%{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 30%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--color-accent) 15%,transparent)}}.component-servings-section{overflow:hidden}.component-servings-section .section-toggle{display:flex;align-items:center;justify-content:center;width:100%;padding:1rem;background:none;border:none;cursor:pointer;text-align:center;gap:0.75rem}.component-servings-section .section-toggle:hover{background:color-mix(in srgb,var(--color-border) 30%,transparent)}.component-servings-section .section-toggle-header{}.component-servings-section .section-toggle-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--color-heading)}.component-servings-section .section-toggle-hint{display:block;font-size:0.85rem;color:var(--color-subtle);margin-top:0.25rem}.component-servings-section .section-toggle-icon{flex-shrink:0;color:var(--color-subtle);transition:transform 0.2s ease}.component-servings-section .section-toggle[aria-expanded="true"] .section-toggle-icon{transform:rotate(180deg)}.component-servings-section .section-content{padding:0 1rem 1rem}.component-servings-section .section-description{margin:0 0 1rem;font-size:0.9rem;color:var(--color-subtle)}.component-servings-list{display:flex;flex-direction:column;gap:0.75rem}.component-servings-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0.5rem 0;border-bottom:1px solid var(--color-border)}.component-servings-row:last-child{border-bottom:none}.component-servings-name{flex:1;font-size:0.95rem;color:var(--color-text)}.component-servings-input-group{display:flex;align-items:center;gap:0.5rem}.component-servings-input-group .servings-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-sm,4px);font-size:1.25rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:all 0.15s ease}.component-servings-input-group .servings-btn:hover{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.component-servings-input-group .servings-btn:active{transform:scale(0.95)}.component-servings-input{width:60px;height:32px;text-align:center;font-size:0.95rem;font-weight:500;border:1px solid var(--color-border);border-radius:var(--border-radius-sm,4px);background:var(--color-bg);color:var(--color-text)}.component-servings-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 20%,transparent)}.component-servings-input-group .servings-label{font-size:0.85rem;color:var(--color-subtle);min-width:60px}.btn-reset-component-servings{display:flex;align-items:center;gap:0.5rem;margin-top:1rem;padding:0.5rem 0.75rem;background:none;border:1px solid var(--color-border);border-radius:var(--border-radius-sm,4px);font-size:0.85rem;color:var(--color-subtle);cursor:pointer;transition:all 0.15s ease}.btn-reset-component-servings:hover{background:var(--color-bg);border-color:var(--color-accent);color:var(--color-accent)}.btn-reset-component-servings svg{flex-shrink:0}@media (max-width:600px){.component-servings-row{flex-direction:column;align-items:flex-start;gap:0.5rem}.component-servings-input-group{width:100%;justify-content:flex-start}}.nutrition-nav-toggle{display:flex;align-items:center;gap:0.4rem}.nutrition-nav-toggle.active{color:var(--color-accent)}.nutrition-nav-toggle.active svg{stroke:var(--color-accent)}.builder-nutrition-panel{margin:1rem 0;padding:1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius,8px)}.builder-nutrition-panel.hidden{display:none}.builder-nutrition-panel .nutrition-empty,.builder-nutrition-panel .nutrition-error{font-size:0.85rem;color:var(--color-subtle);text-align:center;padding:0.5rem}.builder-nutrition-panel .nutrition-error{color:var(--color-error,#c53030)}.generated-page .page-info-box{margin-bottom:0.75rem}.generated-page .timeline-mode-section{margin-bottom:1rem}.shopping-list-section{margin-bottom:1.5rem}.shopping-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.shopping-category-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;padding:1rem}.shopping-category-card.pantry{opacity:0.8}.shopping-category-name{font-size:0.85rem;font-weight:600;color:var(--color-subtle);text-transform:uppercase;letter-spacing:0.03em;margin:0 0 0.5rem 0;padding-bottom:0.25rem;border-bottom:1px solid var(--color-border)}.shopping-items-simple{list-style:none;padding:0;margin:0}.shopping-items-simple li{padding:0.25rem 0;font-size:0.95rem;color:var(--color-text)}.shopping-pantry-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.pantry-toggle{display:flex;align-items:center;gap:0.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);font-size:0.9rem;font-weight:500;cursor:pointer;padding:0.6rem 1rem}.pantry-toggle:hover{border-color:var(--color-accent);color:var(--color-accent)}.pantry-toggle .chevron-icon{transition:transform 0.3s ease}.pantry-toggle[aria-expanded="false"] .chevron-icon{transform:rotate(-90deg)}.pantry-items-content{transition:max-height 0.3s ease,opacity 0.2s ease;overflow:hidden}.pantry-items-content.collapsed{max-height:0 !important;opacity:0;padding:0}.shopping-grid.pantry{margin-top:0.75rem}@media (max-width:900px){.shopping-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:500px){.shopping-grid{grid-template-columns:1fr}}.generated-actions{display:flex;gap:0.75rem;flex-wrap:wrap;align-items:center;margin-top:1.5rem}@media (max-width:600px){.generated-page .card-grid.summary{display:flex;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:0.5rem;padding:0.25rem 0 0.5rem}.generated-page .card-grid.summary .card{flex:0 0 28%;scroll-snap-align:start;min-width:95px}.generated-page .card-grid.mini{display:flex;overflow-x:auto;gap:0.375rem}.generated-page .card-grid.mini .card{flex:0 0 80px;scroll-snap-align:start}.generated-page .card-grid.summary::-webkit-scrollbar,.generated-page .card-grid.mini::-webkit-scrollbar{height:3px}.generated-page .card-grid.summary::-webkit-scrollbar-track,.generated-page .card-grid.mini::-webkit-scrollbar-track{background:var(--color-border);border-radius:2px}.generated-page .card-grid.summary::-webkit-scrollbar-thumb,.generated-page .card-grid.mini::-webkit-scrollbar-thumb{background:var(--color-subtle);border-radius:2px}.generated-page .make-ahead-header-content p{display:none}.generated-page .make-ahead-header{padding:0.75rem 1rem}.generated-page .make-ahead-section{margin:0.75rem auto}.generated-page .timeline-mode-section{padding:0.5rem 0;margin-bottom:0.75rem}.generated-page .timeline-mode-section h3{margin:0 0 0.5rem 0;font-size:1rem}.generated-page .timeline-mode-toggle .toggle-option{padding:8px 12px;min-width:110px}.generated-page .timeline-mode-toggle .toggle-desc{font-size:0.7rem}.generated-page .smart-merge-disclaimer{margin:0.5rem 0;padding:0.5rem 0.75rem;font-size:0.78rem}.generated-page .timeline-mode-section .info-toggle-link{font-size:0.8rem;padding:0.35rem 0.7rem;margin-top:0.25rem}.generated-page .recipe-tip{padding:0.5rem 1rem 0.5rem 1.25rem;margin:0.5rem 0;font-size:0.9rem}.generated-page .recipe-tip p{margin:0 0 0.25rem 0}.generated-actions{flex-direction:column;gap:0.5rem}.generated-actions .button{width:100%;text-align:center}}.timeline-container{max-width:900px;margin:2rem auto;padding:0 1rem}.timeline-header{margin-bottom:2rem;text-align:center}.timeline-header h3{margin:0 0 1rem 0;font-size:1.8rem;color:var(--color-accent)}.timeline-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem}.stat-badge{display:inline-flex;flex-direction:column;align-items:center;gap:0.25rem;padding:0.75rem 1.25rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 2px 4px var(--color-shadow)}.stat-badge.stat-success{background:var(--color-success-light);border-color:var(--color-success)}.stat-label{font-size:0.85rem;font-weight:500;color:var(--color-subtle);text-transform:uppercase;letter-spacing:0.5px}.stat-badge.stat-success .stat-label{color:var(--color-success-dark)}.stat-value{font-size:1.5rem;font-weight:700;color:var(--color-text)}.stat-badge.stat-success .stat-value{color:var(--color-success)}.timeline-data-quality{margin:2rem 0;padding:1.5rem;background:var(--color-info-light);border-left:4px solid var(--color-info);border-radius:var(--border-radius-sm)}.timeline-data-quality h4{margin:0 0 1rem 0;font-size:1.1rem;color:var(--color-info)}.quality-warning{margin-bottom:1rem;padding:1rem;background:var(--color-card);border-radius:var(--border-radius-sm)}.quality-warning:last-child{margin-bottom:0}.quality-message{margin:0;font-size:0.95rem;color:var(--color-text)}.quality-details{margin-top:0.75rem}.quality-details summary{font-weight:600;color:var(--color-accent);cursor:pointer;user-select:none}.quality-details summary:hover{text-decoration:underline}.quality-details ul{margin:0.5rem 0 0 1.5rem;padding:0}.quality-details li{margin:0.25rem 0;color:var(--color-subtle)}.timeline-steps{display:flex;flex-direction:column;gap:2rem}.step-text{font-size:1rem;line-height:1.5;color:var(--color-text)}.step-image-small{margin-top:0.75rem;max-width:200px;border-radius:var(--border-radius-sm);box-shadow:0 2px 4px var(--color-shadow)}.timeline-conflicts{margin:2rem 0;padding:1.5rem;background:rgba(255,152,0,0.05);border-left:4px solid var(--color-quality-acceptable);border-radius:var(--border-radius-sm)}.timeline-conflicts h4{display:flex;align-items:center;gap:0.5rem;margin:0 0 1rem 0;font-size:1.1rem;color:#f57c00}.timeline-conflicts h4 svg{flex-shrink:0;color:#f57c00}.conflicts-intro{margin:0 0 1rem 0;color:var(--color-subtle)}.conflict-warning{display:flex;gap:1rem;margin-bottom:1rem;padding:1rem;background:var(--color-card);border-radius:var(--border-radius-sm);border:1px solid rgba(255,152,0,0.2)}.conflict-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;color:var(--color-quality-acceptable)}.conflict-content{flex:1}.conflict-message{margin:0 0 0.5rem 0;color:var(--color-text)}.conflict-details-toggle{margin-top:0.75rem}.conflict-details-toggle summary{cursor:pointer;color:var(--color-accent);font-weight:600;user-select:none;list-style:none;display:inline-flex;align-items:center;gap:0.5rem}.conflict-details-toggle summary::-webkit-details-marker{display:none}.conflict-details-toggle summary::before{content:"▶";font-size:0.75rem;transition:transform 0.2s ease}.conflict-details-toggle[open] summary::before{transform:rotate(90deg)}.conflict-details{margin:0.75rem 0 0 1.5rem;padding:0}.conflict-details li{margin:0.25rem 0;color:var(--color-subtle)}.conflict-suggestion{display:flex;align-items:flex-start;gap:0.5rem;margin:0.75rem 0 0 0;padding:0.75rem;background:rgba(76,175,80,0.1);border-radius:var(--border-radius-sm);color:var(--color-text)}.conflict-suggestion svg{flex-shrink:0;margin-top:0.2rem;color:var(--color-quality-excellent)}.timeline-parallel-tasks{margin:2rem 0;padding:1.5rem;background:linear-gradient(135deg,var(--color-accent-alpha-8),var(--color-accent-alpha-5));border-left:4px solid var(--color-accent-light);border-radius:var(--border-radius-sm)}.timeline-parallel-tasks h4{display:flex;align-items:center;gap:0.5rem;margin:0 0 1rem 0;font-size:1.1rem;color:var(--color-accent)}.timeline-parallel-tasks h4 svg{flex-shrink:0}.parallel-intro{margin:0 0 1rem 0;color:var(--color-subtle)}.parallel-suggestions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.parallel-suggestion{display:flex;gap:1rem;padding:1rem;background:var(--color-card);border-radius:var(--border-radius-sm);border:1px solid var(--color-accent-light);box-shadow:0 2px 4px rgba(0,0,0,0.05);transition:all 0.2s ease}.parallel-suggestion:hover{box-shadow:0 4px 8px rgba(0,0,0,0.1);transform:translateY(-2px)}.parallel-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;color:var(--color-accent)}.parallel-content{flex:1}.parallel-message{margin:0 0 0.5rem 0;font-weight:500;color:var(--color-text)}.parallel-details-toggle{margin-top:0.75rem}.parallel-details-toggle summary{cursor:pointer;color:var(--color-accent);font-weight:600;font-size:0.9rem;user-select:none;list-style:none;display:inline-flex;align-items:center;gap:0.5rem}.parallel-details-toggle summary::-webkit-details-marker{display:none}.parallel-details-toggle summary::before{content:"▶";font-size:0.75rem;transition:transform 0.2s ease}.parallel-details-toggle[open] summary::before{transform:rotate(90deg)}.parallel-details{margin:0.75rem 0 0 1.5rem;padding:0}.parallel-details li{margin:0.25rem 0;color:var(--color-subtle)}.timeline-footer{margin-top:2rem;padding:1.5rem;background:var(--color-card);border-radius:var(--border-radius-md);border:1px solid var(--color-border);box-shadow:0 2px 4px var(--color-shadow)}.timeline-hint{margin:0;font-size:0.95rem;line-height:1.6;color:var(--color-text)}.timeline-hint strong{color:var(--color-accent)}.step-component-label,.wait-component-label{display:inline-flex;align-items:center;gap:0.4rem;padding:0.35rem 0.75rem;margin-bottom:0.5rem;background:linear-gradient(135deg,var(--color-accent-light),var(--color-accent));color:white;border-radius:var(--border-radius-pill);font-size:0.85rem;font-weight:700;text-transform:uppercase;letter-spacing:0.8px;box-shadow:0 2px 4px rgba(0,0,0,0.15);transition:transform 0.2s ease,box-shadow 0.2s ease}.step-component-label:hover,.wait-component-label:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,0.2)}.timeline-parallel-block{margin:1.5rem 0;padding:1.5rem;background:linear-gradient(135deg,var(--color-accent-alpha-5),var(--color-accent-alpha-5));border-radius:var(--border-radius-lg);border:2px solid var(--color-accent-light);box-shadow:0 4px 12px var(--color-shadow);position:relative;animation:fadeInSlide 0.4s ease-out}.timeline-parallel-block::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-accent-light),var(--color-accent),var(--color-accent-light));border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0}.parallel-header{margin-bottom:1.25rem;padding-bottom:0.75rem;border-bottom:2px solid var(--color-border);font-size:1.1rem;font-weight:600;color:var(--color-accent);display:flex;align-items:center;gap:0.5rem}.parallel-header strong{color:var(--color-accent-dark)}.parallel-count-badge{display:inline-flex;align-items:center;margin-left:auto;padding:0.25rem 0.65rem;background:white;border:1px solid var(--color-accent-light);border-radius:var(--border-radius-pill);font-size:0.75rem;font-weight:600;color:var(--color-accent)}@keyframes fadeInSlide{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.parallel-steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.timeline-step-parallel{background:var(--color-bg);border:2px solid var(--color-accent-light)}.timeline-step-parallel:hover{border-color:var(--color-accent);box-shadow:0 4px 12px var(--color-shadow)}@media (max-width:768px){.timeline-container{padding:0 0.375rem}.timeline-header h3{font-size:1.4rem}.timeline-stats{gap:0.375rem;flex-wrap:wrap}.stat-badge{padding:0.5rem 0.625rem;flex:1 1 calc(50% - 0.25rem);min-width:130px}.stat-value{font-size:1.2rem}.step-image-small{max-width:100%}.parallel-steps-grid{grid-template-columns:1fr}.timeline-parallel-block{padding:0.75rem}.parallel-header{flex-direction:column;align-items:flex-start;gap:0.5rem}.parallel-header svg{width:16px;height:16px}.parallel-count-badge{margin-left:0}}@media (max-width:360px){.timeline-container{padding:0 0.25rem}.timeline-stats{gap:0.25rem}.stat-badge{padding:0.375rem 0.5rem;min-width:110px}.stat-label{font-size:0.75rem}.stat-value{font-size:1rem}.timeline-parallel-block{padding:0.5rem}.step-text{font-size:0.9rem}}.view-mode-toggle{margin:1.5rem 0;padding:1.5rem;background:var(--color-card);border-radius:var(--border-radius-lg);border:1px solid var(--color-border);box-shadow:0 2px 8px var(--color-shadow)}.toggle-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;min-height:28px;overflow:visible}.toggle-label{font-size:1.1rem;font-weight:600;color:var(--color-heading)}.mode-help-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:50%;color:var(--color-subtle);cursor:pointer;transition:all 0.2s ease;overflow:visible;flex-shrink:0}.mode-help-toggle svg{width:16px;height:16px;flex-shrink:0}.mode-help-toggle:hover{background:var(--color-accent);border-color:var(--color-accent);color:white}.toggle-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}.toggle-card{display:flex;flex-direction:column;align-items:center;gap:0.5rem;padding:1rem;background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--border-radius-md);text-decoration:none;color:var(--color-text);transition:all 0.2s ease;cursor:pointer}.toggle-card:hover{border-color:var(--color-accent-light);box-shadow:0 4px 12px var(--color-shadow);transform:translateY(-2px)}.toggle-card.active{background:var(--color-accent);border-color:var(--color-accent);color:white}.toggle-card.active:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark)}.toggle-card-icon{display:flex;align-items:center;justify-content:center;width:48px;height:40px;color:var(--color-subtle)}.toggle-card.active .toggle-card-icon{color:white}.toggle-card-icon svg{width:100%;height:100%}.toggle-card-name{font-size:1rem;font-weight:700}.toggle-card-time{font-size:0.85rem;font-weight:600;color:var(--color-accent);padding:0.2rem 0.5rem;background:var(--color-accent-alpha-10);border-radius:var(--border-radius-pill)}.toggle-card.active .toggle-card-time{color:white;background:rgba(255,255,255,0.2)}.toggle-card-desc{font-size:0.8rem;color:var(--color-subtle);text-align:center}.toggle-card.active .toggle-card-desc{color:rgba(255,255,255,0.85)}.mode-help-panel{margin-top:1rem;padding:1.25rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-md);animation:slideDown 0.2s ease-out}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.mode-help-content h4{margin:0 0 1rem 0;font-size:1rem;color:var(--color-heading)}.mode-help-list{margin:0 0 1rem 0}.mode-help-list dt{margin-top:0.75rem;color:var(--color-text)}.mode-help-list dt:first-child{margin-top:0}.mode-help-list dd{margin:0.25rem 0 0 0;padding-left:1rem;color:var(--color-subtle);font-size:0.9rem;line-height:1.5}.mode-help-close{padding:0.5rem 1rem;background:var(--color-border);border:none;border-radius:var(--border-radius-sm);color:var(--color-text);font-size:0.9rem;cursor:pointer;transition:background 0.2s ease}.mode-help-close:hover{background:var(--color-accent);color:white}.mode-current-description{margin-top:1rem;padding:0.75rem 1rem;background:linear-gradient(135deg,var(--color-accent-alpha-8),var(--color-accent-alpha-5));border-left:3px solid var(--color-accent);border-radius:0 var(--border-radius-sm) var(--border-radius-sm) 0}.mode-current-description p{margin:0;font-size:0.95rem;color:var(--color-text);line-height:1.5}.mode-current-description strong{color:var(--color-accent)}@media (max-width:600px){.view-mode-toggle{padding:0.75rem}.toggle-cards{grid-template-columns:1fr;gap:0.5rem}.toggle-card{flex-direction:row;justify-content:flex-start;gap:0.75rem;padding:0.625rem 0.75rem}.toggle-card-icon{width:36px;height:28px;flex-shrink:0}.toggle-card-content{display:flex;flex-direction:column;align-items:flex-start;gap:0.15rem}.toggle-card-name{font-size:0.9rem}.toggle-card-time{font-size:0.75rem}.toggle-card-desc{text-align:left;font-size:0.7rem}.mode-help-panel{padding:0.75rem}.mode-help-list dd{padding-left:0.5rem;font-size:0.8rem}}.timeline-mode-section{padding:1rem 0;margin-bottom:1.5rem;text-align:center}.timeline-mode-section h3{margin:0 0 1rem 0;font-size:1.1rem;color:var(--color-heading)}.timeline-mode-toggle.centered{display:flex;justify-content:center;gap:12px}.timeline-mode-toggle .toggle-option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 24px;background:var(--color-card);border:2px solid var(--color-border);border-radius:8px;text-align:center;text-decoration:none;color:var(--color-text);min-width:160px;transition:all 0.2s ease}.timeline-mode-toggle .toggle-option:hover{border-color:var(--color-accent-light);box-shadow:0 2px 8px var(--color-shadow)}.timeline-mode-toggle .toggle-option.active{background:var(--color-accent);border-color:var(--color-accent);color:white}.timeline-mode-toggle .toggle-option.active:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark)}.timeline-mode-toggle .toggle-name{font-size:1rem;font-weight:700}.timeline-mode-toggle .toggle-desc{font-size:0.8rem;color:var(--color-subtle)}.timeline-mode-toggle .toggle-option.active .toggle-desc{color:rgba(255,255,255,0.85)}@media (max-width:480px){.timeline-mode-toggle.centered{gap:8px}.timeline-mode-toggle .toggle-option{padding:10px 16px;min-width:130px}.timeline-mode-toggle .toggle-name{font-size:0.9rem}.timeline-mode-toggle .toggle-desc{font-size:0.75rem}}.smart-merge-disclaimer{display:flex;align-items:flex-start;gap:0.75rem;max-width:500px;margin:1rem auto;padding:0.75rem 1rem;background:color-mix(in srgb,var(--color-accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-accent) 25%,transparent);border-radius:8px;font-size:0.85rem;color:var(--color-text);line-height:1.4}.smart-merge-disclaimer p{margin:0;flex:1}.smart-merge-disclaimer .disclaimer-dismiss{flex-shrink:0;background:none;border:none;font-size:1.25rem;line-height:1;color:var(--color-subtle);cursor:pointer;padding:0;opacity:0.7;transition:opacity 0.2s}.smart-merge-disclaimer .disclaimer-dismiss:hover{opacity:1}@media (max-width:480px){.smart-merge-disclaimer{margin:0.75rem 0;font-size:0.8rem}}.optimalisert-timeline{position:relative;padding-left:80px}.optimalisert-timeline::before{content:"";position:absolute;left:60px;top:10px;bottom:10px;width:2px;background:var(--color-border)}.timeline-entry{position:relative;margin-bottom:1rem}.timeline-marker{position:absolute;left:-80px;top:0;display:flex;flex-direction:column;align-items:center;width:80px}.timeline-time{font-size:0.75rem;font-weight:600;color:var(--color-subtle);margin-bottom:4px;white-space:nowrap}.timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--color-accent);border:2px solid var(--color-card);box-shadow:0 0 0 2px var(--color-accent);z-index:1}.timeline-dot.passive-dot{background:var(--color-subtle);box-shadow:0 0 0 2px var(--color-subtle)}.timeline-dot.parallel-dot{background:var(--color-accent-dark);box-shadow:0 0 0 2px var(--color-accent-dark);width:14px;height:14px}.timeline-content{padding-left:16px}.step-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:1rem;transition:border-color 0.2s,box-shadow 0.2s;position:relative}.step-card:hover{border-color:var(--color-accent-light);box-shadow:0 2px 8px var(--color-shadow)}.step-card.check-item,.parallel-step-card.check-item{display:flex;gap:12px;align-items:flex-start}.step-card.check-item .check-toggle,.parallel-step-card.check-item .check-toggle{flex-shrink:0;width:20px;height:20px;margin-top:2px;cursor:pointer;accent-color:var(--color-accent)}.step-card.check-item label,.parallel-step-card.check-item label{flex:1;cursor:pointer}.step-card.check-item .check-toggle:checked + label,.parallel-step-card.check-item .check-toggle:checked + label{opacity:0.5}.step-card.check-item .check-toggle:checked + label .step-text,.parallel-step-card.check-item .check-toggle:checked + label .step-text{text-decoration:line-through;color:var(--color-subtle)}.step-header{display:flex;align-items:flex-start;justify-content:space-between;gap:0.5rem;margin-bottom:0.5rem;flex-wrap:wrap}.step-badge{display:inline-block;padding:4px 10px;border-radius:4px;background:var(--color-accent);color:white;font-size:0.75rem;font-weight:600}.step-duration{font-size:0.8rem;color:var(--color-subtle);font-weight:500}.step-text{margin:0;font-size:0.95rem;line-height:1.6;color:var(--color-text)}.step-image-small{margin-top:0.75rem;max-width:200px;border-radius:var(--border-radius-sm)}.passive-card{background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--border-radius-md);padding:0.75rem 1rem}.passive-header{display:flex;align-items:center;gap:8px}.passive-icon{font-size:1rem}.passive-label{font-weight:500;color:var(--color-text);font-size:0.9rem}.passive-duration{margin-left:auto;font-size:0.8rem;color:var(--color-subtle);font-style:italic}.passive-instruction{margin:0.5rem 0 0 0;font-size:0.85rem;color:var(--color-subtle);line-height:1.4;padding-left:1.5rem}.passive-check-info{display:flex;align-items:center;gap:6px;margin-top:0.5rem;padding:0.25rem 0.5rem;background:color-mix(in srgb,var(--color-accent) 8%,transparent);border-radius:4px;font-size:0.8rem;color:var(--color-accent);font-weight:500}.timeline-dot.check-dot{background:transparent;border:2px dashed var(--color-subtle);box-shadow:none;width:10px;height:10px}.check-reminder-card{background:var(--color-bg);border:1px dashed var(--color-border);border-left:3px solid var(--color-subtle);border-radius:8px;padding:0.5rem 0.75rem}.check-reminder-card:hover{border-color:var(--color-accent-light)}.check-reminder-card.check-item{display:flex;gap:10px;align-items:flex-start}.check-reminder-card.check-item .check-toggle{flex-shrink:0;width:18px;height:18px;margin-top:2px;cursor:pointer;accent-color:var(--color-accent)}.check-reminder-card.check-item label{flex:1;cursor:pointer}.check-reminder-card.check-item .check-toggle:checked + label{opacity:0.4}.check-reminder-card.check-item .check-toggle:checked + label .check-reminder-text{text-decoration:line-through;color:var(--color-subtle)}.check-reminder-header{display:flex;align-items:center;gap:6px;margin-bottom:0.25rem}.check-reminder-badge{display:inline-block;padding:2px 6px;border-radius:3px;background:var(--color-subtle);color:white;font-size:0.7rem;font-weight:600}.check-reminder-label{font-size:0.8rem;font-weight:500;color:var(--color-subtle)}.check-reminder-text{margin:0;font-size:0.85rem;line-height:1.4;color:var(--color-subtle)}.timeline-parallel-block .timeline-content{padding-left:16px}.parallel-header{display:flex;align-items:center;gap:8px;margin-bottom:0.75rem;font-size:0.95rem;font-weight:600;color:var(--color-accent)}.parallel-count-badge{margin-left:auto;padding:2px 10px;background:var(--color-card);border:1px solid var(--color-accent-light);border-radius:var(--border-radius-pill);font-size:0.75rem;font-weight:600;color:var(--color-accent)}.parallel-steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0.75rem}.parallel-step-card{background:var(--color-card);border:1px solid var(--color-accent-light);border-radius:var(--border-radius-md);padding:1rem}.parallel-step-card:hover{border-color:var(--color-accent);box-shadow:0 2px 8px var(--color-shadow)}@media (max-width:600px){.optimalisert-timeline{padding-left:0}.optimalisert-timeline::before{display:none}.timeline-marker{position:relative;left:0;flex-direction:row;width:auto;gap:8px;margin-bottom:8px}.timeline-time{margin-bottom:0}.timeline-content{padding-left:0}.parallel-steps-grid{grid-template-columns:1fr}.check-reminder-card{padding:0.4rem 0.6rem}.check-reminder-badge{font-size:0.65rem}.check-reminder-text{font-size:0.8rem}}.assembly-section{margin-top:2rem;padding:1.5rem;background:var(--color-card);border-radius:var(--border-radius-lg);border:1px solid var(--color-border);box-shadow:0 2px 8px var(--color-shadow)}.assembly-section .section-heading{margin:0 0 1.25rem 0;font-size:1.4rem;font-weight:700;color:var(--color-accent);display:flex;align-items:center;gap:0.5rem}.assembly-section .section-heading::before{content:"";display:inline-block;width:4px;height:1.2em;background:var(--color-accent);border-radius:2px}.assembly-steps{margin:0;padding:0;list-style:none;counter-reset:assembly-step}.assembly-step{position:relative;padding:1rem;padding-left:3rem;margin-bottom:0.75rem;background:var(--color-bg);border-radius:var(--border-radius-md);border:1px solid var(--color-border);transition:border-color 0.2s ease,box-shadow 0.2s ease;counter-increment:assembly-step}.assembly-step::before{content:counter(assembly-step);position:absolute;left:0.75rem;top:1rem;display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;background:var(--color-accent);color:white;border-radius:50%;font-size:0.85rem;font-weight:700}.assembly-step:hover{border-color:var(--color-accent-light);box-shadow:0 2px 8px var(--color-shadow)}.assembly-step:last-child{margin-bottom:0}.assembly-step-text{margin:0;font-size:1rem;line-height:1.6;color:var(--color-text)}.assembly-items{margin:0.75rem 0 0 0;padding:0 0 0 1.25rem;list-style:none}.assembly-items li{position:relative;padding:0.35rem 0 0.35rem 1rem;font-size:0.95rem;color:var(--color-text);line-height:1.5}.assembly-items li::before{content:"•";position:absolute;left:0;color:var(--color-accent);font-weight:bold}@media (max-width:600px){.assembly-section{padding:1rem}.assembly-section .section-heading{font-size:1.2rem}.assembly-step{padding:0.875rem;padding-left:2.75rem}.assembly-step::before{left:0.5rem;width:1.5rem;height:1.5rem;font-size:0.8rem}.assembly-step-text{font-size:0.95rem}.assembly-items li{font-size:0.9rem}}.ingredient-prep-section{margin-top:2rem;padding:1.5rem 0}.ingredient-prep-section .section-heading{margin:0 0 0.75rem 0;font-size:1.4rem;font-weight:700;color:var(--color-accent);display:flex;align-items:center;gap:0.5rem}.ingredient-prep-section .section-heading::before{content:"";display:inline-block;width:4px;height:1.2em;background:var(--color-accent);border-radius:2px}.ingredient-prep-section .section-intro{margin:0 0 1rem 0;font-size:0.95rem;color:var(--color-subtle)}.prep-list{margin:0;padding:0;list-style:none}.prep-item{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0.5rem;padding:0.75rem 1rem;margin-bottom:0.5rem;background:var(--color-bg);border-radius:var(--border-radius-md);border:1px solid var(--color-border);transition:border-color 0.2s ease,box-shadow 0.2s ease}.prep-item:hover{border-color:var(--color-accent-light);box-shadow:0 2px 8px var(--color-shadow)}.prep-item:last-child{margin-bottom:0}.prep-item .check-toggle{width:1.05rem;height:1.05rem;margin-top:0.2rem;flex-shrink:0;accent-color:var(--color-accent);cursor:pointer}.prep-item label{flex:1;cursor:pointer}.prep-item input[type="checkbox"]:checked + label .prep-action{opacity:0.6;text-decoration:line-through}.prep-ingredient-name{font-weight:700;color:var(--color-heading);margin-right:0.25rem}.prep-action{font-size:1rem;line-height:1.5;color:var(--color-text)}.prep-item input[type="checkbox"]:checked + label .prep-ingredient-name{opacity:0.6;text-decoration:line-through}.prep-tip{display:block;width:100%;margin-top:0.25rem;margin-left:1.55rem;font-size:0.9rem;color:var(--color-subtle);font-style:italic}@media (max-width:600px){.ingredient-prep-section{padding:1rem 0}.ingredient-prep-section .section-heading{font-size:1.2rem}.prep-item{padding:0.625rem 0.875rem}.prep-action{font-size:0.95rem}.prep-tip{font-size:0.85rem;margin-left:1.55rem}}.prep-before-start{margin-bottom:1.5rem;padding:1.25rem;background:var(--color-card);border-radius:var(--border-radius-lg);border:1px solid var(--color-border);border-left:4px solid var(--color-accent)}.prep-before-header{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.75rem}.prep-before-header h4{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-heading)}.prep-before-icon{font-size:1.25rem}.prep-before-intro{margin:0 0 0.75rem 0;font-size:0.9rem;color:var(--color-subtle)}.prep-before-list{margin:0;padding:0;list-style:none}.prep-before-item{display:flex;justify-content:space-between;align-items:center;padding:0.5rem 0.75rem;margin-bottom:0.5rem;background:var(--color-bg);border-radius:var(--border-radius-md);border:1px solid var(--color-border)}.prep-before-item:last-child{margin-bottom:0}.prep-task-text{font-size:0.95rem;color:var(--color-text)}.prep-task-duration{font-size:0.85rem;color:var(--color-subtle);white-space:nowrap}.timeline-prep-entry{}.timeline-dot.prep-dot{background:var(--color-accent-light);border-color:var(--color-accent)}.timeline-dot.break-dot{background:var(--color-border);box-shadow:0 0 0 2px var(--color-border)}.break-card{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;padding:0.75rem 1rem;background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--border-radius-md);color:var(--color-subtle);font-style:italic}.break-label{font-weight:500}.break-hint{width:100%;font-size:0.85rem}.prep-task-card{background:var(--color-card);border-radius:var(--border-radius-md);border:1px solid var(--color-accent-light);padding:0.875rem 1rem;transition:border-color 0.2s ease,box-shadow 0.2s ease}.prep-task-card:hover{border-color:var(--color-accent);box-shadow:0 2px 8px var(--color-shadow)}.prep-task-header{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.5rem;flex-wrap:wrap}.prep-task-badge{display:inline-block;padding:0.2rem 0.5rem;background:var(--color-accent-light);color:white;border-radius:var(--border-radius-sm);font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.02em}.prep-task-name{font-weight:600;color:var(--color-heading)}.prep-task-card .prep-task-duration{margin-left:auto}.prep-task-card .prep-task-text{margin:0;line-height:1.5}@media (max-width:600px){.prep-before-start{padding:1rem}.prep-before-header h4{font-size:1rem}.prep-before-item{padding:0.4rem 0.6rem}.prep-task-card{padding:0.75rem}.prep-task-header{gap:0.35rem}.prep-task-badge{font-size:0.7rem;padding:0.15rem 0.4rem}}.wake-lock-wrapper{display:flex;justify-content:center;margin:0.5rem 0}.wake-lock-btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);color:var(--color-text);font-size:0.85rem;cursor:pointer;transition:all 0.2s ease}.wake-lock-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.wake-lock-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:white}.wake-lock-btn.active .wake-lock-icon{stroke:white}.wake-lock-icon{stroke:var(--color-subtle);transition:stroke 0.2s ease}.wake-lock-btn:hover .wake-lock-icon{stroke:var(--color-accent)}.wake-lock-btn.active:hover{background:var(--color-accent-dark)}.rating-display-compact{display:flex;align-items:center;justify-content:center;gap:0.5rem;margin:0.75rem 0;font-size:0.9rem}.rating-display-compact .rating-stars{display:flex;gap:0.15rem;font-size:1.2rem;line-height:1}.rating-display-compact .rating-stars .star{display:inline-block;width:1.2rem;text-align:center}.rating-display-compact .rating-text{font-size:0.85rem;color:var(--color-text)}.rating-display-compact .rating-text strong{font-weight:600;font-size:0.9rem}.rating-display-compact .rating-count{color:var(--color-subtle);font-size:0.8rem}.comments-section-compact{max-width:900px;margin:3rem auto 0;padding:2rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,0.05)}.comments-section-compact .section-title{font-size:1.3rem;margin-bottom:1rem;text-align:center;color:var(--color-heading);font-weight:600}.user-rating-inline{display:flex;align-items:center;justify-content:center;gap:0.75rem;flex-wrap:wrap;margin-bottom:1.25rem;padding:1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px}.user-rating-inline .rating-label{font-size:0.85rem;font-weight:500;color:var(--color-text)}.user-rating-inline .star-rating-input{display:flex;gap:0.2rem}.user-rating-inline .star-btn{background:none;border:none;padding:0;cursor:pointer;font-size:1.3rem;line-height:1;width:1.3rem;text-align:center;color:var(--color-border);transition:all 0.15s ease}.user-rating-inline .star-btn:hover,.user-rating-inline .star-btn:focus{color:var(--color-accent-light);transform:scale(1.05)}.user-rating-inline .star-btn.selected{color:var(--color-accent)}.user-rating-inline .star-btn.hover-preview{color:var(--color-accent-light)}.user-rating-inline .star-btn.half-selected{position:relative;color:var(--color-border) !important}.user-rating-inline .star-btn.half-selected::before{content:"★";position:absolute;left:0;width:50%;overflow:hidden;color:var(--color-accent)}.rating-status-compact{font-size:0.75rem;color:var(--color-subtle)}.comment-form-compact{margin-bottom:1.5rem;padding:1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px}.comment-textarea-compact{width:100%;padding:0.75rem;border:1px solid var(--color-border);border-radius:6px;font-family:inherit;font-size:0.95rem;resize:vertical;background:var(--color-card);color:var(--color-text);margin-bottom:0.75rem;transition:border-color 0.2s ease}.comment-textarea-compact:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb),0.1)}.comment-form-login-compact{margin-bottom:1.5rem;text-align:center;padding:1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px}.comments-list-compact{margin-top:1.5rem}.comments-count-compact{font-size:0.9rem;font-weight:600;color:var(--color-subtle);margin-bottom:1rem;text-align:center;padding-bottom:0.75rem;border-bottom:2px solid var(--color-border)}.no-comments-compact{text-align:center;color:var(--color-subtle);font-style:italic;font-size:0.85rem;padding:1rem}.comment-item-compact{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:1rem;margin-bottom:1rem;font-size:0.95rem;transition:box-shadow 0.2s ease}.comment-item-compact:hover{box-shadow:0 2px 8px rgba(0,0,0,0.08)}.comment-reply-compact{margin-left:2rem;margin-top:0.75rem;background:var(--color-card);font-size:0.9rem;border-left:3px solid var(--color-accent)}.comment-header-compact{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.75rem;padding-bottom:0.5rem;border-bottom:1px solid var(--color-border)}.comment-author-compact{font-weight:600;font-size:0.9rem;color:var(--color-heading)}.comment-date-compact{font-size:0.8rem;color:var(--color-subtle)}.comment-body-compact{margin-bottom:0.75rem;color:var(--color-text);line-height:1.6;font-size:0.95rem}.comment-actions-compact{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;font-size:0.85rem}.comment-actions-compact .vote-btn{background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;padding:0.35rem 0.6rem;cursor:pointer;font-size:0.85rem;color:var(--color-text);transition:all 0.2s ease;display:flex;align-items:center;gap:0.35rem;font-weight:500}.comment-actions-compact .vote-btn:hover{background:var(--color-bg);border-color:var(--color-accent)}.comment-actions-compact .vote-btn.voted{background:var(--color-accent);color:white;border-color:var(--color-accent)}.reply-btn-compact,.delete-btn-compact,.report-btn-compact{background:none;border:none;padding:0.35rem 0.6rem;cursor:pointer;font-size:0.85rem;color:var(--color-accent);font-weight:500;transition:all 0.2s ease}.reply-btn-compact:hover,.delete-btn-compact:hover,.report-btn-compact:hover{text-decoration:underline}.delete-btn-compact{color:var(--color-error)}.report-btn-compact{color:var(--color-warning)}.reply-form-compact{margin-top:0.5rem;padding-top:0.5rem;border-top:1px solid var(--color-border)}.reply-textarea-compact{width:100%;padding:0.4rem;border:1px solid var(--color-border);border-radius:4px;font-family:inherit;font-size:0.8rem;resize:vertical;background:var(--color-bg);color:var(--color-text);margin-bottom:0.4rem}.reply-textarea-compact:focus{outline:none;border-color:var(--color-accent)}.reply-form-actions-compact{display:flex;gap:0.5rem}.comment-replies-compact{margin-top:0.5rem}.pagination-compact{display:flex;justify-content:center;align-items:center;gap:0.75rem;margin-top:1rem;padding:0.75rem}.pagination-link-compact{color:var(--color-accent);text-decoration:none;font-weight:600;font-size:0.8rem;padding:0.35rem 0.65rem;border:1px solid var(--color-border);border-radius:4px;transition:all 0.2s ease}.pagination-link-compact:hover{background:var(--color-accent);color:white;border-color:var(--color-accent)}.pagination-info-compact{color:var(--color-text);font-size:0.75rem}.ratings-comments-section{margin-top:3rem;padding-top:2rem;border-top:2px solid var(--color-border)}.ratings-comments-section .section-title{margin-bottom:0.5rem}.section-subtitle{display:inline-block;font-size:0.9rem;font-weight:400;color:var(--color-subtle);margin-left:0.5rem}.section-divider{border:0;border-top:1px solid var(--color-border);margin:1.5rem 0}.ratings-area{display:flex;flex-wrap:wrap;gap:2rem;align-items:center;margin-bottom:1.5rem}.rating-display{display:flex;align-items:center;gap:0.5rem}.rating-stars{display:flex;gap:0.2rem;font-size:1.5rem;line-height:1}.rating-stars .star{display:inline-block;width:1.5rem;text-align:center;transition:color 0.2s ease}.rating-stars .star.filled{color:var(--color-accent)}.rating-stars .star.half-filled{position:relative;color:var(--color-border)}.rating-stars .star.half-filled::before{content:"★";position:absolute;left:0;width:50%;overflow:hidden;color:var(--color-accent)}.rating-stars .star.empty{color:var(--color-border)}.rating-text{font-size:0.95rem;color:var(--color-text)}.rating-text strong{font-weight:600}.rating-text.muted{color:var(--color-subtle);font-style:italic}.rating-form{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap}.rating-form-label{font-size:0.95rem;font-weight:500;color:var(--color-text)}.star-rating-input{display:flex;gap:0.25rem}.star-btn{background:none;border:none;padding:0;cursor:pointer;font-size:1.75rem;line-height:1;width:1.75rem;text-align:center;color:var(--color-border);transition:all 0.15s ease}.star-btn:hover,.star-btn:focus{color:var(--color-accent-light);transform:scale(1.05)}.star-btn.selected{color:var(--color-accent)}.star-btn.hover-preview{color:var(--color-accent-light)}.star-btn.half-selected{position:relative;color:var(--color-border)}.star-btn.half-selected::before{content:"★";position:absolute;left:0;width:50%;overflow:hidden;color:var(--color-accent)}.rating-status{font-size:0.85rem;color:var(--color-subtle)}.rating-message{width:100%;margin-top:0.5rem;padding:0.5rem 0.75rem;border-radius:4px;font-size:0.85rem}.rating-message.success{background:var(--color-success-light);color:var(--color-success-text);border:1px solid var(--color-success-border)}.rating-message.error{background:var(--color-error-light);color:var(--color-error-text);border:1px solid var(--color-error-border)}.rating-form-login{display:flex;align-items:center}.comments-area{margin-top:1.5rem}.comment-form,.comment-form-login{background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.comment-form-title{font-size:0.95rem;font-weight:600;margin-bottom:0.75rem;color:var(--color-heading)}.comment-textarea,.reply-textarea{width:100%;padding:0.75rem;border:1px solid var(--color-border);border-radius:4px;font-family:inherit;font-size:0.95rem;resize:vertical;background:var(--color-bg);color:var(--color-text)}.comment-textarea:focus,.reply-textarea:focus{outline:none;border-color:var(--color-accent)}.comment-form button{margin-top:0.75rem}.comment-form-message,.reply-message{margin-top:0.75rem;padding:0.75rem;border-radius:4px;font-size:0.9rem}.comment-form-message.success,.reply-message.success{background:var(--color-success-light);color:var(--color-success-text);border:1px solid var(--color-success-border)}.comment-form-message.error,.reply-message.error{background:var(--color-error-light);color:var(--color-error-text);border:1px solid var(--color-error-border)}.comment-form-login{text-align:center}.comment-form-login a{color:var(--color-accent);text-decoration:none;font-weight:600}.comment-form-login a:hover{text-decoration:underline}.comments-list{margin-top:2rem}.no-comments{text-align:center;color:var(--color-subtle);font-style:italic;padding:2rem}.comment-item{background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;padding:1rem;margin-bottom:1rem}.comment-reply{margin-left:2rem;margin-top:0.75rem;padding:1rem;background:var(--color-bg)}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.75rem;padding-bottom:0.5rem;border-bottom:1px solid var(--color-border)}.comment-author{font-weight:600;color:var(--color-heading)}.comment-date{font-size:0.85rem;color:var(--color-subtle)}.comment-body{margin-bottom:1rem;color:var(--color-text);line-height:1.6}.comment-body p{margin:0.5rem 0}.comment-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.comment-votes{display:flex;gap:0.5rem;align-items:center}.vote-btn{background:none;border:1px solid var(--color-border);border-radius:4px;padding:0.25rem 0.5rem;cursor:pointer;font-size:0.9rem;color:var(--color-text);transition:all 0.2s ease;display:flex;align-items:center;gap:0.25rem}.vote-btn:hover{background:var(--color-bg);border-color:var(--color-accent)}.vote-btn.voted{background:var(--color-accent);color:white;border-color:var(--color-accent)}.vote-display{font-size:0.9rem;color:var(--color-text);padding:0.25rem 0.5rem}.reply-btn,.delete-btn,.report-btn{background:none;border:none;padding:0.25rem 0.5rem;cursor:pointer;font-size:0.85rem;color:var(--color-accent);text-decoration:underline;transition:opacity 0.2s ease}.reply-btn:hover,.delete-btn:hover,.report-btn:hover{opacity:0.7}.delete-btn{color:var(--color-error)}.report-btn{color:var(--color-warning)}.reply-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.reply-form-actions{display:flex;gap:0.75rem;margin-top:0.75rem}.reply-submit-btn,.reply-cancel-btn{padding:0.5rem 1rem;font-size:0.9rem}.reply-cancel-btn{background:var(--color-bg);color:var(--color-text)}.comment-replies{margin-top:1rem}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem;padding:1rem}.pagination-link{color:var(--color-accent);text-decoration:none;font-weight:600;padding:0.5rem 1rem;border:1px solid var(--color-border);border-radius:4px;transition:all 0.2s ease}.pagination-link:hover{background:var(--color-accent);color:white;border-color:var(--color-accent)}.pagination-info{color:var(--color-text);font-size:0.9rem}@media (max-width:640px){.ratings-area{flex-direction:column;align-items:flex-start;gap:1rem}.comment-reply{margin-left:1rem;padding:0.75rem}.star-btn{font-size:1.5rem;width:1.5rem}.rating-stars .star{width:1.3rem;font-size:1.3rem}.comment-actions{gap:0.5rem}.pagination{flex-direction:column;gap:0.5rem}.comments-section-compact{padding:1rem;margin:2rem 1rem 0}.rating-display-compact .rating-stars{font-size:1rem}.rating-display-compact .rating-stars .star{width:1rem}.user-rating-inline{flex-direction:column;align-items:center;gap:0.75rem}.user-rating-inline .star-btn{font-size:1.2rem;width:1.2rem}.comment-item-compact{padding:0.75rem}.comment-reply-compact{margin-left:1rem}.comment-actions-compact{gap:0.5rem;font-size:0.8rem}.pagination-compact{flex-direction:column;gap:0.5rem}}.guide-hub{max-width:1200px;margin:0 auto;padding:var(--spacing-4)}.hero-section{text-align:center;margin-bottom:var(--spacing-6)}.hero-subtitle{font-size:1.125rem;color:var(--color-subtle);margin-top:var(--spacing-2)}.guide-section{margin-bottom:var(--spacing-6)}.guide-hub .section-title,.guide-type-page .section-title{font-size:1.5rem;font-weight:600;margin-bottom:var(--spacing-2);color:var(--color-accent)}.guide-hub .section-description,.guide-type-page .section-description{color:var(--color-subtle);margin-bottom:var(--spacing-4)}.section-footer{text-align:center;margin-top:var(--spacing-4)}.guide-type-list{display:flex;flex-direction:column;gap:var(--spacing-2);max-width:700px;margin:0 auto var(--spacing-6)}.guide-type-link{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);background:var(--color-card);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--border-radius);text-decoration:none;color:var(--color-text);transition:all 0.2s ease}.guide-type-link:hover{border-left-width:5px;background:var(--color-bg);transform:translateX(4px)}.guide-type-name{font-size:1.0625rem;font-weight:600;color:var(--color-heading);flex-shrink:0}.guide-type-meta{display:flex;align-items:baseline;gap:var(--spacing-3);text-align:right;flex:1;justify-content:flex-end}.guide-type-count{font-size:0.875rem;color:var(--color-subtle);white-space:nowrap}.guide-type-description{display:none;font-size:0.875rem;color:var(--color-subtle);max-width:300px;text-align:right}@media (min-width:768px){.guide-type-description{display:block}}.guide-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-3);margin-bottom:var(--spacing-6)}@media (min-width:600px){.guide-type-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:900px){.guide-type-grid{grid-template-columns:repeat(4,1fr)}}.guide-type-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-4);background:var(--color-card);border:1px solid var(--color-border);border-top:3px solid var(--color-accent);border-radius:var(--border-radius);text-decoration:none;color:var(--color-text);transition:all 0.2s ease;min-height:120px}.guide-type-card:hover{border-color:var(--color-accent);background:var(--color-bg);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.1)}.guide-type-technique,.guide-type-ingredient,.guide-type-equipment,.guide-type-cuisine,.guide-type-terminology,.guide-type-inline,.guide-type-substitution,.guide-type-season,.guide-type-skill,.guide-type-occasion,.guide-type-nutrition,.guide-type-method,.guide-type-learning_path{border-top-color:var(--color-accent)}.guide-type-icon{font-size:2rem;margin-bottom:var(--spacing-2);display:none}.guide-type-card h3{font-size:1rem;font-weight:600;margin:0 0 var(--spacing-1) 0;color:var(--color-heading);text-align:center}.guide-count{font-size:0.875rem;color:var(--color-subtle);margin:0}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;font-size:0.875rem;color:var(--color-subtle);margin-bottom:var(--spacing-4)}.breadcrumb a{color:var(--color-accent);text-decoration:none;transition:color 0.2s ease}.breadcrumb a:hover{color:var(--color-accent-dark);text-decoration:underline}.breadcrumb .separator{color:var(--color-border)}.guide-type-page{max-width:1200px;margin:0 auto;padding:var(--spacing-4)}.page-header{text-align:center;margin-bottom:var(--spacing-6)}.page-header h1{display:flex;align-items:center;justify-content:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.page-subtitle{font-size:1.125rem;color:var(--color-subtle)}.empty-state{text-align:center;padding:var(--spacing-8) var(--spacing-4)}.empty-state p{color:var(--color-subtle);margin-bottom:var(--spacing-4)}.guide-article{max-width:700px;margin:0 auto;padding:0 1rem 3rem}.guide-hero{text-align:center;margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--color-border)}.guide-hero-content{max-width:600px;margin:0 auto}.guide-meta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-bottom:1.5rem;font-size:0.875rem;color:var(--color-subtle)}.guide-type-badge{display:inline-flex;align-items:center;gap:0.375rem;color:var(--color-subtle);font-weight:500;text-transform:none;letter-spacing:0;background:none;padding:0;border-radius:0}.guide-type-badge::before{content:'';display:inline-block;width:8px;height:8px;background:var(--color-accent);border-radius:50%}.guide-title{font-family:'Lora',serif;font-size:clamp(2rem,5vw,2.75rem);font-weight:600;color:var(--color-accent);margin:0 0 1rem 0;line-height:1.2}.guide-lead{font-size:1.125rem;color:var(--color-subtle);line-height:1.7;margin:0}.guide-hero-image{margin:2.5rem 0;border-radius:var(--border-radius-md);overflow:hidden}.guide-hero-image img{width:100%;height:auto;display:block}.guide-media{margin:2.5rem 0;border-radius:var(--border-radius-md);overflow:hidden;aspect-ratio:16/9}.guide-media iframe{width:100%;height:100%;border:none}.guide-content-card{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:3rem;box-shadow:none}.guide-body{font-size:1.0625rem;line-height:1.7;color:var(--color-text);margin-bottom:3rem;max-width:65ch;margin-left:auto;margin-right:auto}.guide-body h2{font-family:'Lora',serif;font-size:1.5rem;font-weight:600;color:var(--color-accent);margin:2rem 0 0.75rem 0;padding-top:1.25rem;border-top:1px solid var(--color-border);text-align:left}.guide-body h2:first-child{margin-top:0;padding-top:0;border-top:none}.guide-body h3{font-family:'Lora',serif;font-size:1.25rem;font-weight:600;color:var(--color-accent);margin:2rem 0 0.75rem 0;text-align:left}.guide-body h3:first-child{margin-top:0}.guide-body p{margin:0 0 0.75rem 0;text-align:left}.guide-body p:last-child{margin-bottom:0}.guide-body ul,.guide-body ol{margin:1.5rem 0;padding-left:1.5rem}.guide-body li{margin-bottom:0.75rem;line-height:1.8}.guide-body li:last-child{margin-bottom:0}.guide-body strong{font-weight:600;color:var(--color-heading)}.guide-body em{font-style:italic}.guide-body p strong:first-child{font-weight:700;color:var(--color-accent-dark);font-size:1.0125em}.guide-body blockquote{margin:2rem 0;padding:0 0 0 1.5rem;border-left:3px solid var(--color-accent);color:var(--color-text);font-style:normal}.guide-body blockquote p{margin-bottom:0}.guide-body code{background:var(--color-bg);padding:0.125rem 0.375rem;border-radius:4px;font-size:0.9375rem}.guide-body pre{background:var(--color-bg);padding:1rem;border-radius:var(--border-radius-sm);overflow-x:auto;margin:1.5rem 0}.guide-body pre code{background:none;padding:0}.guide-seasonal{margin-bottom:2.5rem}.guide-seasonal .guide-section{margin-bottom:2rem}.guide-section{margin-bottom:2.5rem}.guide-section .section-title,.guide-seasonal .section-title{font-family:'Lora',serif;font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:600;color:var(--color-accent);text-align:center;margin-bottom:1.5rem}.guide-related{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--color-border)}.guide-related-title{font-family:'Lora',serif;font-size:clamp(1.4rem,3vw,1.75rem);font-weight:700;color:var(--color-accent);text-align:center;margin:0 0 2rem 0}.guide-related-section{margin-bottom:2rem}.guide-related-section:last-child{margin-bottom:0}.guide-related-section .section-title{font-family:'Lora',serif;font-size:1.125rem;font-weight:500;color:var(--color-accent);text-align:center;margin-bottom:1rem}@media (max-width:768px){.guide-article{padding:0 1rem 2rem}.guide-hero{margin-bottom:2rem;padding-bottom:1.5rem}.guide-meta-row{gap:1rem;margin-bottom:1rem}.guide-title{font-size:1.75rem}.guide-lead{font-size:1rem}.guide-body{font-size:1rem;line-height:1.75;max-width:none}.guide-body h2{font-size:1.25rem;margin:1.75rem 0 0.625rem 0;padding-top:1rem}.guide-body h3{font-size:1.125rem}.guide-body p{margin-bottom:0.625rem}.guide-related{padding-top:1.5rem;margin-top:2rem}}.guide-card{position:relative}.guide-card .card-placeholder-image{height:90px}.guide-card img{aspect-ratio:2 / 1;max-height:90px}.guide-placeholder-title{margin:0;padding:var(--spacing-2);font-size:0.9rem;font-weight:600;color:var(--color-heading);text-align:center;line-height:1.3}.guide-card .card-content{text-align:center}.guide-card .guide-type-badge{display:inline-block;padding:0.25rem 0.75rem;background:var(--color-accent);color:white;border-radius:var(--border-radius-sm);font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:var(--spacing-2);text-align:center}.guide-card .guide-type-badge::before{display:none}.card-placeholder-image{display:flex;align-items:center;justify-content:center;height:200px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.card-placeholder-image .guide-type-icon{font-size:4rem;opacity:0.3;display:none}.card-placeholder-image .guide-type-label,.card-placeholder-image .cuisine-label{font-size:1.25rem;font-weight:600;color:var(--color-accent);text-transform:uppercase;letter-spacing:1px;opacity:0.6}.guide-list{display:grid;grid-template-columns:1fr;gap:var(--spacing-3);max-width:1100px;margin:0 auto}@media (min-width:768px){.guide-list{grid-template-columns:repeat(2,1fr)}}.guide-list-item{background:var(--color-card);border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:var(--border-radius);transition:all 0.2s ease}.guide-list-item:hover{border-left-width:6px;box-shadow:0 2px 8px rgba(0,0,0,0.1);transform:translateX(4px)}.guide-list-link{display:block;padding:var(--spacing-4);text-decoration:none;color:var(--color-text)}.guide-list-title{margin:0 0 var(--spacing-2) 0;font-size:1.125rem;font-weight:600;color:var(--color-heading)}.guide-list-description{margin:0 0 var(--spacing-2) 0;color:var(--color-subtle);line-height:1.6;font-size:0.9375rem}.guide-list-meta{display:flex;align-items:center;gap:var(--spacing-2);margin-top:var(--spacing-1)}.guide-type-tag{display:inline-block;padding:0.125rem 0.5rem;font-size:0.75rem;font-weight:500;border-radius:var(--border-radius-sm);background:var(--color-accent);color:white}.step-guides{margin-top:var(--spacing-3);margin-left:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-2)}.inline-guide{border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--border-radius);background:var(--color-card);overflow:hidden;transition:all 0.2s ease;margin:1rem 0;box-shadow:0 1px 3px rgba(0,0,0,0.05)}.inline-guide:hover{border-color:var(--color-accent-light);border-left-color:var(--color-accent);box-shadow:0 2px 6px rgba(0,0,0,0.08)}.inline-guide-toggle{width:100%;display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);background:transparent;border:none;font-family:inherit;font-size:0.9375rem;color:var(--color-text);cursor:pointer;text-align:left;transition:background 0.2s ease}.inline-guide-toggle:hover{background:rgba(59,121,66,0.05)}.inline-guide-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.inline-guide-icon{flex-shrink:0;font-size:1.25rem;line-height:1}.inline-guide-title{flex:1;font-weight:600;color:var(--color-accent)}.inline-guide-chevron{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;transition:transform 0.3s ease}.inline-guide-chevron svg{display:block}.inline-guide-content{max-height:0;overflow:hidden;transition:max-height 0.3s ease;border-top:1px solid var(--color-border)}.inline-guide-content[hidden]{display:block}.inline-guide-content > *{padding:var(--spacing-3)}.inline-guide-excerpt{color:var(--color-text);font-size:0.9375rem;line-height:1.6;margin:0;padding:var(--spacing-3);padding-bottom:var(--spacing-2)}.inline-guide-link{display:inline-flex;align-items:center;gap:0.25rem;padding:var(--spacing-2) var(--spacing-3);color:var(--color-accent);text-decoration:none;font-weight:500;font-size:0.875rem;transition:color 0.2s ease}.inline-guide-link:hover{color:white;text-decoration:underline}.related-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-2);margin-top:var(--spacing-3)}.related-item{display:block;padding:var(--spacing-2) var(--spacing-3);background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;text-align:center;text-decoration:none;color:var(--color-text);transition:all 0.2s ease}.related-item:hover{background:var(--color-accent);color:white;border-color:var(--color-accent);transform:translateY(-2px)}@media (max-width:768px){.guide-type-card{padding:var(--spacing-3);min-height:100px}.guide-type-icon{font-size:1.5rem}.step-guides{margin-left:0}}.guide-help-text{margin-top:var(--spacing-5);padding:var(--spacing-5);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:0 1px 3px rgba(0,0,0,0.05)}.guide-help-text h3{margin:0 0 var(--spacing-4) 0;font-size:1.125rem;font-weight:500;color:var(--color-subtle);text-align:left}.help-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-5)}.help-column{padding:var(--spacing-4);background:var(--color-bg);border-radius:var(--border-radius-sm);border-left:3px solid var(--color-accent)}.help-column h4{margin:0 0 var(--spacing-3) 0;font-size:1.0625rem;font-weight:600;color:var(--color-accent)}.help-column p{margin:0;color:var(--color-text);line-height:1.7;font-size:0.9375rem}.quality-explanations p{margin-bottom:var(--spacing-2)}.quality-explanations p:last-child{margin-bottom:0}.help-column strong{color:var(--color-heading);font-weight:600}@media (max-width:768px){.help-columns{grid-template-columns:1fr;gap:var(--spacing-3)}.guide-help-text{padding:var(--spacing-4)}}.substitutions-guide-container{max-width:1200px;margin:0 auto;margin-top:var(--spacing-6)}.substitution-section{margin-bottom:var(--spacing-8)}.substitution-ingredient-title{font-size:1.75rem;font-weight:600;margin-bottom:var(--spacing-5);color:var(--color-heading);padding-bottom:var(--spacing-3);border-bottom:2px solid var(--color-border)}.substitution-ingredient-title a{color:var(--color-accent);text-decoration:none;transition:color 0.2s ease}.substitution-ingredient-title a:hover{color:var(--color-accent-dark);text-decoration:underline}.substitution-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-4)}.substitution-card{padding:var(--spacing-4);background:var(--color-card);border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--border-radius);transition:box-shadow 0.2s ease,transform 0.2s ease}.substitution-card:hover{box-shadow:0 4px 12px rgba(0,0,0,0.1);transform:translateY(-2px)}.substitution-card.quality-excellent{border-left-color:var(--color-accent)}.substitution-card.quality-good{border-left-color:var(--color-accent-light)}.substitution-card.quality-acceptable{border-left-color:var(--color-quality-acceptable)}.substitution-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:var(--spacing-4);flex-wrap:wrap}.substitution-name{font-weight:600;font-size:1.125rem;color:var(--color-accent);text-decoration:none;line-height:1.3;flex-shrink:0}.substitution-name:hover{text-decoration:underline}.substitution-ratio{display:inline-flex;align-items:center;padding:0.25rem 0.625rem;background:var(--color-accent);color:white;border-radius:var(--border-radius-sm);font-size:0.875rem;font-weight:600;white-space:nowrap;flex-shrink:0}.substitution-context{margin:var(--spacing-2) 0;font-style:italic;color:var(--color-text);font-size:0.9375rem}.substitution-notes{margin:var(--spacing-2) 0;color:var(--color-subtle);font-size:0.875rem}.substitution-guide-link{display:inline-flex;align-items:center;margin-top:var(--spacing-2);color:var(--color-accent);text-decoration:none;font-size:0.875rem;font-weight:500}.substitution-guide-link:hover{text-decoration:underline;color:white}.empty-state-hint{margin-top:var(--spacing-2);color:var(--color-subtle);font-size:0.9375rem}@media (max-width:1024px){.substitution-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (max-width:768px){.substitution-ingredient-title{font-size:1.375rem}.substitution-grid{grid-template-columns:1fr}.substitutions-guide-container{max-width:100%}}@media print{.inline-guide-toggle{pointer-events:none}.inline-guide-content{max-height:none !important;display:block !important}.inline-guide-chevron{display:none}}.deep-dive-section{max-width:700px;margin:2rem auto;padding:1rem 1.5rem;background:transparent;border:none;border-left:3px solid var(--color-border)}.deep-dive-section h2{margin:0 0 1.25rem 0;font-family:'Lora',serif;font-size:1.25rem;font-weight:600;color:var(--color-accent);text-align:center}.deep-dive-content{color:var(--color-text);font-size:1rem;line-height:1.7;text-align:left}.deep-dive-content p{margin-bottom:1rem}.deep-dive-content p:last-child{margin-bottom:0}.deep-dive-content h3{font-family:'Lora',serif;font-size:1.1rem;font-weight:600;color:var(--color-accent);margin:1.5rem 0 0.75rem 0;text-align:center}.deep-dive-content h3:first-child{margin-top:0}.deep-dive-content ul,.deep-dive-content ol{margin:0.75rem 0;padding-left:1.5rem}.deep-dive-content li{margin-bottom:0.5rem;line-height:1.6}.deep-dive-content li:last-child{margin-bottom:0}.deep-dive-content .inline-guide{margin:1rem 0}.inline-guide-missing{color:var(--color-subtle);font-style:italic;background:var(--color-bg);padding:0.125rem 0.5rem;border-radius:var(--border-radius-sm)}.inline-guide-text{position:relative;display:inline}.inline-guide-text-link{color:var(--color-accent);text-decoration:none;font-weight:500;border-bottom:1px dotted var(--color-accent);transition:color 0.2s ease,border-color 0.2s ease}.inline-guide-text-link:hover{color:var(--color-accent-dark);border-bottom-style:solid}.inline-guide-tooltip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);padding:0.5rem 0.75rem;background:var(--color-heading);color:var(--color-bg);font-size:0.875rem;font-weight:400;line-height:1.4;border-radius:var(--border-radius);white-space:normal;width:max-content;max-width:280px;z-index:1000;opacity:0;visibility:hidden;transition:opacity 0.2s ease,visibility 0.2s ease;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,0.15);margin-bottom:0.5rem}.inline-guide-tooltip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--color-heading)}.inline-guide-text:hover .inline-guide-tooltip{opacity:1;visibility:visible}@media (max-width:768px){.inline-guide-tooltip{font-size:0.8125rem;max-width:220px;padding:0.375rem 0.5rem}}@media (max-width:768px){.deep-dive-section{max-width:100%;margin:1.5rem auto;padding:1rem}.deep-dive-section h2{font-size:1.125rem}}@media print{.deep-dive-section{border:1px solid var(--color-border);page-break-inside:avoid}}:root[data-theme='dark'] .guide-body code{background:var(--color-card)}:root[data-theme='dark'] .guide-body pre{background:var(--color-card)}.detail-tabs{display:flex;justify-content:center;gap:0.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0.25rem;background:transparent;border:none;border-radius:var(--border-radius-md);margin-bottom:2rem}.detail-tabs::-webkit-scrollbar{display:none}.detail-tab{flex:0 1 auto;padding:0.75rem 1.25rem;background:transparent;border:none;border-radius:var(--border-radius-sm);font-size:0.95rem;font-weight:500;color:var(--color-subtle);cursor:pointer;transition:all 0.2s ease;white-space:nowrap;text-align:center}.detail-tab:hover{background:var(--color-bg);color:var(--color-text)}.detail-tab.active{background:var(--color-accent);color:white}.detail-tab.hidden{display:none}.detail-tab-panel{display:none}.detail-tab-panel.active{display:block}.flavor-profile-section,.texture-profile-section{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem;margin:2rem 0}.section-heading{display:flex;align-items:center;gap:0.5rem;margin:0 0 1.5rem 0;font-size:1.25rem;font-weight:600;color:var(--color-heading)}.info-btn{background:none;border:none;padding:0.25rem;cursor:pointer;color:var(--color-subtle);transition:color 0.2s ease}.info-btn:hover{color:var(--color-accent)}.info-btn svg{display:block}.info-popup{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;transition:opacity 0.2s ease}.info-popup.show{opacity:1}.info-popup-content{background:var(--color-card);border-radius:12px;padding:2rem;max-width:500px;width:100%;position:relative;box-shadow:0 4px 20px rgba(0,0,0,0.15)}.info-popup-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;line-height:1;cursor:pointer;color:var(--color-subtle);transition:color 0.2s ease;padding:0;width:32px;height:32px}.info-popup-close:hover{color:var(--color-accent)}.info-popup-content h4{margin:0 0 1rem 0;color:var(--color-heading);font-size:1.25rem}.info-popup-content p{margin:0.75rem 0;line-height:1.6;color:var(--color-text)}.muted-text{color:var(--color-subtle);font-size:0.9rem}.muted-label{color:var(--color-subtle);font-size:0.875rem;font-weight:500}.flavor-radar-container{max-width:400px;margin:0 auto 1.5rem;padding:1rem}.flavor-radar-container canvas{max-width:100%;height:auto}.flavor-suggestions{margin-top:1.5rem;padding:1rem;background:var(--color-bg);border-radius:8px;border:1px solid var(--color-border)}.flavor-suggestions h4{margin:0 0 0.75rem 0;font-size:1rem;font-weight:600;color:var(--color-heading)}.flavor-suggestions ul{margin:0;padding-left:1.5rem}.flavor-suggestions li{margin:0.5rem 0;line-height:1.5;color:var(--color-text)}.flavor-profile-empty,.texture-profile-empty{text-align:center;padding:2rem 1rem}.texture-main-card{display:flex;gap:1.5rem;background:var(--color-bg);border-radius:10px;padding:1.25rem;border:1px solid var(--color-border);margin-bottom:1.5rem}.texture-image{flex-shrink:0;width:80px;height:80px;border-radius:50%;overflow:hidden;background:var(--color-card);border:2px solid var(--color-border)}.texture-image img{width:100%;height:100%;object-fit:cover}.texture-content{flex:1;min-width:0}.texture-header{margin-bottom:0.5rem}.texture-label{display:block;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--color-accent);font-weight:600;margin-bottom:0.25rem}.texture-name{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-heading)}.texture-description{margin:0.5rem 0;line-height:1.5;color:var(--color-text)}.texture-examples{margin:0.5rem 0 0 0;font-size:0.875rem;color:var(--color-subtle)}.texture-secondary{margin-top:1.5rem}.texture-secondary-heading{margin:0 0 0.75rem 0;font-size:0.95rem;font-weight:600;color:var(--color-heading)}.texture-badges{display:flex;flex-wrap:wrap;gap:0.5rem}.texture-badge{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;padding:0.5rem 1rem;font-size:0.875rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:all 0.2s ease}.texture-badge:hover{background:var(--color-accent);color:white;border-color:var(--color-accent);transform:translateY(-1px)}.texture-tooltip{position:fixed;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;padding:1rem;max-width:300px;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:100;opacity:0;transform:translateY(-5px);transition:opacity 0.2s ease,transform 0.2s ease;pointer-events:none}.texture-tooltip.show{opacity:1;transform:translateY(0);pointer-events:auto}.texture-tooltip h5{margin:0 0 0.5rem 0;font-size:1rem;font-weight:600;color:var(--color-heading)}.texture-tooltip p{margin:0.5rem 0;font-size:0.875rem;line-height:1.5;color:var(--color-text)}.texture-sources{margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid var(--color-border)}@media (max-width:768px){.flavor-profile-section,.texture-profile-section{padding:1rem}.section-heading{font-size:1.125rem}.flavor-radar-container{max-width:100%;padding:0.5rem}.texture-main-card{flex-direction:column;gap:1rem}.texture-image{width:100px;height:100px;margin:0 auto}.texture-header{text-align:center}.texture-name{font-size:1.25rem}.info-popup-content{padding:1.5rem}}@media (prefers-color-scheme:dark){.info-popup{background:rgba(0,0,0,0.7)}.texture-tooltip{box-shadow:0 4px 12px rgba(0,0,0,0.3)}}.legal-document{max-width:800px;margin:0 auto;padding:2rem 1rem;line-height:1.7}.legal-document h1{color:var(--color-heading);font-size:2.5rem;margin-bottom:0.5rem;border-bottom:3px solid var(--color-accent);padding-bottom:1rem}.legal-document h2{color:var(--color-heading);font-size:1.8rem;margin-top:3rem;margin-bottom:1rem;border-bottom:1px solid var(--color-border);padding-bottom:0.5rem}.legal-document h3{color:var(--color-heading);font-size:1.3rem;margin-top:2rem;margin-bottom:0.75rem}.legal-document p{margin-bottom:1rem;color:var(--color-text)}.legal-document ul,.legal-document ol{margin:1rem 0 1.5rem 2rem}.legal-document li{margin-bottom:0.5rem}.legal-document strong{color:var(--color-heading);font-weight:600}.legal-document a{color:var(--color-accent);text-decoration:underline}.legal-document a:hover{color:var(--color-accent-dark)}.legal-document section{margin-bottom:3rem}.last-updated{color:var(--color-subtle);font-style:italic;font-size:0.9rem;margin-bottom:2rem}.cookie-consent{position:fixed;bottom:0;left:0;right:0;background:var(--color-card);border-top:2px solid var(--color-accent);box-shadow:0 -2px 10px rgba(0,0,0,0.1);z-index:1000;padding:1.5rem}.cookie-consent-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}.cookie-consent-content p{margin:0;flex:1;min-width:250px}.cookie-consent-content a{color:var(--color-accent);text-decoration:underline}.cookie-consent .button{white-space:nowrap;background:var(--color-accent);color:white;padding:0.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.cookie-consent .button:hover{background:var(--color-accent-dark)}.site-footer{background:var(--color-card);border-top:1px solid var(--color-border);padding:1.5rem 1rem;margin-top:4rem}.footer-content{max-width:1200px;margin:0 auto}.footer-main{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0.75rem;font-size:0.875rem;color:var(--color-subtle)}.footer-copyright,.footer-operator{color:var(--color-subtle)}.footer-separator{color:var(--color-subtle);user-select:none}.footer-main a{color:var(--color-accent);text-decoration:none;transition:color 0.2s}.footer-main a:hover{color:var(--color-accent-dark);text-decoration:underline}.checkbox-block{margin:1.5rem 0}.checkbox-label{display:flex;align-items:flex-start;gap:0.75rem;cursor:pointer}.checkbox-label input[type="checkbox"]{margin-top:0.25rem;cursor:pointer;width:18px;height:18px;flex-shrink:0}.checkbox-label span{flex:1}@media (max-width:768px){.legal-document{padding:1rem}.legal-document h1{font-size:2rem}.legal-document h2{font-size:1.5rem}.cookie-consent-content{flex-direction:column;text-align:center}.footer-main{font-size:0.8rem;gap:0.5rem}}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0.5rem;margin-bottom:1.5rem}@media (max-width:1024px){.week-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:768px){.week-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.week-grid{grid-template-columns:1fr}}.day-column{background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;padding:0.75rem;min-height:150px;display:flex;flex-direction:column}.day-column.today{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.day-header{margin-bottom:0.75rem;padding-bottom:0.5rem;border-bottom:1px solid var(--color-border)}.day-header h3{font-size:0.95rem;font-weight:600;margin:0;color:var(--color-heading)}.day-header .day-date{font-size:0.8rem;color:var(--color-subtle)}.meal-slot{flex:1;display:flex;flex-direction:column}.meal-slot .slot-name{font-size:0.7rem;font-weight:500;color:var(--color-subtle);margin:0 0 0.5rem 0;text-transform:uppercase;letter-spacing:0.5px}.empty-slot{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem 0.5rem;background:var(--color-bg);border:1px dashed var(--color-border);border-radius:6px;text-align:center;min-height:80px}.btn-add-dish{background:transparent;border:none;color:var(--color-accent);cursor:pointer;font-size:0.85rem;font-style:italic;padding:0.5rem 1rem;width:100%;transition:all 0.2s}.btn-add-dish:hover{background:var(--color-accent);color:white;border-radius:4px;font-style:normal}.planned-dish{flex:1;display:flex;flex-direction:column;padding:0.75rem;background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent) 8%,var(--color-card)) 0%,color-mix(in srgb,var(--color-accent) 15%,var(--color-card)) 100%);border:1px solid color-mix(in srgb,var(--color-accent) 30%,transparent);border-radius:8px;min-height:80px}.planned-dish .dish-name{display:block;font-size:0.9rem;font-weight:600;color:var(--color-heading);line-height:1.3;flex:1}.planned-dish .dish-actions{margin-top:auto;padding-top:0.5rem}.planned-dish .btn-sm{font-size:0.7rem;padding:0.2rem 0.5rem;background:transparent;border:1px solid var(--color-border);color:var(--color-subtle)}.planned-dish .btn-sm:hover{border-color:var(--color-accent);color:var(--color-accent)}.wizard-header h1{font-size:1.5rem;margin-bottom:0.25rem}.wizard-header .text-subtle{color:var(--color-subtle);font-size:0.9rem}.wizard-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.wizard-footer .wizard-actions{display:flex;align-items:center;gap:0.75rem}.wizard-footer .save-status{font-size:0.85rem;color:var(--color-subtle)}.wizard-footer .save-status.saved{color:var(--color-accent)}@media (max-width:480px){.wizard-footer{flex-direction:column;gap:0.75rem}.wizard-footer .btn{width:100%;text-align:center}.wizard-footer .wizard-actions{width:100%;flex-direction:column}.wizard-footer .wizard-actions form{width:100%}}.week-picker{display:flex;align-items:center;justify-content:center;gap:0.5rem;margin:0.75rem 0}.week-nav-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-card);border:1px solid var(--color-border);border-radius:50%;color:var(--color-text);text-decoration:none;transition:all 0.15s}.week-nav-btn:hover{background:var(--color-accent);border-color:var(--color-accent);color:white}.week-option{padding:0.4rem 0.75rem;font-size:0.9rem;color:var(--color-subtle);text-decoration:none;border-radius:4px;transition:all 0.15s}a.week-option:hover{background:var(--color-bg);color:var(--color-text)}.week-option.current{font-weight:600;color:var(--color-heading);background:color-mix(in srgb,var(--color-accent) 10%,var(--color-card));border:1px solid var(--color-accent)}.week-option.current.this-week{background:var(--color-accent);color:white}.week-option.current small{font-weight:400;font-size:0.75rem;opacity:0.8}@media (max-width:600px){.week-picker{flex-wrap:wrap}.week-option:not(.current){display:none}}.existing-plans{margin-top:2rem}.plan-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin-top:1rem}.recent-plans .plan-list{display:flex;flex-wrap:wrap;gap:0.5rem;justify-content:center}.plan-card{display:flex;flex-direction:column;align-items:center;padding:0.5rem 1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;text-decoration:none;color:var(--color-accent);font-size:0.9rem;transition:all 0.15s}.plan-card:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 5%,var(--color-card))}.plan-card .plan-week{font-weight:500}.plan-card .plan-dishes{font-size:0.75rem;color:var(--color-subtle)}#add-dish-modal{position:fixed;inset:0;z-index:1000;background:var(--color-backdrop);align-items:center;justify-content:center}#add-dish-modal .modal-content{background:var(--color-card);border-radius:12px;max-width:400px;width:90%;max-height:80vh;overflow:auto}#add-dish-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}#add-dish-modal .modal-header h2{margin:0;font-size:1.1rem}#add-dish-modal .modal-close{background:transparent;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-subtle);line-height:1}#add-dish-modal .modal-close:hover{color:var(--color-text)}#add-dish-modal .modal-body{padding:1.25rem}#add-dish-modal .dish-options{display:flex;flex-direction:column;gap:1rem}#add-dish-modal .option{padding:1rem;background:var(--color-bg);border-radius:8px}#add-dish-modal .option h4{margin:0 0 0.25rem 0;font-size:0.95rem}#add-dish-modal .option p{margin:0 0 0.75rem 0;font-size:0.85rem;color:var(--color-subtle)}#add-dish-modal .form-select{width:100%;padding:0.5rem;margin-bottom:0.75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-card);color:var(--color-text)}.dish-picker-modal{max-width:500px;display:flex;flex-direction:column}.dish-picker-modal .modal-body{padding:0;flex:1;overflow:hidden;display:flex;flex-direction:column}.modal-tabs{display:flex;border-bottom:1px solid var(--color-border);padding:0 0.5rem;background:var(--color-bg)}.tab-btn{flex:1;padding:0.75rem 0.5rem;background:transparent;border:none;border-bottom:2px solid transparent;font-size:0.85rem;font-weight:500;color:var(--color-subtle);cursor:pointer;transition:all 0.2s;white-space:nowrap}.tab-btn:hover{color:var(--color-text)}.tab-btn.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.tab-panel{display:none;padding:1rem;flex:1;overflow-y:auto;max-height:50vh}.tab-panel.active{display:block}.build-option{text-align:center;padding:2rem 1.5rem}.build-option .option-icon{width:64px;height:64px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--color-accent) 10%,var(--color-card));border-radius:50%;color:var(--color-accent)}.build-option h4{margin:0 0 0.5rem 0;font-size:1.1rem;color:var(--color-heading)}.build-option p{margin:0 0 1.5rem 0;color:var(--color-subtle)}.dish-search{margin-bottom:1rem}.dish-search .form-input{width:100%;padding:0.6rem 0.75rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-card);color:var(--color-text);font-size:0.9rem}.dish-search .form-input:focus{outline:none;border-color:var(--color-accent)}.dish-list{display:flex;flex-direction:column;gap:0.5rem}.dish-item{display:flex;align-items:center;justify-content:space-between;padding:0.75rem;background:var(--color-bg);border-radius:6px;transition:background-color 0.15s}.dish-item:hover{background:color-mix(in srgb,var(--color-accent) 5%,var(--color-bg))}.dish-info{flex:1;min-width:0}.dish-title{display:block;font-weight:500;color:var(--color-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dish-subtitle{display:block;font-size:0.8rem;color:var(--color-subtle);margin-top:0.15rem}.loading-text,.empty-text,.error-text{text-align:center;padding:2rem 1rem;color:var(--color-subtle);font-size:0.9rem}.error-text{color:var(--color-error,#c53030)}.weekly-select-banner{background:var(--color-accent);color:white;padding:0.75rem 1rem;margin-bottom:1rem;border-radius:8px;position:sticky;top:0;z-index:100}.weekly-select-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto}.weekly-select-content span{font-weight:500}.weekly-select-content .btn-outline{color:white;border-color:white}.weekly-select-content .btn-outline:hover{background:white;color:var(--color-accent)}.card-selectable{display:flex;flex-direction:column;height:100%}.card-select-action{padding:0.75rem;border-top:1px solid var(--color-border);margin-top:auto}.card-select-action .btn-block{width:100%}.dish-picker-options{display:flex;flex-direction:column;gap:0.5rem;padding:0.5rem}.dish-picker-option{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--color-bg);border-radius:8px;text-decoration:none;color:var(--color-text);transition:all 0.15s}.dish-picker-option:hover{background:color-mix(in srgb,var(--color-accent) 10%,var(--color-bg))}.dish-picker-option .option-text{flex:1;min-width:0}.dish-picker-option .option-text h4{margin:0;font-size:1rem;color:var(--color-heading)}.dish-picker-option .option-text p{margin:0.25rem 0 0 0;font-size:0.85rem;color:var(--color-subtle)}.dish-picker-option .option-arrow{font-size:1.25rem;color:var(--color-subtle);flex-shrink:0}.dish-picker-option:hover .option-arrow{color:var(--color-accent)}.weekly-landing{max-width:700px;margin:0 auto}.weekly-header{margin-bottom:1.5rem}.weekly-header.centered{text-align:center}.weekly-header h1{font-size:1.75rem;margin-bottom:0.25rem}.weekly-header .intro-text{color:var(--color-subtle);font-size:1rem}.today-section{margin-bottom:2rem}.today-label{font-size:1rem;font-weight:500;color:var(--color-subtle);margin-bottom:0.75rem}.today-dish-card{background:var(--color-card);border:2px solid var(--color-accent);border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}@media (min-width:500px){.today-dish-card{flex-direction:row;align-items:center;justify-content:space-between}}.today-dish-card.empty{border-color:var(--color-border);border-style:dashed;text-align:center;justify-content:center;padding:2rem}.today-dish-card .dish-info{flex:1}.today-dish-card .dish-title{font-size:1.35rem;font-weight:600;color:var(--color-accent);margin:0 0 0.25rem 0}.today-dish-card .dish-components{margin:0;font-size:0.95rem}.today-dish-card .no-dish-text{color:var(--color-subtle);margin:0 0 1rem 0}.week-overview h2{font-size:1rem;font-weight:500;color:var(--color-subtle);margin-bottom:0.75rem}.day-pills-row{display:grid;grid-template-columns:repeat(7,1fr);gap:0.5rem}@media (max-width:700px){.day-pills-row{grid-template-columns:repeat(4,1fr)}}@media (max-width:450px){.day-pills-row{grid-template-columns:repeat(3,1fr)}}.day-pill-card{display:flex;flex-direction:column;align-items:center;padding:0.6rem 0.4rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;text-decoration:none;color:var(--color-text);transition:all 0.15s;min-height:70px}.day-pill-card:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 5%,var(--color-card))}.day-pill-card.today{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 10%,var(--color-card))}.day-pill-card.past{opacity:0.6}.day-pill-card.has-dish{background:color-mix(in srgb,var(--color-accent) 8%,var(--color-card))}.day-pill-card .day-name{font-size:0.75rem;font-weight:600;color:var(--color-heading);text-transform:uppercase}.day-pill-card .day-date{font-size:0.7rem;color:var(--color-subtle);margin-bottom:0.25rem}.day-pill-card .dish-name{font-size:0.7rem;color:var(--color-text);text-align:center;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.day-pill-card .dish-name.empty{color:var(--color-subtle)}.quick-actions{display:flex;flex-wrap:wrap;gap:0.75rem;justify-content:center;margin-top:1.5rem}.action-link{padding:0.5rem 1rem;color:var(--color-accent);text-decoration:none;border:1px solid var(--color-border);border-radius:6px;font-size:0.9rem;transition:all 0.15s}.action-link:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 5%,var(--color-card))}.start-planning{text-align:center;padding:2rem 0}.empty-state-card{text-align:center;padding:3rem 2rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;max-width:400px;margin:2rem auto}.empty-state-card h1{font-size:1.5rem;margin:0 0 0.5rem 0;color:var(--color-accent)}.empty-state-card p{color:var(--color-subtle);margin:0 0 1.5rem 0}.empty-state-card .btn{min-width:200px}.recent-plans{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.recent-plans h2{font-size:1rem;font-weight:500;color:var(--color-subtle);margin-bottom:0.75rem}.daily-recipe-page{max-width:800px;margin:0 auto}.weekly-top-nav{display:flex;gap:1rem;flex-wrap:wrap}.weekly-top-nav .nav-link{color:var(--color-accent);text-decoration:none;font-size:0.9rem}.weekly-top-nav .nav-link:hover{text-decoration:underline}.day-pills-nav{display:flex;align-items:center;justify-content:center;gap:0.5rem}.day-pills-container{display:flex;gap:0.35rem;flex-wrap:wrap;justify-content:center}.day-nav-arrow{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--color-card);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none;transition:all 0.15s;flex-shrink:0}.day-nav-arrow:hover{border-color:var(--color-accent);color:var(--color-accent)}.day-nav-arrow.disabled{opacity:0.3;pointer-events:none}.day-nav-arrow svg{width:20px;height:20px}.day-pills-nav .day-pill{display:flex;flex-direction:column;align-items:center;padding:0.5rem 0.75rem;min-width:50px;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;text-decoration:none;color:var(--color-text);font-size:0.8rem;transition:all 0.15s}.day-pills-nav .day-pill:hover:not(.empty){border-color:var(--color-accent)}.day-pills-nav .day-pill.active{background:var(--color-accent);border-color:var(--color-accent);color:white}.day-pills-nav .day-pill.today:not(.active){border-color:var(--color-accent)}.day-pills-nav .day-pill.empty{opacity:0.5;cursor:default}.day-pills-nav .dish-dot{width:6px;height:6px;border-radius:50%;background:var(--color-accent);margin-top:0.25rem}.day-pills-nav .day-pill.active .dish-dot{background:white}@media (max-width:400px){.day-pills-nav .day-pill{padding:0.4rem 0.5rem;min-width:40px;font-size:0.7rem}.day-nav-arrow{width:32px;height:32px}}.daily-back-link{text-align:center;margin-top:0.75rem}.daily-back-link .btn-ghost{display:inline-flex;align-items:center;gap:0.25rem;font-size:0.9rem}.daily-back-link .btn-ghost svg{width:16px;height:16px}.daily-header{text-align:center}.daily-header .week-label{margin-bottom:0.25rem}.daily-header h1{font-size:1.75rem;margin:0}.component-recipe{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem}.component-recipe-header{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap;margin-bottom:1rem;padding-bottom:0.75rem;border-bottom:1px solid var(--color-border)}.component-recipe-header h2{margin:0;font-size:1.25rem}.servings-badge,.prep-badge{font-size:0.75rem;padding:0.2rem 0.5rem;border-radius:4px;background:var(--color-bg)}.prep-badge{background:color-mix(in srgb,var(--color-accent) 15%,var(--color-bg));color:var(--color-accent)}.prep-badge.ferdiglaget{background:var(--color-accent);color:white;font-weight:500}.ferdiglaget-card{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 5%,var(--color-card))}.ferdiglaget-body{padding:0.5rem 1rem}.ferdiglaget-body .reheat-info{margin:0;font-size:0.9rem;color:var(--color-subtle)}.recipe-ingredients{margin-bottom:1.5rem}.recipe-ingredients h3{font-size:1rem;margin-bottom:0.75rem;color:var(--color-heading)}.recipe-steps h3{font-size:1rem;margin-bottom:0.75rem;color:var(--color-heading)}.recipe-steps .step-note{font-size:0.8rem;font-weight:400;color:var(--color-subtle)}.recipe-step{display:flex;gap:1rem;padding:0.75rem 0;border-bottom:1px solid var(--color-border)}.recipe-step:last-child{border-bottom:none}.recipe-step .step-number{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:white;border-radius:50%;font-size:0.85rem;font-weight:600}.recipe-step .step-content{flex:1}.recipe-step .step-instruction{margin:0;line-height:1.5}.recipe-step .step-time{display:inline-block;margin-top:0.25rem;font-size:0.8rem;color:var(--color-subtle)}.recipe-actions{display:flex;gap:0.75rem;justify-content:center}.no-dishes-section h1{color:var(--color-heading)}@media print{.weekly-top-nav,.day-pills-nav,.daily-back-link,.recipe-actions{display:none !important}.component-recipe{break-inside:avoid;page-break-inside:avoid}}.prep-review{max-width:600px;margin:0 auto}.prep-header{text-align:center}.prep-header h1{margin-bottom:0.25rem}.opportunity-list{display:flex;flex-direction:column;gap:0.75rem}.prep-candidate{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;transition:all 0.15s}.prep-candidate.enabled{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,var(--color-card))}.prep-candidate .candidate-info h4{margin:0 0 0.25rem 0;font-size:1rem;color:var(--color-heading)}.prep-candidate .candidate-info p{margin:0;font-size:0.85rem}.prep-candidate .storage-info{margin-top:0.25rem}.toggle-prep{display:flex;align-items:center;gap:0.5rem;cursor:pointer;flex-shrink:0}.toggle-prep input[type="checkbox"]{width:20px;height:20px;accent-color:var(--color-accent);cursor:pointer}.toggle-prep .toggle-label{font-size:0.85rem;color:var(--color-subtle)}.prep-candidate.enabled .toggle-label{color:var(--color-accent);font-weight:500}.prep-mode-selector{display:flex;gap:1rem;margin-top:0.5rem}.prep-mode-option{display:flex;align-items:center;gap:0.35rem;font-size:0.85rem;color:var(--color-subtle);cursor:pointer}.prep-mode-option input[type="radio"]{accent-color:var(--color-accent)}.prep-mode-option input[type="radio"]:checked + span{color:var(--color-accent);font-weight:500}@media (max-width:480px){.prep-candidate{flex-direction:column;align-items:stretch;gap:0.75rem}.toggle-prep{justify-content:flex-end}}.prep-summary{text-align:center}.summary-stats{display:flex;justify-content:center;gap:2rem}.summary-stats .stat{display:flex;flex-direction:column;align-items:center}.summary-stats .stat-value{font-size:1.5rem;font-weight:600;color:var(--color-accent)}.summary-stats .stat-label{font-size:0.8rem;color:var(--color-subtle)}.no-opportunities .empty-state{text-align:center;padding:2rem;background:var(--color-card);border:1px dashed var(--color-border);border-radius:10px}.prep-footer{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}@media (max-width:480px){.prep-footer{flex-direction:column}.prep-footer .btn{width:100%;text-align:center}}.prep-day-page{max-width:800px;margin:0 auto}.prep-day-header{text-align:center}.prep-day-header h1{margin-bottom:0.25rem}.prep-batches{display:flex;flex-direction:column;gap:1.5rem}.prep-batch{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem}.batch-header{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem;margin-bottom:1rem;padding-bottom:0.75rem;border-bottom:1px solid var(--color-border)}.batch-header h2{margin:0;font-size:1.25rem}.batch-servings,.batch-usage{font-size:0.8rem;padding:0.2rem 0.5rem;background:var(--color-bg);border-radius:4px;color:var(--color-subtle)}.batch-steps{margin-bottom:1rem}.batch-completion{padding-top:1rem;border-top:1px solid var(--color-border)}.batch-completion .completion-text{margin:0;font-size:0.9rem;color:var(--color-subtle);font-style:italic}@media (max-width:480px){.prep-batch{padding:1rem}.batch-header h2{font-size:1.1rem}}.no-batches{text-align:center;padding:2rem;background:var(--color-card);border:1px dashed var(--color-border);border-radius:10px}.no-batches p{margin-bottom:1rem}.prep-day-footer{display:flex;justify-content:space-between;gap:1rem}@media (max-width:480px){.prep-day-footer{flex-direction:column}.prep-day-footer .btn{width:100%;text-align:center}}.shopping-list-page{max-width:600px;margin:0 auto}.shopping-header{text-align:center}.shopping-header h1{margin-bottom:0.25rem}.shopping-categories{display:flex;flex-direction:column;gap:1.5rem}.category-group{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1rem 1.25rem}.category-name{font-size:1rem;font-weight:600;color:var(--color-accent);margin:0 0 0.75rem 0;padding-bottom:0.5rem;border-bottom:1px solid var(--color-border)}.shopping-items{list-style:none;margin:0;padding:0}.shopping-item{display:flex;align-items:center;gap:0.75rem;padding:0.5rem 0;border-bottom:1px solid var(--color-border)}.shopping-item:last-child{border-bottom:none;padding-bottom:0}.shopping-item:first-child{padding-top:0}.shopping-item.checked{opacity:0.5}.shopping-item.checked .item-name{text-decoration:line-through}.item-checkbox{display:flex;align-items:center;gap:0.75rem;cursor:pointer;flex:1;min-width:0}.item-checkbox input[type="checkbox"]{width:20px;height:20px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.item-content{display:flex;justify-content:space-between;align-items:center;flex:1;min-width:0;gap:0.5rem}.item-name{font-weight:500;color:var(--color-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-quantity{font-size:0.9rem;color:var(--color-text);white-space:nowrap;flex-shrink:0}.item-days{font-size:0.75rem;white-space:nowrap;flex-shrink:0}.shopping-progress{text-align:center}.shopping-progress-bar{height:6px;background:var(--color-border);border-radius:3px;overflow:hidden;margin-bottom:0.5rem}.shopping-progress-bar .progress-fill{height:100%;background:var(--color-accent);transition:width 0.3s ease}.shopping-progress-text{font-size:0.85rem;margin:0}.shopping-footer{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.empty-list{text-align:center;padding:2rem;background:var(--color-card);border:1px dashed var(--color-border);border-radius:10px}.empty-list p{margin-bottom:1rem}@media (max-width:480px){.shopping-footer{flex-direction:column}.shopping-footer .btn{width:100%;text-align:center}.item-content{flex-direction:column;align-items:flex-start;gap:0.15rem}.item-days{display:none}}.add-from-builder-banner{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;margin:1rem 0;background:var(--color-accent);color:white;border-radius:var(--border-radius-md)}.add-from-builder-banner .banner-content{flex:1;min-width:0}.add-from-builder-banner .banner-content strong{display:block;font-size:1.1rem;margin-bottom:0.15rem}.add-from-builder-banner .banner-content p{margin:0;font-size:0.9rem;opacity:0.9}.add-from-builder-banner .btn-outline{color:white;border-color:white;flex-shrink:0}.add-from-builder-banner .btn-outline:hover{background:white;color:var(--color-accent)}@media (max-width:600px){.add-from-builder-banner{flex-direction:column;text-align:center;gap:0.75rem}.add-from-builder-banner .btn-outline{width:100%}}.week-grid.add-mode .day-column.clickable-day{cursor:pointer;transition:all 0.15s}.week-grid.add-mode .day-column.clickable-day:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,var(--color-card));transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.1)}.week-grid.add-mode .empty-slot{border-style:solid;border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 5%,var(--color-bg))}.week-grid.add-mode .add-hint{color:var(--color-accent);font-weight:500;font-size:0.9rem}