:root,[data-theme=light]{--bg:#f0fdf4;--surface:#fff;--surface-elev:#f8fffe;--border:#e2e8f0;--border-subtle:#f1f5f9;--text:#0f172a;--text-muted:#64748b;--text-subtle:#94a3b8;--primary:#15803d;--primary-rgb:21, 128, 61;--primary-bg:#dcfce7;--primary-border:#86efac;--primary-text:#fff;--danger:#dc2626;--danger-rgb:220, 38, 38;--shadow:0 1px 2px #0000000a, 0 2px 8px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-primary:0 6px 20px #15803d47;--control-bg:var(--surface-elev);--control-border:var(--border);--control-radius:.75rem;--control-padding-y:.75rem;--control-padding-x:.875rem;--control-focus-ring:0 0 0 3px var(--primary-bg);--flat-card-bg:var(--surface);--flat-card-border:var(--border);--flat-card-radius:.875rem;--flat-card-shadow:none;--flat-card-shadow-hover:0 6px 14px #0000000f;--font-family:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:9999px;--sidebar-width:180px;--primary-hover:#166534;--secondary:#22c55e;--bg-color:var(--bg);--bg-gradient:none;--card-bg:var(--surface);--card-hover-bg:var(--surface-elev);--dropdown-bg:var(--surface);--text-main:var(--text);--text-secondary:var(--text-muted);--border-color:var(--border);--border-light:var(--border-subtle);--border-hover:var(--primary-border);--bg-input:var(--surface);--bg-main:var(--bg);--bg-card:var(--surface);--text-dim:var(--text-muted);--accent-gradient:linear-gradient(135deg, var(--primary), var(--primary-hover));--body-bg-gradient:none;--shadow-primary-hover:0 8px 24px #15803d57;--btn-text:var(--primary-text);--favorite-bg:var(--danger);--favorite-bg-rgb:var(--danger-rgb);--favorite-text:#fff;--theme-color:var(--primary)}:root{--screen-pad-x:1rem;--screen-pad-top:1.5rem;--screen-pad-bottom:6rem;--screen-gap:1rem;--cat-green:#10b981;--cat-amber:#f59e0b;--cat-red:#ef4444;--cat-cyan:#06b6d4;--cat-earth:#a16207;--cat-wheat:#ca8a04;--cat-blue:#3b82f6;--cat-teal:#14b8a6;--cat-pink:#ec4899;--cat-orange:#f97316;--cat-slate:#64748b}@media (width>=768px){:root{--screen-pad-x:1.5rem;--screen-pad-bottom:2rem}}@media (width>=1200px){:root{--screen-pad-x:2rem}}[data-theme=dark]{--bg:#0f172a;--surface:#1e293b;--surface-elev:#263548;--border:#2d4060;--border-subtle:#1e3346;--text:#f1f5f9;--text-muted:#94a3b8;--text-subtle:#475569;--primary:#22c55e;--primary-rgb:34, 197, 94;--primary-bg:#14532d;--primary-border:#166534;--primary-text:#0f172a;--danger:#f87171;--danger-rgb:248, 113, 113;--shadow:0 1px 2px #0000004d, 0 2px 8px #0003;--shadow-md:0 4px 16px #00000059;--shadow-primary:0 6px 20px #22c55e40;--control-bg:var(--surface-elev);--control-border:var(--border);--control-radius:.75rem;--control-padding-y:.75rem;--control-padding-x:.875rem;--control-focus-ring:0 0 0 3px var(--primary-bg);--flat-card-bg:var(--surface);--flat-card-border:var(--border);--flat-card-radius:.875rem;--flat-card-shadow:none;--flat-card-shadow-hover:0 6px 14px #0003;--font-family:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--primary-hover:#16a34a;--secondary:#4ade80;--bg-color:var(--bg);--bg-gradient:none;--card-bg:var(--surface);--card-hover-bg:var(--surface-elev);--dropdown-bg:var(--surface);--text-main:var(--text);--text-secondary:var(--text-muted);--border-color:var(--border);--border-light:var(--border-subtle);--border-hover:var(--primary-border);--bg-input:var(--surface-elev);--bg-main:var(--bg);--bg-card:var(--surface);--text-dim:var(--text-muted);--accent-gradient:linear-gradient(135deg, var(--primary), var(--primary-hover));--body-bg-gradient:none;--shadow-primary-hover:0 8px 24px #22c55e4d;--btn-text:var(--primary-text);--favorite-bg:var(--danger);--favorite-bg-rgb:var(--danger-rgb);--favorite-text:#fff;--theme-color:var(--primary)}[data-theme=paper-sienna]{--bg:#e6d3a0;--surface:#fbf2d5;--surface-elev:#fff8e1;--border:#b59668;--border-subtle:#d9c291;--text:#22180c;--text-muted:#6a5530;--text-subtle:#9a855a;--primary:#a8352d;--primary-rgb:168, 53, 45;--primary-bg:#f6dcc9;--primary-border:#cf7a6a;--primary-text:#fff8e1;--danger:#8a2a20;--danger-rgb:138, 42, 32;--shadow:0 1px 0 #ffffffa6 inset, 0 1px 2px #50371429, 0 8px 20px #5037141f;--shadow-md:0 1px 0 #ffffffa6 inset, 0 2px 4px #5037142e, 0 16px 34px #50371433;--shadow-primary:0 6px 22px #a8352d47;--control-bg:var(--surface-elev);--control-border:var(--border);--control-radius:.5rem;--control-padding-y:.75rem;--control-padding-x:.875rem;--control-focus-ring:0 0 0 3px var(--primary-bg);--flat-card-bg:var(--surface);--flat-card-border:var(--border);--flat-card-radius:.75rem;--flat-card-shadow:none;--flat-card-shadow-hover:0 6px 14px #5037141f;--font-family:"Source Serif 4", "Iowan Old Style", "Hoefler Text", "Palatino Linotype", Palatino, Georgia, serif;--font-display:"Caveat", "Kalam", "Bradley Hand", "Marker Felt", "Segoe Script", cursive;--font-ui:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:9999px;--primary-hover:#8a271f;--secondary:#c65a44;--bg-color:var(--bg);--bg-gradient:none;--card-bg:var(--surface);--card-hover-bg:var(--surface-elev);--dropdown-bg:var(--surface);--text-main:var(--text);--text-secondary:var(--text-muted);--border-color:var(--border);--border-light:var(--border-subtle);--border-hover:var(--primary-border);--bg-input:var(--surface-elev);--bg-main:var(--bg);--bg-card:var(--surface);--text-dim:var(--text-muted);--accent-gradient:linear-gradient(135deg, var(--primary), #c4533b);--body-bg-gradient:radial-gradient(ellipse at 12% -10%, #eedcab 0%, transparent 55%), radial-gradient(ellipse at 110% 8%, #d9bb7c 0%, transparent 55%);--shadow-primary-hover:0 10px 28px #a8352d57;--btn-text:var(--primary-text);--favorite-bg:var(--danger);--favorite-bg-rgb:var(--danger-rgb);--favorite-text:#fff8e1;--theme-color:var(--primary)}[data-theme=paper-sienna] body{letter-spacing:0;font-optical-sizing:auto;font-feature-settings:"kern", "liga", "onum";background-attachment:fixed;line-height:1.65}[data-theme=paper-sienna] button,[data-theme=paper-sienna] input,[data-theme=paper-sienna] select,[data-theme=paper-sienna] textarea{font-family:var(--font-ui)}[data-theme=paper-sienna] body:before{content:"";pointer-events:none;z-index:9999;opacity:.4;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.28  0 0 0 0 0.20  0 0 0 0 0.10  0 0 0 0.60 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");background-size:240px 240px;position:fixed;inset:0}[data-theme=paper-sienna] h1,[data-theme=paper-sienna] h2,[data-theme=paper-sienna] h3,[data-theme=paper-sienna] h4{font-family:var(--font-display);font-variation-settings:normal;letter-spacing:0;color:var(--primary);line-height:1.1}[data-theme=paper-sienna] h1{font-size:3rem;font-weight:700}[data-theme=paper-sienna] h2{font-size:2.1rem;font-weight:700}[data-theme=paper-sienna] h3{font-size:1.6rem;font-weight:600}[data-theme=paper-sienna] h4{font-size:1.3rem;font-weight:600}[data-theme=paper-sienna] .surface,[data-theme=paper-sienna] .surface-elev,[data-theme=paper-sienna] .glass{background-color:var(--surface);border:1px solid var(--border);box-shadow:0 1px 0 #ffffffa6 inset, var(--shadow);background-image:repeating-linear-gradient(#0000 0 27px,#4b78a524 27px 28px);background-position:0 .75rem}*{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:inherit}body{font-family:var(--font-family);background-color:var(--bg);background-image:var(--body-bg-gradient);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em;min-height:100vh;line-height:1.6;overflow-x:hidden}h1{color:var(--text);letter-spacing:-.02em;margin-bottom:.5rem;font-size:2.5rem;font-weight:800}h2{color:var(--text);letter-spacing:-.01em;margin-bottom:1rem;font-size:1.5rem;font-weight:700}h3{color:var(--text);margin-bottom:.5rem;font-size:1.25rem;font-weight:600}p{color:var(--text-muted)}.surface{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.surface-elev{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.elevation-sm{box-shadow:var(--shadow)}.elevation-md{box-shadow:var(--shadow-md)}.elevation-primary{box-shadow:var(--shadow-primary)}.glass{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.glass-blur{-webkit-backdrop-filter:none}input[type=text]{color:var(--text);box-shadow:none;background:0 0;border:none;flex:1;padding:.5rem .75rem;font-family:inherit;font-size:1.05rem}input[type=text]:focus{box-shadow:none;background:0 0;outline:none}button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0}@keyframes fadeInScale{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes staggerFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.loading,.error,.empty{text-align:center;color:var(--text-muted);background:var(--surface);border-radius:var(--radius-lg);border:1px dashed var(--border);padding:4rem 2rem;font-size:1.1rem}.loading{animation:2s ease-in-out infinite pulse}.no-spinners::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.no-spinners::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.no-spinners{appearance:textfield}.nutrition-inline-input{color:var(--text);text-align:center;background:#0000000a;border:none;border-radius:2px;outline:none;margin:0;padding:0;font-weight:600}[data-theme=dark] .nutrition-inline-input{background:#ffffff14}.nutrition-macro-input{border-radius:2px}.nutrition-macro-input.small{width:24px;font-size:.65rem}.nutrition-macro-input.normal{width:32px;font-size:.75rem}.nutrition-calorie-input{width:40px;color:var(--primary);outline:1px solid rgba(var(--primary-rgb), .2);border-radius:4px;padding:2px 4px;font-size:.85rem;font-weight:700}.rd-cta-row{justify-content:center;margin-top:2rem;display:flex}.rd-cta-btn{color:#fff;cursor:pointer;letter-spacing:.01em;background:#15803d;border:none;border-radius:12px;justify-content:center;align-items:center;padding:.875rem 2.5rem;font-size:1rem;font-weight:700;text-decoration:none;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex;box-shadow:0 4px 14px #15803d59}.rd-cta-btn:hover{filter:none;background:#166534;transform:translateY(-1px);box-shadow:0 6px 20px #15803d73}.rd-cta-btn:active{transform:translateY(0);box-shadow:0 2px 8px #15803d4d}[data-theme=fresh-dark] .rd-cta-btn{color:#052e16;background:#22c55e}[data-theme=fresh-dark] .rd-cta-btn:hover{color:#fff;background:#16a34a}.condensed-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;display:flex}.condensed-toggle-label{color:var(--text-muted);font-size:.875rem;font-weight:600}.condensed-toggle-track{background-color:var(--border-color);border-radius:9999px;width:2.75rem;height:1.5rem;transition:background-color .3s;position:relative}.condensed-toggle-track.active{background-color:var(--primary)}.condensed-toggle-thumb{background-color:#fff;border-radius:50%;width:1.25rem;height:1.25rem;transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;top:.125rem;left:.125rem;box-shadow:0 2px 4px #0003}.condensed-toggle-track.active .condensed-toggle-thumb{transform:translate(1.25rem)}.discover-header{justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem 1rem 0;display:flex}.discover-header-right{align-items:center;gap:1.25rem;display:flex}.header-add-button{background-color:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:9999px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.875rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 4px 12px #8b5cf633}.header-add-button:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 6px 16px #8b5cf64d}.header-add-button:active{transform:translateY(0);box-shadow:0 2px 8px #8b5cf633}.header-add-button span.material-symbols-outlined{font-size:1.25rem}.app-container{flex-direction:column;width:100%;max-width:1400px;min-height:100vh;margin:0 auto;display:flex;position:relative}@media (width>=768px){.app-container.has-sidebar{max-width:none;margin:0}}header{margin-bottom:2rem;animation:.6s cubic-bezier(.16,1,.3,1) fadeInDown}.hero-text{text-align:center;margin-bottom:2.5rem;font-size:1.1rem}.search-container{margin:0 auto;position:relative}.search-bar{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:24px;flex-direction:column;gap:.5rem;padding:.5rem;transition:all .3s cubic-bezier(.25,.8,.25,1);display:flex;box-shadow:inset 0 2px 4px #0000001a}.search-bar:focus-within{border-color:var(--primary);background-color:#0f1115f2;box-shadow:0 0 0 4px #8b5cf626,inset 0 2px 4px #0000001a}.selected-tags{flex-wrap:wrap;gap:.5rem;padding:.25rem;display:flex}.tag-removable{cursor:pointer;align-items:center;gap:.4rem;padding:.25rem .6rem;font-size:.7rem;display:flex}.tag-removable .remove{opacity:.6;font-size:1rem;line-height:1}.tag-removable:hover{color:#f9a8d4;background-color:#ec489933;border-color:#ec489966}.autocomplete-dropdown.glass{background-color:var(--dropdown-bg)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.autocomplete-dropdown{z-index:9999;border-radius:12px;max-height:250px;list-style:none;animation:.2s ease-out fadeInScale;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden auto;box-shadow:0 20px 50px -12px #00000080,0 4px 6px -1px #0003}.autocomplete-dropdown li{cursor:pointer;border-bottom:1px solid #ffffff08;padding:.75rem 1.25rem;transition:all .2s}.autocomplete-dropdown li:last-child{border-bottom:none}.autocomplete-dropdown li:hover{color:var(--primary-hover);background:#8b5cf633;padding-left:1.5rem}.fab-container{justify-content:flex-end;width:100%;margin-bottom:.5rem;display:flex}.fab-actions{gap:1rem;display:flex}.fab-action{background:var(--card-bg);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;border-radius:9999px;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-size:.95rem;font-weight:600;transition:all .3s cubic-bezier(.25,.8,.25,1);display:flex;box-shadow:0 4px 15px #0003}.fab-action:hover{background:#8b5cf626;border-color:#8b5cf666;box-shadow:0 6px 20px #8b5cf640}.fab-action:active{transform:scale(.97)}.fab-action-label{order:2}.fab-action-icon{order:1;align-items:center;font-size:1.1rem;display:flex;position:relative}.fab-main{display:none}.create-fab{bottom:calc(5rem + env(safe-area-inset-bottom,0px));background:var(--primary);width:3.5rem;height:3.5rem;color:var(--primary-text);box-shadow:var(--shadow-primary);z-index:50;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:transform .15s,box-shadow .15s,filter .15s;display:flex;position:fixed;right:1.25rem}.create-fab:hover{filter:brightness(1.05);box-shadow:var(--shadow-primary-hover)}.create-fab:active{transform:scale(.96)}@media (width>=769px){.create-fab{display:none}}@media (width<=768px){.app-container{max-width:100%}header{text-align:center;margin-bottom:1rem}h1{font-size:1.8rem}.hero-text{margin-bottom:1rem;font-size:.95rem}.search-bar{max-width:100%}.recipe-screen{padding:1.25rem}.recipe-screen:first-child{padding-top:1.25rem}.recipe-screen h1{margin-bottom:1rem;font-size:1.75rem}.recipe-screen .tags{margin-bottom:1.25rem}.recipe-images{gap:.75rem;margin-bottom:1.5rem}.recipe-images img{height:200px}.section{margin-top:1.25rem}.section-header{flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:1rem}.header-actions{justify-content:space-between;width:100%}.back-btn{width:1.75rem;height:1.75rem;font-size:1.1rem}.ingredient-list{grid-template-columns:1fr}.fab-container{z-index:2000;flex-direction:column;align-items:flex-end;gap:.75rem;position:fixed;top:auto;bottom:5.5rem;right:1.5rem}.fab-actions{pointer-events:none;opacity:0;flex-direction:column;align-items:flex-end;gap:.65rem;transition:opacity .22s,transform .22s cubic-bezier(.16,1,.3,1);transform:translateY(12px)scale(.95)}.fab-container.open .fab-actions{pointer-events:auto;opacity:1;transform:translateY(0)scale(1)}.fab-action{white-space:nowrap;padding:.6rem 1rem .6rem 1.1rem;font-size:.9rem}.fab-action:hover{filter:brightness(1.1)}.fab-action:active{transform:scale(.97)}.fab-action-label{order:1}.fab-action-icon{order:2;font-size:1.15rem}.fab-main{background:var(--accent-gradient);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:3.25rem;height:3.25rem;font-size:1.25rem;transition:all .3s cubic-bezier(.25,.8,.25,1);display:flex;box-shadow:0 8px 28px #8b5cf680}.fab-main:hover{filter:brightness(1.1);transform:scale(1.05);box-shadow:0 12px 35px #8b5cf6a6}.fab-main:active{filter:brightness(.9);transform:scale(.95)}.fab-container.open .fab-main{transform:rotate(90deg)}.fab-container.open .fab-main:hover{filter:brightness(1.1);transform:rotate(90deg)scale(1.05)}.fab-main-icon{line-height:1;transition:transform .22s}}.shopping-list-overlay{-webkit-backdrop-filter:blur(4px);z-index:1000;opacity:0;visibility:hidden;background:#0009;transition:all .3s;position:fixed;inset:0}.shopping-list-overlay.open{opacity:1;visibility:visible}.shopping-list-drawer{z-index:1001;background-color:color-mix(in srgb, var(--bg-color) 95%, transparent);-webkit-backdrop-filter:blur(24px);flex-direction:column;width:100%;max-width:400px;height:100vh;transition:right .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;right:-400px;box-shadow:-4px 0 25px #0000004d}.shopping-list-drawer.open{right:0}.shopping-list-header{border-bottom:1px solid var(--border-color);z-index:10;background-color:color-mix(in srgb, var(--bg-color) 80%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;padding:1.5rem;display:flex;position:sticky;top:0}.shopping-list-header h2{color:var(--text-main);margin:0;font-size:1.25rem;font-weight:700;line-height:1.2}.shopping-list-subtitle{color:var(--text-muted);margin:.25rem 0 0;font-size:.875rem}.drawer-close-btn{color:var(--text-muted);cursor:pointer;box-shadow:none;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.drawer-close-btn:hover{background:color-mix(in srgb, var(--text-main) 10%, transparent);color:var(--text-main);transform:none}.shopping-list-content{flex-direction:column;flex:1;gap:1.5rem;padding:1.5rem;display:flex;overflow-y:auto}.shopping-progress-container{flex-direction:column;gap:.5rem;display:flex}.progress-header{justify-content:space-between;align-items:center;font-size:.875rem;display:flex}.progress-label{color:var(--text-main);font-weight:500}.progress-percent{color:var(--primary);font-weight:700}.progress-bar-bg{background-color:var(--border-color);border-radius:9999px;width:100%;height:.5rem;overflow:hidden}.progress-bar-fill{background-color:var(--primary);border-radius:9999px;height:100%;transition:width .4s}.shopping-actions-row{justify-content:flex-end;display:flex}.clear-list-btn{color:#ef4444;cursor:pointer;box-shadow:none;background:0 0;border:none;align-items:center;gap:.25rem;padding:0;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.clear-list-btn:hover{color:#b91c1c;transform:none}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:3rem 1rem;display:flex}.empty-state p{margin:0;font-weight:500}.shopping-items-list{flex-direction:column;gap:1.5rem;display:flex}.shopping-group{flex-direction:column;gap:.5rem;display:flex}.shopping-category-header{text-transform:uppercase;letter-spacing:.05em;color:var(--primary);opacity:.9;align-items:center;gap:.6rem;margin-bottom:.25rem;padding:0 .5rem;font-size:.8rem;font-weight:800;display:flex}.shopping-list-item{background-color:var(--card-bg);border:1px solid var(--border-color);cursor:pointer;border-radius:1rem;align-items:center;margin-bottom:.5rem;padding:1rem;transition:all .2s;display:flex}.shopping-list-item:hover{border-color:var(--border-hover);box-shadow:0 4px 12px #0000000d}.shopping-list-item.checked{background-color:rgba(var(--primary-rgb), .05);border-color:rgba(var(--primary-rgb), .2)}.custom-checkbox-container{flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:flex;position:relative}.peer-checkbox{opacity:0;cursor:pointer;z-index:2;width:100%;height:100%;margin:0;position:absolute;inset:0}.custom-checkbox-box{border:2px solid var(--border-color);background-color:var(--card-bg);z-index:1;border-radius:.25rem;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;transition:all .2s;display:flex;position:relative}.peer-checkbox:checked+.custom-checkbox-box{background-color:var(--primary);border-color:var(--primary)}.custom-check-mark{color:#fff;opacity:0;font-size:1rem;font-weight:900;transition:opacity .2s}.peer-checkbox:checked+.custom-checkbox-box .custom-check-mark{opacity:1}.item-details-container{opacity:1;flex:1;justify-content:space-between;align-items:center;margin-left:.75rem;transition:opacity .3s;display:flex}.group-checked .item-details-container{opacity:.6}.item-name{color:var(--text-main);font-weight:500;transition:color .3s}.group-checked .item-name{color:var(--text-muted);text-decoration:line-through}.item-actions-group{align-items:center;gap:.5rem;display:flex}.item-amount-pill{color:var(--primary);background-color:rgba(var(--primary-rgb), .1);border-radius:8px;padding:.2rem .6rem;font-size:.85rem;font-weight:600}.item-remove-icon{color:var(--text-muted);cursor:pointer;width:1.5rem;height:1.5rem;box-shadow:none;opacity:0;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.shopping-list-item:hover .item-remove-icon{opacity:1}.item-remove-icon:hover{color:#ef4444;background-color:#ef44441a;transform:scale(1.1)}.shopping-list-toggle{background:var(--primary);color:#fff;cursor:pointer;z-index:100;border:none;border-radius:9999px;align-items:center;gap:.5rem;padding:1rem 1.5rem;font-size:1.05rem;font-weight:600;transition:all .3s cubic-bezier(.25,.8,.25,1);display:flex;position:fixed;bottom:5.5rem;right:1.5rem;box-shadow:0 8px 25px #8b5cf666}.shopping-list-toggle:hover{background:var(--primary-hover);box-shadow:0 12px 30px #8b5cf680}.shopping-list-toggle:active{transform:scale(.97);box-shadow:0 4px 15px #8b5cf666}.shopping-list-badge{color:var(--primary);text-align:center;background:#fff;border-radius:99px;min-width:1.5rem;padding:.15rem .5rem;font-size:.8rem;font-weight:700;box-shadow:0 2px 5px #0003}.bottom-nav{border-top:1px solid var(--border-color);background-color:var(--bg-color);width:100%;padding-bottom:env(safe-area-inset-bottom,20px);z-index:40;position:fixed;bottom:0;left:0}.bottom-nav-inner{justify-content:space-around;align-items:center;width:100%;max-width:500px;height:4rem;margin:0 auto;padding:0 .5rem;display:flex}.nav-item{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.25rem;text-decoration:none;transition:color .2s;display:flex}.nav-item:hover,.nav-item.active{color:var(--primary)}.nav-icon-container{justify-content:center;align-items:center;height:2rem;display:flex;position:relative}.nav-item.active .nav-icon-container{background-color:rgba(var(--primary-rgb), .2);width:3rem;box-shadow:0 0 0 2px var(--bg-color), 0 0 0 4px var(--primary);border-radius:9999px}.nav-label{font-size:.625rem;font-weight:500}.nav-item.active .nav-label{font-weight:700}.fab-placeholder{width:1rem}@media (width>=769px){.bottom-nav{display:none!important}}.auth-screen{z-index:1000;background-color:var(--bg-main);flex-direction:column;justify-content:flex-start;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.auth-card{background:var(--bg-card);border:1px solid var(--border-light);text-align:center;border-radius:24px;flex-shrink:0;width:100%;max-width:400px;margin-block:auto;padding:40px 32px;box-shadow:0 12px 32px #0000001a}.auth-header{margin-bottom:32px}.logo-icon{color:var(--primary);margin-bottom:16px;font-size:48px}.auth-header h1{color:var(--text-main);margin-bottom:8px;font-size:24px;font-weight:800}.auth-header p{color:var(--text-dim);font-size:14px}.form-group{text-align:left;margin-bottom:20px}.form-group label{color:var(--text-dim);margin-bottom:8px;padding-left:4px;font-size:13px;font-weight:600;display:block}.form-group input{width:100%;padding:var(--control-padding-y) var(--control-padding-x);border-radius:var(--control-radius);border:1px solid var(--control-border);background:var(--control-bg);color:var(--text-main);font-size:16px;transition:border-color .12s,box-shadow .12s}.form-group input:focus{border-color:var(--primary);box-shadow:var(--control-focus-ring);outline:none}.auth-submit-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;margin-top:12px;padding:16px;font-size:16px;font-weight:700;transition:opacity .2s}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-footer{color:var(--text-dim);margin-top:24px;font-size:14px}.auth-footer a{color:var(--primary);font-weight:600;text-decoration:none}.auth-error{color:#ff5252;background:#ff00001a;border:1px solid #f003;border-radius:8px;margin-bottom:20px;padding:12px;font-size:13px}.auth-success{color:#4caf50;background:#4caf501a;border:1px solid #4caf5033;border-radius:8px;margin-bottom:20px;padding:12px;font-size:13px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:1s linear infinite spin}.success-icon{color:#4caf50}.error-icon{color:#ff5252}.discover-screen{width:100%;max-width:none;padding:var(--screen-pad-top) var(--screen-pad-x) var(--screen-pad-bottom);gap:var(--screen-gap);flex-direction:column;margin:0;display:flex}.discover-header-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.discover-title{color:var(--text-main);letter-spacing:-.01em;margin:0;font-size:1.5rem;font-weight:700}.discover-add-btn{background:var(--primary);color:var(--primary-text);cursor:pointer;box-shadow:var(--shadow-primary);border:none;border-radius:9999px;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.85rem;font-weight:600;transition:transform .12s,box-shadow .12s;display:inline-flex}.discover-add-btn:hover{transform:translateY(-1px)}.discover-add-btn .material-symbols-outlined{font-size:1.125rem}.discover-search-row{z-index:40}.discover-filter-bar{margin:.75rem 0 .5rem}.discover-results-label{color:var(--text-secondary,var(--text-color));margin:.5rem 0 .25rem;font-size:.95rem;font-weight:600}.bottom-nav .nav-item{box-shadow:none;cursor:pointer;background:0 0;border:none;border-radius:0;font-family:inherit}.bottom-nav .nav-item:hover{box-shadow:none;filter:none}.nav-badge{background:var(--danger);color:#fff;border-radius:9999px;justify-content:center;align-items:center;min-width:1rem;height:1rem;padding:0 .25rem;font-size:.625rem;font-weight:700;display:inline-flex;position:absolute;top:-4px;right:-8px}@media (width>=768px){.bottom-nav{display:none}}.planner-filter-banner{background:var(--primary-bg,#f3f3f3);color:var(--text,inherit);border-radius:8px;align-items:center;gap:12px;margin-bottom:12px;padding:8px 12px;font-size:.9rem;display:flex}.banner-clear-btn{border:1px solid var(--primary-border,#ccc);color:var(--primary,inherit);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:.85rem}.banner-clear-btn:hover{background:var(--surface-elev,#eee)}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding-bottom:2rem;transition:opacity .3s,filter .3s;animation:.8s cubic-bezier(.16,1,.3,1) forwards staggerFadeIn;display:grid}.recipe-grid.grid-loading{opacity:.6;filter:grayscale(30%);pointer-events:none}.recipe-card{border-radius:var(--flat-card-radius);background-color:var(--flat-card-bg);cursor:pointer;border:1px solid var(--flat-card-border);box-shadow:var(--flat-card-shadow);flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.recipe-card:hover{border-color:rgba(var(--primary-rgb), .3);box-shadow:var(--flat-card-shadow-hover)}.recipe-image-container{aspect-ratio:4/3;width:100%;position:relative;overflow:hidden}.recipe-image-placeholder{background-position:50%;background-size:cover;background-image:linear-gradient(135deg, rgba(var(--primary-rgb), .1), rgba(var(--primary-rgb), .3));transition:transform .4s;position:absolute;inset:0}.recipe-card:hover .recipe-image-placeholder{transform:scale(1.03)}.recipe-favorite-btn{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#64748b;cursor:pointer;z-index:10;background-color:#ffffffeb;border:1px solid #0000000d;border-radius:9999px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:0;transition:transform .2s,background-color .2s,color .2s;display:flex;position:absolute;top:.75rem;right:.75rem}[data-theme*=dark] .recipe-favorite-btn{color:#94a3b8;background-color:#1e293be6;border-color:#ffffff1a}.recipe-favorite-btn:hover{color:var(--favorite-bg);transform:scale(1.08)}.recipe-favorite-btn:active{transform:scale(.95)}.recipe-favorite-btn.active{background-color:var(--favorite-bg);color:var(--favorite-text);border-color:var(--favorite-bg)}.recipe-favorite-btn.active .material-symbols-outlined{font-variation-settings:"FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24}.recipe-favorite-btn .material-symbols-outlined{font-size:20px}.recipe-time-badge{color:#fff;background-color:#0000008c;border-radius:9999px;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:600;display:flex;position:absolute;bottom:.75rem;left:.75rem}.recipe-card-body{flex-direction:column;flex:1;gap:.5rem;padding:1rem;display:flex}.recipe-title{color:var(--text-main);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1rem;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.recipe-cuisine{color:var(--primary);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.recipe-meta{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.meta-dot{background-color:var(--border-color);border-radius:9999px;width:.25rem;height:.25rem}.recipe-card-footer{margin-top:auto;padding-top:.25rem}.quick-add-btn{background-color:var(--primary-bg);width:100%;color:var(--primary);border:1px solid var(--primary-border);cursor:pointer;border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;padding:.625rem;font-size:.875rem;font-weight:600;transition:background-color .2s,color .2s,border-color .2s;display:flex}.quick-add-btn:hover,.recipe-card:hover .quick-add-btn{background-color:var(--primary);color:var(--btn-text);border-color:var(--primary)}.quick-add-btn:active{transform:scale(.97)}.ingredient-multi-select{width:100%;position:relative}.ingredient-multi-select__control{min-height:2.75rem;color:var(--text-main);background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--control-radius);align-items:center;padding:.375rem .75rem;transition:border-color .12s,box-shadow .12s;display:flex;position:relative}.ingredient-multi-select__control:focus-within{border-color:var(--primary);box-shadow:var(--control-focus-ring)}.ingredient-multi-select--with-icon .ingredient-multi-select__control{padding-left:2.5rem}.ingredient-multi-select__search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:.875rem;transform:translateY(-50%);font-size:1.125rem!important}.ingredient-multi-select__values{flex-wrap:wrap;flex:1;align-items:center;gap:.375rem;min-width:0;display:flex}.ingredient-multi-select__chip{min-height:0;color:var(--primary);background:var(--primary-bg);border:1px solid var(--primary-border,transparent);font:inherit;cursor:pointer;border-radius:9999px;align-items:center;gap:.25rem;padding:.2rem .45rem .2rem .625rem;font-size:.8rem;font-weight:650;display:inline-flex}.ingredient-multi-select__chip .material-symbols-outlined{font-size:.9rem}.ingredient-multi-select__chip:disabled{opacity:.6;cursor:not-allowed}.ingredient-multi-select .ingredient-multi-select__input{width:auto;min-width:9rem;min-height:1.8rem;color:var(--text-main);box-shadow:none;font:inherit;background:0 0;border:0;border-radius:0;outline:none;flex:1;padding:.2rem 0;font-size:.95rem}.ingredient-multi-select .ingredient-multi-select__input:focus{box-shadow:none;border:0}.ingredient-multi-select__popover{z-index:50;background:var(--surface-elev,var(--surface));border:1px solid var(--border);border-radius:.75rem;max-height:19rem;padding:.3rem;position:absolute;top:calc(100% + .3rem);left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #00000024}.ingredient-multi-select__options{margin:0;padding:0;list-style:none}.ingredient-multi-select__options button{width:100%;min-height:0;color:var(--text-main);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.5rem;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.55rem .7rem;display:flex}.ingredient-multi-select__options button:hover,.ingredient-multi-select__options button.is-active{color:var(--primary);background:var(--primary-bg)}.ingredient-multi-select__option-name{font-size:.9rem;font-weight:650}.ingredient-multi-select__option-meta{color:var(--text-muted);font-size:.72rem}.ingredient-multi-select__status{color:var(--text-muted);padding:.75rem;font-size:.84rem}.filter-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.25,.8,.25,1);display:inline-flex;box-shadow:0 1px 2px #0000000a}.filter-chip:hover:not(.disabled){border-color:var(--primary-border);background:var(--surface-elev);box-shadow:0 2px 6px #0000000f}.filter-chip.active{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary);box-shadow:0 2px 6px rgb(var(--primary-rgb) / .14)}.filter-chip.active:hover:not(.disabled){box-shadow:0 3px 8px rgb(var(--primary-rgb) / .18);filter:brightness(1.02)}.filter-chip.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.filter-chip-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;display:inline-flex}.filter-chip-label{flex-grow:0}.filter-chip-count{border-radius:var(--radius-pill);background:rgba(var(--primary-rgb), .15);min-width:1.5rem;height:1.5rem;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;padding:0 .375rem;font-size:.75rem;font-weight:600;display:inline-flex}.filter-chip.active .filter-chip-count{background:rgba(var(--primary-rgb), .25)}.filter-chip-group{-webkit-overflow-scrolling:touch;gap:.75rem;padding:.375rem .125rem .75rem;display:flex;overflow:auto hidden}.filter-chip-group::-webkit-scrollbar{height:4px}.filter-chip-group::-webkit-scrollbar-track{background:0 0}.filter-chip-group::-webkit-scrollbar-thumb{background:rgba(var(--primary-rgb), .2);border-radius:var(--radius-pill)}.filter-chip-group::-webkit-scrollbar-thumb:hover{background:rgba(var(--primary-rgb), .3)}.filter-chip:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (width<=640px){.filter-chip{padding:.5rem 1rem;font-size:.8125rem}.filter-chip-count{min-width:1.25rem;height:1.25rem;font-size:.7rem}.filter-chip-group{-webkit-overflow-scrolling:touch;gap:.5rem}}.quick-add-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;background:#00000073;justify-content:center;align-items:flex-end;transition:opacity .18s;display:flex;position:fixed;inset:0}.quick-add-overlay.open{opacity:1;pointer-events:auto}.quick-add-modal{background:var(--card-bg);border:1px solid var(--border-color);border-bottom:none;border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:100%;max-height:92dvh;transition:transform .28s cubic-bezier(.32,.72,0,1);display:flex;position:relative;overflow:hidden;transform:translateY(100%)}.quick-add-overlay.open .quick-add-modal{transform:translateY(0)}.quick-add-modal:before{content:"";background:var(--border-color);z-index:2;border-radius:999px;width:36px;height:4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}@media (width>=600px){.quick-add-overlay{align-items:center;padding:2rem}.quick-add-modal{border-bottom:1px solid var(--border-color);opacity:0;border-radius:16px;max-width:460px;transition:opacity .2s,transform .22s cubic-bezier(.32,.72,0,1);transform:scale(.95)translateY(8px);box-shadow:0 4px 6px #00000012,0 20px 60px #00000047}.quick-add-overlay.open .quick-add-modal{opacity:1;transform:scale(1)translateY(0)}.quick-add-modal:before{display:none}}.modal-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 20px 14px;display:flex}.modal-title{color:var(--text-main);letter-spacing:-.2px;margin:0 0 3px;font-size:1.0625rem;font-weight:800}.modal-subtitle{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:280px;margin:0;padding-right:.5rem;font-size:.8125rem;line-height:1.35;overflow:hidden}.modal-close-btn{border:1.5px solid var(--border-color);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .14s,color .14s,border-color .14s;display:flex}.modal-close-btn:hover{background:rgba(var(--primary-rgb), .08);color:var(--text-main);border-color:var(--primary-border)}.modal-close-btn .material-symbols-outlined{font-size:18px!important}.section-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px;font-size:.6875rem;font-weight:700}.section-title.mb-0{margin-bottom:0}.week-navigation{align-items:center;gap:2px;display:flex}.week-nav-btn{border:1px solid var(--border-color);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:background .14s,color .14s,border-color .14s;display:flex}.week-nav-btn:hover{background:rgba(var(--primary-rgb), .08);color:var(--primary);border-color:var(--primary-border)}.week-nav-btn .material-symbols-outlined{font-size:18px!important}.week-label{color:var(--text-main);text-align:center;min-width:92px;padding:0 8px;font-size:.75rem;font-weight:600}.days-scroll-container{border-bottom:1px solid var(--border-color);padding:16px 20px}.days-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.days-row::-webkit-scrollbar{display:none}.day-btn{background:var(--surface-elev);border:1.5px solid var(--border-color);min-width:0;height:62px;color:var(--text-main);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 4px 12px;transition:background .14s,border-color .14s,color .14s;display:flex;position:relative}.day-btn:hover:not(.selected){border-color:var(--primary-border);background:rgba(var(--primary-rgb), .05)}.day-btn.selected{background:var(--primary);border-color:var(--primary);color:var(--primary-text);box-shadow:var(--shadow-primary,0 6px 20px rgba(var(--primary-rgb), .28))}.day-btn.past{opacity:.55}.day-btn.past.selected{opacity:1}.day-name{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.625rem;font-weight:700}.day-btn.selected .day-name{color:var(--primary-text);opacity:.85}.day-date{color:var(--text-main);font-size:1rem;font-weight:800;line-height:1}.day-btn.selected .day-date{color:var(--primary-text)}.day-btn.fully-planned:not(.selected){border-color:rgba(var(--primary-rgb), .45)}.meal-dot-breakfast,.meal-btn-breakfast{--meal-color:#f59e0b}.meal-dot-lunch,.meal-btn-lunch{--meal-color:#10b981}.meal-dot-dinner,.meal-btn-dinner{--meal-color:#6366f1}.meal-dot-snack,.meal-btn-snack{--meal-color:#ec4899}.day-indicators{justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;bottom:6px;left:0;right:0}.meal-dot{background:var(--border-color);border-radius:999px;width:5px;height:5px;transition:background .18s,transform .18s}.meal-dot.filled{background:var(--meal-color)}.day-btn.selected .meal-dot{background:#ffffff4d}.day-btn.selected .meal-dot.filled{background:var(--meal-color);box-shadow:0 0 0 1.5px #ffffffe6}.meals-grid-container{padding:16px 20px 18px}.meals-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.meal-btn{background:var(--surface-elev);border:1.5px solid var(--border-color);color:var(--text-main);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;transition:background .14s,border-color .14s,color .14s;display:flex;position:relative}.meal-count-badge{background:color-mix(in srgb, var(--meal-color) 18%, transparent);color:var(--meal-color);border-radius:999px;margin-left:auto;padding:2px 7px;font-size:.75rem;font-weight:700;line-height:1.2}.meal-btn.selected .meal-count-badge{background:var(--meal-color);color:#fff}.meal-btn:hover:not(.selected){border-color:color-mix(in srgb, var(--meal-color) 55%, transparent);background:color-mix(in srgb, var(--meal-color) 6%, transparent)}.meal-btn.selected{border-color:var(--meal-color);background:color-mix(in srgb, var(--meal-color) 12%, transparent);color:var(--meal-color)}.meal-icon-wrapper{background:color-mix(in srgb, var(--meal-color) 14%, transparent);width:32px;height:32px;color:var(--meal-color);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.meal-btn.selected .meal-icon-wrapper{background:var(--meal-color);color:#fff}.meal-icon-wrapper .material-symbols-outlined{font-size:18px!important}.meal-label{color:inherit;font-size:.875rem;font-weight:600}.meal-btn.selected .meal-label{font-weight:700}.servings-picker-container{justify-content:space-between;align-items:center;gap:16px;padding:0 20px 18px;display:flex}.servings-helper{color:var(--text-muted);margin:4px 0 0;font-size:.75rem;line-height:1.3}.servings-stepper{background:var(--surface-elev);border:1px solid var(--border-color);border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:4px;display:inline-flex}.servings-stepper-btn{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;transition:background .14s,color .14s;display:inline-flex}.servings-stepper-btn:hover{background:rgba(var(--primary-rgb), .1);color:var(--primary)}.servings-stepper-btn .material-symbols-outlined{font-size:18px!important}.servings-stepper-value{text-align:center;min-width:2rem;color:var(--text-main);font-size:1rem;font-weight:800}.modal-footer{padding:14px 20px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-color);background:var(--card-bg);flex-shrink:0}.confirm-btn{background:var(--primary);width:100%;height:46px;color:var(--primary-text);cursor:pointer;box-shadow:var(--shadow-primary,0 6px 20px rgba(var(--primary-rgb), .28));border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:.9375rem;font-weight:700;transition:filter .14s,box-shadow .14s,transform .1s;display:flex}.confirm-btn:hover{filter:brightness(1.05)}.confirm-btn:active{transform:scale(.99)}.confirm-btn:disabled{background:var(--surface-elev);color:var(--text-subtle);box-shadow:none;cursor:not-allowed;filter:none}.confirm-btn .material-symbols-outlined{font-size:18px!important}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);z-index:40;flex-direction:column;gap:1.5rem;height:100vh;padding:1.5rem .75rem;display:none;position:fixed;top:0;left:0}@media (width>=768px){.sidebar{display:flex}}.sidebar-brand{color:var(--primary);align-items:center;gap:.625rem;padding:0 .5rem;font-size:1.05rem;font-weight:700;display:flex}.sidebar-brand .material-symbols-outlined{font-size:1.5rem}.sidebar-nav{flex-direction:column;flex:1;gap:.25rem;display:flex}.sidebar-nav-item{color:var(--text-muted);border-radius:.5rem;align-items:center;gap:.75rem;padding:.625rem .75rem;font-size:.95rem;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar-nav-item:hover{background:var(--surface-elev);color:var(--text-main)}.sidebar-nav-item.active{background:var(--primary-bg);color:var(--primary)}.sidebar-nav-item .material-symbols-outlined{font-size:1.25rem}.sidebar-user{margin-top:auto;position:relative}.sidebar-user-button{border:1px solid var(--border);background:var(--surface-elev);width:100%;color:var(--text-main);cursor:pointer;border-radius:.5rem;align-items:center;gap:.625rem;padding:.625rem .75rem;font-size:.9rem;font-weight:500;transition:background .12s;display:flex}.sidebar-user-button:hover{background:var(--primary-bg)}.sidebar-user-avatar{color:var(--primary);font-size:1.375rem!important}.sidebar-user-label{text-align:left;flex:1}.sidebar-user-chevron{color:var(--text-muted);font-size:1.125rem!important}.sidebar-user-menu{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:50;border-radius:.5rem;position:absolute;bottom:calc(100% + .5rem);left:0;right:0;overflow:hidden}.sidebar-menu-item{width:100%;box-shadow:none;color:var(--text-main);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;align-items:center;gap:.625rem;padding:.625rem .875rem;font-size:.9rem;transition:background .12s;display:flex}.sidebar-menu-item:hover{background:var(--surface-elev);box-shadow:none;filter:none}.sidebar-menu-item .material-symbols-outlined{color:var(--text-muted);font-size:1.125rem}.sidebar-menu-item-danger,.sidebar-menu-item-danger .material-symbols-outlined{color:var(--danger)}@media (width>=768px){.app-container.has-sidebar main{padding-left:var(--sidebar-width)}.app-container.has-sidebar .editor-wizard-footer{left:var(--sidebar-width)}}.mtcg-wrap{flex-direction:column;gap:.5rem;width:100%;display:flex}.mtcg-label-row{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.mtcg-label{color:var(--text);font-size:.875rem;font-weight:600}.mtcg-helper{color:var(--text-muted,#64748b);font-size:.75rem}.mtcg-chips{flex-wrap:wrap;gap:.5rem;display:flex}.mtcg-chip{border:1px solid var(--border);border-radius:var(--radius-pill,9999px);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:.4rem;padding:.5rem 1rem;font-family:inherit;font-size:.8125rem;font-weight:500;transition:all .18s cubic-bezier(.25,.8,.25,1);display:inline-flex}.mtcg-chip:hover:not(:disabled){border-color:var(--primary-border);background:var(--surface-elev,var(--surface))}.mtcg-chip--active{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary);box-shadow:0 2px 6px rgb(var(--primary-rgb) / .14)}.mtcg-chip--active:hover:not(:disabled){filter:brightness(1.02)}.mtcg-chip:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.mtcg-chip:disabled{opacity:.5;cursor:not-allowed}.mtcg-chip-icon{flex-shrink:0;font-size:1rem}
