:root{--bg:#fafafa;--surface:#fff;--text:#262626;--text-secondary:#8e8e8e;--border:#e8e8e8;--accent:#d6336c;--accent-hover:#b02a5b;--accent-tint:#fbe7ee;--danger:#e03131;--shadow-sm:0 1px 2px #0000000a, 0 1px 1px #00000008;--shadow-md:0 8px 24px #00000014, 0 2px 6px #0000000a;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-full:999px;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}#root{min-height:100svh}h1,h2,h3{font-family:var(--sans);color:var(--text);margin:0;font-weight:700}p{margin:0;line-height:1.5}a{color:inherit}button{font-family:inherit}img{max-width:100%;display:block}.app-shell{max-width:1080px;margin:0 auto;padding:0 1.5rem 4rem}.app-header{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#fafafad9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding:1.1rem 0;display:flex;position:sticky;top:0}.app-header h1{letter-spacing:-.02em;background:linear-gradient(135deg, var(--accent), #f77f00);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.4rem}.app-header nav{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.logout-link{cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-full);background:0 0;border:none;padding:.5rem .9rem;font-family:inherit;font-size:.92rem;font-weight:600}.logout-link:hover{background:var(--accent-tint);color:var(--accent)}.login-screen{justify-content:center;align-items:center;min-height:100svh;padding:1.5rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-md);text-align:center;flex-direction:column;gap:1rem;padding:2.5rem 2rem;display:flex}.login-title{background:linear-gradient(135deg, var(--accent), #f77f00);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.5rem}.login-subtitle{color:var(--text-secondary);margin-bottom:.5rem;font-size:.9rem}.login-card input{border:1px solid var(--border);border-radius:var(--radius-full);text-align:center;padding:.7rem .9rem;font-size:.95rem}.login-card input:focus{border-color:var(--accent);outline:none}.login-card .button{justify-content:center}.app-header nav a{color:var(--text-secondary);border-radius:var(--radius-full);padding:.5rem .9rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.app-header nav a:hover{background:var(--accent-tint);color:var(--accent)}.app-header nav a.active{background:var(--text);color:var(--surface)}.offline-banner{color:#8a6300;border-radius:var(--radius-md);background:#fff8e6;border:1px solid #ffe8a3;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.9rem}.scaling-note{background:var(--accent-tint);color:var(--accent);border-radius:var(--radius-md);margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.9rem;font-weight:600}.scaling-note a{text-decoration:underline}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.page-header h2{letter-spacing:-.01em;font-size:1.6rem}.editable-title{align-items:center;gap:.5rem;display:flex}.editable-title button{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;padding:.2rem .35rem;font-size:1rem;line-height:1}.editable-title button:hover{background:var(--accent-tint);color:var(--accent)}.rename-form{flex-wrap:wrap;flex:1;gap:.5rem;display:flex}.rename-form input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:12rem;color:var(--text);flex:1;padding:.5rem .8rem;font-family:inherit;font-size:1.1rem;font-weight:700}.rename-form input:focus,.rename-form select:focus{border-color:var(--accent);outline:none}.rename-form select,.rename-form input[type=date]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:.5rem .7rem;font-family:inherit;font-size:.9rem;font-weight:400}.rename-form input[type=date]{flex:0 auto;min-width:0}.button{border-radius:var(--radius-full);background:var(--accent);color:#fff;cursor:pointer;border:none;align-items:center;gap:.4rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.button:hover:not(:disabled){background:var(--accent-hover)}.button:active:not(:disabled){transform:scale(.97)}.button:disabled{color:var(--text-secondary);cursor:default;background:#e8e8e8}.button.danger{color:var(--danger);background:0 0;border:1px solid #f3c2c2}.button.danger:hover:not(:disabled){background:#fff0f0}.button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.button.secondary:hover:not(:disabled){background:var(--accent-tint);color:var(--accent)}.actions{flex-wrap:wrap;gap:.6rem;display:flex}.filters{flex-wrap:wrap;gap:.75rem;margin-bottom:1.75rem;display:flex}.filters select,.filters input{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.55rem .9rem;font-size:.88rem}.filters select:focus,.filters input:focus{border-color:var(--accent);outline:none}.error{color:var(--danger);font-weight:600}.success{color:var(--success,#2e7d32);font-weight:600}.badge{border-radius:var(--radius-full);background:var(--accent-tint);color:var(--accent);text-transform:uppercase;letter-spacing:.03em;padding:.25rem .7rem;font-size:.75rem;font-weight:700;display:inline-block}.tags{color:var(--text-secondary);font-size:.85rem}.tag-list{flex-wrap:wrap;gap:.4rem;display:flex}.tag-chip{border-radius:var(--radius-full);background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);padding:.22rem .65rem;font-size:.76rem;font-weight:600;display:inline-block}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.5rem;display:grid}.recipe-card{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s;display:block;position:relative;overflow:hidden}.recipe-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}a.recipe-card,.recipe-card a{color:inherit;text-decoration:none;display:block}.recipe-card img{aspect-ratio:1;object-fit:cover;width:100%;transition:transform .35s;display:block}.recipe-card:hover img{transform:scale(1.04)}.recipe-card-body{flex-direction:column;gap:.4rem;padding:.9rem 1rem 1.1rem;display:flex}.recipe-card-body h3{margin:0;font-size:1rem;font-weight:700;line-height:1.3}.recipe-card .add-to-list{border-radius:var(--radius-full);background:var(--text);color:#fff;text-align:center;cursor:pointer;border:none;width:calc(100% - 2rem);margin:0 1rem 1rem;padding:.5rem;font-size:.82rem;font-weight:600;display:block}.back-link{margin-bottom:1rem}.recipe-hero{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:1.5rem;overflow:hidden}.recipe-hero img{object-fit:cover;width:100%;max-height:420px}.recipe-images{border-radius:var(--radius-lg);gap:.6rem;margin-bottom:1.5rem;display:flex;overflow-x:auto}.recipe-images img{border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;height:200px}.recipe-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.5rem;font-size:.92rem;display:flex}.recipe-section{margin-top:2rem}.recipe-section h3{margin-bottom:.8rem;font-size:1.05rem}.ingredient-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.ingredient-list li{background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border);align-items:baseline;gap:.5rem;padding:.6rem .9rem;font-size:.94rem;display:flex}.ingredient-list .qty{color:var(--accent);min-width:4.5rem;font-weight:700}.recipe-instructions{white-space:pre-wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.2rem 1.4rem;font-size:.98rem;line-height:1.7}.form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:640px;box-shadow:var(--shadow-sm);flex-direction:column;gap:1.1rem;padding:1.75rem;display:flex}.form label{color:var(--text);flex-direction:column;gap:.35rem;font-size:.88rem;font-weight:600;display:flex}.batch-generate-fields{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.batch-generate-fields label{flex:1;min-width:140px}.form input,.form select,.form textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);padding:.65rem .85rem;font-family:inherit;font-size:.95rem;font-weight:400}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--accent);background:var(--surface);outline:none}.field-hint{color:var(--text-secondary);font-size:.8rem;font-weight:400;line-height:1.4}.ingredient-row{grid-template-columns:minmax(90px,2fr) minmax(70px,1fr) minmax(70px,1fr) auto;gap:.5rem;margin-bottom:.5rem;display:grid}.new-ingredient-category{background:var(--accent-tint);border-radius:var(--radius-sm);color:var(--accent);align-items:center;gap:.5rem;margin:-.2rem 0 .7rem;padding:.5rem .7rem;font-size:.8rem;font-weight:600;display:flex}.new-ingredient-category select{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text);padding:.3rem .5rem;font-size:.8rem;font-weight:400}.autocomplete{position:relative}.autocomplete input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:.55rem .7rem;font-family:inherit;font-size:.88rem}.autocomplete-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:20;max-height:220px;margin:0;padding:.3rem;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.autocomplete-list li{margin:0}.autocomplete-list button{text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:space-between;gap:.5rem;width:100%;padding:.5rem .6rem;font-size:.85rem;display:flex}.autocomplete-list button:hover{background:var(--accent-tint)}.autocomplete-category{color:var(--text-secondary);font-size:.72rem}.autocomplete-create{color:var(--accent);font-weight:600}.ingredient-row input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .7rem;font-family:inherit;font-size:.88rem}.ingredient-row button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:1rem}fieldset{border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem}legend{padding:0 .4rem;font-size:.85rem;font-weight:700}.image-thumb{flex-direction:column;align-items:center;gap:.4rem;display:flex}.image-thumb img{object-fit:cover;border-radius:var(--radius-sm);width:120px;height:90px}.image-thumb button{border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;color:var(--text-secondary);background:0 0;padding:.25rem .7rem;font-size:.75rem}.plan-list{flex-direction:column;gap:.75rem;padding:0;list-style:none;display:flex}.plan-list a{color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem 1.2rem;text-decoration:none;transition:box-shadow .15s,transform .15s;display:block}.plan-list a:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:460px;max-height:calc(100vh - 2rem);box-shadow:var(--shadow-md);flex-direction:column;display:flex;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);align-items:flex-start;gap:1rem;padding:1.25rem 1.4rem .9rem;display:flex}.modal-header h3{flex:1;font-size:1.05rem;line-height:1.35}.modal-header button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.modal-header button:hover{color:var(--text)}.modal-body{flex-direction:column;gap:.9rem;padding:1.25rem 1.4rem;display:flex}.modal-field{color:var(--text);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}.modal-field input,.modal-field select,.modal-field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);padding:.6rem .8rem;font-family:inherit;font-size:.92rem;font-weight:400}.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{border-color:var(--accent);background:var(--surface);outline:none}.modal-field textarea{resize:vertical}.modal-inline-create{background:var(--accent-tint);border-radius:var(--radius-sm);gap:.5rem;padding:.8rem;display:flex}.modal-inline-create input{border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;min-width:0;padding:.5rem .7rem;font-family:inherit;font-size:.88rem}.modal-confirmation{color:var(--accent);font-size:.92rem;font-weight:600}.modal-hint{color:var(--text-secondary);font-size:.85rem}.modal-actions{flex-wrap:wrap;gap:.6rem;padding:0 1.4rem 1.4rem;display:flex}.modal-actions .button{flex:auto;justify-content:center}.badge.status-active{background:var(--accent-tint);color:var(--accent)}.badge.status-inactive{background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.list-badges{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.list-locked{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);margin-top:.9rem;padding:.7rem .9rem;font-size:.85rem}.list-row-period{border-radius:var(--radius-full);background:var(--accent-tint);color:var(--accent);margin-left:.5rem;padding:.15rem .55rem;font-size:.76rem;font-weight:700}.list-row-dates{color:var(--text-secondary);flex-wrap:wrap;gap:.15rem .9rem;margin:.35rem 0 0;padding:0;font-size:.78rem;list-style:none;display:flex}.list-preview{flex-direction:column;gap:.4rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.list-preview li{border-left:2px solid var(--border);flex-direction:column;gap:.1rem;padding-left:.7rem;display:flex}.list-preview-title{font-size:.9rem}.list-preview-meta{color:var(--accent);font-size:.8rem;font-weight:600}.list-preview-comment{color:var(--text-secondary);font-size:.8rem;font-style:italic}.list-timestamps{color:var(--text-secondary);margin:.7rem 0 0;padding:0;font-size:.85rem;list-style:none}.list-recipe-items{flex-direction:column;gap:1rem;margin-top:1.25rem;display:flex}.list-recipe-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);gap:1rem;padding:1rem;display:flex}.list-recipe-item img{object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;width:96px;height:96px}.list-recipe-item-body{flex:1;min-width:0}.list-recipe-item-header{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.list-recipe-item-header a{color:var(--text);text-decoration:none}.list-recipe-item-header button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:1rem}.list-recipe-item-header button:hover{color:var(--danger)}.list-recipe-item-fields{grid-template-columns:repeat(3,1fr);gap:.7rem;display:grid}.list-recipe-item-fields label{color:var(--text-secondary);flex-direction:column;gap:.3rem;font-size:.78rem;font-weight:600;display:flex}.list-recipe-item-fields input,.list-recipe-item-fields select,.list-recipe-item-fields textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);padding:.45rem .6rem;font-family:inherit;font-size:.85rem;font-weight:400}.list-recipe-item-fields input:disabled,.list-recipe-item-fields select:disabled,.list-recipe-item-fields textarea:disabled{color:var(--text-secondary);cursor:default;background:#f5f5f5}.list-recipe-item-note{color:var(--text-secondary);margin-top:.65rem;font-size:.8rem}.list-recipe-item-comment{grid-column:1/-1}.list-recipe-item-comment textarea{resize:vertical}.admin-intro{color:var(--text-secondary);max-width:60ch;margin-bottom:1.25rem;font-size:.9rem}.admin-visuals{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.admin-visual-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.admin-visual-card img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.admin-visual-body{flex-direction:column;align-items:flex-start;gap:.5rem;padding:.9rem;display:flex}.admin-visual-upload{cursor:pointer}.admin-visual-upload input{display:none}.dispatch-items{flex-direction:column;gap:.9rem;display:flex}.dispatch-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem 1rem}.dispatch-item-main{flex-wrap:wrap;align-items:baseline;gap:.4rem;display:flex}.dispatch-item-qty{color:var(--accent);font-size:.9rem;font-weight:700}.dispatch-warnings{border-radius:var(--radius-md);color:#8a6300;background:#fff8e6;border:1px solid #ffe8a3;margin:1.25rem 0;padding:1rem 1.2rem;font-size:.88rem}.dispatch-warnings ul{margin:.5rem 0 .9rem;padding-left:1.2rem}.dispatch-warnings li{margin-bottom:.25rem}.dispatch-item-sources{color:var(--text-secondary);margin-top:.3rem;font-size:.8rem}.channel-picker{gap:.5rem;margin-top:.8rem;display:flex}.channel-option{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-secondary);cursor:pointer;flex-direction:column;flex:1;align-items:center;gap:.3rem;padding:.6rem .4rem;font-family:inherit;font-size:.76rem;font-weight:600;display:flex}.channel-option svg{width:26px;height:26px}.channel-option:hover{border-color:var(--accent);color:var(--accent)}.channel-option.selected{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.channel-option.danger:hover{border-color:var(--danger);color:var(--danger);background:#fff0f0}.shopping-channel{margin-bottom:2rem}.shopping-channel-title{border-bottom:2px solid var(--border);align-items:center;gap:.5rem;margin-bottom:.9rem;padding-bottom:.5rem;font-size:1.1rem;display:flex}.channel-badge svg{width:22px;height:22px;display:block}.shopping-channel-export{margin-left:auto;padding:.4rem .75rem;font-size:.85rem}.shopping-channel-hint{color:var(--text-secondary);margin:-.5rem 0 .9rem;font-size:.82rem}.shopping-category{margin-bottom:1.1rem}.shopping-category h4{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin:0 0 .45rem;font-size:.76rem}.shopping-articles{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.shopping-articles li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.shopping-articles label{cursor:pointer;align-items:flex-start;gap:.7rem;padding:.65rem .85rem;display:flex}.shopping-articles input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0;margin-top:.1rem}.shopping-article-body{flex-direction:column;gap:.2rem;min-width:0;display:flex}.shopping-article-name{font-size:.94rem}.shopping-article-total{color:var(--accent);margin-left:.5rem;font-weight:700}.shopping-article-sources{color:var(--text-secondary);flex-direction:column;font-size:.78rem;display:flex}.shopping-articles li.purchased{background:var(--bg)}.shopping-articles li.purchased .shopping-article-body{color:#b0b0b0;text-decoration:line-through}.shopping-articles li.purchased .shopping-article-total{color:#b0b0b0}.shopping-add-article{grid-template-columns:minmax(90px,2fr) minmax(70px,1fr) minmax(70px,1fr) auto;align-items:start;gap:.5rem;margin-top:.6rem;display:grid}.shopping-add-article input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);padding:.5rem .7rem;font-family:inherit;font-size:.85rem}.shopping-add-article .button{padding:.5rem .9rem;font-size:.82rem}.table-scroll{-webkit-overflow-scrolling:touch;margin-bottom:1.75rem;overflow-x:auto}.shopping-list-table{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;overflow:hidden}.shopping-list-table th,.shopping-list-table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem;font-size:.9rem}.shopping-list-table thead th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;background:#fbfbfb;font-size:.78rem;font-weight:700}.shopping-list-table tr:last-child td{border-bottom:none}.shopping-list-table tr.purchased td{color:#b0b0b0;text-decoration:line-through}.shopping-list-table select{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg);padding:.4rem .6rem;font-size:.82rem}.shopping-list-table input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.shopping-list-table button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:.95rem}.shopping-list-table button:hover{color:var(--danger)}.channel-export{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-top:1.25rem;padding:1.25rem 1.5rem}.channel-export h3{margin-bottom:.5rem;font-size:1rem}.channel-export p{color:var(--text-secondary);margin-bottom:.8rem;font-size:.88rem}.channel-export ul{margin:0;padding-left:1.2rem}.home-hero{text-align:center;padding:3rem 1rem 2.5rem}.home-hero h2{letter-spacing:-.02em;margin-bottom:.6rem;font-size:2.1rem}.home-hero p{color:var(--text-secondary);max-width:480px;margin:0 auto;font-size:1.02rem}.home-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.25rem;margin-top:2rem;display:grid}.home-card{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;flex-direction:column;align-items:center;gap:.6rem;padding:1.75rem 1rem;text-decoration:none;transition:box-shadow .15s,transform .15s;display:flex}.home-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.home-card .icon{font-size:1.8rem}.home-card strong{font-size:.95rem}.home-status{color:var(--text-secondary);margin-top:2.5rem;font-size:.82rem}.home-status strong{color:var(--accent)}@media (width<=640px){.app-shell{padding:0 1rem 3rem}.app-header{gap:.6rem;padding:.9rem 0}.app-header h1{font-size:1.15rem}.app-header nav{gap:.15rem;width:100%}.app-header nav a,.logout-link{padding:.4rem .6rem;font-size:.85rem}.page-header{flex-direction:column;align-items:stretch}.page-header h2{font-size:1.3rem}.actions{width:100%}.actions .button{flex:auto;justify-content:center}.recipe-hero img{max-height:260px}.recipe-images img{height:130px}.recipe-instructions{padding:1rem}.shopping-list-table th,.shopping-list-table td{padding:.6rem .7rem;font-size:.85rem}.shopping-list-table select{padding:.35rem .5rem;font-size:.78rem}.list-recipe-item{flex-direction:column}.list-recipe-item img{width:100%;height:160px}.list-recipe-item-fields{grid-template-columns:1fr 1fr}.channel-option{padding:.5rem .2rem;font-size:.68rem}.channel-option svg{width:22px;height:22px}.shopping-add-article{grid-template-columns:1fr 1fr}.shopping-add-article>.autocomplete{grid-column:1/-1}}.ingredient-mode-toggle{margin-bottom:1.25rem}.ingredient-mode-toggle.active{background:var(--accent-tint);color:var(--accent);border-color:var(--accent)}.ingredient-search{align-items:flex-start}.ingredient-multi-picker{flex:100%}.ingredient-multi-picker .tag-list{margin-bottom:.6rem}.tag-chip button{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;margin-left:.35rem;padding:0;font-size:.95rem;line-height:1}.tag-chip button:hover{opacity:1}.badge-success{color:#2f9e44;background:#ebfbee}.recipe-section-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.recipe-section-header h3{margin:0}.cook-mode-servings{align-items:center;gap:.6rem;margin-bottom:1rem;font-size:.95rem;display:flex}.cook-mode-servings button{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);cursor:pointer;width:2rem;height:2rem;font-size:1.1rem;line-height:1}.cook-mode-servings button:hover{background:var(--accent-tint);color:var(--accent)}.cook-mode-toggle-ingredients{margin-bottom:1rem}.cook-mode-ingredients{margin-bottom:1.5rem}.cook-mode-step{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:1.5rem}.cook-mode-progress{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin:0 0 1rem;font-size:.85rem;font-weight:700}.cook-mode-step-text{min-height:4.5rem;font-size:1.25rem;line-height:1.6}.cook-mode-nav{justify-content:space-between;gap:1rem;margin-top:1.5rem;display:flex}@media (width<=640px){.cook-mode-step-text{font-size:1.1rem}}
