*{box-sizing:border-box} :root{--bg:#f4f6f8;--surface:#fff;--surface2:#eef1f4;--text-primary:#18212b;--text-secondary:#687482;--primary-color:#2563eb;--accent:#2563eb;--danger:#dc2626;--border:#dfe4ea;--shadow:0 8px 28px rgba(16,24,40,.08)}
body{margin:0;background:var(--bg);color:var(--text-primary);font:15px/1.45 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,
input,
select,
textarea{font:inherit}button{cursor:pointer;border:0}h1,
h2,
h3,
p{margin:0}h2{font-size:1.7rem}h3{font-size:1.05rem}.hidden{display:none!important}
.topbar{position:sticky;top:0;z-index:20;height:72px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:10px 18px}.topbar small{color:var(--text-secondary);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.topbar h1{font-size:1.1rem}.icon-button{width:40px;height:40px;border-radius:10px;background:var(--surface2);color:var(--text-primary);font-size:20px}
#side-menu{position:fixed;z-index:40;inset:0 auto 0 0;width:290px;background:#fff;transform:translateX(-105%);transition:transform .22s ease;box-shadow:var(--shadow);display:flex;flex-direction:column}#side-menu.open{transform:none}#side-menu-overlay{position:fixed;z-index:35;inset:0;background:rgba(0,0,0,.32);display:none}#side-menu-overlay.open{display:block}.side-header{padding:18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);font-size:1.2rem}.side-header strong{letter-spacing:.04em}.side-menu nav{padding:10px}.menu-item{width:100%;display:flex;gap:12px;align-items:center;text-align:left;padding:13px 16px;background:transparent;border-radius:10px;color:var(--text-primary);margin:3px 0}.menu-item.active{background:#eaf0ff;color:var(--primary-color)}.side-footer{margin-top:auto;padding:12px;border-top:1px solid var(--border)}
main{max-width:1100px;margin:0 auto;padding:24px 18px 60px}.app-view{display:none}.app-view.active{display:block}.view-intro{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:22px}.view-intro p{color:var(--text-secondary);margin-top:5px}.eyebrow{display:block;font-size:.7rem;letter-spacing:.12em;font-weight:800;color:var(--primary-color);margin-bottom:4px}
.primary-button,
.secondary-button,
.danger-outline{border-radius:9px;padding:10px 14px;font-weight:700;white-space:nowrap}.primary-button{background:var(--primary-color);color:#fff}.secondary-button{background:var(--surface2);color:var(--text-primary);border:1px solid var(--border)}.danger-outline{background:transparent;color:var(--danger);border:1px solid #fecaca;margin-top:18px}.small-button{padding:7px 9px;font-size:.8rem}
.category-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:12px}.category-tab{padding:9px 14px;background:#e9edf2;border-radius:999px;color:var(--text-secondary);white-space:nowrap}.category-tab.active{background:var(--primary-color);color:#fff}.drink-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.drink-card{min-height:115px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 3px 12px rgba(16,24,40,.04);transition:.15s}.drink-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.drink-card.checked{border-color:#93b4ff}.drink-card.pending{opacity:.75}.drink-name{font-weight:800;font-size:1.03rem;display:flex;justify-content:space-between;gap:8px}.drink-count{color:var(--primary-color)}.drink-ingredients{font-size:.78rem;color:var(--text-secondary);margin-top:9px}.drink-pending{font-size:.75rem;color:var(--primary-color);margin-top:12px}.drink-pending span{text-decoration:underline;font-weight:800}
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0}.metric,
.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 3px 12px rgba(16,24,40,.03)}.metric span{display:block;color:var(--text-secondary);font-size:.78rem}.metric strong{font-size:1.25rem;margin-top:4px;display:block}.progress-card{margin-top:10px}.card-heading,
.section-title,
.form-actions,
.manager-actions,
.calc-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.progress-track{height:9px;background:var(--surface2);border-radius:999px;overflow:hidden;margin:14px 0 7px}.progress-track>div{height:100%;background:var(--primary-color);width:0;transition:width .2s}.progress-card p,
.progress-card small{color:var(--text-secondary)}
.manager-list{display:flex;flex-direction:column;gap:9px}.manager-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px 14px}.manager-row-info{min-width:0;flex:1}.manager-row-info strong{display:block}.manager-row-info small{display:block;color:var(--text-secondary);margin-top:3px}.manager-actions{flex-shrink:0}.recipe-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.recipe-badge{font-size:.66rem;padding:3px 7px;border-radius:999px;background:var(--surface2);color:var(--text-secondary);font-weight:800}.recipe-badge.is-on-menu{background:#dcfce7;color:#166534}.recipe-badge.is-off-menu{background:#f1f5f9;color:#64748b}.empty-state{padding:30px;text-align:center;color:var(--text-secondary)}#stock-confirmation-banner{margin-bottom:12px;padding:12px 14px;border-radius:10px;background:#16a34a;color:white}.stock-manager-row{display:flex;justify-content:space-between;gap:18px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px}.stock-card-content{flex:1}.stock-progress-wrapper{height:7px;background:#edf0f3;border-radius:999px;overflow:hidden;margin-top:10px}.stock-progress-fill{height:100%;background:#10b981}.stock-actions-group{display:flex;flex-direction:column;gap:7px}.styled-action-btn{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff}.primary-action{background:var(--primary-color);color:#fff}.recipe-rule{margin-bottom:15px;display:flex;flex-direction:column;gap:4px}.recipe-rule span{color:var(--text-secondary);font-size:.88rem}
.modal{position:fixed;z-index:50;inset:0;background:rgba(0,0,0,.35);padding:20px;overflow:auto}.modal-panel{background:#fff;max-width:900px;margin:30px auto;border-radius:16px;padding:20px;box-shadow:var(--shadow)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.manager-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.form-stack{display:flex;flex-direction:column;gap:18px}.form-header p,
.editor-section p{color:var(--text-secondary);font-size:.84rem}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-stack label{display:flex;flex-direction:column;gap:5px;font-weight:700;font-size:.82rem}input:not(.kitcherette-document-field),
select:not(.kitcherette-document-field),
textarea:not(.kitcherette-document-field){width:100%;border:1px solid var(--border);border-radius:8px;padding:10px;background:#fff;color:var(--text-primary);font-weight:400}textarea{resize:vertical}.check-row{flex-direction:row!important;align-items:center;margin-top:24px}.check-row input{width:auto}.editor-section{border-top:1px solid var(--border);padding-top:16px}.section-title{align-items:flex-start;margin-bottom:10px}.editor-row{display:grid;gap:7px;margin-bottom:8px;align-items:center}.drink-ingredient-row{display:grid;grid-template-columns:1fr 130px 40px;gap:7px;margin-bottom:8px}.mise-row{grid-template-columns:1.2fr 100px 1fr 40px}.step-row{grid-template-columns:34px 1fr 1.6fr 90px 1fr 40px}.step-number{width:28px;height:28px;background:var(--surface2);border-radius:50%;display:grid;place-items:center;font-weight:800}.step-instruction{min-height:52px}.row-labels{display:grid;gap:7px;color:var(--text-secondary);font-size:.72rem;font-weight:800;margin-bottom:5px}.row-labels.three{grid-template-columns:1.2fr 100px 1fr}.calc-row{margin-top:10px;background:var(--surface2);border-radius:8px;padding:10px}.settings-panel{margin-top:15px}.settings-panel.hidden{display:none}
@media(max-width:700px){main{padding:18px 12px 40px}.view-intro{align-items:flex-start;flex-direction:column}.metrics-grid{grid-template-columns:repeat(2,1fr)}.manager-row,
.stock-manager-row{align-items:flex-start;flex-direction:column}.manager-actions,
.stock-actions-group{width:100%;flex-direction:row;flex-wrap:wrap}.manager-actions button,
.stock-actions-group button{flex:1}.form-grid.two{grid-template-columns:1fr}.drink-ingredient-row{grid-template-columns:1fr 90px 38px}.mise-row{grid-template-columns:1fr 80px 1fr 38px}.step-row{grid-template-columns:30px 1fr 70px 38px}.step-row .step-instruction,
.step-row .step-notes{grid-column:2/-1}.row-labels{display:none}.modal{padding:8px}.modal-panel{margin:8px auto;padding:14px}.topbar{height:64px}.recipe-rule{font-size:.9rem}}

/* Recipes is a first-class application view; its editor panel is inline rather than a popup. */
#view-recipes #menu-editor{display:block;position:static;background:transparent;padding:0;overflow:visible}#view-recipes #menu-editor.hidden{display:block!important}#view-recipes .modal-panel{max-width:none;margin:0;padding:0;background:transparent;box-shadow:none}#view-recipes .modal-header{display:none}

/* Cleaner service controls and recipe information */
.service-recipe-card{display:flex;flex-direction:column;justify-content:space-between;gap:14px;min-height:170px;padding:14px}.drink-name-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.recipe-info-button{width:30px;height:30px;min-width:30px;border-radius:50%;background:var(--surface2);color:var(--text-secondary);border:1px solid var(--border);font-weight:900;display:grid;place-items:center}.recipe-info-button:hover{background:#e2e8f0;color:var(--text-primary)}.service-controls{display:grid;grid-template-columns:1fr 70px 1fr;gap:8px;align-items:center}.service-qty-button{height:58px;border-radius:12px;font-size:2rem;font-weight:800;background:var(--surface2);border:1px solid var(--border);transition:background .12s,transform .12s,box-shadow .12s}.service-qty-button:active{transform:scale(.96)}.service-plus{color:#166534}.service-minus{color:#991b1b}.service-count{text-align:center;font-size:1.45rem;font-weight:900}.flash-positive{animation:flashPositive .26s ease}.flash-negative{animation:flashNegative .26s ease}@keyframes flashPositive{0%{background:#bbf7d0;box-shadow:0 0 0 0 rgba(22,163,74,.45)}100%{background:var(--surface2);box-shadow:0 0 0 12px rgba(22,163,74,0)}}@keyframes flashNegative{0%{background:#fecaca;box-shadow:0 0 0 0 rgba(220,38,38,.45)}100%{background:var(--surface2);box-shadow:0 0 0 12px rgba(220,38,38,0)}}.service-footer{display:flex;align-items:center;justify-content:space-between;margin-top:18px;color:var(--text-secondary)}.service-footer .danger-outline{margin-top:0}.manager-info-button{margin-top:8px}.recipe-manager-row .manager-row-info{position:relative;padding-right:42px}.recipe-manager-row .manager-info-button{position:absolute;right:0;top:0}.recipe-detail-modal{position:fixed;z-index:80;inset:0;background:rgba(0,0,0,.4);padding:16px;overflow:auto}.recipe-detail-panel{background:#fff;max-width:760px;margin:30px auto;border-radius:16px;padding:20px;box-shadow:var(--shadow)}.detail-subtitle{color:var(--text-secondary);margin-top:4px}.detail-section{border-top:1px solid var(--border);padding:16px 0}.detail-section:first-child{border-top:0;padding-top:0}.detail-section h3{margin-bottom:10px}.detail-row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid #edf0f3}.detail-block{padding:10px 0;border-bottom:1px solid #edf0f3}.detail-block>span{float:right;color:var(--text-secondary)}.detail-block p,
.detail-step p{margin-top:4px;color:var(--text-secondary)}.detail-step{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #edf0f3}.detail-step-number{width:30px;height:30px;border-radius:50%;background:var(--surface2);display:grid;place-items:center;font-weight:800}.detail-step small{color:var(--text-secondary)}.detail-note{font-size:.82rem!important;color:var(--text-primary)!important}.analytics-metrics{margin-top:0}
@media(max-width:700px){.service-recipe-card{min-height:160px}.service-controls{grid-template-columns:1fr 58px 1fr}.service-qty-button{height:54px}.service-footer{align-items:flex-start;gap:12px;flex-direction:column}}

/* Cleaner navigation and grouped content */
.content-category-heading{margin:22px 0 9px;font-size:1rem;font-weight:900}.content-category-heading:first-child{margin-top:4px}.category-group{margin-bottom:10px}.expected-qty-actions{display:flex;align-items:center;gap:8px}.expected-qty{min-width:30px;text-align:center}.checklist-list{display:flex;flex-direction:column;gap:10px;max-width:700px}.checklist-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;font-weight:800}.checklist-row.completed{opacity:.65;text-decoration:line-through}.check-button{width:42px;height:42px;border-radius:10px;border:1px solid var(--border);background:var(--surface2);font-size:1.25rem;font-weight:900}.checklist-row.completed .check-button{background:#dcfce7;color:#166534;border-color:#86efac}.checklist-reset{margin-top:28px;padding-top:20px;border-top:1px solid var(--border)}

.content-category-heading{margin:22px 0 9px;font-size:1rem;font-weight:900}.content-category-heading:first-child{margin-top:4px}.category-group{margin-bottom:10px}.expected-qty-actions{display:flex;align-items:center;gap:8px}.expected-qty{min-width:30px;text-align:center}.checklist-list{display:flex;flex-direction:column;gap:10px;max-width:700px}.checklist-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;font-weight:800}.checklist-row.completed{opacity:.65;text-decoration:line-through}.check-button{width:42px;height:42px;border-radius:10px;border:1px solid var(--border);background:var(--surface2);font-size:1.25rem;font-weight:900}.checklist-row.completed .check-button{background:#dcfce7;color:#166534;border-color:#86efac}.checklist-reset{margin-top:28px;padding-top:20px;border-top:1px solid var(--border)}


/* Recipe ingredient previews and unit-aware recipe components */
.service-ingredients-brief,
.recipe-ingredients-brief,
.expected-ingredients-brief{display:block;font-size:.72rem;line-height:1.35;color:var(--text-secondary);margin-top:6px;font-weight:500;white-space:normal;overflow-wrap:anywhere}
.recipe-manager-row .manager-row-info{padding-right:42px}
.expected-order-row{align-items:center}
.expected-qty-actions{display:grid;grid-template-columns:repeat(3,auto) 48px repeat(3,auto);gap:5px;align-items:center;flex-shrink:0}
.expected-qty-button{min-width:42px;height:38px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);font-weight:800;font-size:.78rem;transition:transform .1s,background .12s,box-shadow .12s}
.expected-qty-button:active{transform:scale(.95)}
.expected-minus{color:#991b1b}.expected-plus{color:#166534}.expected-qty{font-size:1rem;text-align:center}
.editor-ingredient-row{display:grid}
.drink-ingredient-row{grid-template-columns:1fr 110px 95px 40px}
@media(max-width:700px){.expected-order-row{align-items:flex-start}.expected-qty-actions{width:100%;grid-template-columns:repeat(3,1fr) 42px repeat(3,1fr)}.expected-qty-button{min-width:0}.drink-ingredient-row{grid-template-columns:1fr 80px 82px 38px}}

/* Tier / account controls */
.tier-panel{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.tier-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#eaf0ff;color:var(--primary-color);font-size:.75rem;font-weight:800;white-space:nowrap}.data-control-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.data-control{display:flex!important;flex-direction:row!important;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);font-weight:400!important}.data-control strong{display:block;font-size:.82rem}.data-control small{display:block;color:var(--text-secondary);font-weight:400;margin-top:4px;line-height:1.3}.data-control input{width:20px;min-width:20px;margin-top:2px}.data-control input:disabled{opacity:.5}.tier-note{margin-top:10px;padding:10px 12px;border-radius:9px;background:#fff7ed;color:#9a3412;font-size:.8rem;border:1px solid #fed7aa}
@media(max-width:700px){.data-control-grid{grid-template-columns:1fr}.tier-badge{align-self:flex-start}}

/* Tier testing and refined recipe editor */
.topbar{position:relative}.tier-test-control{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:.72rem;color:var(--text-secondary);font-weight:800}.tier-test-control select{width:auto;min-width:120px;padding:7px 28px 7px 9px;font-size:.75rem;font-weight:800}
.recipe-library-header{padding-right:2px}.new-recipe-button{font-size:1rem;padding:12px 18px;min-height:46px;box-shadow:0 5px 14px rgba(0,0,0,.08)}.recipe-tools{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:-4px 0 14px}.sort-control{display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:800;color:var(--text-secondary)}.sort-control select{width:auto;min-width:160px}.category-input-row{display:flex;gap:7px}.category-input-row select{flex:1}.compact-button{padding:8px 10px}
/* Recipe create/edit is a true sub-view overlay; the page remains scrollable behind it. */
#view-recipes #menu-editor{position:fixed;inset:0;z-index:70;background:rgba(15,23,42,.35);padding:18px;overflow-y:auto;overscroll-behavior:contain}#view-recipes #menu-editor.hidden{display:none!important}#view-recipes #menu-editor .modal-panel{background:var(--surface);max-width:920px;margin:20px auto 90px;padding:22px;border-radius:16px;box-shadow:var(--shadow)}#view-recipes #menu-editor .modal-header{display:flex}#view-recipes #drink-manager{display:block}#view-recipes #drink-form.hidden,
#view-recipes #ingredient-form.hidden,
#view-recipes #ingredient-manager.hidden,
#view-recipes #drink-manager.hidden{display:none!important}.form-actions{position:sticky;bottom:0;z-index:4;margin:18px -22px -22px;padding:12px 22px 18px;background:linear-gradient(to bottom,rgba(255,255,255,0),var(--surface) 22%);display:flex;justify-content:space-between;gap:12px}.form-actions button{min-width:130px}.category-manager-row .manager-row-info{display:grid;gap:7px;flex:1}.category-description-input{font-size:.8rem}.checklist-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.checklist-edit-row{align-items:center}.checklist-edit-row .checklist-edit-input{flex:1}.make-choice-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:250px}.make-button{border:0;border-radius:10px;padding:11px 13px;font-weight:900;color:#fff;transition:transform .1s,box-shadow .12s}.dont-make{background:#7f1d1d}.want-make{background:#166534}.make-button:active{transform:scale(.97)}
@media(max-width:700px){.tier-test-control span{display:none}.tier-test-control select{min-width:108px}.recipe-tools{justify-content:space-between;flex-wrap:wrap}.sort-control{flex:1}.sort-control select{min-width:0;flex:1}.new-recipe-button{width:100%}#view-recipes #menu-editor{padding:8px}#view-recipes #menu-editor .modal-panel{margin:8px auto 80px;padding:14px}.form-actions{margin:14px -14px -14px;padding:10px 14px 16px}.form-actions button{flex:1}.make-choice-actions{width:100%;min-width:0}.tier-test-control{margin-left:auto}}

/* v6 layout refinements */
.recipe-editor-subview{display:block!important;position:static!important;background:transparent!important;padding:0!important;overflow:visible!important;z-index:auto!important}
.recipe-editor-subview .modal-panel{max-width:none!important;margin:0!important;padding:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important}
.recipe-editor-subview .editor-subview-header{display:flex!important;background:var(--surface);padding:14px 0;margin-bottom:14px;border-bottom:1px solid var(--border)}
.recipe-editor-subview .editor-subview-header #close-editor{display:none}
#view-recipes #drink-manager{display:block}
#view-recipes #drink-form.hidden,
#view-recipes #ingredient-form.hidden,
#view-recipes #ingredient-manager.hidden,
#view-recipes #drink-manager.hidden{display:none!important}
.new-recipe-footer{display:flex;justify-content:flex-end;margin:22px 0 4px}
.new-recipe-footer .new-recipe-button{padding:13px 22px;min-width:150px}
.recipe-topbar{display:flex;justify-content:flex-end;margin-bottom:8px}
.service-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:12px}
.service-toolbar .category-tabs{margin-bottom:0;flex:1}
.service-toolbar .sort-control{flex-shrink:0}
.inline-error{margin:8px 0;padding:7px 10px;border-radius:7px;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;font-size:.78rem}
.empty-state{padding:24px;text-align:center;color:var(--text-secondary);background:var(--surface);border:1px dashed var(--border);border-radius:12px}
body.dark-mode{--bg:#111827;--surface:#1f2937;--surface2:#273449;--text-primary:#f3f4f6;--text-secondary:#aab4c2;--border:#3a4658;--shadow:0 8px 28px rgba(0,0,0,.3)}
body.dark-mode .topbar{background:rgba(17,24,39,.94)}
body.dark-mode #side-menu{background:#1f2937}
body.dark-mode .menu-item.active{background:#243b66}
body.dark-mode input:not(.kitcherette-document-field),
body.dark-mode select:not(.kitcherette-document-field),
body.dark-mode textarea:not(.kitcherette-document-field){background:#182230;color:var(--text-primary);border-color:var(--border)}
body.dark-mode .recipe-detail-panel{background:var(--surface)}
body.dark-mode .detail-row,
body.dark-mode .detail-block,
body.dark-mode .detail-step{border-color:var(--border)}
body.dark-mode .form-actions{background:linear-gradient(to bottom,rgba(31,41,55,0),var(--surface) 22%)}
@media(max-width:700px){.service-toolbar{align-items:stretch;flex-direction:column}.service-toolbar .sort-control{width:100%}.recipe-topbar{justify-content:stretch}.recipe-topbar .recipe-tools{width:100%}.new-recipe-footer{justify-content:flex-end}.new-recipe-footer .new-recipe-button{width:auto}}

/* v7 requested layout refinements */

#view-recipes .recipe-topbar{
  position:sticky;
  top:52px;
  z-index:24;
  background:var(--bg);
  padding:8px 0 10px;
  margin:0;
  border-bottom:1px solid var(--border);
}
#view-recipes .recipe-tools{margin:0}
#view-recipes .new-recipe-footer{
  position:fixed;
  right:22px;
  bottom:18px;
  z-index:45;
  margin:0;
  padding:0;
}
#view-recipes .new-recipe-button{
  width:auto!important;
  min-width:170px;
  min-height:50px;
  padding:13px 24px;
  border-radius:12px;
}
#view-recipes .recipe-manager-row .manager-actions{align-items:stretch}
#view-recipes .recipe-manager-row .manager-actions > button{
  height:40px;
  min-height:40px;
  min-width:78px;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}
#view-recipes .recipe-manager-row .manager-actions .delete-button{min-width:40px;width:40px}
#view-recipes .recipe-manager-row .manager-actions .secondary-button,
#view-recipes .recipe-manager-row .manager-actions .primary-button{min-width:126px}
@media(max-width:700px){
  #view-recipes .recipe-topbar{top:49px}
  #view-recipes .new-recipe-footer{right:14px;bottom:14px}
  #view-recipes .new-recipe-button{min-width:0}
  #view-recipes .recipe-manager-row .manager-actions{flex-wrap:wrap}
  #view-recipes .recipe-manager-row .manager-actions .secondary-button,
#view-recipes .recipe-manager-row .manager-actions .primary-button{min-width:116px}
}

/* v8 recipe editor and sticky preparation controls */
#view-service .service-toolbar{position:sticky;top:72px;z-index:19;background:var(--bg);padding:8px 0 10px;margin:0 -2px 12px;border-bottom:1px solid var(--border)}
.recipe-wizard-nav{position:sticky;top:0;z-index:26;display:flex;gap:6px;overflow:auto;background:var(--surface);padding:10px 0;border-bottom:1px solid var(--border);margin-bottom:14px}
.wizard-tab{border:1px solid var(--border);background:var(--surface2);color:var(--text-secondary);border-radius:9px;padding:9px 12px;font-weight:800;white-space:nowrap}
.wizard-tab.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}
.recipe-wizard-step{display:none}.recipe-wizard-step.active{display:block}.wizard-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px}
.recipe-wizard-form .form-actions{position:sticky;bottom:10px;z-index:25;margin:18px 0 0;padding:12px 14px;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.10)}
.menu-toggle-on{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important}.menu-toggle-off{background:#e5e7eb!important;color:#6b7280!important;border-color:#d1d5db!important}
.recipe-manager-row .manager-actions>button{height:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center}
.overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.overview-grid>div{padding:11px;background:var(--surface2);border-radius:9px}.overview-grid span{display:block;color:var(--text-secondary);font-size:.72rem}.overview-grid strong{display:block;margin-top:3px}.overview-list h4{margin:16px 0 7px}.overview-list ul,
.overview-list ol{margin:0;padding-left:22px}.overview-list p{color:var(--text-secondary)}
@media(max-width:700px){#view-service .service-toolbar{top:64px}.recipe-wizard-nav{top:0}.overview-grid{grid-template-columns:1fr 1fr}.recipe-wizard-form .form-actions{bottom:6px}}

/* v8.1: hide recipe list controls while editing and polish action buttons */
#view-recipes.recipe-editing .recipe-topbar,
#view-recipes.recipe-editing .new-recipe-footer{display:none!important}
#view-recipes .recipe-manager-row .manager-actions{gap:7px}
#view-recipes .recipe-manager-row .manager-actions>button{height:40px;min-height:40px;padding:0 12px;border-radius:9px;line-height:1;box-sizing:border-box}
#view-recipes .recipe-manager-row .manager-actions .menu-toggle-on,
#view-recipes .recipe-manager-row .manager-actions .menu-toggle-off{width:78px;min-width:78px}
#view-recipes .recipe-manager-row .manager-actions .delete-button{width:40px;min-width:40px;padding:0}
#view-recipes .recipe-manager-row .manager-actions .secondary-button:not(.menu-toggle-off),
#view-recipes .recipe-manager-row .manager-actions .primary-button:not(.menu-toggle-on){min-width:78px}

/* v9: global sticky header and inventory/recipe polish */
.topbar{position:sticky!important;top:0!important;z-index:100!important}
main{position:relative}
#view-service .service-toolbar{top:72px!important;z-index:50!important}

#view-recipes .recipe-topbar{top:122px!important;z-index:49!important}

.inventory-toolbar{display:flex;justify-content:flex-end;padding:8px 0;color:var(--text-secondary);font-size:.75rem;font-weight:800}
.inventory-card{align-items:center;min-height:86px;padding:14px 16px;gap:16px}
.inventory-card-content{flex:1;min-width:0}
.inventory-card-top{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.inventory-card-top strong{font-size:1rem}
.inventory-type-badge{font-size:.68rem;font-weight:800;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:var(--surface2);color:var(--text-secondary)}
.inventory-stock-line{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}.inventory-stock-line span{font-size:.72rem;color:var(--text-secondary)}.inventory-stock-line strong{font-size:.95rem}
.inventory-card meta,
.inventory-card-content small{color:var(--text-secondary);font-size:.72rem}
.inventory-empty{background:#fff1f2!important;border:1px solid #fecdd3!important}.inventory-empty .inventory-stock-line strong{color:#b91c1c}.inventory-remove-btn{background:#fff0f1!important;color:#b91c1c!important;border-color:#fecaca!important}
.new-inventory-footer{position:fixed;right:22px;bottom:18px;z-index:45}.new-inventory-footer .new-recipe-button{min-width:190px;min-height:50px;padding:13px 24px;border-radius:12px}
.ingredient-editor-actions{display:flex;gap:7px;flex-wrap:wrap}
.recipe-row-rating-wrap{padding:0 0 10px}.recipe-item-rating{display:flex;align-items:center;gap:2px;padding-left:2px}.rating-star{background:transparent;color:#cbd5e1;font-size:1.1rem;padding:2px 3px}.rating-star.selected{color:#f59e0b}.rating-clear{margin-left:6px;background:transparent;color:var(--text-secondary);font-size:.68rem;padding:3px 5px}
.recipe-manager-row{margin-bottom:0}.recipe-manager-row .manager-actions{flex-shrink:0}.recipe-manager-row .manager-info-button{flex-shrink:0}
@media(max-width:700px){#view-service .service-toolbar{top:64px!important}#view-recipes .recipe-topbar{top:114px!important}.new-inventory-footer{right:14px;bottom:14px}.new-inventory-footer .new-recipe-button{min-width:0}.inventory-card{align-items:flex-start;flex-direction:column}.inventory-card .stock-actions-group{width:100%}.inventory-card .stock-actions-group button{flex:1}.ingredient-editor-actions{justify-content:flex-end}}

/* v10: sidebar is below the global header but above all page content */
#side-menu-overlay{z-index:85!important}
#side-menu{z-index:90!important}
.topbar{z-index:100!important}
.recipe-stock-warning{margin-top:7px;padding:7px 9px;border-radius:8px;background:#fff1f2;border:1px solid #fecdd3;color:#b91c1c;font-size:.72rem;font-weight:800;line-height:1.3}
.stock-filter-control select{min-width:145px}

/* v10 ingredient-stock linkage */
.drink-ingredient-row{grid-template-columns:1fr 100px 90px minmax(150px,1fr) 40px;align-items:center}
.ingredient-stock-hint{font-size:.7rem;color:var(--text-secondary);line-height:1.2}
.ingredient-stock-hint.unavailable{color:#b91c1c;font-weight:800}
@media(max-width:700px){.drink-ingredient-row{grid-template-columns:1fr 80px 82px 1fr 38px}.ingredient-stock-hint{grid-column:1/-1}}

/* v11 generic Ingredients page */
#view-generic-ingredients .generic-ingredients-category-sticky{position:sticky;top:72px;z-index:50;background:var(--bg);padding:8px 0 7px;border-bottom:1px solid var(--border)}
#view-generic-ingredients .generic-ingredients-toolbar{position:sticky;top:122px;z-index:49;background:var(--bg);padding:8px 0 10px;border-bottom:1px solid var(--border)}
.generic-ingredient-row{min-height:82px}.generic-associated-line{margin-top:3px}.generic-choice-row{cursor:pointer;align-items:center}.generic-choice-row input{width:20px;height:20px}.generic-ingredient-editor{padding-bottom:80px}.generic-ingredient-editor .recipe-wizard-nav{top:0}.new-generic-ingredient-footer{position:fixed;right:22px;bottom:18px;z-index:45}.new-generic-ingredient-footer .new-recipe-button{min-width:170px;min-height:50px;padding:13px 24px;border-radius:12px}
@media(max-width:700px){#view-generic-ingredients .generic-ingredients-category-sticky{top:64px}#view-generic-ingredients .generic-ingredients-toolbar{top:114px}.new-generic-ingredient-footer{right:14px;bottom:14px}}

/* Recipe ingredient rows */
.drink-ingredients-editor,
#drink-ingredients-editor{ display:flex; flex-direction:column; gap:10px; }
#drink-ingredients-editor .drink-ingredient-row{ background:var(--surface2); border:1px solid var(--border); border-radius:12px; padding:10px; margin-bottom:0; }
#drink-ingredients-editor .editor-ingredient-select{ font-weight:700; }
#drink-ingredients-editor .editor-ingredient-amount,
#drink-ingredients-editor .editor-ingredient-unit{ min-width:0; }
#drink-ingredients-editor .ingredient-stock-hint{ font-size:.74rem; color:var(--text-secondary); }

/* v14: full-page inventory editor, expected-order controls and settings */
#view-current-stock.inventory-editing #inventory-category-tabs,
#view-current-stock.inventory-editing .inventory-toolbar,
#view-current-stock.inventory-editing #stock-confirmation-banner,
#view-current-stock.inventory-editing #current-stock-list,
#view-current-stock.inventory-editing .new-inventory-footer{display:none!important}
#view-current-stock.inventory-editing #ingredient-form{display:block!important;min-height:calc(100vh - 88px);padding:12px 0 90px}
#view-current-stock.inventory-editing{padding-top:8px}
#view-current-stock.inventory-editing .inventory-wizard-nav{position:sticky;top:72px;z-index:50;background:var(--bg);padding:10px 0}
#expected-orders-controls{position:sticky;top:72px;z-index:50;background:var(--bg);padding:8px 0 10px;border-bottom:1px solid var(--border);margin-bottom:12px}
.settings-app-panel{margin:18px 0;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.database-info{display:grid;gap:8px;margin:12px 0 16px}.database-info>div{display:flex;justify-content:space-between;gap:15px;padding:10px 12px;background:var(--surface2);border-radius:9px}.database-info strong{font-size:.78rem}.database-info span{font-size:.76rem;color:var(--text-secondary);text-align:right}
@media(max-width:700px){#view-current-stock.inventory-editing .inventory-wizard-nav{top:64px}#expected-orders-controls{top:64px}.database-info>div{display:block}.database-info span{display:block;text-align:left;margin-top:3px}}

/* Stock warnings in Preparation */
.service-stock-warning{margin-top:10px;padding:9px 10px;border:1px solid #fca5a5;background:#fef2f2;color:#991b1b;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.82rem;font-weight:700}.service-stock-warning .service-remove-menu{flex:none;min-height:32px;padding:6px 10px;font-size:.78rem;border-color:#fecaca;color:#991b1b;background:#fff}.dark-mode .service-stock-warning{background:#3b1515;border-color:#7f1d1d;color:#fecaca}.dark-mode .service-stock-warning .service-remove-menu{background:#241010;color:#fecaca;border-color:#7f1d1d}

/* Shopping list controls and inventory-demand rows */
#shopping-list-controls{position:sticky;top:var(--header-height,64px);z-index:20;background:var(--background);padding:10px 0 8px;border-bottom:1px solid var(--border)}
.shopping-inventory-row{min-height:78px;align-items:center}
.shopping-inventory-row.shopping-shortage-row{border-color:#e5a3a3;background:rgba(190,35,35,.06)}
.shopping-inventory-row .manager-row-info{gap:5px}
.shopping-source-detail{display:block;margin-top:4px;color:var(--text-secondary)}

/* v21: Settings control centre */
.settings-page{display:flex;flex-direction:column;gap:14px;max-width:900px;margin:0 auto}
.settings-list{display:flex;flex-direction:column;gap:7px}
.settings-list-item{width:100%;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;text-align:left;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);box-shadow:0 2px 8px rgba(16,24,40,.03)}
.settings-list-item:hover{background:var(--surface2)}
.settings-list-icon{width:34px;height:34px;border-radius:9px;background:var(--surface2);display:grid;place-items:center;font-size:1rem}
.settings-list-item strong{display:block;font-size:.9rem}.settings-list-item small{display:block;color:var(--text-secondary);font-size:.74rem;margin-top:2px;font-weight:500}
.settings-chevron{font-size:1.5rem;color:var(--text-secondary);padding-left:8px}.settings-badge{font-size:.67rem;font-weight:800;color:var(--text-secondary);background:var(--surface2);padding:5px 8px;border-radius:999px}
.settings-switch{width:42px;height:24px;border-radius:999px;background:#9aa5b1;padding:3px;display:flex;align-items:center;transition:.15s}.settings-switch span{width:18px;height:18px;border-radius:50%;background:#fff;display:block;transition:.15s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.settings-list-item.setting-enabled .settings-switch{background:var(--primary-color)}.settings-list-item.setting-enabled .settings-switch span{transform:translateX(18px)}
.settings-section-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px}.settings-section-heading{margin-bottom:10px}.settings-section-heading p{color:var(--text-secondary);font-size:.8rem;margin-top:3px}
.settings-tab-visibility-list{display:flex;flex-direction:column;gap:7px}.tab-visibility-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:11px 12px;background:var(--surface2);border-radius:10px}.tab-visibility-row strong{font-size:.84rem}.tab-visibility-row small{display:block;color:var(--text-secondary);font-size:.7rem;margin-top:2px}.visibility-toggle{appearance:none;width:42px;height:24px;border-radius:999px;background:#9aa5b1;position:relative;cursor:pointer;transition:.15s}.visibility-toggle::after{content:"";position:absolute;width:18px;height:18px;top:3px;left:3px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.visibility-toggle:checked{background:var(--primary-color)}.visibility-toggle:checked::after{transform:translateX(18px)}
body.dark-mode .settings-list-item,
body.dark-mode .settings-section-card{box-shadow:none}

/* v21 Settings notice */
.settings-notice{display:none;padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text-primary);font-size:.8rem;font-weight:700;box-shadow:var(--shadow)}
.settings-notice.visible{display:block}

/* v23 shopping-list planner */
.shopping-final-header{display:flex;justify-content:flex-end;margin:0 0 8px;position:sticky;top:var(--header-height,64px);z-index:22;background:var(--background);padding:8px 0}
.final-shopping-button{min-height:48px;padding:12px 20px;font-weight:800}
.shopping-plan-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--border);border-radius:13px;background:var(--surface);margin-bottom:8px}
.shopping-plan-row.shopping-shortage-row{border-color:#e5a3a3;background:rgba(190,35,35,.07)}
.shopping-plan-main{min-width:0;flex:1}.shopping-plan-main strong{display:block}.shopping-plan-main small{display:block;margin-top:4px;color:var(--text-secondary)}
.shopping-plan-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.shopping-choice-button{min-width:86px;min-height:36px}.shopping-choice-button.selected{background:var(--primary);color:#fff;border-color:var(--primary)}
.shopping-alternatives{margin:7px 0 14px;padding:10px 12px 10px 18px;border-left:3px solid var(--border);background:var(--surface2);border-radius:0 10px 10px 0}.shopping-alternative-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.shopping-alternative-row:last-child{border-bottom:0}
.shopping-recipe-options{margin-top:10px;padding:10px;border-radius:10px;background:var(--surface2)}.shopping-recipe-option{padding:8px 0;border-bottom:1px solid var(--border)}.shopping-recipe-option:last-child{border-bottom:0}.shopping-recipe-option small{display:block;color:var(--text-secondary);margin-top:3px}
.final-shopping-page{padding-bottom:40px}.final-shopping-page .final-shopping-item{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);margin:8px 0}.final-shopping-page .final-shopping-item.purchased{opacity:.6;text-decoration:line-through}.final-shopping-page .final-shopping-item input{width:20px;height:20px}.final-shopping-page .final-shopping-item .final-shopping-info{flex:1}.final-shopping-page .final-shopping-item small{display:block;color:var(--text-secondary);margin-top:3px}
.shopping-empty-note{padding:14px;border:1px dashed var(--border);border-radius:12px;color:var(--text-secondary)}

/* v24 refinements */
.manager-show-recipe-button{height:40px;min-height:40px;min-width:105px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.recipe-manager-row .manager-actions{flex-wrap:wrap}
.recipe-row-rating-wrap{padding:0 12px 12px;width:100%;box-sizing:border-box}
.recipe-item-rating{width:100%;justify-content:center;padding:7px 10px;border-top:1px solid var(--border);background:var(--surface2);border-radius:9px}
.recipe-item-rating .rating-star{flex:1;min-width:0;font-size:1.15rem}
.shopping-plan-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.shopping-alternative-select{min-width:160px;max-width:220px}
.detail-section details{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--surface2)}
.detail-section summary{cursor:pointer;font-weight:800}
.detail-alternatives{margin-top:10px;display:flex;flex-direction:column;gap:8px}
@media(max-width:700px){.manager-show-recipe-button{min-width:90px}.shopping-plan-actions{width:100%}.shopping-alternative-select{width:100%;max-width:none}}

/* Recipe rating belongs to the recipe card itself. */
.recipe-manager-row{ position: relative; flex-wrap: wrap; }
.recipe-manager-row .recipe-row-rating-wrap{ flex: 0 0 100%; width: 100%; box-sizing: border-box; margin-top: 4px; }
.recipe-manager-row .recipe-item-rating{ width: 100%; box-sizing: border-box; }

/* Sequential tab navigation */
.menu-item-indented{ padding-left: 34px; }
.tab-navigation{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin:28px 0 8px; padding:14px 0 4px; }
.tab-navigation:has(button:only-child){ justify-content:flex-end; }
.tab-navigation button{ min-width:180px; }
@media (max-width:600px){ .tab-navigation{flex-wrap:wrap}.tab-navigation button{flex:1;min-width:140px} }


/* Recipe manager compact controls */
.recipe-manager-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:10px;}
.recipe-manager-row .manager-show-recipe-button{width:38px;height:38px;padding:0;display:grid;place-items:center;border-radius:10px;font-size:20px;}
.recipe-manager-row .manager-actions{display:flex;gap:8px;align-items:center;}
.recipe-manager-row .manager-actions button{height:38px;min-width:38px;}
.recipe-manager-row .manager-actions .delete-button{font-size:12px;color:#b42318;background:transparent;border:0;padding:4px 2px;align-self:flex-end;}
.recipe-row-rating-wrap{grid-column:1 / -1;width:100%;padding:0 4px 2px;}
.recipe-item-rating{display:flex;align-items:center;gap:4px;width:100%;padding:4px 8px;}
.recipe-item-rating .rating-star{border:0;background:transparent;font-size:18px;padding:2px 4px;cursor:pointer;}
.recipe-item-rating .rating-clear{margin-left:auto;border:0;background:transparent;font-size:11px;opacity:.65;}
.recipe-manager-row .manager-row-info{min-width:0;}
.ingredient-editor-actions{display:flex;gap:8px;align-items:center;}
.ingredient-editor-actions .secondary-button{width:40px;height:40px;padding:0;font-size:20px;}
@media(max-width:700px){.recipe-manager-row{grid-template-columns:minmax(0,1fr) auto;}.recipe-manager-row .manager-actions{grid-column:1/-1;justify-content:flex-end;}.recipe-row-rating-wrap{grid-column:1/-1;}}


/* v28 recipe filter and card-order refinements */
.recipe-tools{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;}
.recipe-tool-icon{width:40px;height:40px;min-width:40px;padding:0;display:grid;place-items:center;font-size:18px;border-radius:10px;}
.availability-switch{display:flex;align-items:center;gap:7px;min-height:40px;padding:0 4px;cursor:pointer;font-size:.85rem;color:var(--text-secondary);font-weight:700;user-select:none;}
.availability-switch input{position:absolute;opacity:0;pointer-events:none;}
.availability-switch-track{width:42px;height:24px;border-radius:999px;background:var(--border);position:relative;transition:.18s ease;flex:none;}
.availability-switch-thumb{position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.2);transition:.18s ease;}
.availability-switch input:checked + .availability-switch-track{background:var(--primary);}
.availability-switch input:checked + .availability-switch-track .availability-switch-thumb{transform:translateX(18px);}
.recipe-manager-row{grid-template-columns:minmax(0,1fr) auto;}
.recipe-manager-row .recipe-row-rating-wrap{grid-column:1 / -1;order:3;}
.recipe-manager-row .manager-actions{grid-column:1 / -1;order:4;justify-content:flex-end;padding-top:4px;border-top:1px solid var(--border);margin-top:2px;}
.recipe-manager-row .manager-row-info{order:1;}
.recipe-manager-row .manager-show-recipe-button{order:2;}
@media(max-width:700px){.recipe-tools{align-items:center}.availability-switch{margin-left:0}.recipe-manager-row .manager-actions{grid-column:1/-1;}}

/* v31 compact collapsible category selectors */
.category-collapse{
  margin:0 0 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  overflow:hidden;
}
.category-collapse summary{
  list-style:none;
  cursor:pointer;
  min-height:40px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px 12px;
  color:var(--text-primary);
  font-size:.84rem;
  font-weight:800;
  user-select:none;
}
.category-collapse summary::-webkit-details-marker{display:none}
.category-collapse summary::after{content:"▾";margin-left:auto;color:var(--text-secondary);transition:transform .16s ease}
.category-collapse[open] summary::after{transform:rotate(180deg)}
.category-collapse[open] summary{border-bottom:1px solid var(--border)}
.category-collapse .category-current{font-weight:600;color:var(--text-secondary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.category-collapse .category-tabs{padding:10px 12px 11px;margin:0;display:flex;gap:8px;overflow:auto}
.category-collapse .category-tab{flex:0 0 auto}

/* Filter/sort controls stay above the collapsed category selector. */
#view-recipes .recipe-topbar{top:72px!important;z-index:50!important}

#view-generic-ingredients .generic-ingredients-toolbar{top:72px!important;z-index:50!important}
#view-generic-ingredients .generic-ingredients-category-sticky{top:120px!important;z-index:49!important}
.expected-orders-toolbar{margin-bottom:12px}
.expected-orders-toolbar .filter-sort-row{margin-bottom:8px}
@media(max-width:700px){
  #view-recipes .recipe-topbar{top:64px!important}
  
  #view-generic-ingredients .generic-ingredients-toolbar{top:64px!important}
  #view-generic-ingredients .generic-ingredients-category-sticky{top:112px!important}
}

/* v33 recipe actions */
.recipe-manager-row .manager-actions .manager-show-recipe-button{
  width:auto;
  min-width:112px;
}
.recipe-manager-row .manager-actions .menu-toggle-on,
.recipe-manager-row .manager-actions .menu-toggle-off{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  white-space:nowrap;
}
.recipe-manager-row .menu-button-label{font-weight:700;}

/* v34 recipe menu toggle placement */
.recipe-manager-row{position:relative;}
.recipe-manager-row .manager-row-info{padding-right:92px;}
.recipe-menu-control{
  position:absolute;
  top:12px;
  right:12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
}
.recipe-menu-label{
  font-size:10px;
  line-height:1;
  opacity:.7;
  white-space:nowrap;
}
.recipe-menu-switch{
  width:44px;
  height:24px;
  border:0;
  border-radius:999px;
  padding:2px;
  background:#c8cdd4;
  cursor:pointer;
  transition:background .16s ease;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.recipe-menu-switch.is-on{
  background:#2563eb;
  justify-content:flex-end;
}
.recipe-menu-switch-knob{
  display:block;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.28);
}
.recipe-manager-row .manager-actions{
  justify-content:flex-start;
}
.recipe-manager-row .manager-actions .manager-show-recipe-button{
  order:0;
}

/* v35 recipe action/toggle fixes */
.recipe-menu-control{
  z-index:4;
  pointer-events:auto;
}
.recipe-menu-switch{
  position:relative;
  z-index:5;
  pointer-events:auto;
  flex:0 0 auto;
}
.recipe-manager-row .manager-actions{
  display:flex;
  width:100%;
  align-items:center;
  gap:8px;
}
.recipe-manager-row .manager-actions .manager-show-recipe-button{
  flex:1 1 auto;
  width:auto;
  min-width:0;
}
.recipe-manager-row .manager-actions > button:not(.manager-show-recipe-button){
  flex:0 0 auto;
  width:auto !important;
  min-width:0 !important;
  padding-left:10px;
  padding-right:10px;
  white-space:nowrap;
}
.recipe-manager-row .manager-actions .delete-button{
  width:auto !important;
  min-width:0 !important;
}

/* v36 stable Recipes availability switch */
html{scrollbar-gutter:stable;}
#view-recipes .recipe-availability-control{
  width:118px;
  min-width:118px;
  height:40px;
  min-height:40px;
  padding:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  line-height:1;
  flex:0 0 118px;
}
#view-recipes .recipe-availability-control .availability-switch-label{
  order:-1;
  width:100%;
  text-align:center;
  font-size:.68rem;
  line-height:1;
  white-space:nowrap;
  color:var(--text-secondary);
  font-weight:700;
}
#view-recipes .recipe-availability-control .availability-switch-track{
  width:42px;
  min-width:42px;
  height:22px;
  flex:0 0 22px;
}
#view-recipes .recipe-availability-control .availability-switch-thumb{
  width:16px;
  height:16px;
}
#view-recipes .recipe-availability-control input:checked + .availability-switch-track .availability-switch-thumb{
  transform:translateX(20px);
}
#view-recipes .recipe-tools{
  min-height:48px;
  align-items:center;
}

/* v37 Recipes category manager subtab */
.recipe-category-manager-subtab{
  padding:4px 0 84px;
}
.category-subtab-header{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:14px;
  align-items:center;
  margin-bottom:16px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
}
.category-subtab-header h2{margin:0 0 3px;font-size:1.05rem;}
.category-subtab-header p{margin:0;color:var(--text-secondary);font-size:.78rem;}
.category-manager-list{display:flex;flex-direction:column;gap:10px;}
.category-manager-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
}
.category-order-controls{
  display:flex;
  flex-direction:column;
  gap:5px;
}
.icon-button-small{
  width:32px;height:30px;min-width:32px;padding:0;
  border:1px solid var(--border);
  border-radius:8px;background:var(--surface);
  color:var(--text-primary);cursor:pointer;
}
.icon-button-small:disabled{opacity:.28;cursor:default;}
.category-manager-fields{
  display:grid;
  grid-template-columns:minmax(150px,.7fr) minmax(220px,1.3fr);
  gap:10px;
}
.category-manager-fields label{display:flex;flex-direction:column;gap:4px;}
.category-manager-fields label>span{
  font-size:.68rem;font-weight:800;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;
}
.category-manager-fields input,
.category-manager-fields textarea{width:100%;}
.category-manager-actions{display:flex;gap:7px;align-items:center;}
@media(max-width:760px){
  .category-subtab-header{grid-template-columns:1fr 1fr;}
  .category-subtab-header>div{grid-column:1/-1;grid-row:1;}
  .category-manager-row{grid-template-columns:auto 1fr;}
  .category-manager-fields{grid-template-columns:1fr;}
  .category-manager-actions{grid-column:1/-1;justify-content:flex-end;}
}

/* v38 shared category managers */
.shared-category-manager{
  padding:8px 16px 90px;
  max-width:1200px;
  margin:0 auto;
}
.inventory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.filter-sort-row{display:flex;align-items:end;gap:8px;flex-wrap:wrap;}
.service-toolbar{display:flex;align-items:end;gap:8px;flex-wrap:wrap;}

/* v40 recipe-style default shopping list */
#view-stock-orders .shopping-page-toolbar{margin-bottom:10px}
#view-stock-orders .shopping-final-default{display:flex;flex-direction:column;gap:10px}
.shopping-final-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:4px 2px 2px}
.shopping-final-title h2{margin:0;font-size:1.05rem}.shopping-final-title p{margin:3px 0 0;color:var(--text-secondary);font-size:.76rem}
.shopping-final-list{display:flex;flex-direction:column;gap:10px}
.shopping-final-card{grid-template-columns:minmax(0,1fr) auto;border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:12px}
.shopping-final-card.shortage{border-color:#dc2626}.shopping-final-card.purchased{opacity:.65}
.shopping-line-details{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px}.shopping-line-details span{display:flex;flex-direction:column;gap:2px}
.shopping-line-details small{font-size:.66rem;color:var(--text-secondary);text-transform:uppercase;font-weight:800}.shopping-line-details strong{font-size:.86rem}
.shopping-line-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.shopping-alternative-selector{min-width:190px;max-width:280px}.shopping-manual-packages{width:72px}
.shopping-total-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface);font-size:1rem}.shopping-total-row strong{font-size:1.15rem}
.shopping-browser{margin:8px 0 14px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.shopping-browser-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.shopping-browser-header h3{margin:0 0 2px}.shopping-browser-header small{color:var(--text-secondary)}
@media(max-width:700px){.shopping-final-card{grid-template-columns:1fr}.shopping-line-actions{width:100%}.shopping-line-actions button:last-child{margin-left:auto}}

/* v45 checked-off shopping order history */
.checked-shopping-orders-page{padding-bottom:72px}
.shopping-checked-row{
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  padding:12px;
}
.shopping-checked-row .manager-row-info small+small{
  margin-top:3px;
  opacity:.72;
}

/* v46 comprehensive dark-mode contrast pass */
body.dark-mode{
  --bg:#0f1720;
  --surface:#18222d;
  --surface2:#22303d;
  --surface3:#2b3a48;
  --text-primary:#f5f7fa;
  --text-secondary:#b8c3cf;
  --border:#3b4a59;
  --primary:#4f8cff;
  --primary-color:#4f8cff;
  --danger:#ef6a6a;
  --success:#43c27a;
  --shadow:0 10px 32px rgba(0,0,0,.42);
  color-scheme:dark;
}

body.dark-mode,
body.dark-mode main,
body.dark-mode .app-view{
  background:var(--bg);
  color:var(--text-primary);
}

body.dark-mode .topbar{
  background:rgba(15,23,32,.96)!important;
  border-color:var(--border);
  box-shadow:0 1px 0 rgba(255,255,255,.03);
}

body.dark-mode #side-menu,
body.dark-mode .settings-panel,
body.dark-mode .settings-page,
body.dark-mode .modal-panel,
body.dark-mode .recipe-detail-panel,
body.dark-mode .card,
body.dark-mode .manager-row,
body.dark-mode .stock-manager-row,
body.dark-mode .shopping-browser,
body.dark-mode .shopping-total-row,
body.dark-mode .category-collapse,
body.dark-mode .wizard-card,
body.dark-mode .settings-section-card,
body.dark-mode .settings-list{
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  border-color:var(--border)!important;
}

body.dark-mode .manager-row:hover,
body.dark-mode .inventory-card:hover,
body.dark-mode .shopping-final-card:hover{
  background:#1d2a36!important;
}

body.dark-mode .inventory-card{
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  border-color:var(--border)!important;
  box-shadow:none;
}

body.dark-mode .inventory-card-content,
body.dark-mode .inventory-card-top strong,
body.dark-mode .inventory-stock-line strong{
  color:var(--text-primary)!important;
}

body.dark-mode .inventory-card-content small,
body.dark-mode .inventory-stock-line span,
body.dark-mode .manager-row-info small,
body.dark-mode .form-header p,
body.dark-mode .editor-section p,
body.dark-mode .form-help,
body.dark-mode .detail-subtitle,
body.dark-mode .shopping-final-title p{
  color:var(--text-secondary)!important;
}

body.dark-mode .inventory-type-badge,
body.dark-mode .recipe-badge,
body.dark-mode .settings-badge{
  background:var(--surface2)!important;
  color:#dbe4ee!important;
  border:1px solid var(--border);
}

body.dark-mode .inventory-empty{
  background:#341f24!important;
  border-color:#7a3b47!important;
}

body.dark-mode .inventory-empty .inventory-stock-line strong,
body.dark-mode .inventory-empty .inventory-card-top strong{
  color:#ffb5bd!important;
}

body.dark-mode .inventory-remove-btn,
body.dark-mode .delete-button,
body.dark-mode .danger-outline{
  background:#321e23!important;
  color:#ff9ca7!important;
  border-color:#78404a!important;
}

body.dark-mode .inventory-remove-btn:hover,
body.dark-mode .delete-button:hover,
body.dark-mode .danger-outline:hover{
  background:#47252d!important;
  color:#ffd2d7!important;
}

body.dark-mode input:not(.kitcherette-document-field),
body.dark-mode select:not(.kitcherette-document-field),
body.dark-mode textarea:not(.kitcherette-document-field){
  background:#111a23!important;
  color:var(--text-primary)!important;
  border-color:#435262!important;
  box-shadow:none!important;
}

body.dark-mode input:not(.kitcherette-document-field)::placeholder,
body.dark-mode textarea:not(.kitcherette-document-field)::placeholder{
  color:#82909e!important;
  opacity:1;
}

body.dark-mode input:not(.kitcherette-document-field):focus,
body.dark-mode select:not(.kitcherette-document-field):focus,
body.dark-mode textarea:not(.kitcherette-document-field):focus{
  border-color:#74a5ff!important;
  outline:2px solid rgba(79,140,255,.28)!important;
  outline-offset:1px;
}

body.dark-mode option{
  background:#111a23;
  color:var(--text-primary);
}

body.dark-mode button,
body.dark-mode .secondary-button,
body.dark-mode .styled-action-btn,
body.dark-mode .icon-button,
body.dark-mode .icon-button-small{
  border-color:var(--border);
}

body.dark-mode .secondary-button,
body.dark-mode .styled-action-btn,
body.dark-mode .icon-button,
body.dark-mode .icon-button-small{
  background:var(--surface2)!important;
  color:var(--text-primary)!important;
}

body.dark-mode .secondary-button:hover,
body.dark-mode .styled-action-btn:hover,
body.dark-mode .icon-button:hover,
body.dark-mode .icon-button-small:hover{
  background:var(--surface3)!important;
}

body.dark-mode .primary-button,
body.dark-mode .primary-action,
body.dark-mode .menu-toggle-on{
  background:var(--primary)!important;
  color:#fff!important;
  border-color:transparent!important;
}

body.dark-mode .menu-toggle-off{
  background:var(--surface2)!important;
  color:#d2dbe5!important;
  border-color:var(--border)!important;
}

body.dark-mode .stock-progress-wrapper,
body.dark-mode .progress-track{
  background:#283543!important;
}

body.dark-mode .stock-progress-fill,
body.dark-mode #menu-progress-level{
  background:#43c27a!important;
}

body.dark-mode .inline-error,
body.dark-mode .recipe-stock-warning,
body.dark-mode .service-stock-warning{
  background:#351f24!important;
  color:#ffc1c8!important;
  border-color:#75404a!important;
}

body.dark-mode #stock-confirmation-banner{
  background:#17633d!important;
  color:#f0fff7!important;
}

body.dark-mode .empty-state,
body.dark-mode .shopping-empty-note{
  background:#141d27!important;
  color:var(--text-secondary)!important;
  border-color:#465462!important;
}

body.dark-mode .category-collapse summary,
body.dark-mode .category-tab,
body.dark-mode .sort-control,
body.dark-mode .inventory-sort-label{
  color:var(--text-primary)!important;
}

body.dark-mode .category-tab{
  background:var(--surface2);
  border-color:var(--border);
}

body.dark-mode .category-tab.active{
  background:var(--primary)!important;
  color:#fff!important;
  border-color:transparent!important;
}

body.dark-mode .recipe-badge.is-on-menu{
  background:#173b2a!important;
  color:#8be5b3!important;
}

body.dark-mode .recipe-badge.is-off-menu{
  background:#27313c!important;
  color:#b5c0cc!important;
}

body.dark-mode .rating-star{
  color:#667483!important;
}
body.dark-mode .rating-star.selected{
  color:#ffc44d!important;
}

body.dark-mode .form-actions{
  background:linear-gradient(to bottom,rgba(24,34,45,0),var(--surface) 22%)!important;
}

body.dark-mode .modal,
body.dark-mode .recipe-detail-modal{
  background:rgba(0,0,0,.62)!important;
}

body.dark-mode .detail-row,
body.dark-mode .detail-block,
body.dark-mode .detail-step,
body.dark-mode .overview-grid>div,
body.dark-mode .overview-list{
  border-color:var(--border)!important;
}

body.dark-mode a{
  color:#8fb6ff;
}

body.dark-mode ::selection{
  background:#315f9e;
  color:#fff;
}

/* Smooth theme transitions without animating layout. */
body,
.topbar,
#side-menu,
.app-view,
.card,
.manager-row,
.inventory-card,
.category-collapse,
.settings-section-card,
.settings-list-item,
input,
select,
textarea,
button{
  transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;
}

/* v47 smoother shopping check-off feedback */
.shopping-final-card{
  overflow:hidden;
  transform-origin:center;
}
.shopping-final-card.shopping-checking-off{
  border-color:#4caf7d!important;
  background:color-mix(in srgb,var(--surface) 88%,#48b97a 12%)!important;
  transform:scale(.995);
}
.shopping-final-card.shopping-checking-off .shopping-line-actions button:last-child{
  background:#2f9e68!important;
  color:#fff!important;
  border-color:#2f9e68!important;
}
.shopping-final-card.shopping-checking-off-exit{
  opacity:0;
  transform:translateY(-6px) scale(.985);
  max-height:0;
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  border-width:0!important;
}
.shopping-final-card{
  transition:
    background-color .18s ease,
    border-color .18s ease,
    opacity .18s ease,
    transform .18s ease,
    max-height .18s ease,
    margin .18s ease,
    padding .18s ease,
    border-width .18s ease;
  max-height:none;
  overflow:visible;
}
body.dark-mode .shopping-final-card.shopping-checking-off{
  background:#183326!important;
  border-color:#398a62!important;
}

/* v48 checked-off orders header alignment */
#checked-shopping-orders-page .category-subtab-header{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
}
#checked-shopping-orders-page #close-checked-shopping-orders,
#checked-shopping-orders-page #reset-checked-shopping-orders{
  align-self:center;
  margin:0;
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}
#checked-shopping-orders-page .category-subtab-header > div{
  min-width:0;
}
#checked-shopping-orders-page .category-subtab-header h2,
#checked-shopping-orders-page .category-subtab-header p{
  margin-left:0;
  margin-right:0;
}
@media(max-width:700px){
  #checked-shopping-orders-page .category-subtab-header{
    grid-template-columns:1fr 1fr;
  }
  #checked-shopping-orders-page .category-subtab-header > div{
    grid-column:1/-1;
    grid-row:1;
  }
  #checked-shopping-orders-page #close-checked-shopping-orders{
    grid-column:1;
    grid-row:2;
    justify-self:start;
  }
  #checked-shopping-orders-page #reset-checked-shopping-orders{
    grid-column:2;
    grid-row:2;
    justify-self:end;
  }
}

/* v49 Menu planning quantities */
.settings-number-field{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 0 6px;
  font-size:.86rem;
  font-weight:700;
}
.settings-number-field input{
  width:110px;
  flex:0 0 110px;
  text-align:right;
}
.settings-field-help{
  display:block;
  color:var(--text-secondary);
  line-height:1.35;
  padding-bottom:4px;
}
.expected-qty-input{
  width:82px!important;
  min-width:82px;
  height:38px;
  padding:6px 8px!important;
  text-align:center;
  font-weight:800!important;
  font-size:.95rem;
}
.expected-qty-actions{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
}
@media(max-width:700px){
  .settings-number-field{
    align-items:flex-start;
  }
  .expected-qty-input{
    width:72px!important;
    min-width:72px;
  }
}

/* v50 recipe list edit/remove icon buttons */
.recipe-action-icon{
  width:38px;
  min-width:38px;
  height:38px;
  padding:0!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface2);
  color:var(--text-primary);
  font-size:1rem;
  line-height:1;
  cursor:pointer;
}
.recipe-action-icon:hover{
  background:var(--surface3);
}
.recipe-remove-icon{
  color:#c94d59;
}
.recipe-remove-icon:hover{
  background:#fff0f1;
  border-color:#e1a1a7;
  color:#a92e3b;
}
body.dark-mode .recipe-action-icon{
  background:var(--surface2)!important;
  color:var(--text-primary)!important;
  border-color:var(--border)!important;
}
body.dark-mode .recipe-action-icon:hover{
  background:var(--surface3)!important;
}
body.dark-mode .recipe-remove-icon{
  color:#ff9ca7!important;
}
body.dark-mode .recipe-remove-icon:hover{
  background:#47252d!important;
  border-color:#78404a!important;
  color:#ffd2d7!important;
}

/* v51 enforce square Recipes action icons */
#view-recipes .recipe-action-icon{
  width:40px!important;
  min-width:40px!important;
  max-width:40px!important;
  height:40px!important;
  min-height:40px!important;
  max-height:40px!important;
  flex:0 0 40px!important;
  aspect-ratio:1 / 1;
  padding:0!important;
  box-sizing:border-box;
  border-radius:10px;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}
#view-recipes .recipe-action-icon,
#view-recipes .recipe-action-icon *{
  box-sizing:border-box;
}

/* v52 Menu planned-dish control */
.expected-qty-simple{
  display:grid;
  grid-template-columns:58px minmax(112px,140px) 58px;
  align-items:center;
  gap:8px;
}
.expected-qty-simple .expected-qty-button{
  width:58px;
  min-width:58px;
  height:50px;
  min-height:50px;
  padding:0;
  border-radius:11px;
  font-size:1.05rem;
  font-weight:800;
}
.expected-qty-value-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
}
.expected-qty-value-wrap > small{
  font-size:.65rem;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:800;
  color:var(--text-secondary);
}
.expected-qty-large{
  width:100%!important;
  min-width:0!important;
  height:50px!important;
  padding:3px 8px!important;
  text-align:center!important;
  font-size:1.65rem!important;
  line-height:1!important;
  font-weight:900!important;
  font-variant-numeric:tabular-nums;
  border-radius:11px!important;
}
@media(max-width:700px){
  .expected-order-row{
    align-items:flex-start;
    flex-direction:column;
  }
  .expected-qty-simple{
    width:100%;
    grid-template-columns:58px minmax(0,1fr) 58px;
  }
}

/* v53 Menu recipe info and quantity label */
.expected-order-row{
  position:relative;
  align-items:center;
}
.expected-order-info{
  padding-right:52px;
}
.expected-order-info-button{
  position:absolute;
  top:10px;
  right:10px;
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  max-height:36px!important;
  padding:0!important;
  border-radius:9px;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:.95rem;
  line-height:1;
}
.expected-qty-value-wrap > small{
  white-space:nowrap;
  text-transform:none;
  letter-spacing:0;
  font-size:.68rem;
}
@media(max-width:700px){
  .expected-order-info{
    padding-right:50px;
  }
  .expected-order-info-button{
    top:10px;
    right:10px;
  }
}

/* v54 recipe ingredient autocomplete editor */
.ingredient-editor-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.ingredient-editor-icon{
  width:40px!important;
  min-width:40px!important;
  max-width:40px!important;
  height:40px!important;
  min-height:40px!important;
  max-height:40px!important;
  flex:0 0 40px!important;
  aspect-ratio:1/1;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:10px!important;
  font-size:1rem;
  line-height:1;
}
.recipe-ingredient-autocomplete-row{
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) 110px 92px 40px;
  gap:8px!important;
  align-items:start!important;
  position:relative;
  margin-bottom:10px!important;
}
.ingredient-name-autocomplete{
  position:relative;
  min-width:0;
}
.editor-ingredient-name{
  width:100%!important;
  min-width:0!important;
}
.ingredient-suggestions{
  position:absolute;
  top:calc(100% + 4px);
  left:0;
  right:0;
  z-index:80;
  display:flex;
  flex-direction:column;
  padding:5px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  box-shadow:var(--shadow);
}
.ingredient-suggestion{
  width:100%;
  border:0;
  background:transparent;
  color:var(--text-primary);
  text-align:left;
  border-radius:8px;
  padding:9px 10px;
  display:flex;
  flex-direction:column;
  gap:2px;
  cursor:pointer;
}
.ingredient-suggestion:hover,
.ingredient-suggestion:focus{
  background:var(--surface2);
}
.ingredient-suggestion strong{
  font-size:.86rem;
}
.ingredient-suggestion small{
  color:var(--text-secondary);
  font-size:.7rem;
}
.recipe-ingredient-autocomplete-row .ingredient-stock-hint{
  grid-column:1/4;
  padding-left:2px;
  margin-top:-3px;
}
.recipe-ingredient-remove{
  width:40px!important;
  min-width:40px!important;
  max-width:40px!important;
  height:40px!important;
  min-height:40px!important;
  max-height:40px!important;
  padding:0!important;
  border-radius:10px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
body.dark-mode .ingredient-suggestions{
  background:var(--surface)!important;
  border-color:var(--border)!important;
}
body.dark-mode .ingredient-suggestion:hover,
body.dark-mode .ingredient-suggestion:focus{
  background:var(--surface2)!important;
}
@media(max-width:760px){
  .recipe-ingredient-autocomplete-row{
    grid-template-columns:minmax(0,1fr) 92px 40px;
  }
  .ingredient-name-autocomplete{
    grid-column:1/-1;
  }
  .editor-ingredient-amount{
    grid-column:1;
  }
  .editor-ingredient-unit{
    grid-column:2;
  }
  .recipe-ingredient-remove{
    grid-column:3;
  }
  .recipe-ingredient-autocomplete-row .ingredient-stock-hint{
    grid-column:1/-1;
  }
}

/* v55 actionable missing Pantry warnings in Recipes */
.recipe-missing-pantry-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:7px;
}
.recipe-missing-pantry-warning{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.recipe-missing-pantry-warning > span{
  min-width:0;
  flex:1;
}
.recipe-missing-pantry-add{
  width:34px!important;
  min-width:34px!important;
  max-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  max-height:34px!important;
  aspect-ratio:1/1;
  flex:0 0 34px;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid currentColor;
  border-radius:9px;
  background:transparent;
  color:inherit;
  font-size:1.15rem;
  font-weight:800;
  cursor:pointer;
}
.recipe-missing-pantry-add:hover{
  background:rgba(185,28,28,.08);
}
body.dark-mode .recipe-missing-pantry-add:hover{
  background:rgba(255,156,167,.12);
}

/* v58 generic-controlled ABV */
.generic-abv-option{
  grid-column:1/-1;
  margin-top:2px!important;
}
#generic-ingredient-abv-enabled{
  width:auto!important;
}
#abv-form-group[style*="display: none"]{
  display:none!important;
}

/* v59 compact sticky workflow navigation */
.tab-navigation{
  position:sticky;
  bottom:10px;
  z-index:44;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:calc(100% - 24px);
  margin:22px auto 10px;
  padding:6px;
  border:1px solid var(--border);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  box-shadow:0 8px 24px rgba(0,0,0,.14);
  backdrop-filter:blur(10px);
}
.tab-navigation button{
  min-height:34px!important;
  height:34px!important;
  padding:0 12px!important;
  font-size:.75rem!important;
  border-radius:8px!important;
  white-space:nowrap;
}
body.dark-mode .tab-navigation{
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  border-color:var(--border);
}

/* Keep page-specific floating creation actions clear of sticky navigation. */
#view-recipes .new-recipe-footer,
.new-inventory-footer,
.new-generic-ingredient-footer{
  bottom:66px!important;
}
#view-recipes.recipe-editing .new-recipe-footer,
#view-current-stock.inventory-editing .new-inventory-footer,
#view-generic-ingredients .generic-ingredient-editor:not(.hidden) ~ .new-generic-ingredient-footer{
  display:none!important;
}

/* Generic-inherited Pantry unit */
#ingredient-unit.locked-by-generic{
  opacity:.78;
  cursor:not-allowed;
  background:var(--surface2)!important;
}
#ingredient-unit.locked-by-generic + *{}
@media(max-width:700px){
  .tab-navigation{
    bottom:8px;
    max-width:calc(100% - 16px);
    margin-bottom:8px;
  }
  .tab-navigation button{
    padding:0 10px!important;
    font-size:.72rem!important;
  }
  #view-recipes .new-recipe-footer,
.new-inventory-footer,
.new-generic-ingredient-footer{
    bottom:62px!important;
  }
}

/* v60 recipe URL importer */
.recipe-import-card{max-width:900px}
.recipe-import-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.recipe-import-status{margin-top:12px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);font-size:.8rem}
.recipe-import-status.info,
.recipe-import-status.loading{background:var(--surface2);color:var(--text-primary)}
.recipe-import-status.success{background:#ecfdf3;color:#166534;border-color:#86efac}
.recipe-import-status.error{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.recipe-import-advanced{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}
.recipe-import-advanced summary{cursor:pointer;font-weight:800}
.recipe-import-advanced textarea{margin:10px 0}
body.dark-mode .recipe-import-status.success{background:#173b2a;color:#9de8bc;border-color:#347a56}
body.dark-mode .recipe-import-status.error{background:#351f24;color:#ffc1c8;border-color:#75404a}

/* v62 recipe-editor local sticky navigation */
.recipe-editor-bottom-nav{
  position:sticky;
  bottom:10px;
  z-index:48;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  width:min(520px,calc(100% - 20px));
  margin:18px auto 8px;
  padding:6px;
  border:1px solid var(--border);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  box-shadow:0 8px 24px rgba(0,0,0,.14);
  backdrop-filter:blur(10px);
}
.recipe-editor-bottom-nav button{
  min-height:34px!important;
  height:34px!important;
  padding:0 12px!important;
  font-size:.75rem!important;
  border-radius:8px!important;
}
.recipe-editor-step-label{
  min-width:0;
  text-align:center;
  font-size:.72rem;
  font-weight:800;
  color:var(--text-secondary);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
body.dark-mode .recipe-editor-bottom-nav{
  background:color-mix(in srgb,var(--surface) 92%,transparent);
}
#view-recipes.recipe-editing .new-recipe-footer{
  bottom:66px!important;
}
@media(max-width:700px){
  .recipe-editor-bottom-nav{
    bottom:8px;
    width:calc(100% - 14px);
  }
  .recipe-editor-bottom-nav button{
    padding:0 10px!important;
    font-size:.72rem!important;
  }
}

/* v63 persistent Recipe editor actions */
#drink-form > .recipe-wizard-step > .form-actions.wizard-actions{
  display:none!important;
}
.recipe-editor-savebar{
  position:sticky;
  bottom:58px;
  z-index:49;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  width:min(520px,calc(100% - 20px));
  margin:18px auto 0;
  padding:6px;
  border:1px solid var(--border);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface) 96%,transparent);
  box-shadow:0 8px 24px rgba(0,0,0,.14);
  backdrop-filter:blur(10px);
}
.recipe-editor-savebar button{
  min-height:36px!important;
  height:36px!important;
  padding:0 14px!important;
  font-size:.78rem!important;
  border-radius:8px!important;
}
body.dark-mode .recipe-editor-savebar{
  background:color-mix(in srgb,var(--surface) 94%,transparent);
}
.recipe-action-click{
  animation:recipeActionPress .30s ease;
}
.recipe-action-save{
  box-shadow:0 0 0 4px rgba(67,194,122,.16)!important;
}
.recipe-action-cancel{
  box-shadow:0 0 0 4px rgba(239,106,106,.14)!important;
}
@keyframes recipeActionPress{
  0%{transform:scale(1)}
  42%{transform:scale(.94)}
  100%{transform:scale(1)}
}

/* In-page discard prompt */
.recipe-cancel-confirm{
  position:fixed;
  inset:0;
  z-index:120;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:18px;
  background:rgba(10,15,20,.48);
  backdrop-filter:blur(4px);
}
.recipe-cancel-confirm.hidden{display:none!important}
.recipe-cancel-confirm-card{
  width:min(520px,100%);
  padding:16px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  color:var(--text-primary);
  box-shadow:0 18px 50px rgba(0,0,0,.28);
  animation:recipeConfirmIn .20s ease;
}
.recipe-cancel-confirm-card h3{margin:0 0 5px}
.recipe-cancel-confirm-card p{margin:0;color:var(--text-secondary)}
.recipe-cancel-confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:16px;
}
@keyframes recipeConfirmIn{
  from{opacity:0;transform:translateY(14px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

/* The local section navigator remains the lowest sticky control. */
.recipe-editor-bottom-nav{
  bottom:10px!important;
  margin-top:8px!important;
}
@media(max-width:700px){
  .recipe-editor-savebar{
    bottom:56px;
    width:calc(100% - 14px);
  }
  .recipe-editor-savebar button{
    flex:1;
  }
  .recipe-cancel-confirm{
    padding:10px;
  }
  .recipe-cancel-confirm-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
}

/* v64 recipe/dish autocomplete */
.dish-name-autocomplete{
  position:relative;
  width:100%;
}
.dish-name-autocomplete > input{
  width:100%;
}
#dish-name-suggestions{
  z-index:95;
}
.recipe-save-success{
  background:#2f9e68!important;
  border-color:#2f9e68!important;
  color:#fff!important;
}

/* v66 missing Pantry product guidance in Shopping list */
.shopping-missing-product-card{
  border-width:1.5px!important;
}
.shopping-missing-product-warning{
  margin-top:4px;
  font-weight:800;
  color:#b4232f;
}
.shopping-missing-product-help{
  margin-top:5px;
  max-width:720px;
  line-height:1.35;
  color:var(--text-secondary)!important;
}
.shopping-add-missing-product{
  white-space:nowrap;
}
body.dark-mode .shopping-missing-product-warning{
  color:#ffb5bd!important;
}
@media(max-width:700px){
  .shopping-missing-product-card .shopping-line-actions{
    margin-top:8px;
  }
  .shopping-add-missing-product{
    width:100%;
  }
}

/* v67 clickable Recipe title + ingredient summary */
#view-recipes .recipe-card-open-area > strong,
#view-recipes .recipe-card-open-area > small:first-of-type{
  cursor:pointer;
}
#view-recipes .recipe-card-open-area > strong:hover,
#view-recipes .recipe-card-open-area > small:first-of-type:hover{
  text-decoration:underline;
  text-underline-offset:2px;
}
#view-recipes .recipe-card-open-area > strong:focus-visible,
#view-recipes .recipe-card-open-area > small:first-of-type:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:3px;
  border-radius:4px;
}

/* v68 compact recipe rating + actions */
#view-recipes .recipe-row-rating-wrap{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  width:100%;
  padding:0!important;
  margin-top:6px;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#view-recipes .recipe-item-rating{
  display:flex;
  align-items:center;
  gap:1px;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#view-recipes .recipe-item-rating .rating-star{
  width:24px!important;
  min-width:24px!important;
  height:24px!important;
  min-height:24px!important;
  padding:0!important;
  font-size:15px!important;
  line-height:24px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#view-recipes .recipe-item-rating .rating-clear{
  min-height:24px!important;
  height:24px!important;
  padding:0 5px!important;
  font-size:.66rem!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#view-recipes .recipe-row-rating-wrap .manager-actions{
  display:flex;
  align-items:center;
  gap:4px;
  margin:0!important;
  width:auto!important;
}

/* v69 missing Pantry warning below recipe controls */
#view-recipes .recipe-missing-pantry-below{
  grid-column:1/-1;
  width:100%;
  margin-top:4px;
}
#view-recipes .recipe-missing-pantry-warning-orange{
  display:flex;
  align-items:center;
  gap:8px;
  justify-content:space-between;
  padding:7px 9px;
  border:1px solid #f4b56a;
  border-radius:9px;
  background:#fff7ed;
  color:#b45309;
}
#view-recipes .recipe-missing-pantry-text{
  flex:1;
  min-width:0;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  font-size:.76rem;
  font-weight:800;
  cursor:pointer;
}
#view-recipes .recipe-missing-pantry-text:hover{
  text-decoration:underline;
  text-underline-offset:2px;
}
#view-recipes .recipe-missing-pantry-warning-orange .recipe-missing-pantry-add{
  color:#b45309;
  border-color:#f4b56a;
}
body.dark-mode #view-recipes .recipe-missing-pantry-warning-orange{
  background:#3a2817;
  color:#ffbf69;
  border-color:#8b5a22;
}
body.dark-mode #view-recipes .recipe-missing-pantry-warning-orange .recipe-missing-pantry-add{
  color:#ffbf69!important;
  border-color:#8b5a22!important;
}
.pantry-help-panel{
  width:min(680px,calc(100% - 24px));
}
.pantry-help-content{
  display:flex;
  flex-direction:column;
  gap:12px;
  line-height:1.5;
}
.pantry-help-content p{
  margin:0;
}
.pantry-help-content ol{
  margin:0;
  padding-left:22px;
}
.pantry-help-content li+li{
  margin-top:8px;
}

/* v70 recipe warning placement + pantry help modal layout */
#view-recipes .recipe-manager-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "info menu"
    "rating rating"
    "warning warning";
  align-items:start!important;
}
#view-recipes .recipe-manager-row > .manager-row-info{
  grid-area:info;
  min-width:0;
}
#view-recipes .recipe-manager-row > .recipe-menu-control{
  grid-area:menu;
}
#view-recipes .recipe-manager-row > .recipe-row-rating-wrap{
  grid-area:rating;
  width:100%!important;
  justify-content:flex-end!important;
}
#view-recipes .recipe-manager-row > .recipe-missing-pantry-list,
#view-recipes .recipe-manager-row > .recipe-stock-warning{
  grid-area:warning;
  width:100%!important;
  margin-top:6px!important;
}
#view-recipes .recipe-missing-pantry-below{
  display:flex;
  flex-direction:column;
  gap:6px;
}
#view-recipes .recipe-missing-pantry-warning-orange{
  width:100%;
  box-sizing:border-box;
}

/* Pantry help modal always fully visible below sticky header */
#pantry-help-modal{
  position:fixed!important;
  inset:0!important;
  z-index:140!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  padding:72px 14px 14px!important;
  overflow:hidden!important;
  background:rgba(10,15,20,.48)!important;
  backdrop-filter:blur(4px);
}
#pantry-help-modal.hidden{
  display:none!important;
}
#pantry-help-modal .pantry-help-panel{
  width:min(720px,100%)!important;
  max-height:calc(100vh - 86px)!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  border-radius:16px!important;
}
#pantry-help-modal .modal-header{
  flex:0 0 auto;
  padding:16px 18px 12px;
  border-bottom:1px solid var(--border);
}
#pantry-help-modal .modal-header h2{
  margin:0 0 4px;
  font-size:1.2rem;
}
#pantry-help-modal .modal-header p{
  margin:0;
  color:var(--text-secondary);
  line-height:1.35;
}
#pantry-help-modal .pantry-help-content{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto!important;
  padding:18px;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
#pantry-help-modal .pantry-help-content > p:first-child{
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface2);
}
#pantry-help-modal .pantry-help-content ol{
  counter-reset:pantrystep;
  list-style:none;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
#pantry-help-modal .pantry-help-content li{
  counter-increment:pantrystep;
  position:relative;
  padding:10px 12px 10px 44px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface2);
}
#pantry-help-modal .pantry-help-content li::before{
  content:counter(pantrystep);
  position:absolute;
  left:12px;
  top:10px;
  width:22px;
  height:22px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--primary);
  color:#fff;
  font-size:.72rem;
  font-weight:800;
}
#pantry-help-modal .pantry-help-content li strong{
  display:block;
  margin-bottom:2px;
}
#pantry-help-modal .pantry-help-content > p:last-child{
  padding:12px 14px;
  border-left:3px solid var(--primary);
  background:color-mix(in srgb,var(--surface2) 88%,transparent);
  border-radius:8px;
}
body.dark-mode #pantry-help-modal .pantry-help-content li,
body.dark-mode #pantry-help-modal .pantry-help-content > p:first-child{
  background:var(--surface2)!important;
}
@media(max-width:700px){
  #pantry-help-modal{
    padding:64px 8px 8px!important;
  }
  #pantry-help-modal .pantry-help-panel{
    max-height:calc(100vh - 72px)!important;
  }
  #pantry-help-modal .pantry-help-content{
    padding:14px;
  }
}

/* v71 unified full-height boxed modal system */
:root{
  --app-modal-gap:14px;
  --app-header-offset:62px;
}
.modal,
.recipe-detail-modal{
  position:fixed!important;
  inset:0!important;
  z-index:140!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  padding:
    calc(var(--app-header-offset) + var(--app-modal-gap))
    var(--app-modal-gap)
    var(--app-modal-gap)!important;
  overflow:hidden!important;
  background:rgba(10,15,20,.46)!important;
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
.modal.hidden,
.recipe-detail-modal.hidden{
  display:none!important;
}

/* Treat actual popup panels consistently; exclude ordinary in-page .modal-panel containers. */
.modal > .modal-panel,
.recipe-detail-modal > .recipe-detail-panel{
  width:min(760px,100%)!important;
  height:100%!important;
  max-height:none!important;
  margin:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  border:1px solid var(--border)!important;
  border-radius:18px!important;
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  box-shadow:0 20px 60px rgba(0,0,0,.30)!important;
}

/* Keep popup headers visible; content scrolls beneath. */
.modal > .modal-panel > .modal-header,
.recipe-detail-modal > .recipe-detail-panel > .modal-header{
  flex:0 0 auto!important;
  position:relative!important;
  z-index:2;
  padding:16px 18px 13px!important;
  border-bottom:1px solid var(--border)!important;
  background:var(--surface)!important;
}

/* Pantry help: use full remaining panel height for scrollable content. */
#pantry-help-modal{
  padding:
    calc(var(--app-header-offset) + var(--app-modal-gap))
    var(--app-modal-gap)
    var(--app-modal-gap)!important;
}
#pantry-help-modal .pantry-help-panel{
  width:min(760px,100%)!important;
  height:100%!important;
  max-height:none!important;
}
#pantry-help-modal .pantry-help-content{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  padding:18px!important;
}

/* Recipe popup */
#recipe-detail-modal .recipe-detail-panel{
  width:min(860px,100%)!important;
}
#recipe-detail-modal #recipe-detail-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  padding:18px!important;
}

/* Checklist editor popup */



/* Consistent close buttons */
.modal > .modal-panel .modal-header .icon-button,
.recipe-detail-modal > .recipe-detail-panel .modal-header .icon-button{
  flex:0 0 38px;
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  padding:0!important;
  border-radius:10px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

/* Softer body sections inside recipe modal */
#recipe-detail-modal .detail-block,
#recipe-detail-modal .detail-row,
#recipe-detail-modal .detail-step,
#recipe-detail-modal .overview-list{
  border-radius:12px;
}
body.dark-mode .modal > .modal-panel,
body.dark-mode .recipe-detail-modal > .recipe-detail-panel{
  background:var(--surface)!important;
  border-color:var(--border)!important;
}
@media(max-width:700px){
  :root{
    --app-modal-gap:8px;
    --app-header-offset:56px;
  }
  .modal,
.recipe-detail-modal{
    padding:
      calc(var(--app-header-offset) + var(--app-modal-gap))
      var(--app-modal-gap)
      var(--app-modal-gap)!important;
  }
  .modal > .modal-panel,
.recipe-detail-modal > .recipe-detail-panel{
    border-radius:14px!important;
  }
  #pantry-help-modal .pantry-help-content,
#recipe-detail-modal #recipe-detail-body{
    padding:14px!important;
  }
}

/* v72: keep the main header unobscured and use the page side-gap above modals */
:root{
  --app-modal-gap:14px;
  --app-header-height:58px;
}

/* The header must remain above the blurred modal backdrop. */
.app-header,
header.app-header,
#app-header,
.top-header,
header{
  z-index:200!important;
}

/* Backdrop starts below the header. The space between header and panel
   is exactly the same as the side margin. */
.modal,
.recipe-detail-modal,
#pantry-help-modal{
  top:var(--app-header-height)!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  height:auto!important;
  padding:
    var(--app-modal-gap)
    var(--app-modal-gap)
    var(--app-modal-gap)!important;
}

/* Popup fills the remaining vertical space inside those equal margins. */
.modal > .modal-panel,
.recipe-detail-modal > .recipe-detail-panel,
#pantry-help-modal .pantry-help-panel{
  height:100%!important;
  max-height:none!important;
}

@media(max-width:700px){
  :root{
    --app-modal-gap:8px;
    --app-header-height:56px;
  }
}







/* v79 recipe creation choice */
.recipe-create-choice{
  min-height:calc(100vh - 120px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px 0 90px;
}
.recipe-create-choice.hidden{display:none!important}
.recipe-create-choice-card{
  width:min(760px,100%);
  padding:20px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  box-shadow:var(--shadow);
}
.recipe-create-choice-copy h2{margin:4px 0 6px;font-size:1.35rem}
.recipe-create-choice-copy p{margin:0;color:var(--text-secondary);line-height:1.45}
.recipe-create-choice-options{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:18px;
}
.recipe-start-option{
  min-height:150px;
  padding:16px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  text-align:left;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface2);
  color:var(--text-primary);
  cursor:pointer;
  transition:transform .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.recipe-start-option:hover,
.recipe-start-option:focus-visible{
  transform:translateY(-2px);
  border-color:var(--primary);
  box-shadow:0 8px 22px rgba(0,0,0,.10);
  outline:none;
}
.recipe-start-option-icon{
  width:40px;min-width:40px;height:40px;
  border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--surface);border:1px solid var(--border);font-size:1.1rem;
}
.recipe-start-option-copy{display:flex;flex-direction:column;gap:7px}
.recipe-start-option-copy strong{font-size:.95rem}
.recipe-start-option-copy small{color:var(--text-secondary);line-height:1.4}
.alpha-badge{
  display:inline-flex;align-items:center;min-height:20px;padding:0 6px;margin-left:4px;
  border-radius:6px;background:#fff3cd;color:#8a5b00;border:1px solid #efd38a;
  font-size:.61rem;text-transform:uppercase;letter-spacing:.04em;
}
.recipe-create-choice-actions{display:flex;justify-content:flex-end;margin-top:16px}
body.dark-mode .recipe-start-option{background:var(--surface2)!important}
body.dark-mode .alpha-badge{background:#493813;color:#ffd87a;border-color:#765d20}
@media(max-width:700px){
  .recipe-create-choice{align-items:flex-start;padding-top:10px}
  .recipe-create-choice-options{grid-template-columns:1fr}
  .recipe-start-option{min-height:120px}
}

/* v81 autosave feedback */
#recipe-editor-step-label{
  transition:color .18s ease,opacity .18s ease;
}
.recipe-save-success{
  transition:background-color .18s ease,border-color .18s ease,color .18s ease;
}

/* v82 hard tier guard for recipe financial fields */
#menu-price-field[hidden],
#editor-margin-wrap[hidden]{
  display:none!important;
}
#menu-price-field.hidden,
#editor-margin-wrap.hidden{
  display:none!important;
}

/* v83 PWA */
.pwa-install-setting{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.pwa-install-setting .settings-list-copy{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}
.pwa-install-setting .settings-list-copy small{
  color:var(--text-secondary);
  line-height:1.35;
}
@media(display-mode:standalone){
  body{
    overscroll-behavior-y:none;
  }
}

/* v84 guided Pantry item setup from recipe warning */
#pantry-help-modal .pantry-help-content{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.pantry-guide-intro{
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface2);
}
.pantry-guide-intro strong{
  display:block;
  margin-bottom:4px;
  font-size:1rem;
}
.pantry-guide-intro p{
  margin:0;
  color:var(--text-secondary);
  line-height:1.4;
}
.pantry-guide-step{
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  gap:10px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface2);
}
.pantry-guide-step-number{
  width:28px;
  height:28px;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--primary);
  color:#fff;
  font-size:.75rem;
  font-weight:800;
}
.pantry-guide-step-body{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 10px;
  min-width:0;
}
.pantry-guide-step-body > p,
.pantry-guide-step-body > .pantry-guide-link{
  grid-column:1/-1;
}
.pantry-guide-step-body p{
  margin:0;
  color:var(--text-secondary);
  line-height:1.4;
  font-size:.76rem;
}
.pantry-guide-step-body label{
  min-width:0;
}
.pantry-guide-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  border-radius:9px;
  background:var(--surface);
  border:1px solid var(--border);
}
.pantry-guide-link span{
  color:var(--text-secondary);
  font-size:.74rem;
}
.pantry-guide-actions{
  position:sticky;
  bottom:0;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding:10px 0 2px;
  background:linear-gradient(to bottom,transparent,var(--surface) 28%);
}
body.dark-mode .pantry-guide-intro,
body.dark-mode .pantry-guide-step{
  background:var(--surface2)!important;
}
body.dark-mode .pantry-guide-link{
  background:var(--surface)!important;
}
@media(max-width:700px){
  .pantry-guide-step-body{
    grid-template-columns:1fr;
  }
  .pantry-guide-step-body > p,
.pantry-guide-step-body > .pantry-guide-link{
    grid-column:1;
  }
  .pantry-guide-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
}

/* v85 floating creation actions + safe bottom scroll space */
:root{
  --page-edge-gap:14px;
  --floating-action-height:44px;
  --floating-action-clearance:82px;
}

/* New recipe / new Pantry item float at bottom-right with equal edge margins. */
.new-recipe-footer,
.new-inventory-footer{
  position:fixed!important;
  right:var(--page-edge-gap)!important;
  bottom:var(--page-edge-gap)!important;
  left:auto!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  z-index:60!important;
  background:transparent!important;
  box-shadow:none!important;
  pointer-events:none;
}

.new-recipe-footer .new-recipe-button,
.new-inventory-footer .new-recipe-button,
.new-inventory-footer button{
  pointer-events:auto;
  min-height:var(--floating-action-height)!important;
  height:var(--floating-action-height)!important;
  padding:0 16px!important;
  border-radius:12px!important;
  box-shadow:0 8px 22px rgba(0,0,0,.16);
}

/* v389: app-level bottom clearance is owned by the shared shell.
   Keep only the genuine page-local Generic Ingredients floating action here. */
#generic-ingredient-list{
  padding-bottom:var(--floating-action-clearance)!important;
}

/* Do not show floating creation buttons while their editors are open. */
#view-recipes.recipe-editing .new-recipe-footer,
#view-current-stock.inventory-editing .new-inventory-footer,
#view-generic-ingredients .generic-ingredient-editor:not(.hidden) ~ .new-generic-ingredient-footer{
  display:none!important;
}

/* Keep other floating controls above the creation button if needed. */
.recipe-editor-savebar,
.recipe-editor-bottom-nav{
  z-index:70!important;
}

@media(max-width:700px){
  :root{
    --page-edge-gap:10px;
    --floating-action-height:42px;
    --floating-action-clearance:76px;
  }

  .new-recipe-footer .new-recipe-button,
.new-inventory-footer .new-recipe-button,
.new-inventory-footer button{
    min-height:42px!important;
    height:42px!important;
    padding:0 14px!important;
    border-radius:11px!important;
  }
}



/* v88 canonical compact category/filter header */
:root{
  --category-control-height:30px;
  --category-control-radius:8px;
  --category-header-pad:6px;
  --category-row-gap:5px;
}

/* Sticky wrapper sits directly below the main header and owns all vertical spacing. */
.compact-category-header{
  position:sticky!important;
  top:var(--app-header-height)!important;
  z-index:52!important;
  display:flex!important;
  flex-direction:column!important;
  gap:var(--category-row-gap)!important;
  margin:0!important;
  padding:var(--category-header-pad) 0!important;
  background:color-mix(in srgb,var(--bg) 96%,transparent)!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  overflow:visible!important;
}

/* One row: full-width categories with the filter button overlaid on the right. */
.compact-category-topline{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:calc(var(--category-control-height) + 4px)!important;
  min-height:calc(var(--category-control-height) + 4px)!important;
  margin:0!important;
  padding:2px 0!important; /* actual clearance so category borders cannot be clipped */
  box-sizing:border-box!important;
  overflow:visible!important;
}

.compact-category-pill-scroller{
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0 calc(var(--category-control-height) + 8px) 0 0!important;
  box-sizing:border-box!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none;
}
.compact-category-pill-scroller::-webkit-scrollbar{display:none!important;}

.compact-category-block{
  display:block!important;
  height:var(--category-control-height)!important;
  min-height:var(--category-control-height)!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  overflow:visible!important;
}
.compact-category-summary-hidden{display:none!important;}

.compact-category-block > .category-tabs{
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-width:max-content!important;
  height:var(--category-control-height)!important;
  margin:0!important;
  padding:0!important;
  gap:5px!important;
  overflow:visible!important;
}

.compact-category-header .category-tabs > button,
.compact-category-header .category-tabs > .category-tab{
  flex:1 0 auto!important;
  height:var(--category-control-height)!important;
  min-height:var(--category-control-height)!important;
  max-height:var(--category-control-height)!important;
  margin:0!important;
  padding:0 10px!important;
  border-radius:var(--category-control-radius)!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
  font-size:.64rem!important;
  line-height:1!important;
  font-weight:700!important;
  overflow:visible!important;
}

/* Filter button aligns to the same control box, inside the 2px row clearance. */
.compact-category-header .compact-filter-toggle{
  position:absolute!important;
  top:2px!important;
  right:0!important;
  transform:none!important;
  z-index:5!important;
  width:var(--category-control-height)!important;
  min-width:var(--category-control-height)!important;
  max-width:var(--category-control-height)!important;
  height:var(--category-control-height)!important;
  min-height:var(--category-control-height)!important;
  max-height:var(--category-control-height)!important;
  margin:0!important;
  padding:0!important;
  border-radius:var(--category-control-radius)!important;
  border:1px solid #b8c2cc!important;
  background:#f4f7fa!important;
  color:#334155!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  opacity:1!important;
  visibility:visible!important;
}
.compact-category-header .compact-filter-toggle.is-open{
  background:#2563eb!important;
  color:#fff!important;
  border-color:#1d4ed8!important;
}
body.dark-mode .compact-filter-toggle{
  background:#243241!important;
  color:#dce6f1!important;
  border-color:#4b5f72!important;
}
body.dark-mode .compact-filter-toggle.is-open{
  background:#3b82f6!important;
  color:#fff!important;
  border-color:#60a5fa!important;
}

/* Expanded controls: no extra blank band above or below. */
.compact-category-header .compact-filter-row{
  position:static!important;
  display:flex!important;
  align-items:flex-end!important;
  flex-wrap:wrap!important;
  gap:5px!important;
  width:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.compact-category-header .compact-filter-row.hidden{
  display:none!important;
}
.compact-category-header .compact-filter-row select,
.compact-category-header .compact-filter-row input:not([type="checkbox"]){
  min-height:30px!important;
  height:30px!important;
  font-size:.72rem!important;
  padding:3px 7px!important;
}
.compact-category-header .compact-filter-row .recipe-tool-icon,
.compact-category-header .compact-filter-row .category-manager-launch{
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
}

/* Remove the actual source of the oversized gap below categories on list pages. */
#view-recipes .compact-category-header + #menu-editor,
#view-generic-ingredients .compact-category-header + #generic-ingredient-manager,
#view-current-stock .compact-category-header + #stock-confirmation-banner,
#view-service .compact-category-header + #drink-list,
#view-expected-orders .compact-category-header + #expected-orders-list{
  margin-top:0!important;
  padding-top:0!important;
}

#view-recipes #menu-editor,
#view-recipes #menu-editor > .modal-panel,
#view-recipes #drink-manager,
#view-recipes #editor-drink-list,
#view-generic-ingredients #generic-ingredient-manager,
#view-current-stock #current-stock-list,
#view-service #drink-list{
  margin-top:0!important;
}

/* Keep only a small visual separation from the first card/list row. */
#view-recipes #editor-drink-list,
#view-generic-ingredients #generic-ingredient-list,
#view-current-stock #current-stock-list,
#view-service #drink-list{
  padding-top:2px!important;
}

@media(max-width:700px){
  :root{
    --category-control-height:28px;
    --category-control-radius:7px;
    --category-header-pad:5px;
    --category-row-gap:4px;
  }
  .compact-category-header .category-tabs > button,
.compact-category-header .category-tabs > .category-tab{
    padding:0 9px!important;
    font-size:.62rem!important;
  }
  .compact-category-header .compact-filter-row select,
.compact-category-header .compact-filter-row input:not([type="checkbox"]){
    min-height:28px!important;
    height:28px!important;
  }
  .compact-category-header .compact-filter-row .recipe-tool-icon,
.compact-category-header .compact-filter-row .category-manager-launch{
    width:28px!important;
    min-width:28px!important;
    max-width:28px!important;
    height:28px!important;
    min-height:28px!important;
    max-height:28px!important;
  }
}

/* v89 structural category-header fix: no legacy <details> wrapper */
.compact-category-header{
  position:sticky!important;
  top:var(--app-header-height)!important;
  z-index:52!important;
  width:100%!important;
  margin:0!important;
  padding:6px 0 4px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:4px!important;
  background:color-mix(in srgb,var(--bg) 96%,transparent)!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}

.compact-category-topline{
  position:relative!important;
  width:100%!important;
  height:32px!important;
  min-height:32px!important;
  margin:0!important;
  padding:1px 0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}

.compact-category-pill-scroller{
  width:100%!important;
  height:30px!important;
  margin:0!important;
  padding:0 38px 0 0!important;
  box-sizing:border-box!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none!important;
}
.compact-category-pill-scroller::-webkit-scrollbar{display:none!important;}

.compact-category-tabs{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  width:100%!important;
  min-width:max-content!important;
  height:30px!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}

.compact-category-tabs > button,
.compact-category-tabs > .category-tab{
  flex:1 0 auto!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  margin:0!important;
  padding:0 10px!important;
  border-radius:8px!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
  line-height:1!important;
  font-size:.64rem!important;
}

.compact-category-header .compact-filter-toggle{
  position:absolute!important;
  top:1px!important;
  right:0!important;
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  border-radius:8px!important;
  box-sizing:border-box!important;
  z-index:4!important;
}

#view-recipes .compact-category-header .compact-filter-row,
#view-generic-ingredients .compact-category-header .compact-filter-row,
#view-current-stock .compact-category-header .compact-filter-row,
#view-service .compact-category-header .compact-filter-row,
#view-expected-orders .compact-category-header .compact-filter-row,
#view-stock-orders .compact-category-header .compact-filter-row{
  position:static!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  width:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:flex-end!important;
  flex-wrap:wrap!important;
  gap:5px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.compact-category-header .compact-filter-row.hidden{
  display:none!important;
}

/* Remove the leftover blank area from page-level toolbar/list spacing. */
#view-recipes > #menu-editor,
#view-generic-ingredients > #generic-ingredient-manager,
#view-service > #drink-list,
#view-expected-orders > #expected-orders-list{
  margin-top:0!important;
  padding-top:0!important;
}
#view-recipes #menu-editor > .modal-panel,
#view-recipes #drink-manager,
#view-recipes #editor-drink-list{
  margin-top:0!important;
  padding-top:0!important;
}
#view-current-stock > #stock-confirmation-banner.hidden + #current-stock-list,
#view-current-stock > #current-stock-list{
  margin-top:0!important;
  padding-top:0!important;
}

@media(max-width:700px){
  .compact-category-header{
    padding:5px 0 3px!important;
  }
  .compact-category-topline{
    height:30px!important;
    min-height:30px!important;
  }
  .compact-category-pill-scroller,
.compact-category-tabs{
    height:28px!important;
  }
  .compact-category-tabs > button,
.compact-category-tabs > .category-tab{
    height:28px!important;
    min-height:28px!important;
    max-height:28px!important;
    border-radius:7px!important;
    padding:0 9px!important;
  }
  .compact-category-header .compact-filter-toggle{
    top:1px!important;
    width:28px!important;
    min-width:28px!important;
    max-width:28px!important;
    height:28px!important;
    min-height:28px!important;
    max-height:28px!important;
    border-radius:7px!important;
  }
  .compact-category-pill-scroller{
    padding-right:36px!important;
  }
}

/* v90 unified spacing around category/filter block */
:root{
  --category-edge-gap:8px;
}

/* Use the same gap on all four visual sides:
   header -> categories, page side -> controls, categories/filters -> content. */
.compact-category-header{
  top:var(--app-header-height)!important;
  padding:
    var(--category-edge-gap)
    var(--category-edge-gap)
    var(--category-edge-gap)!important;
  margin:0!important;
  gap:var(--category-edge-gap)!important;
  box-sizing:border-box!important;
}

/* The internal row uses the full available width inside the same side gap. */
.compact-category-topline{
  width:100%!important;
  margin:0!important;
  padding:1px 0!important;
  box-sizing:border-box!important;
}

.compact-category-pill-scroller{
  padding-right:calc(var(--category-control-height) + var(--category-edge-gap))!important;
  margin:0!important;
  box-sizing:border-box!important;
}

/* Expanded filter row gets no extra hidden spacing;
   the wrapper gap above/below is the single source of spacing. */
.compact-category-header .compact-filter-row{
  width:100%!important;
  margin:0!important;
  padding:0!important;
  gap:var(--category-edge-gap)!important;
  box-sizing:border-box!important;
}

/* Remove any extra gap added by the following page content. */
.compact-category-header + *,
#view-recipes > #menu-editor,
#view-generic-ingredients > #generic-ingredient-manager,
#view-current-stock > #stock-confirmation-banner,
#view-service > #drink-list,
#view-expected-orders > #expected-orders-list,
#view-stock-orders > #shopping-browser{
  margin-top:0!important;
}

/* When the first child below the header has its own top padding, suppress it. */
#view-recipes #editor-drink-list,
#view-generic-ingredients #generic-ingredient-list,
#view-current-stock #current-stock-list,
#view-service #drink-list,
#view-expected-orders #expected-orders-list{
  padding-top:0!important;
}

/* Keep filter button aligned within the same side inset. */
.compact-category-header .compact-filter-toggle{
  right:0!important;
}

@media(max-width:700px){
  :root{
    --category-edge-gap:8px;
  }
}

/* v91 filter toggle state + invariant sticky header offset */
.compact-category-header{
  position:sticky!important;
  top:calc(var(--app-header-height) + var(--category-edge-gap))!important;
  z-index:52!important;
  margin:0!important;
  transform:none!important;
}

/* Ensure hidden always wins over generic display:flex rules. */
.compact-category-header .compact-filter-row.hidden{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  overflow:hidden!important;
  margin:0!important;
  padding:0!important;
}

/* Open state gets its normal layout back. */
.compact-category-header .compact-filter-row:not(.hidden){
  display:flex!important;
  visibility:visible!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}

/* Keep the top gap visually constant while the page scrolls. */
.topbar{
  position:sticky!important;
  top:0!important;
  z-index:200!important;
}
.compact-category-header{
  align-self:stretch!important;
  will-change:auto!important;
}

/* Prevent ancestor transforms/overflow from changing sticky behavior on main views. */
main,
.app-view{
  overflow:visible!important;
  transform:none!important;
}

/* v92 definitive category/filter behavior */
:root{
  --app-header-height:72px;
  --category-edge-gap:8px;
}

/* Native hidden attribute wins regardless of old toolbar CSS. */
.compact-category-header .compact-filter-row[hidden]{
  display:none!important;
}
.compact-category-header .compact-filter-row:not([hidden]){
  display:flex!important;
}

/*
  main has 24px top padding in the legacy layout.
  Pull compact-header views up by exactly those 24px, then the wrapper's own
  8px padding becomes the sole visual gap both before and after sticky engages.
*/
.has-compact-category-header > .compact-category-header{
  margin-top:-24px!important;
}

.compact-category-header{
  position:sticky!important;
  top:var(--app-header-height)!important;
  z-index:52!important;
  padding:var(--category-edge-gap)!important;
  margin-right:calc(-1 * var(--category-edge-gap))!important;
  margin-left:calc(-1 * var(--category-edge-gap))!important;
  margin-bottom:0!important;
  gap:var(--category-edge-gap)!important;
  box-sizing:border-box!important;
  background:color-mix(in srgb,var(--bg) 97%,transparent)!important;
  overflow:visible!important;
}

/* exact row alignment */
.compact-category-topline{
  height:32px!important;
  min-height:32px!important;
  padding:1px 0!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.compact-category-pill-scroller{
  height:30px!important;
  padding:0 38px 0 0!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.compact-category-tabs{
  height:30px!important;
  margin:0!important;
  padding:0!important;
}
.compact-category-tabs > button,
.compact-category-tabs > .category-tab{
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  margin:0!important;
  padding:0 10px!important;
  border-radius:8px!important;
  box-sizing:border-box!important;
}
.compact-category-header .compact-filter-toggle{
  top:1px!important;
  right:0!important;
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  border-radius:8px!important;
  transform:none!important;
}

/* The wrapper gap is the only spacing around the expanded filter row. */
.compact-category-header .compact-filter-row{
  position:static!important;
  top:auto!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  min-height:0!important;
  gap:var(--category-edge-gap)!important;
  box-sizing:border-box!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}

/* no second spacing layer after compact header */
.has-compact-category-header > .compact-category-header + *{
  margin-top:0!important;
}
#view-recipes #menu-editor,
#view-recipes #menu-editor > .modal-panel,
#view-recipes #drink-manager,
#view-recipes #editor-drink-list,
#view-generic-ingredients #generic-ingredient-manager,
#view-generic-ingredients #generic-ingredient-list,
#view-current-stock #current-stock-list,
#view-service #drink-list,
#view-expected-orders #expected-orders-list{
  margin-top:0!important;
  padding-top:0!important;
}

@media(max-width:700px){
  :root{
    --app-header-height:64px; /* actual legacy mobile .topbar height */
    --category-edge-gap:8px;
  }
  .has-compact-category-header > .compact-category-header{
    margin-top:-24px!important;
  }
  .compact-category-topline{
    height:30px!important;
    min-height:30px!important;
  }
  .compact-category-pill-scroller,
.compact-category-tabs{
    height:28px!important;
  }
  .compact-category-tabs > button,
.compact-category-tabs > .category-tab{
    height:28px!important;
    min-height:28px!important;
    max-height:28px!important;
    border-radius:7px!important;
    padding:0 9px!important;
  }
  .compact-category-header .compact-filter-toggle{
    top:1px!important;
    width:28px!important;
    min-width:28px!important;
    max-width:28px!important;
    height:28px!important;
    min-height:28px!important;
    max-height:28px!important;
    border-radius:7px!important;
  }
  .compact-category-pill-scroller{
    padding-right:36px!important;
  }
}

/* v93 live typed name filter above categories */
.compact-name-filter-wrap{
  position:relative;
  width:100%;
  height:34px;
  margin:0;
  padding:0;
}
.compact-name-filter{
  width:100%!important;
  height:34px!important;
  min-height:34px!important;
  margin:0!important;
  padding:0 34px 0 31px!important;
  border:1px solid var(--border)!important;
  border-radius:8px!important;
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  font-size:.78rem!important;
  line-height:1!important;
  box-sizing:border-box!important;
  outline:none;
}
.compact-name-filter:focus{
  border-color:#2563eb!important;
  box-shadow:0 0 0 2px rgba(37,99,235,.12)!important;
}
.compact-name-filter-icon{
  position:absolute;
  left:10px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  color:var(--text-secondary);
  font-size:.9rem;
  line-height:1;
  pointer-events:none;
}
.compact-name-filter-clear{
  position:absolute!important;
  top:50%!important;
  right:5px!important;
  transform:translateY(-50%)!important;
  z-index:2!important;
  width:24px!important;
  min-width:24px!important;
  max-width:24px!important;
  height:24px!important;
  min-height:24px!important;
  max-height:24px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:6px!important;
  background:transparent!important;
  color:var(--text-secondary)!important;
  font-size:1rem!important;
  line-height:1!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.compact-name-filter-clear:hover{
  background:var(--surface2)!important;
}
.compact-name-filter-clear.hidden{
  display:none!important;
}
body.dark-mode .compact-name-filter{
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  border-color:var(--border)!important;
}
@media(max-width:700px){
  .compact-name-filter-wrap,
.compact-name-filter{
    height:32px!important;
    min-height:32px!important;
  }
  .compact-name-filter{
    font-size:.75rem!important;
  }
}

/* v94 persistent name filter: always above categories */
.compact-category-header > .persistent-name-filter{
  order:-10!important;
  display:block!important;
  visibility:visible!important;
  height:34px!important;
  min-height:34px!important;
  max-height:34px!important;
  margin:0!important;
  padding:0!important;
  flex:0 0 34px!important;
}
.compact-category-header > .persistent-name-filter.hidden{
  display:block!important;
}
.compact-category-header > .persistent-name-filter + .compact-category-topline{
  margin-top:0!important;
}
.compact-category-header .compact-name-filter{
  display:block!important;
  width:100%!important;
  height:34px!important;
  min-height:34px!important;
  opacity:1!important;
  visibility:visible!important;
}
@media(max-width:700px){
  .compact-category-header > .persistent-name-filter{
    height:32px!important;
    min-height:32px!important;
    max-height:32px!important;
    flex-basis:32px!important;
  }
  .compact-category-header .compact-name-filter{
    height:32px!important;
    min-height:32px!important;
  }
}

/* v95 uniform list headers across operational pages */
.uniform-list-header{
  width:100%!important;
}

/* All persistent typed filters use the exact same geometry. */
.compact-category-header > .persistent-name-filter,
.checked-orders-search{
  height:34px!important;
  min-height:34px!important;
  max-height:34px!important;
  margin:0!important;
  padding:0!important;
}

/* Dynamic headers use the same category controls as static ones. */
.uniform-list-header .compact-category-tabs{
  width:100%!important;
}

/* Shopping and Menu tool rows match Recipe/Preparation filter row style. */
#view-stock-orders .compact-filter-row,
#view-expected-orders .compact-filter-row{
  width:100%!important;
  margin:0!important;
  padding:0!important;
}

/* Remove obsolete list-page intro spacing where the uniform header is present. */
.has-compact-category-header > .view-intro{
  display:none!important;
}
.has-compact-category-header > .compact-category-header + *{
  margin-top:0!important;
}

/* Checked-off order search belongs inside its subpage, with side spacing matching modal/list content. */
.checked-orders-search{
  margin:8px 0!important;
}

@media(max-width:700px){
  .compact-category-header > .persistent-name-filter,
.checked-orders-search{
    height:32px!important;
    min-height:32px!important;
    max-height:32px!important;
  }
}

/* v96 list-header reliability */
.has-compact-category-header > .compact-category-header > .persistent-name-filter{
  display:block!important;
  order:-10!important;
  width:100%!important;
  flex:0 0 34px!important;
  opacity:1!important;
  visibility:visible!important;
}
.has-compact-category-header > .compact-category-header > .persistent-name-filter .compact-name-filter{
  display:block!important;
  width:100%!important;
  opacity:1!important;
  visibility:visible!important;
}
@media(max-width:700px){
  .has-compact-category-header > .compact-category-header > .persistent-name-filter{
    flex-basis:32px!important;
  }
}

/* v97 language selector */
.settings-language-item{
  cursor:default!important;
}
.settings-language-copy{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
  flex:1 1 auto;
}
.settings-language-copy small{
  color:var(--text-secondary);
  line-height:1.35;
}
.settings-language-select{
  flex:0 0 auto;
  width:min(180px,42vw);
  min-height:36px;
  padding:0 30px 0 10px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface);
  color:var(--text-primary);
  font-size:.78rem;
}
body.dark-mode .settings-language-select{
  background:var(--surface2);
  color:var(--text-primary);
  border-color:var(--border);
}
@media(max-width:600px){
  .settings-language-item{
    align-items:flex-start!important;
  }
  .settings-language-select{
    width:42vw;
    min-width:120px;
  }
}


/* ===== v110: filter spacing + Recipe horizontal overflow fix ===== */

/*
 * Keep a consistent gap between the category pills and the square filter
 * toggle. The gap uses the same page-edge spacing as the right side.
 */
.compact-filter-toolbar,
.category-filter-shell,
.category-filter-header,
.category-filter-topline{
  column-gap: var(--page-gap, 12px);
}

/* Known category-strip structures: reserve a real gap before the toggle. */
.category-filter-shell > .category-pills,
.category-filter-header > .category-pills,
.category-filter-topline > .category-pills,
.compact-filter-toolbar > .category-pills,
.category-filter-shell > .category-strip,
.category-filter-header > .category-strip,
.category-filter-topline > .category-strip,
.compact-filter-toolbar > .category-strip{
  min-width: 0;
  max-width: 100%;
}

/* Never allow the filter toggle to touch/overlay the final category pill. */
.category-filter-shell .filter-toggle,
.category-filter-header .filter-toggle,
.category-filter-topline .filter-toggle,
.compact-filter-toolbar .filter-toggle,
.category-filter-shell .filter-toggle-btn,
.category-filter-header .filter-toggle-btn,
.category-filter-topline .filter-toggle-btn,
.compact-filter-toolbar .filter-toggle-btn{
  flex: 0 0 auto;
  margin-left: var(--page-gap, 12px);
}

/*
 * Recipe page must remain viewport-width. Child flex/grid content may shrink;
 * only intended inner pill rows may scroll horizontally.
 */
#view-recipes,
#view-recipes .view-content,
#view-recipes .content,
#view-recipes .drink-list,
#view-recipes #drink-manager-list,
#view-recipes #recipe-list,
#view-recipes .recipe-list,
#view-recipes .drink-card,
#view-recipes .recipe-card,
#view-recipes .recipe-card-open-area,
#view-recipes .manager-row,
#view-recipes .manager-row-info{
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

#view-recipes{
  width: 100%;
  overflow-x: clip;
}

#view-recipes img,
#view-recipes input,
#view-recipes select,
#view-recipes textarea{
  max-width: 100%;
}

/* Long recipe/ingredient text should wrap instead of widening the page. */
#view-recipes .drink-name,
#view-recipes .recipe-name,
#view-recipes .service-ingredients-brief,
#view-recipes .recipe-card-open-area,
#view-recipes .manager-row-info,
#view-recipes small,
#view-recipes strong{
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Flex children are a common source of the Recipe page scrollbar. */
#view-recipes .drink-card > *,
#view-recipes .recipe-card > *,
#view-recipes .recipe-card-open-area > *,
#view-recipes .manager-row > *{
  min-width: 0;
}

/* v115 Recipes horizontal overflow fix */
#view-recipes{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:hidden!important;
  box-sizing:border-box!important;
}
#view-recipes > *,
#view-recipes .compact-category-header,
#view-recipes .compact-category-topline,
#view-recipes .compact-category-pill-scroller,
#view-recipes .compact-filter-row,
#view-recipes #menu-editor,
#view-recipes #drink-manager,
#view-recipes #editor-drink-list,
#view-recipes .manager-list,
#view-recipes .drink-card,
#view-recipes .recipe-card,
#view-recipes .recipe-card-open-area,
#view-recipes .manager-row,
#view-recipes .manager-row-info{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#view-recipes .compact-category-pill-scroller{
  width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-inline:contain;
}
#view-recipes .compact-category-tabs{
  width:max-content!important;
  min-width:100%!important;
  max-width:none!important;
}
#view-recipes .drink-card *,
#view-recipes .recipe-card *,
#view-recipes .manager-row *{
  min-width:0;
  max-width:100%;
}
#view-recipes .drink-name,
#view-recipes .recipe-name,
#view-recipes .service-ingredients-brief,
#view-recipes .manager-row-info,
#view-recipes .recipe-card-open-area,
#view-recipes small,
#view-recipes strong,
#view-recipes p,
#view-recipes label{
  overflow-wrap:anywhere;
}
#view-recipes input,
#view-recipes select,
#view-recipes textarea,
#view-recipes button{
  box-sizing:border-box;
  max-width:100%;
}
#view-recipes .new-recipe-footer,
#view-recipes .recipe-editor-savebar,
#view-recipes .recipe-editor-bottom-nav{
  max-width:calc(100vw - (2 * var(--page-edge-gap,12px)))!important;
}


/* ===== v116: definitive Recipes width correction ===== */
#view-recipes > .compact-category-header{
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:var(--category-edge-gap,8px)!important;
  padding-right:var(--category-edge-gap,8px)!important;
  box-sizing:border-box!important;
}

#view-recipes > .compact-category-header .compact-category-topline{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}

#view-recipes > .compact-category-header .compact-category-pill-scroller{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-inline:contain;
}

#view-recipes,
#view-recipes #menu-editor,
#view-recipes #drink-manager,
#view-recipes #editor-drink-list{
  inline-size:100%!important;
  min-inline-size:0!important;
  max-inline-size:100%!important;
}


/* ===== v117: Recipes normal-view/editor-state separation ===== */
/* Normal Recipes list: this container belongs to the page flow. */
#view-recipes:not(.recipe-editing) #menu-editor{
  display:block!important;
  position:static!important;
  inset:auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
  background:transparent!important;
  z-index:auto!important;
  box-sizing:border-box!important;
}
#view-recipes:not(.recipe-editing) #menu-editor > .modal-panel{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
}

/* Create/edit Recipes: only this state becomes the full-screen overlay. */
#view-recipes.recipe-editing #menu-editor{
  position:fixed!important;
  inset:0!important;
  width:auto!important;
  max-width:none!important;
  height:auto!important;
  padding:18px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  background:rgba(15,23,42,.35)!important;
  z-index:70!important;
  box-sizing:border-box!important;
}
#view-recipes.recipe-editing #menu-editor > .modal-panel{
  width:min(920px,100%)!important;
  max-width:920px!important;
  margin:20px auto 90px!important;
  padding:22px!important;
  background:var(--surface)!important;
  border-radius:16px!important;
  box-shadow:var(--shadow)!important;
  box-sizing:border-box!important;
}

/* Keep page-level horizontal scrolling impossible while preserving pill scrolling. */
#view-recipes:not(.recipe-editing){
  overflow-x:clip!important;
}

@media(max-width:700px){
  #view-recipes.recipe-editing #menu-editor{
    padding:8px!important;
  }
  #view-recipes.recipe-editing #menu-editor > .modal-panel{
    margin:8px auto 80px!important;
    padding:14px!important;
  }
}

/* v118 restore Recipes "On the menu" switch interaction */
#view-recipes .recipe-menu-control{
  position:relative!important;
  z-index:3!important;
  pointer-events:auto!important;
}
#view-recipes .recipe-menu-switch{
  position:relative!important;
  z-index:4!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
  flex:0 0 auto!important;
  min-width:42px!important;
  width:42px!important;
  max-width:42px!important;
}
#view-recipes .recipe-menu-switch *,
#view-recipes .recipe-menu-switch-knob{
  pointer-events:none!important;
}
#view-recipes .recipe-card-open-area{
  position:relative;
  z-index:1;
}


/* ===== v120: align Recipes and Pantry floating add buttons ===== */
:root{
  --floating-add-side-gap: var(--page-edge-gap, 12px);
  --floating-add-bottom-gap: var(--page-edge-gap, 12px);
  --floating-add-height: 44px;
}

/* Both floating action containers use the exact same geometry. */
#view-recipes .new-recipe-footer,
#view-current-stock .new-inventory-footer{
  position:fixed!important;
  right:var(--floating-add-side-gap)!important;
  bottom:var(--floating-add-bottom-gap)!important;
  left:auto!important;
  top:auto!important;
  margin:0!important;
  padding:0!important;
  width:auto!important;
  z-index:60!important;
  background:transparent!important;
  box-shadow:none!important;
  pointer-events:none;
}

/* Buttons themselves match too. */
#view-recipes .new-recipe-footer .new-recipe-button,
#view-current-stock .new-inventory-footer .new-recipe-button,
#view-current-stock .new-inventory-footer button{
  pointer-events:auto!important;
  height:var(--floating-add-height)!important;
  min-height:var(--floating-add-height)!important;
  max-height:var(--floating-add-height)!important;
  width:auto!important;
  min-width:0!important;
  padding:0 16px!important;
  margin:0!important;
  border-radius:12px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
}

@media(max-width:700px){
  :root{
    --floating-add-side-gap:10px;
    --floating-add-bottom-gap:10px;
    --floating-add-height:42px;
  }

  #view-recipes .new-recipe-footer .new-recipe-button,
#view-current-stock .new-inventory-footer .new-recipe-button,
#view-current-stock .new-inventory-footer button{
    padding:0 14px!important;
    border-radius:11px!important;
  }
}

/* v121 setup & tutorial */
.setup-tutorial-panel{width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 24px);display:flex;flex-direction:column;overflow:hidden}.setup-tutorial-progress{padding:0 16px 10px}.setup-tutorial-progress-bar{height:6px;border-radius:999px;overflow:hidden;background:var(--surface2);border:1px solid var(--border)}.setup-tutorial-progress-bar span{display:block;height:100%;width:0;background:var(--primary-color);transition:width .2s ease}.setup-tutorial-progress small{display:block;margin-top:5px;color:var(--text-secondary);font-size:.7rem}.setup-tutorial-content{flex:1 1 auto;overflow:auto;padding:6px 16px 18px}.setup-card{border:1px solid var(--border);border-radius:14px;padding:16px;background:var(--surface)}.setup-card h3{margin:0 0 8px}.setup-card p{line-height:1.5}.setup-icon-large{width:52px;height:52px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;border-radius:14px;background:var(--surface2);font-size:1.65rem}.setup-flow{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;overflow:auto;padding:10px 0}.setup-flow span{flex:0 0 auto;padding:7px 10px;border-radius:9px;border:1px solid var(--border);background:var(--surface2);font-size:.75rem;font-weight:800}.setup-flow b{color:var(--text-secondary)}.setup-flow-wrap{flex-wrap:wrap;overflow:visible}.setup-muted,
.setup-help{color:var(--text-secondary);font-size:.78rem}.setup-field{display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:.78rem;font-weight:800}.setup-field select,
.setup-field input{width:100%}.setup-example{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;margin:12px 0;padding:12px;border-radius:10px;background:var(--surface2);border:1px solid var(--border);font-size:.78rem}.setup-checklist{margin:12px 0;padding-left:20px;line-height:1.6}.setup-inline-actions{display:flex;gap:8px;flex-wrap:wrap}.setup-jump{margin-top:8px}.setup-tutorial-actions{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface)}.setup-tutorial-actions #setup-tutorial-back{margin-right:auto}@media(max-width:600px){.setup-tutorial-panel{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.setup-tutorial-actions{display:grid;grid-template-columns:1fr 1fr}.setup-tutorial-actions #setup-tutorial-next{grid-column:2}.setup-tutorial-actions #setup-tutorial-back{grid-column:1;margin:0}.setup-tutorial-actions #setup-tutorial-skip{grid-column:1/-1}}

/* v122 hands-on Aglio e olio tutorial */
.tutorial-recipe-preview{margin:12px 0;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.tutorial-recipe-preview>strong{display:block;font-size:1rem;margin-bottom:10px}
.tutorial-recipe-preview>small{display:block;font-weight:800;margin-top:8px;color:var(--text-secondary)}
.tutorial-recipe-preview ol{margin:6px 0 0;padding-left:20px;line-height:1.45}
.tutorial-pantry-grid{display:grid;gap:10px;margin-top:12px}
.tutorial-pantry-item{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}
.tutorial-pantry-item>strong,
.tutorial-pantry-item>small{display:block}
.tutorial-pantry-item>small{color:var(--text-secondary);margin:2px 0 8px}
.tutorial-pantry-item label{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:7px;font-size:.76rem;font-weight:700}
.tutorial-pantry-item label span{display:flex;align-items:center;justify-content:flex-end;gap:5px}
.tutorial-pantry-item input{width:86px!important;text-align:right}
.tutorial-dish-field input{font-size:1.5rem;font-weight:900;text-align:center}
.tutorial-requirements{display:grid;gap:8px;margin:12px 0}
.tutorial-requirement-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}
.tutorial-requirement-row span{font-weight:850}
.tutorial-requirement-row small{grid-column:1;color:var(--text-secondary)}
.tutorial-requirement-row strong{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:.75rem}


/* ===== v126 compact animated Kitcherette mascot in header ===== */
.topbar{
  overflow:visible;
}

.topbar-title{
  min-width:0;
  flex:0 1 auto;
}

.topbar-mascot{
  flex:0 0 50px;
  width:50px;
  height:58px;
  margin-left:4px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
  pointer-events:none;
  user-select:none;
}

.topbar-mascot object,
.topbar-mascot svg{
  display:block;
  width:50px;
  height:58px;
  border:0;
  pointer-events:none;
  user-select:none;
}

@media(max-width:700px){
  .topbar{
    gap:8px;
    padding-left:10px;
    padding-right:8px;
  }

  .topbar-title small{
    display:none;
  }

  .topbar-title h1{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:34vw;
  }

  .topbar-mascot{
    flex-basis:42px;
    width:42px;
    height:50px;
    margin-left:0;
  }

  .topbar-mascot object,
.topbar-mascot svg{
    width:42px;
    height:50px;
  }
}


/* ===== v128 mascot transparency fix ===== */
.topbar-mascot,
.topbar-mascot object,
.topbar-mascot svg{
  background:transparent!important;
}
body.dark-mode .topbar-mascot,
body.dark-mode .topbar-mascot object,
.topbar-mascot svg{
  background:transparent!important;
}


/* ===== v129 inline mascot: avoids Android/WebView <object> white canvas ===== */
.topbar-mascot > svg#kitcherette-header-mascot{
  display:block;
  width:100%;
  height:100%;
  max-width:50px;
  max-height:58px;
  background:none!important;
  overflow:visible;
  pointer-events:none;
}
body.dark-mode .topbar-mascot > svg#kitcherette-header-mascot{
  background:none!important;
}
@media(max-width:700px){
  .topbar-mascot > svg#kitcherette-header-mascot{max-width:42px;max-height:50px;}
}


/* v131 full-page setup tutorial */
.setup-tutorial-view{min-height:calc(100vh - 120px)}
.setup-tutorial-page{min-height:calc(100vh - 145px);display:flex;flex-direction:column;max-width:980px;margin:0 auto}
.setup-tutorial-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:4px 0 16px;border-bottom:1px solid var(--border)}
.setup-tutorial-header h2{margin:0}.setup-tutorial-header p{margin:5px 0 0;color:var(--text-secondary)}
.setup-tutorial-progress{padding:16px 0 10px}
.setup-tutorial-content{flex:1 1 auto;padding:8px 0 24px;overflow:visible}
.setup-tutorial-content .setup-card{max-width:none;min-height:0}
.setup-tutorial-actions{position:sticky;bottom:0;z-index:15;display:flex;gap:8px;justify-content:flex-end;padding:12px 0 calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--background)}
.setup-tutorial-actions #setup-tutorial-back{margin-right:auto}
body.dark-mode .setup-tutorial-actions{background:var(--background)}
@media(max-width:600px){.setup-tutorial-page{min-height:calc(100vh - 115px)}.setup-tutorial-header{padding-top:0}.setup-tutorial-actions{display:grid;grid-template-columns:1fr 1fr}.setup-tutorial-actions #setup-tutorial-back{grid-column:1;margin:0}.setup-tutorial-actions #setup-tutorial-next{grid-column:2}.setup-tutorial-actions #setup-tutorial-skip{grid-column:1/-1;grid-row:2}}


/* ===== v132 mascot quick menu ===== */
.topbar-mascot{
  appearance:none;
  -webkit-appearance:none;
  padding:0;
  border:0;
  background:transparent!important;
  cursor:pointer;
  pointer-events:auto;
  position:relative;
  border-radius:14px;
}
.topbar-mascot:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}
.topbar-mascot:active{transform:scale(.97)}
.mascot-menu{
  position:absolute;
  top:calc(100% - 4px);
  right:10px;
  width:min(280px,calc(100vw - 20px));
  padding:8px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  box-shadow:0 14px 35px rgba(15,23,42,.18);
  z-index:150;
}
.mascot-menu.hidden{display:none}
.mascot-menu-item{
  width:100%;
  display:grid;
  grid-template-columns:34px 1fr;
  align-items:center;
  gap:10px;
  padding:10px 11px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--text-primary);
  text-align:left;
  cursor:pointer;
}
.mascot-menu-item:hover,
.mascot-menu-item:focus-visible{background:var(--surface2);outline:none}
.mascot-menu-item>span:first-child{font-size:1.15rem;text-align:center}
.mascot-menu-item strong,
.mascot-menu-item small{display:block}
.mascot-menu-item strong{font-size:.86rem}
.mascot-menu-item small{margin-top:2px;color:var(--text-secondary);font-size:.7rem;font-weight:600}
.account-placeholder-page{max-width:760px;margin:0 auto}
.account-placeholder-card{margin-top:18px;padding:28px;border:1px solid var(--border);border-radius:16px;background:var(--surface);text-align:center}
.account-placeholder-avatar{width:72px;height:72px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;background:var(--surface2);font-size:2rem}
.account-placeholder-card h3{margin:0 0 8px}
.account-placeholder-card p{max-width:520px;margin:0 auto 16px;color:var(--text-secondary);line-height:1.5}
body.dark-mode .mascot-menu{box-shadow:0 18px 42px rgba(0,0,0,.38)}

/* ===== v133 mascot menu viewport anchoring fix ===== */
.mascot-menu{position:fixed!important;z-index:1000!important;top:auto;right:auto;}

/* ===== v134 mascot right-side swipe drawer ===== */
.mascot-menu{display:none!important;}
.mascot-drawer-backdrop{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.36);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
  z-index:1190;
  -webkit-tap-highlight-color:transparent;
}
.mascot-drawer-backdrop.open{
  opacity:1;
  pointer-events:auto;
}
.mascot-drawer{
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  width:min(340px,88vw);
  max-width:100%;
  padding:calc(12px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom));
  background:var(--surface);
  border-left:1px solid var(--border);
  box-shadow:-18px 0 45px rgba(15,23,42,.18);
  transform:translateX(102%);
  transition:transform .26s cubic-bezier(.2,.75,.25,1);
  z-index:1200;
  overflow-y:auto;
  overscroll-behavior:contain;
  touch-action:pan-y;
  will-change:transform;
}
.mascot-drawer.open{transform:translateX(0);}
.mascot-drawer.dragging{transition:none;}
.mascot-drawer-handle{
  width:38px;
  height:4px;
  margin:0 auto 12px;
  border-radius:999px;
  background:var(--border);
}
.mascot-drawer-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:4px 2px 14px;
  border-bottom:1px solid var(--border);
}
.mascot-drawer-header small,
.mascot-drawer-header strong{display:block;}
.mascot-drawer-header small{font-size:.7rem;color:var(--text-secondary);font-weight:800;text-transform:uppercase;letter-spacing:.08em;}
.mascot-drawer-header strong{font-size:1.05rem;margin-top:2px;}
.mascot-drawer-actions{display:flex;flex-direction:column;gap:7px;padding-top:12px;}
.mascot-drawer .mascot-menu-item{
  border:1px solid transparent;
  background:var(--surface);
  padding:13px 12px;
}
.mascot-drawer .mascot-menu-item:hover,
.mascot-drawer .mascot-menu-item:focus-visible{
  background:var(--surface2);
  border-color:var(--border);
}
body.mascot-drawer-open{overflow:hidden;}
body.dark-mode .mascot-drawer{box-shadow:-22px 0 52px rgba(0,0,0,.42);}
@media(max-width:520px){
  .mascot-drawer{width:min(330px,92vw);}
}


/* v138: intentional empty Recipes state */
.recipe-empty-state{display:flex;align-items:center;gap:18px;padding:24px;background:var(--surface);border:1px dashed var(--border);border-radius:14px;min-height:180px;margin-top:8px}.recipe-empty-icon{width:64px;height:64px;flex:0 0 64px;border-radius:18px;background:var(--surface2);display:grid;place-items:center;font-size:2rem}.recipe-empty-copy h3{margin:3px 0 8px;font-size:1.2rem}.recipe-empty-copy p{margin:0;max-width:720px;color:var(--text-secondary);line-height:1.5}.recipe-empty-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}@media(max-width:700px){.recipe-empty-state{align-items:flex-start;padding:20px;min-height:0}.recipe-empty-icon{width:52px;height:52px;flex-basis:52px;border-radius:14px;font-size:1.6rem}.recipe-empty-actions{flex-direction:column;align-items:stretch}.recipe-empty-actions button{width:100%}}body.dark-mode .recipe-empty-state{background:#141d27;border-color:#465462}body.dark-mode .recipe-empty-icon{background:#1d2834}


/* v139 — Recipe create/edit is a true full-page app view, not a modal card */
#view-recipes.recipe-editing #menu-editor{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100dvh!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  background:var(--bg)!important;
  z-index:70!important;
  box-sizing:border-box!important;
}
#view-recipes.recipe-editing #menu-editor > .modal-panel{
  width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(16px,3vw,30px)!important;
  padding-bottom:110px!important;
  background:var(--bg)!important;
  border-radius:0!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
}
#view-recipes.recipe-editing #drink-form,
#view-recipes.recipe-editing #recipe-create-choice{
  width:100%!important;
  max-width:1180px!important;
  margin:0 auto!important;
}
#view-recipes.recipe-editing .recipe-create-choice-card{
  max-width:none!important;
}
body.dark-mode #view-recipes.recipe-editing #menu-editor,
body.dark-mode #view-recipes.recipe-editing #menu-editor > .modal-panel{
  background:var(--bg)!important;
}
@media(max-width:700px){
  #view-recipes.recipe-editing #menu-editor{
    padding:0!important;
  }
  #view-recipes.recipe-editing #menu-editor > .modal-panel{
    margin:0!important;
    padding:14px 12px 100px!important;
  }
}
@media(max-width:700px){
  .recipe-tutorial-coach{
    top:auto;
    right:10px;
    left:10px;
    bottom:82px;
    width:auto;
    max-height:36vh;
    overflow:auto;
  }
  .recipe-tutorial-coach-pointer{display:none}
}


/* v146 — recipe editor bottom controls: sticky nav with save bar stacked above */
#view-recipes.recipe-editing{
  --recipe-nav-bottom-gap:max(12px, env(safe-area-inset-bottom));
  --recipe-nav-height:48px;
  --recipe-savebar-gap:8px;
  --recipe-savebar-height:50px;
}

#view-recipes.recipe-editing .recipe-editor-bottom-nav{
  position:sticky!important;
  bottom:var(--recipe-nav-bottom-gap)!important;
  z-index:82!important;
  margin:10px auto var(--recipe-nav-bottom-gap)!important;
}

#view-recipes.recipe-editing .recipe-editor-savebar{
  position:sticky!important;
  bottom:calc(
    var(--recipe-nav-bottom-gap) +
    var(--recipe-nav-height) +
    var(--recipe-savebar-gap)
  )!important;
  z-index:83!important;
  margin:10px auto 0!important;
}

#view-recipes.recipe-editing #drink-form{
  padding-bottom:calc(
    var(--recipe-nav-bottom-gap) +
    var(--recipe-nav-height) +
    var(--recipe-savebar-height) +
    36px
  )!important;
}

@media(max-width:700px){
  #view-recipes.recipe-editing{
    --recipe-nav-bottom-gap:max(10px, env(safe-area-inset-bottom));
    --recipe-nav-height:46px;
    --recipe-savebar-height:48px;
  }

  #view-recipes.recipe-editing .recipe-editor-bottom-nav,
#view-recipes.recipe-editing .recipe-editor-savebar{
    width:calc(100% - 20px)!important;
    max-width:520px!important;
  }

  #view-recipes.recipe-editing .recipe-editor-bottom-nav{
    flex-wrap:nowrap!important;
  }
}


/* v147 — recipe editor controls are fixed to the viewport, not the scroll container */
#view-recipes.recipe-editing{
  --recipe-fixed-edge:max(12px, env(safe-area-inset-bottom));
  --recipe-nav-h:48px;
  --recipe-save-h:50px;
  --recipe-bars-gap:8px;
}

#view-recipes.recipe-editing .recipe-editor-bottom-nav{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:var(--recipe-fixed-edge)!important;
  transform:translateX(-50%)!important;
  z-index:102!important;
  width:min(520px,calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  margin:0!important;
}

#view-recipes.recipe-editing .recipe-editor-savebar{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:calc(
    var(--recipe-fixed-edge) +
    var(--recipe-nav-h) +
    var(--recipe-bars-gap)
  )!important;
  transform:translateX(-50%)!important;
  z-index:103!important;
  width:min(520px,calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  margin:0!important;
}

#view-recipes.recipe-editing #drink-form{
  padding-bottom:calc(
    var(--recipe-fixed-edge) +
    var(--recipe-nav-h) +
    var(--recipe-save-h) +
    var(--recipe-bars-gap) +
    42px
  )!important;
}

@media(max-width:700px){
  #view-recipes.recipe-editing{
    --recipe-fixed-edge:max(10px, env(safe-area-inset-bottom));
    --recipe-nav-h:46px;
    --recipe-save-h:48px;
  }

  #view-recipes.recipe-editing .recipe-editor-bottom-nav,
#view-recipes.recipe-editing .recipe-editor-savebar{
    width:calc(100vw - 16px)!important;
    max-width:calc(100vw - 16px)!important;
  }
}

/* v148 — Exit / Save / Save & Exit */
#view-recipes.recipe-editing .recipe-editor-savebar{
  justify-content:center!important;
}
#view-recipes.recipe-editing .recipe-editor-savebar button{
  flex:1 1 0!important;
  min-width:0!important;
}


/* v149 — keep Previous / title / Next locked to identical positions on every recipe step */
#view-recipes.recipe-editing .recipe-editor-bottom-nav{
  display:grid!important;
  grid-template-columns:minmax(110px,1fr) minmax(0,1.4fr) minmax(110px,1fr)!important;
  align-items:center!important;
  gap:8px!important;
}

#view-recipes.recipe-editing #recipe-editor-prev{
  grid-column:1!important;
  justify-self:start!important;
}

#view-recipes.recipe-editing .recipe-editor-step-label{
  grid-column:2!important;
  justify-self:stretch!important;
  text-align:center!important;
  min-width:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

#view-recipes.recipe-editing #recipe-editor-next{
  grid-column:3!important;
  justify-self:end!important;
}

/* Preserve each button's footprint on first/last step without showing it. */
#view-recipes.recipe-editing .recipe-editor-bottom-nav .nav-placeholder{
  visibility:hidden!important;
  pointer-events:none!important;
}

@media(max-width:700px){
  #view-recipes.recipe-editing .recipe-editor-bottom-nav{
    grid-template-columns:minmax(92px,1fr) minmax(0,1.15fr) minmax(92px,1fr)!important;
  }

  #view-recipes.recipe-editing .recipe-editor-bottom-nav button{
    min-width:92px!important;
  }

  #view-recipes.recipe-editing .recipe-editor-step-label{
    font-size:.76rem!important;
  }
}


/* v150 — setup: cooking-first category profile selection */
.setup-use-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:18px 0 14px;
}
.setup-use-choice{
  min-height:118px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:5px;
  padding:16px!important;
  text-align:left;
  border:2px solid var(--border)!important;
  border-radius:16px!important;
  background:var(--surface2)!important;
  color:var(--text-primary)!important;
}
.setup-use-choice:hover{
  border-color:color-mix(in srgb,var(--primary-color) 55%,var(--border))!important;
}
.setup-use-choice.selected{
  border-color:var(--primary-color)!important;
  background:color-mix(in srgb,var(--primary-color) 10%,var(--surface))!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 14%,transparent)!important;
}
.setup-use-icon{
  font-size:1.8rem;
  line-height:1;
  margin-bottom:3px;
}
.setup-use-choice strong{
  font-size:.95rem;
}
.setup-use-choice small{
  color:var(--text-secondary);
  font-size:.75rem;
  line-height:1.3;
}
@media(max-width:600px){
  .setup-use-grid{grid-template-columns:1fr 1fr;gap:8px}
  .setup-use-choice{min-height:108px;padding:12px!important}
}


/* v151 — contextual tutorial recipe chooser */
.setup-dish-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:18px 0;
}
.setup-dish-choice{
  min-height:116px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:14px!important;
  text-align:center;
  border:2px solid var(--border)!important;
  border-radius:16px!important;
  background:var(--surface2)!important;
  color:var(--text-primary)!important;
}
.setup-dish-choice>span{font-size:2rem;line-height:1}
.setup-dish-choice strong{font-size:.88rem}
.setup-dish-choice small{font-size:.72rem;color:var(--text-secondary)}
.setup-dish-choice.selected{
  border-color:var(--primary-color)!important;
  background:color-mix(in srgb,var(--primary-color) 10%,var(--surface))!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 14%,transparent)!important;
}
@media(max-width:600px){
  .setup-dish-grid{grid-template-columns:1fr;gap:8px}
  .setup-dish-choice{min-height:82px;display:grid;grid-template-columns:46px 1fr;grid-template-rows:auto auto;text-align:left;justify-items:start}
  .setup-dish-choice>span{grid-row:1/3;font-size:1.8rem;align-self:center}
}

.guided-spotlight-target{
  position:relative!important;
  z-index:96!important;
  border-radius:12px!important;
  animation:guidedSpotlightPulse 1.25s ease-in-out infinite!important;
  box-shadow:
    0 0 0 3px color-mix(in srgb,var(--primary-color) 58%,transparent),
    0 0 0 8px color-mix(in srgb,var(--primary-color) 15%,transparent)!important;
}

@keyframes guidedSpotlightPulse{
  0%,100%{
    box-shadow:
      0 0 0 3px color-mix(in srgb,var(--primary-color) 55%,transparent),
      0 0 0 7px color-mix(in srgb,var(--primary-color) 12%,transparent);
  }
  50%{
    box-shadow:
      0 0 0 4px color-mix(in srgb,var(--primary-color) 82%,transparent),
      0 0 0 12px color-mix(in srgb,var(--primary-color) 22%,transparent);
  }
}

@media(max-width:700px){
  .guided-recipe-info{
    align-items:stretch;
    flex-direction:column;
    gap:9px;
  }
  .guided-recipe-info-next{
    width:100%;
  }
  #recipe-editor-savebar.guided-spotlight-target + .guided-recipe-info{
    width:calc(100vw - 16px);
    bottom:calc(max(10px, env(safe-area-inset-bottom)) + 104px);
  }
}

@media(prefers-reduced-motion:reduce){
  .guided-spotlight-target{
    animation:none!important;
  }
}

@media(max-width:700px){
  .guided-recipe-info{
    flex-direction:column;
    align-items:stretch;
  }
  .recipe-tips-toast{
    left:12px;
    right:12px;
    width:auto;
  }
}


/* v156 — Kitcherette hold-to-open gesture */
#mascot-menu-button{
  position:relative;
  touch-action:manipulation;
}

.mascot-hold-arrows{
  position:absolute;
  right:calc(100% - 8px);
  top:50%;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  gap:0;
  pointer-events:none;
  z-index:8;
  opacity:0;
}

.mascot-hold-arrows span{
  display:block;
  font-size:1.65rem;
  font-weight:900;
  line-height:1;
  color:var(--primary-color);
  opacity:.18;
  filter:drop-shadow(0 0 5px color-mix(in srgb,var(--primary-color) 70%,transparent));
  animation:mascotArrowFlash .72s ease-in-out infinite;
}

.mascot-hold-arrows span:nth-child(2){animation-delay:.12s}
.mascot-hold-arrows span:nth-child(3){animation-delay:.24s}

#mascot-menu-button.mascot-hold-arming .mascot-hold-arrows,
#mascot-menu-button.mascot-hold-triggered .mascot-hold-arrows{
  opacity:1;
}

#mascot-menu-button.mascot-hold-arming #kitcherette-header-mascot{
  animation:mascotHoldNudge .7s ease-in-out infinite;
}

#mascot-menu-button.mascot-hold-triggered #kitcherette-header-mascot{
  animation:mascotSlideLeft .36s cubic-bezier(.2,.85,.25,1) forwards;
}

#mascot-menu-button.mascot-hold-triggered .mascot-hold-arrows{
  animation:mascotArrowGroupSlide .36s ease-out forwards;
}

@keyframes mascotArrowFlash{
  0%,100%{opacity:.16;transform:translateX(7px) scale(.9)}
  45%{opacity:1;transform:translateX(-5px) scale(1.08)}
}

@keyframes mascotHoldNudge{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(-3px)}
}

@keyframes mascotSlideLeft{
  0%{transform:translateX(0) scale(1)}
  72%{transform:translateX(-20px) scale(1.04)}
  100%{transform:translateX(-28px) scale(.98)}
}

@keyframes mascotArrowGroupSlide{
  from{transform:translateY(-50%) translateX(10px);opacity:.7}
  to{transform:translateY(-50%) translateX(-22px);opacity:1}
}

@media(prefers-reduced-motion:reduce){
  #mascot-menu-button.mascot-hold-arming #kitcherette-header-mascot,
#mascot-menu-button.mascot-hold-triggered #kitcherette-header-mascot,
#mascot-menu-button.mascot-hold-triggered .mascot-hold-arrows,
.mascot-hold-arrows span{
    animation:none!important;
  }
  .mascot-hold-arrows span{opacity:.9}
}


/* v157 — consolidated Kitcherette gesture controller */
#mascot-menu-button{
  touch-action:none!important;
  -webkit-touch-callout:none;
  user-select:none;
  -webkit-user-select:none;
}

#mascot-menu-button.mascot-hold-arming .mascot-hold-arrows{
  opacity:.62;
}

#mascot-menu-button.mascot-hold-arming .mascot-hold-arrows span{
  animation-duration:.82s;
}

#mascot-menu-button.mascot-hold-triggered{
  z-index:10050;
}


/* v158 — simplified Kitcherette gestures: tap drawer, hold tips */
#mascot-menu-button{
  touch-action:none!important;
  -webkit-touch-callout:none;
  user-select:none;
  -webkit-user-select:none;
}

#mascot-menu-button.mascot-tip-hold #kitcherette-header-mascot{
  transform:none!important;
  animation:kitcheretteTipHoldPulse .72s ease-in-out infinite!important;
}

#mascot-menu-button .mascot-hold-arrows{
  display:none!important;
}

#mascot-menu-button.mascot-hold-arming #kitcherette-header-mascot,
#mascot-menu-button.mascot-hold-triggered #kitcherette-header-mascot{
  transform:none!important;
  animation:none!important;
}

@keyframes kitcheretteTipHoldPulse{
  0%,100%{filter:none}
  50%{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--primary-color) 65%,transparent))}
}


/* v160 — smooth left navigation drawer */
#side-menu{
  transform:translateX(-100%);
  transition:transform .28s cubic-bezier(.2,.8,.2,1);
  will-change:transform;
}

#side-menu.open{
  transform:translateX(0);
}

#side-menu.dragging{
  transition:none!important;
}

#side-menu-overlay{
  display:block!important;
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease!important;
}

#side-menu-overlay.open{
  opacity:1;
  pointer-events:auto;
}

@media(prefers-reduced-motion:reduce){
  #side-menu,
#side-menu-overlay{
    transition:none!important;
  }
}


/* v161 — allow live left-drawer swipe transform */
#side-menu{
  transform:translateX(-100%);
  transition:transform .28s cubic-bezier(.2,.8,.2,1);
  will-change:transform;
}

#side-menu.open{
  transform:translateX(0);
}

#side-menu.dragging{
  transition:none!important;
}

/* Do not show a rectangular/touch hit box when Kitcherette is tapped. */
#mascot-menu-button{
  -webkit-tap-highlight-color:transparent!important;
  outline:none;
  box-shadow:none!important;
  background:transparent!important;
}

#mascot-menu-button:active,
#mascot-menu-button:focus{
  outline:none!important;
  box-shadow:none!important;
  background:transparent!important;
}

#mascot-menu-button:focus-visible{
  outline:2px solid var(--primary-color)!important;
  outline-offset:2px;
}


/* v164 — live left drawer follows finger; inline transform owns drag position */
#side-menu{transform:translateX(-100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);will-change:transform}
#side-menu.open{transform:translateX(0)}
#side-menu.dragging{transition:none!important}

/* v165 — smooth closing uses the exact dragged position as transition origin */
#side-menu{transition:transform .28s cubic-bezier(.2,.8,.2,1)}
#side-menu.dragging{transition:none!important}


/* Smart recipe features — v187 */
.smart-recipe-filter{min-height:40px;max-width:170px}
.smart-feed-button{min-height:40px;white-space:nowrap}
.feed-me-suggestion{margin:8px 0 12px;padding:12px 14px;border:1px solid var(--border,#d9dee6);border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel,#fff)}
.feed-me-suggestion>div:first-child{display:grid;gap:2px;min-width:0}.feed-me-suggestion strong{font-size:1rem}.feed-me-suggestion small,
.feed-me-suggestion span{color:var(--muted,#667085)}
.feed-me-actions{display:flex;gap:8px;flex-wrap:wrap}
.smart-context-warning{display:block;margin-top:4px;color:#9a5b12;font-size:.78rem;font-weight:650}
.smart-recipe-detail{display:grid;gap:12px;margin-bottom:14px}
.smart-stat-row{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.smart-portions-control{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.smart-portions-control input{width:92px}
.smart-warnings{display:grid;gap:4px;margin-top:8px}.smart-warnings small{color:#9a5b12}
.smart-history-row{display:grid;grid-template-columns:1fr auto 28px;gap:8px;padding:6px 0;border-bottom:1px solid var(--border,#e5e7eb)}
.smart-cooked-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}.smart-cooked-actions>span{font-size:.82rem;color:var(--muted,#667085)}
.smart-neutral{color:var(--muted,#667085);font-size:.86rem}
.dark-mode .feed-me-suggestion{background:var(--panel,#1d2430);border-color:var(--border,#394252)}
.dark-mode .smart-context-warning,
.dark-mode .smart-warnings small{color:#f2b45f}
@media(max-width:620px){
  #view-recipes .recipe-tools{gap:7px;flex-wrap:wrap}
  .smart-recipe-filter{max-width:150px;flex:1 1 145px}
  .smart-feed-button{flex:0 0 auto}
  .feed-me-suggestion{align-items:flex-start;flex-direction:column}
  .feed-me-actions{width:100%}.feed-me-actions button{flex:1}
}


/* Dashboard — v187 */
.dashboard-view{padding-bottom:28px}
.dashboard-shell{width:min(100%,940px);margin:0 auto;padding:18px 16px 28px;display:grid;gap:16px}
.dashboard-kicker{display:block;font-size:.72rem;line-height:1.2;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--muted,#667085)}
.dashboard-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 22px 18px;border-radius:22px;background:linear-gradient(145deg,rgba(37,99,235,.08),rgba(37,99,235,.025));overflow:hidden}
.dashboard-hero-copy{min-width:0}
.dashboard-hero h2,
.dashboard-welcome h2{font-size:clamp(1.65rem,5vw,2.25rem);line-height:1.08;margin:7px 0 8px;letter-spacing:-.025em}
.dashboard-hero p,
.dashboard-welcome p{margin:0;max-width:38rem;color:var(--muted,#667085);line-height:1.5}
.dashboard-mascot{width:88px;height:96px;object-fit:contain;flex:0 0 auto;filter:none}
.dashboard-block,
.dashboard-section,
.dashboard-suggestion,
.dashboard-quick{border:1px solid var(--border,#e2e6ec);border-radius:18px;background:var(--panel,#fff)}
.dashboard-block,
.dashboard-suggestion,
.dashboard-quick{padding:17px 18px}
.dashboard-section{width:100%;padding:17px 18px;text-align:left;display:grid;gap:4px;color:inherit;font:inherit;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}
.dashboard-section:active{transform:scale(.992)}
.dashboard-section-main{font-size:1.03rem;font-weight:760;line-height:1.35}
.dashboard-section-sub,
.dashboard-section-note{font-size:.86rem;color:var(--muted,#667085);line-height:1.4}
.dashboard-attention-list{display:grid;margin-top:8px}
.dashboard-attention-row{width:100%;display:grid;grid-template-columns:24px 1fr 16px;align-items:center;gap:9px;padding:11px 0;border:0;border-bottom:1px solid var(--border,#e8ebef);background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}
.dashboard-attention-row:last-child{border-bottom:0}
.dashboard-attention-dot{width:20px;height:20px;border-radius:999px;display:grid;place-items:center;background:rgba(217,119,6,.12);color:#9a5b12;font-size:.72rem;font-weight:900}
.dashboard-chevron{font-size:1.3rem;color:var(--muted,#8a94a3);text-align:right}
.dashboard-positive{display:flex;align-items:center;gap:9px;padding-top:10px;color:var(--muted,#667085)}
.dashboard-positive>span:first-child{display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:rgba(22,163,74,.1);color:#15803d;font-weight:900}
.dashboard-link-button{border:0;background:transparent;padding:6px 2px;color:var(--accent,#2563eb);font:inherit;font-size:.84rem;font-weight:700;cursor:pointer}
.dashboard-more{margin-top:4px}
.dashboard-text-link{margin-top:5px;font-size:.82rem;font-weight:750;color:var(--accent,#2563eb)}
.dashboard-suggestion{position:relative;padding:20px 20px 18px;background:linear-gradient(155deg,rgba(37,99,235,.055),rgba(255,255,255,0))}
.dashboard-suggestion-copy{max-width:42rem}
.dashboard-suggestion h3{font-size:1.22rem;margin:7px 0 6px;line-height:1.25}
.dashboard-suggestion p{margin:0;color:var(--muted,#667085);line-height:1.48}
.dashboard-inline-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:13px}
.dashboard-shopping-section{border-color:rgba(37,99,235,.18)}
.dashboard-quick{display:grid;gap:11px;padding:15px 16px}
.dashboard-quick-actions{display:flex;gap:8px;flex-wrap:wrap}
.dashboard-chip{min-height:38px;padding:8px 13px;border-radius:999px;border:1px solid var(--border,#dfe4eb);background:transparent;color:inherit;font:inherit;font-size:.86rem;font-weight:700;cursor:pointer}
.dashboard-welcome{min-height:56vh;display:flex;align-items:center;justify-content:center;gap:24px;padding:28px 22px;border-radius:24px;background:linear-gradient(150deg,rgba(37,99,235,.075),rgba(37,99,235,.015))}
.dashboard-welcome>div{max-width:34rem}
.dashboard-welcome .primary-button{margin-top:17px}
.dashboard-mascot-welcome{width:116px;height:128px}

.dark-mode .dashboard-hero{background:linear-gradient(145deg,rgba(96,165,250,.13),rgba(96,165,250,.025))}
.dark-mode .dashboard-block,
.dark-mode .dashboard-section,
.dark-mode .dashboard-suggestion,
.dark-mode .dashboard-quick{background:var(--panel,#1b2330);border-color:var(--border,#354052)}
.dark-mode .dashboard-suggestion{background:linear-gradient(155deg,rgba(96,165,250,.09),rgba(27,35,48,1))}
.dark-mode .dashboard-welcome{background:linear-gradient(150deg,rgba(96,165,250,.11),rgba(27,35,48,.65))}
.dark-mode .dashboard-attention-dot{background:rgba(245,158,11,.13);color:#f2b45f}
.dark-mode .dashboard-positive>span:first-child{background:rgba(74,222,128,.11);color:#86efac}
.dark-mode .dashboard-shopping-section{border-color:rgba(96,165,250,.25)}

@media(min-width:760px){
  .dashboard-shell{padding:28px 24px 40px;gap:18px}
  .dashboard-hero{padding:28px 30px 24px}
  .dashboard-mascot{width:104px;height:112px}
  .dashboard-menu-summary,
.dashboard-pantry-summary,
.dashboard-shopping-section{max-width:none}
}
@media(max-width:560px){
  .dashboard-shell{padding:14px 12px 26px;gap:13px}
  .dashboard-hero{padding:18px 16px 16px;border-radius:18px}
  .dashboard-mascot{width:72px;height:80px}
  .dashboard-block,
.dashboard-section,
.dashboard-suggestion,
.dashboard-quick{border-radius:16px}
  .dashboard-block,
.dashboard-suggestion{padding:15px}
  .dashboard-section{padding:15px}
  .dashboard-welcome{min-height:52vh;flex-direction:column;text-align:center;padding:25px 18px}
  .dashboard-mascot-welcome{width:96px;height:105px}
  .dashboard-quick-actions{gap:7px}
  .dashboard-chip{flex:0 1 auto}
}

/* Dashboard tutorial invitation — v187 */
.dashboard-tutorial-invite{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid rgba(37,99,235,.18);border-radius:18px;background:linear-gradient(145deg,rgba(37,99,235,.055),rgba(37,99,235,.015))}
.dashboard-tutorial-invite-copy{min-width:0;max-width:38rem}
.dashboard-tutorial-invite strong{display:block;margin-top:5px;font-size:1rem;line-height:1.35}
.dashboard-tutorial-invite p{margin:4px 0 0;color:var(--muted,#667085);font-size:.88rem;line-height:1.45}
.dashboard-tutorial-invite .dashboard-inline-actions{margin-top:0;flex:0 0 auto}
.dark-mode .dashboard-tutorial-invite{border-color:rgba(96,165,250,.24);background:linear-gradient(145deg,rgba(96,165,250,.09),rgba(27,35,48,.55))}
@media(max-width:620px){.dashboard-tutorial-invite{align-items:flex-start;flex-direction:column;gap:12px}.dashboard-tutorial-invite .dashboard-inline-actions{width:100%}}


/* Pantry fast everyday UX + batch details — v188 */
#view-current-stock>.inventory-toolbar,
#view-current-stock>.new-inventory-footer{display:none!important}
#view-current-stock:not(.inventory-editing) #ingredient-form{display:none!important}
#view-current-stock.inventory-editing #pantry-fast-toolbar,
#view-current-stock.inventory-editing #current-stock-list{display:none!important}

.pantry-fast-toolbar{display:grid;gap:12px;margin-bottom:14px}
.pantry-fast-title-row{display:flex;align-items:end;justify-content:space-between;gap:14px}
.pantry-fast-title-row h2{margin:3px 0 0;font-size:1.55rem;line-height:1.1}
.pantry-add-button{min-width:92px}
.pantry-search-row input{width:100%;min-height:44px;border-radius:14px}
.pantry-filter-strip{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.pantry-filter-strip::-webkit-scrollbar{display:none}
.pantry-filter-strip button{flex:0 0 auto;border:1px solid var(--border,#dfe4eb);background:var(--panel,#fff);color:inherit;border-radius:999px;padding:8px 13px;font:inherit;font-size:.84rem;font-weight:700;cursor:pointer}
.pantry-filter-strip button.active{border-color:var(--accent,#2563eb);background:rgba(37,99,235,.09);color:var(--accent,#2563eb)}
.pantry-advanced-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--border,#dfe4eb);border-radius:14px;background:var(--panel,#fff)}
.pantry-advanced-panel label{display:grid;gap:5px;font-size:.78rem;color:var(--muted,#667085)}
.pantry-advanced-panel select{min-width:0;width:100%}

#current-stock-list{display:grid;gap:7px}
.pantry-compact-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 13px;border:1px solid var(--border,#e1e6ed);border-radius:15px;background:var(--panel,#fff)}
.pantry-row-main{display:grid;gap:2px;min-width:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer;padding:0}
.pantry-row-main strong{font-size:.97rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pantry-row-main>span{font-size:.82rem;color:var(--muted,#667085)}
.pantry-row-warning{font-size:.76rem;line-height:1.3;color:#9a5b12;margin-top:2px}
.pantry-row-warning.expired{color:#b42318}
.pantry-row-controls{display:flex;align-items:center;gap:7px}
.pantry-row-controls>strong{min-width:78px;text-align:center;font-size:.82rem;white-space:nowrap}
.pantry-round-control,
.pantry-more-control{width:34px;height:34px;border-radius:999px;border:1px solid var(--border,#dfe4eb);background:transparent;color:inherit;font:inherit;font-size:1.05rem;font-weight:750;display:grid;place-items:center;cursor:pointer}
.pantry-more-control{font-size:1.15rem}
.pantry-out-section{margin-top:9px;border-top:1px solid var(--border,#e1e6ed);padding-top:9px}
.pantry-out-section>summary{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 2px;cursor:pointer;list-style:none;font-size:.75rem;font-weight:800;letter-spacing:.08em;color:var(--muted,#667085)}
.pantry-out-section>summary::-webkit-details-marker{display:none}
.pantry-out-list{display:grid;gap:6px;padding-top:5px}
.pantry-out-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border,#e1e6ed);border-radius:13px}
.pantry-out-name{display:grid;gap:2px;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer;min-width:0}
.pantry-out-name small{color:var(--muted,#667085)}

.pantry-modal{position:fixed;inset:0;z-index:1200;display:flex;align-items:flex-end;justify-content:center}
.pantry-modal.hidden{display:none!important}
.pantry-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.42);backdrop-filter:blur(2px)}
.pantry-modal-panel{position:relative;width:min(100%,680px);max-height:min(90vh,850px);overflow:auto;background:var(--panel,#fff);border:1px solid var(--border,#dfe4eb);border-radius:22px 22px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -18px 50px rgba(15,23,42,.18)}
.pantry-mini-sheet .pantry-modal-panel{width:min(100%,500px)}
.pantry-detail-sheet .pantry-modal-panel{width:min(100%,720px)}
.pantry-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:15px}
.pantry-sheet-header h2{margin:4px 0 0;font-size:1.3rem}
.pantry-sheet-actions,
.pantry-detail-actions{display:flex;gap:9px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:17px}
.pantry-quick-tabs{display:flex;gap:6px;padding:4px;background:rgba(127,127,127,.08);border-radius:12px;margin-bottom:14px}
.pantry-quick-tabs button{flex:1;border:0;background:transparent;border-radius:9px;padding:9px 10px;color:inherit;font:inherit;font-weight:700;cursor:pointer}
.pantry-quick-tabs button.active{background:var(--panel,#fff);box-shadow:0 1px 4px rgba(15,23,42,.09)}
.pantry-search-picker{display:grid;gap:6px}
.pantry-search-picker>span{font-size:.82rem;font-weight:700}
.pantry-quick-results{display:grid;gap:5px;margin:9px 0}
.pantry-quick-results>button{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border,#e1e6ed);background:transparent;color:inherit;border-radius:12px;padding:11px 12px;text-align:left;font:inherit;cursor:pointer}
.pantry-quick-results small{color:var(--muted,#667085)}
.pantry-quick-product{margin-bottom:14px}
.pantry-quick-product h3{margin:4px 0 2px;font-size:1.2rem}
.pantry-quick-product small{color:var(--muted,#667085)}
.pantry-quick-quantity{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;padding:13px 0;border-top:1px solid var(--border,#e1e6ed)}
.pantry-quick-quantity>span{font-weight:750}
.pantry-quick-quantity>div{display:flex;align-items:center;gap:6px}
.pantry-quick-quantity button{width:34px;height:34px;border-radius:999px;border:1px solid var(--border,#dfe4eb);background:transparent;color:inherit;font:inherit;cursor:pointer}
.pantry-quick-quantity input{width:62px;text-align:center}
.pantry-quick-quantity small{grid-column:1/-1;color:var(--muted,#667085)}
.pantry-freshness-choice{display:grid;gap:8px;border:0;padding:12px 0;margin:0;border-top:1px solid var(--border,#e1e6ed)}
.pantry-freshness-choice legend{font-size:.82rem;font-weight:750;margin-bottom:5px}
.pantry-freshness-choice label{display:flex;align-items:center;gap:8px}
.pantry-expiry-preview{display:grid;gap:5px;padding:11px 12px;border-radius:12px;background:rgba(37,99,235,.055);font-size:.84rem}
.pantry-expiry-preview strong{font-size:.9rem}
.pantry-expiry-preview label{display:grid;gap:5px}
.pantry-more-options{margin-top:10px}
.pantry-more-options summary{cursor:pointer;padding:9px 0;font-size:.84rem;font-weight:750}
.pantry-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px 0}
.pantry-more-grid label{display:grid;gap:5px;font-size:.78rem;color:var(--muted,#667085)}
.pantry-more-grid .check-row{display:flex;align-items:center}
.pantry-expiry-groups{display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid var(--border,#e1e6ed);border-radius:13px}
.pantry-expiry-groups-header{display:grid;gap:2px}
.pantry-expiry-groups-header small{color:var(--muted,#667085)}
.pantry-expiry-group-row{display:grid;grid-template-columns:60px auto minmax(80px,1fr) minmax(128px,1fr) 32px;gap:7px;align-items:center}
.pantry-expiry-group-row button{border:0;background:transparent;color:inherit;font-size:1.1rem;cursor:pointer}
.pantry-bulk-help{color:var(--muted,#667085);font-size:.86rem}
#pantry-bulk-lines{display:grid;gap:7px}
.pantry-bulk-line{border:1px solid var(--border,#e1e6ed);border-radius:12px;padding:8px 10px}
.pantry-bulk-line summary{display:grid;grid-template-columns:minmax(0,1fr) 64px auto;gap:8px;align-items:center;list-style:none}
.pantry-bulk-line summary::-webkit-details-marker{display:none}
.pantry-bulk-detail{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 0 2px}
.pantry-bulk-detail label{display:grid;gap:4px;font-size:.78rem}
.pantry-total-block{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--border,#e1e6ed)}
.pantry-total-block span{font-size:.74rem;font-weight:800;letter-spacing:.09em;color:var(--muted,#667085)}
.pantry-total-block strong{font-size:1.45rem}
.pantry-batch-section{padding:13px 0;border-bottom:1px solid var(--border,#e1e6ed)}
.pantry-batch-section h3{margin:0 0 7px;font-size:.76rem;letter-spacing:.08em;color:var(--muted,#667085)}
.pantry-batch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}
.pantry-batch-row>div:first-child{display:grid;gap:2px}
.pantry-batch-row small{color:var(--muted,#667085);font-size:.78rem}
.pantry-batch-row>div:last-child{display:flex;gap:6px;align-items:center}
.pantry-action-list{display:grid;gap:4px}
.pantry-action-list button{border:0;border-bottom:1px solid var(--border,#e1e6ed);background:transparent;color:inherit;text-align:left;font:inherit;padding:13px 4px;cursor:pointer}
.pantry-action-list button.danger{color:#b42318}
.pantry-use-input{display:grid;gap:6px;margin:12px 0}
.pantry-use-input>div{display:flex;align-items:center;gap:8px}
.pantry-use-input input{flex:1}

.dark-mode .pantry-filter-strip button,
.dark-mode .pantry-advanced-panel,
.dark-mode .pantry-compact-row,
.dark-mode .pantry-out-row,
.dark-mode .pantry-modal-panel{background:var(--panel,#1b2330);border-color:var(--border,#354052)}
.dark-mode .pantry-filter-strip button.active{background:rgba(96,165,250,.12);color:#93c5fd;border-color:#60a5fa}
.dark-mode .pantry-row-warning{color:#f2b45f}
.dark-mode .pantry-row-warning.expired{color:#fca5a5}
.dark-mode .pantry-expiry-preview{background:rgba(96,165,250,.09)}
.dark-mode .pantry-quick-tabs button.active{background:rgba(255,255,255,.07)}
.dark-mode .pantry-action-list button.danger{color:#fca5a5}

@media(min-width:760px){
  .pantry-modal{align-items:center;padding:24px}
  .pantry-modal-panel{border-radius:22px}
}
@media(max-width:620px){
  .pantry-fast-title-row{align-items:center}
  .pantry-compact-row{grid-template-columns:minmax(0,1fr);gap:9px}
  .pantry-row-controls{justify-content:space-between}
  .pantry-row-controls>strong{flex:1}
  .pantry-advanced-panel{grid-template-columns:1fr}
  .pantry-more-grid,
.pantry-bulk-detail{grid-template-columns:1fr}
  .pantry-expiry-group-row{grid-template-columns:54px auto 1fr 32px}
  .pantry-expiry-group-row [data-group-expiry]{grid-column:1/4}
  .pantry-batch-row{align-items:flex-start;flex-direction:column}
}

#ingredient-form.batch-managed-product #ingredient-packages,
#ingredient-form.batch-managed-product #ingredient-opened,
#ingredient-form.batch-managed-product #ingredient-expiry-date{pointer-events:none}
#ingredient-form.batch-managed-product label:has(#ingredient-packages),
#ingredient-form.batch-managed-product label:has(#ingredient-opened),
#ingredient-form.batch-managed-product label:has(#ingredient-expiry-date){display:none!important}
.pantry-undo-banner{position:sticky;top:70px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;padding:9px 12px;border-radius:12px;background:var(--panel,#fff);border:1px solid rgba(37,99,235,.22);box-shadow:0 5px 18px rgba(15,23,42,.08);font-size:.84rem}
.pantry-undo-banner.hidden{display:none!important}
.pantry-undo-banner button{border:0;background:transparent;color:var(--accent,#2563eb);font:inherit;font-weight:800;cursor:pointer}
.dark-mode .pantry-undo-banner{background:var(--panel,#1b2330);border-color:rgba(96,165,250,.25)}

.pantry-quick-main-actions,
.pantry-detail-editor-actions{display:grid;grid-template-columns:auto 1fr 1fr;align-items:center}
.pantry-detail-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.pantry-detail-edit-grid label{display:grid;gap:5px;font-size:.8rem;color:var(--muted,#667085)}
.pantry-detail-edit-grid .check-row{display:flex;align-items:center;gap:8px}
.pantry-split-details{margin-top:10px}
.pantry-detail-save-note{margin-top:13px;padding:10px 12px;border-radius:12px;background:rgba(127,127,127,.07);font-size:.78rem;color:var(--muted,#667085);line-height:1.4}
@media(max-width:620px){.pantry-quick-main-actions,
.pantry-detail-editor-actions{grid-template-columns:1fr}.pantry-detail-edit-grid{grid-template-columns:1fr}}


/* Pantry header isolation — v190 */
#view-current-stock{min-width:0!important}
#view-current-stock>.pantry-fast-toolbar{
  position:relative!important;
  inset:auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:11px!important;
  width:100%!important;
  min-width:0!important;
  margin:0 0 14px!important;
  padding:0!important;
  transform:none!important;
  overflow:visible!important;
  z-index:auto!important;
}
#view-current-stock .pantry-fast-title-row{
  position:relative!important;
  inset:auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:12px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  overflow:visible!important;
}
#view-current-stock .pantry-fast-title-row>div{min-width:0!important}
#view-current-stock .pantry-fast-title-row h2{
  margin:2px 0 0!important;
  min-width:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#view-current-stock .pantry-add-button{
  position:static!important;
  inset:auto!important;
  float:none!important;
  margin:0!important;
  transform:none!important;
  min-width:88px!important;
  max-width:44vw!important;
  white-space:nowrap!important;
}
#view-current-stock .pantry-search-row,
#view-current-stock .pantry-filter-strip,
#view-current-stock .pantry-advanced-panel{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  transform:none!important;
}
#view-current-stock .pantry-search-row{display:block!important}
#view-current-stock .pantry-filter-strip{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:7px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none!important;
}
#view-current-stock .pantry-filter-strip::-webkit-scrollbar{display:none!important}
#view-current-stock>.compact-category-header,
#view-current-stock>.persistent-name-filter,
#view-current-stock #pantry-name-filter{
  display:none!important;
}
@media(max-width:620px){
  #view-current-stock .pantry-fast-title-row{gap:9px!important}
  #view-current-stock .pantry-fast-title-row h2{font-size:1.35rem!important}
  #view-current-stock .pantry-add-button{
    min-width:auto!important;
    max-width:48vw!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
}


/* Multiple Menu planner — v191 */
#view-expected-orders>.compact-category-header,
#view-expected-orders>.persistent-name-filter,
#view-expected-orders #expected-order-name-filter{display:none!important}
#view-expected-orders{min-width:0}
.menu-planner-shell{display:grid;gap:14px;width:min(100%,940px);margin:0 auto;padding:4px 0 24px}
.menu-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:17px 18px;border:1px solid var(--border,#e1e6ed);border-radius:18px;background:var(--panel,#fff)}
.menu-page-header>div{min-width:0;flex:1}
.menu-selector-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:6px}
.menu-selector-row select{min-width:0;width:100%;font-size:1.05rem;font-weight:750}
.menu-page-header p{margin:7px 0 0;color:var(--muted,#667085);font-size:.86rem}
.menu-status-pill{flex:0 0 auto;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:800;background:rgba(127,127,127,.09);color:var(--muted,#667085)}
.menu-status-pill.active{background:rgba(22,163,74,.1);color:#15803d}
.menu-status-pill.planned{background:rgba(37,99,235,.09);color:var(--accent,#2563eb)}
.menu-history-strip{border:1px solid var(--border,#e1e6ed);border-radius:14px;padding:0 13px;background:var(--panel,#fff)}
.menu-history-strip>summary{padding:11px 0;cursor:pointer;font-size:.8rem;font-weight:750;color:var(--muted,#667085)}
.menu-history-strip>div{display:grid;gap:6px;padding:0 0 10px}
.menu-history-strip button{display:flex;justify-content:space-between;gap:12px;border:0;background:transparent;color:inherit;text-align:left;font:inherit;padding:8px 0;cursor:pointer}
.menu-history-strip small{color:var(--muted,#667085)}
.menu-courses{display:grid;gap:12px}
.menu-course-card{border:1px solid var(--border,#e1e6ed);border-radius:17px;background:var(--panel,#fff);overflow:hidden}
.menu-course-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 15px;border-bottom:1px solid var(--border,#e8ebef)}
.menu-course-heading>span{font-size:.75rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:var(--muted,#667085)}
.menu-course-empty{padding:16px;color:var(--muted,#667085);font-size:.86rem}
.menu-dish-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid var(--border,#e8ebef)}
.menu-dish-row:last-child{border-bottom:0}
.menu-dish-main{display:grid;gap:3px;min-width:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}
.menu-dish-main strong{font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-dish-main small{color:#9a5b12;font-size:.76rem}
.menu-dish-state{font-size:.79rem;color:var(--muted,#667085)}
.menu-dish-state.ready{color:#15803d}
.menu-dish-state.warning{color:#9a5b12}
.menu-portions-control{display:grid;gap:3px;font-size:.68rem;color:var(--muted,#667085)}
.menu-portions-control input{width:76px;text-align:center}
.menu-dish-actions{display:flex;gap:5px;align-items:center}
.danger-link{color:#b42318!important}
.menu-summary-strip{display:flex;gap:8px;flex-wrap:wrap}
.menu-summary-strip span{border-radius:999px;padding:7px 10px;background:rgba(127,127,127,.08);font-size:.78rem;color:var(--muted,#667085)}
.menu-next-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.menu-empty{display:grid;place-items:start;gap:9px;padding:28px 20px;border:1px solid var(--border,#e1e6ed);border-radius:18px;background:var(--panel,#fff)}
.menu-empty h2{margin:0}.menu-empty p{margin:0;color:var(--muted,#667085)}
.menu-modal .pantry-modal-panel{width:min(100%,720px)}
.menu-create-choice{display:grid;gap:9px}
.menu-create-choice>p{margin:0 0 5px;color:var(--muted,#667085)}
.menu-create-choice>button{display:grid;gap:3px;border:1px solid var(--border,#e1e6ed);border-radius:14px;background:transparent;color:inherit;text-align:left;font:inherit;padding:14px;cursor:pointer}
.menu-create-choice>button strong{font-size:.97rem}.menu-create-choice>button small{color:var(--muted,#667085)}
.menu-secondary-choice{font-weight:700}
.menu-builder-setup{display:grid;gap:13px}
.menu-builder-setup>label{display:grid;gap:5px;font-size:.8rem;color:var(--muted,#667085)}
.menu-people-stepper{display:grid;grid-template-columns:38px minmax(70px,1fr) 38px;gap:7px;align-items:center}
.menu-people-stepper button{height:38px;border-radius:999px;border:1px solid var(--border,#dfe4eb);background:transparent;color:inherit;font:inherit;cursor:pointer}
.menu-people-stepper input{text-align:center}
.menu-course-choice,
.menu-builder-priority{display:flex;gap:8px;flex-wrap:wrap;border:0;padding:0;margin:0}
.menu-course-choice legend,
.menu-builder-priority legend{width:100%;font-size:.8rem;font-weight:750;margin-bottom:2px}
.menu-course-choice label,
.menu-builder-priority label{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--border,#e1e6ed);border-radius:999px;font-size:.8rem}
.menu-recipe-picker{display:grid;gap:7px}
.menu-recipe-picker>button{display:grid;gap:3px;border:1px solid var(--border,#e1e6ed);border-radius:13px;background:transparent;color:inherit;text-align:left;font:inherit;padding:12px;cursor:pointer}
.menu-recipe-picker small,
.menu-recipe-picker span{color:var(--muted,#667085);font-size:.78rem}
.menu-suggestion{display:grid;gap:13px}
.menu-suggestion-intro h3{margin:0 0 3px}.menu-suggestion-intro p{margin:0 0 5px;color:var(--muted,#667085)}.menu-suggestion-intro small{color:var(--muted,#667085);line-height:1.45}
.menu-suggestion>section{display:grid;gap:6px;padding:11px 0;border-top:1px solid var(--border,#e8ebef)}
.menu-suggestion-dish{display:flex;align-items:center;justify-content:space-between;gap:12px}
.menu-suggestion-dish>div{display:grid;gap:2px}.menu-suggestion-dish span,
.menu-suggestion-dish small{color:var(--muted,#667085);font-size:.78rem}
.menu-suggestion-actions,
.menu-failure-actions{display:flex;gap:8px;flex-wrap:wrap}
.menu-generation-failure{display:grid;gap:13px}.menu-generation-failure p{margin:0;color:var(--muted,#667085)}
.menu-history-detail{display:grid;gap:12px}.menu-history-detail>p{margin:0;color:var(--muted,#667085)}.menu-history-detail section{display:grid;gap:5px}
.menu-shopping-source{display:block;margin-top:3px;color:var(--muted,#667085)!important}
.menu-feed-shortcut{opacity:.84}

.dark-mode .menu-page-header,
.dark-mode .menu-history-strip,
.dark-mode .menu-course-card,
.dark-mode .menu-empty{background:var(--panel,#1b2330);border-color:var(--border,#354052)}
.dark-mode .menu-status-pill.active{color:#86efac;background:rgba(74,222,128,.1)}
.dark-mode .menu-status-pill.planned{color:#93c5fd;background:rgba(96,165,250,.1)}
.dark-mode .menu-dish-state.ready{color:#86efac}.dark-mode .menu-dish-state.warning,
.dark-mode .menu-dish-main small{color:#f2b45f}
.dark-mode .danger-link{color:#fca5a5!important}

@media(max-width:620px){
  .menu-planner-shell{gap:11px;padding-top:0}
  .menu-page-header{padding:14px;flex-direction:column}
  .menu-status-pill{align-self:flex-start}
  .menu-selector-row{grid-template-columns:minmax(0,1fr) auto}
  .menu-dish-row{grid-template-columns:minmax(0,1fr) auto;gap:9px}
  .menu-portions-control{grid-column:2;grid-row:1}
  .menu-dish-actions{grid-column:1/-1;justify-content:flex-end}
  .menu-next-actions>*{flex:1 1 auto}
}


/* Restaurant-style persistent menus + active orders — v240 responsive layout */
#view-expected-orders>.compact-category-header,
#view-expected-orders>.persistent-name-filter,
#view-expected-orders #expected-order-name-filter,
#view-expected-orders #menu-planner-shell{display:none!important}

#view-expected-orders,
#view-expected-orders .restaurant-menu-shell,
#view-expected-orders .rest-menu-top,
#view-expected-orders .rest-menu-body,
#view-expected-orders .rest-menu-section{min-width:0;max-width:100%}

#view-expected-orders{width:100%}
.restaurant-menu-shell{
  width:100%;max-width:980px;margin:0 auto;padding:0 0 24px;
  display:grid;grid-template-columns:minmax(0,1fr);gap:10px
}
.rest-menu-top{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;width:100%;max-width:100%}
.rest-menu-selected-row{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:10px;min-width:0
}
.rest-menu-selected-copy{min-width:0;flex:1}
.rest-menu-selected-copy h2{
  margin:2px 0 0;font-size:1.35rem;line-height:1.15;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.rest-menu-selected-copy p{
  margin:4px 0 0;color:var(--text-secondary);font-size:.82rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.rest-menu-level-actions{
  display:flex;align-items:center;justify-content:flex-end;gap:6px;
  flex:0 0 auto;min-width:0
}
.rest-menu-manage-button{min-height:36px;padding:6px 10px}
.rest-menu-level-actions .dashboard-link-button{white-space:nowrap}

.rest-menu-tabs{
  display:flex;flex-wrap:nowrap;gap:8px;width:auto;max-width:100%;min-width:0;
  overflow-x:auto;overflow-y:hidden;padding:2px 14px 6px 0;
  scroll-padding-inline:0 14px;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  touch-action:pan-x pan-y
}
.rest-menu-tabs::-webkit-scrollbar{display:none}
.rest-menu-tab{
  flex:0 0 auto;min-width:110px;max-width:156px;min-height:54px;
  display:grid;align-content:center;gap:1px;text-align:left;
  border:1px solid var(--border);background:var(--surface);color:var(--text-primary);
  border-radius:12px;padding:8px 10px;cursor:pointer
}
.rest-menu-tab strong{
  display:block;max-width:100%;font-size:.87rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.rest-menu-tab small{
  display:block;max-width:100%;font-size:.7rem;color:var(--text-secondary);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.rest-menu-tab.active{
  border-color:var(--primary-color);
  background:color-mix(in srgb,var(--primary-color) 8%,var(--surface));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--primary-color) 18%,transparent)
}
.rest-menu-new-tab{
  flex:0 0 46px;width:46px;min-width:46px;min-height:54px;
  border:1px dashed var(--border);border-radius:12px;
  background:var(--surface);color:var(--text-primary);
  font-size:1.35rem;font-weight:700
}

.rest-menu-utility-actions{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px;
  min-width:0;padding:1px 0 7px;border-bottom:1px solid var(--border)
}
.rest-menu-utility-actions .secondary-button{
  min-height:36px;padding:6px 10px;white-space:nowrap;min-width:0
}
.rest-menu-utility-actions .dashboard-link-button{
  min-height:34px;padding:5px 7px;white-space:nowrap
}
.rest-menu-print-button{margin-left:auto}

.rest-menu-body{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.rest-menu-section{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;padding:0}
.rest-section-title{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  min-width:0;padding:8px 10px;border:1px solid color-mix(in srgb,var(--border) 68%,transparent);
  border-radius:14px;background:color-mix(in srgb,var(--surface) 58%,transparent);
  box-shadow:0 5px 16px rgba(22,31,27,.055);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)
}
.rest-section-title h3{
  min-width:0;margin:0;font-size:.78rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--text-secondary);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.rest-section-actions{
  display:flex;align-items:center;justify-content:flex-end;gap:4px;
  flex:0 0 auto;min-width:0
}
.rest-add-dish{white-space:nowrap;padding:5px 6px}
.rest-section-more{
  width:34px;height:34px;flex:0 0 34px;border:0;border-radius:9px;
  background:transparent;color:var(--text-primary);font-size:1.1rem
}
.rest-section-more:hover,
.rest-section-more:focus-visible{background:var(--surface2)}

.rest-menu-dish{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:12px;min-width:0;padding:11px 12px;border:1px solid color-mix(in srgb,var(--border) 60%,transparent);
  border-radius:14px;background:color-mix(in srgb,var(--surface) 48%,transparent);
  box-shadow:0 4px 14px rgba(22,31,27,.045);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)
}
.rest-dish-copy{
  display:grid;gap:3px;min-width:0;max-width:100%;
  border:0;background:transparent;color:var(--text-primary);text-align:left;font:inherit;cursor:pointer
}
.rest-dish-copy strong{
  font-family:Georgia,"Times New Roman",serif;font-size:1.03rem;font-weight:700;line-height:1.22
}
.rest-dish-copy>span{
  max-width:100%;font-size:.8rem;color:var(--text-secondary);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.rest-dish-copy em{font-style:normal;font-size:.8rem;font-weight:700}
.rest-dish-copy small{font-size:.75rem;color:var(--text-secondary)}
.rest-dish-copy small.ok{color:#15803d}
.rest-dish-copy small.warn{color:#a15c0a}
.rest-dish-controls{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0}
.rest-order-stepper{
  display:grid;grid-template-columns:34px 48px 34px;align-items:center;gap:3px;
  min-width:0
}
.rest-order-stepper button,
.rest-dish-more{
  height:34px;border-radius:999px;border:1px solid var(--border);
  background:transparent;color:var(--text-primary);font:inherit;font-weight:800;cursor:pointer
}
.rest-order-stepper input{
  width:48px;height:34px;min-width:0;text-align:center;padding:0 3px;
  border:1px solid var(--border);border-radius:9px;
  background:var(--surface);color:var(--text-primary)
}
.rest-dish-more{width:34px;flex:0 0 34px;font-size:1rem}

.rest-section-empty{
  padding:12px 0;color:var(--text-secondary);font-size:.84rem
}
.rest-add-section{justify-self:start;padding:5px 0}
.rest-menu-no-sections{
  display:grid;gap:9px;justify-items:start;
  padding:14px 0;border-bottom:1px solid var(--border)
}
.rest-menu-no-sections p{margin:0;color:var(--text-secondary)}

.rest-current-order{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-width:0;padding:10px 12px;border:1px solid var(--border);
  border-radius:12px;background:color-mix(in srgb,var(--surface2) 45%,transparent)
}
.rest-current-order>div:first-child{display:grid;gap:2px;min-width:0}
.rest-current-order>div:last-child{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.rest-current-order-empty{
  justify-content:flex-start;gap:7px;padding:8px 10px;
  color:var(--text-secondary);font-size:.84rem
}
.rest-current-order-empty .dashboard-kicker{color:var(--text-secondary)}
.rest-menu-empty{
  display:grid;gap:10px;justify-items:start;padding:18px 0;
  border-top:1px solid var(--border)
}
.rest-menu-empty p{margin:0;color:var(--text-secondary)}

#menu-modal .menu-history-detail>div{
  display:grid;gap:2px;padding:7px 0;border-bottom:1px solid var(--border)
}
#menu-modal .menu-history-detail>div small{color:var(--text-secondary)}

body.dark-mode .rest-menu-tab,
body.dark-mode .rest-menu-new-tab{
  background:var(--surface);border-color:var(--border);color:var(--text-primary)
}
body.dark-mode .rest-menu-tab.active{
  border-color:#60a5fa;
  background:color-mix(in srgb,#60a5fa 10%,var(--surface))
}
body.dark-mode .rest-dish-copy small.ok{color:#86efac}
body.dark-mode .rest-dish-copy small.warn{color:#f2b45f}
body.dark-mode .rest-current-order{
  background:color-mix(in srgb,var(--surface2) 60%,transparent);border-color:var(--border)
}
body.dark-mode .rest-section-empty,
body.dark-mode .rest-menu-no-sections p,
body.dark-mode .rest-current-order-empty{color:var(--text-secondary)}

@media(max-width:620px){
  .restaurant-menu-shell{gap:8px;padding-bottom:18px}
  .rest-menu-selected-row{align-items:center}
  .rest-menu-selected-copy h2{font-size:1.2rem}
  .rest-menu-selected-copy p{display:none}
  .rest-menu-level-actions{gap:4px}
  .rest-menu-level-actions .dashboard-link-button{font-size:.78rem;padding:4px}
  .rest-menu-manage-button{min-height:34px;padding:5px 8px;font-size:.82rem}
  .rest-menu-tabs{gap:7px;padding-right:16px}
  .rest-menu-tab{min-width:108px;max-width:142px;min-height:52px;padding:7px 9px}
  .rest-menu-new-tab{min-height:52px}
  .rest-menu-utility-actions{gap:5px;padding-bottom:6px}
  .rest-menu-utility-actions .secondary-button{flex:0 1 auto;min-height:34px;padding:5px 8px;font-size:.8rem}
  .rest-menu-print-button{margin-left:0;font-size:.8rem}
  .rest-section-title{padding-top:6px}
  .rest-add-dish{font-size:.8rem}
  .rest-menu-dish{grid-template-columns:minmax(0,1fr);gap:7px;padding:10px 0}
  .rest-dish-controls{justify-content:space-between;width:100%}
  .rest-order-stepper{grid-template-columns:36px 52px 36px}
  .rest-order-stepper input{width:52px}
  .rest-current-order{align-items:flex-start;flex-direction:column}
  .rest-current-order>div:last-child{width:100%;justify-content:flex-start}
  .rest-current-order>div:last-child>*{flex:0 1 auto}
  .rest-current-order-empty{flex-direction:row;align-items:center}
}
@media(max-width:360px){
  .rest-menu-tab{min-width:104px;max-width:132px}
  .rest-menu-level-actions .dashboard-link-button{display:none}
  .rest-menu-utility-actions .secondary-button{font-size:.76rem;padding-left:7px;padding-right:7px}
  .rest-section-actions{gap:1px}
  .rest-add-dish{padding-left:3px;padding-right:3px}
}
.rest-recipe-picker-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.45fr);gap:8px;margin-bottom:9px}
.rest-prep-order-target{display:block;margin-top:5px;font-weight:700;color:var(--accent,#2563eb)!important}
@media(max-width:620px){.rest-recipe-picker-tools{grid-template-columns:1fr}}


.pantry-detail-return{margin:0 0 .35rem;padding:.2rem .35rem;font-size:.86rem}
.pantry-multiple-expiry-button{font-size:.88rem}
.pantry-expiry-groups-direct{display:block;margin-top:.75rem}
@media(max-width:620px){.pantry-quick-main-actions{flex-wrap:wrap}.pantry-multiple-expiry-button{order:2;flex:1 1 100%}}

/* Dashboard Kitcherette tap reaction — v240 */
.dashboard-mascot[role="button"]{cursor:pointer;transform-origin:50% 88%;-webkit-tap-highlight-color:transparent}
.dashboard-mascot[role="button"]:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:14px}
.dashboard-mascot.dashboard-mascot-tap{animation:dashboard-kitcherette-tap .72s cubic-bezier(.2,.8,.25,1)}
@keyframes dashboard-kitcherette-tap{
  0%{transform:translateY(0) rotate(0) scale(1)}
  22%{transform:translateY(-7px) rotate(-4deg) scale(1.04)}
  46%{transform:translateY(-3px) rotate(4deg) scale(1.06)}
  70%{transform:translateY(-5px) rotate(-2deg) scale(1.03)}
  100%{transform:translateY(0) rotate(0) scale(1)}
}
@media(prefers-reduced-motion:reduce){.dashboard-mascot.dashboard-mascot-tap{animation:none}}

/* Preparation execution center — v240 */
#view-service{padding-bottom:5rem}
.prep-page{max-width:980px;margin:0 auto;padding:.5rem 0 4.5rem}
.prep-title-row,
.prep-subbar,
.prep-setup-head,
.prep-dish-head,
.prep-sticky-progress{display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.prep-title-row h2,
.prep-setup-head h2{margin:.15rem 0 0}.prep-title-row select{min-height:44px;max-width:48%;font:inherit}
.prep-mode-tabs,
.prep-view-tabs,
.prep-detail-tabs{display:flex;gap:.35rem;padding:.28rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;margin:.75rem 0}
.prep-mode-tabs button,
.prep-view-tabs button,
.prep-detail-tabs button{min-height:44px;border:0;border-radius:9px;padding:.55rem .9rem;background:transparent;color:inherit;font:inherit;font-weight:700}
.prep-mode-tabs button{flex:1}.prep-mode-tabs button.active,
.prep-view-tabs button.active,
.prep-detail-tabs button.active{background:var(--primary-color);color:#fff}
.prep-subbar{margin-bottom:.5rem}.prep-setup-button{min-height:44px}.prep-session-context{display:flex;gap:.55rem;align-items:baseline;margin:.6rem 0 1rem;color:var(--muted-text,#666)}.prep-session-context strong{color:var(--text-color,inherit)}
.prep-work-list{border-top:1px solid var(--border-color,#ddd)}
.prep-task-row{min-height:72px;border-bottom:1px solid var(--border-color,#ddd);display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.7rem .25rem}.prep-task-row.complete{opacity:.6}.prep-check-label{display:flex;align-items:center;gap:.8rem;min-width:0;flex:1;cursor:pointer}.prep-check-label input{position:absolute;opacity:0;pointer-events:none}.prep-check-box{width:31px;height:31px;min-width:31px;border:2px solid currentColor;border-radius:8px;display:grid;place-items:center}.prep-check-label input:checked+.prep-check-box::after{content:"✓";font-size:1.35rem;font-weight:900}.prep-task-copy,
.prep-check-label>span:last-child{display:flex;flex-direction:column;gap:.12rem;min-width:0}.prep-task-copy strong,
.prep-check-label strong{font-size:1.03rem}.prep-task-copy small,
.prep-check-label small{font-size:.86rem;color:var(--muted-text,#666)}.prep-stock-warning{color:var(--warning-color,#a86100)!important}.prep-stock-warning button{border:0;background:none;text-decoration:underline;color:inherit;font:inherit;font-weight:700;padding:.15rem .3rem}
.prep-progress-button{white-space:nowrap}.prep-dish-group{padding:.9rem 0;border-bottom:2px solid var(--border-color,#ddd)}.prep-dish-head h3{margin:0}.prep-dish-head small{color:var(--muted-text,#666)}.prep-delta{color:var(--warning-color,#a86100)!important}.prep-extra{color:var(--muted-text,#666)!important}.prep-recipe-change{margin:.55rem 0;padding:.55rem .7rem;border-left:3px solid var(--warning-color,#a86100);background:var(--card-background,#fff);display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.prep-recipe-change button{min-height:36px}.prep-dish-simple{min-height:74px;border-bottom:1px solid var(--border-color,#ddd);display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.65rem .2rem}.prep-dish-simple.complete{opacity:.6}
.prep-sticky-progress{position:sticky;bottom:.5rem;margin-top:1rem;padding:.65rem .8rem;background:var(--card-background,#fff);border:1px solid var(--border-color,#ddd);border-radius:12px;box-shadow:0 3px 16px rgba(0,0,0,.12);z-index:3}.prep-sticky-progress label{min-height:40px;display:flex;align-items:center;gap:.4rem}.prep-sticky-progress input{width:22px;height:22px}
.prep-empty-session,
.prep-dish-done{padding:1.3rem .25rem;color:var(--muted-text,#666)}.prep-setup-help{color:var(--muted-text,#666)}.prep-setup-list{border-top:1px solid var(--border-color,#ddd)}.prep-setup-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem .8rem;align-items:center;padding:.75rem .15rem;border-bottom:1px solid var(--border-color,#ddd)}.prep-setup-copy{display:flex;flex-direction:column;gap:.12rem}.prep-setup-copy small{color:var(--muted-text,#666)}.prep-qty-control{display:flex;align-items:center;gap:.25rem}.prep-qty-control button{width:44px;height:44px;border-radius:10px;font-size:1.35rem}.prep-qty-control input{width:62px;min-height:44px;text-align:center;font-size:1.05rem}.prep-setup-row>[data-add-remaining]{grid-column:1/-1;justify-self:start}.prep-add-dish{margin-top:.8rem;min-height:44px}.prep-setup-actions{display:flex;justify-content:flex-end;margin-top:1rem}.prep-setup-actions button{min-height:48px}.prep-picker{display:flex;flex-direction:column;border-top:1px solid var(--border-color,#ddd)}.prep-picker>button{min-height:62px;text-align:left;border:0;border-bottom:1px solid var(--border-color,#ddd);background:transparent;color:inherit;display:flex;flex-direction:column;justify-content:center}.prep-picker span{color:var(--muted-text,#666)}
.dashboard-prep-summary{text-align:left}
@media(max-width:620px){.prep-page{padding-left:.15rem;padding-right:.15rem}.prep-title-row{align-items:flex-start}.prep-title-row select{max-width:50%;font-size:.9rem}.prep-subbar{align-items:stretch;flex-direction:column}.prep-view-tabs{margin:0}.prep-view-tabs button{flex:1}.prep-setup-button{width:100%}.prep-task-row{min-height:78px}.prep-progress-button{font-size:.82rem;padding:.45rem}.prep-dish-head{align-items:flex-start}.prep-setup-row{grid-template-columns:1fr}.prep-qty-control{justify-self:start}.prep-sticky-progress{bottom:.35rem}}
@media(prefers-reduced-motion:reduce){.prep-task-row,
.prep-dish-simple{scroll-behavior:auto}}

/* v240 — simplified Preparation WORK layer */
.prep-work-page{max-width:960px;margin:0 auto;padding-bottom:1.25rem}
.prep-compact-title{margin-bottom:.45rem}
.prep-mode-tabs-primary{margin:0 0 .55rem}
.prep-context-row{display:flex;align-items:center;gap:.55rem;margin:.15rem 0 .35rem}
.prep-compact-select{min-width:0;flex:1;height:42px}
.prep-setup-compact{min-height:42px;padding:.45rem .8rem;white-space:nowrap}
.prep-list-tools{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.25rem 0 .55rem;border-bottom:1px solid var(--border);margin-bottom:.15rem}
.prep-view-compact{display:flex;align-items:center;gap:.4rem;font-size:.9rem}
.prep-view-compact select{height:36px;padding:.25rem 1.8rem .25rem .55rem}
.prep-compact-progress{display:flex;align-items:center;gap:.7rem;font-size:.86rem;white-space:nowrap}
.prep-compact-progress label{display:flex;align-items:center;gap:.3rem;font-weight:500}
.prep-work-list{margin-top:.15rem}
.prep-dish-group{border:0;border-bottom:1px solid var(--border);border-radius:0;margin:0;background:transparent}
.prep-dish-head{display:flex;align-items:center;gap:.65rem;padding:.78rem .1rem;min-height:58px;cursor:pointer}
.prep-dish-check{display:flex;align-items:center;min-width:42px;min-height:42px;justify-content:center;cursor:pointer}
.prep-dish-title{flex:1;min-width:0}
.prep-dish-title h3{margin:0;font-size:1rem;line-height:1.2}
.prep-dish-title small{display:block;margin-top:.2rem}
.prep-dish-chevron{font-size:1.35rem;line-height:1;opacity:.65;min-width:22px;text-align:center}
.prep-dish-task-list{padding:0 0 .45rem 2.85rem}
.prep-task-row{display:flex;align-items:center;gap:.35rem;border:0;border-top:1px solid color-mix(in srgb,currentColor 10%,transparent);border-radius:0;padding:.52rem .05rem;background:transparent;min-height:54px}
.prep-task-row:first-child{border-top:0}
.prep-check-label{flex:1;min-width:0;min-height:44px;align-items:center}
.prep-check-label input,
.prep-dish-check input{width:24px;height:24px}
.prep-task-copy strong{font-size:.98rem}
.prep-task-copy small{font-size:.82rem;opacity:.76}
.prep-task-more{border:0;background:transparent;font-size:1.45rem;line-height:1;min-width:42px;min-height:42px;border-radius:8px;cursor:pointer}
.prep-task-more:hover,
.prep-task-more:focus-visible{background:color-mix(in srgb,currentColor 8%,transparent)}
.prep-recipe-change{margin:.45rem 0;padding:.55rem .65rem}
.prep-empty-session{padding:1rem .2rem}
.prep-empty-session .primary-button{margin-top:.6rem}
.prep-setup-actions{display:flex;justify-content:flex-end;gap:.55rem;position:sticky;bottom:0;padding:.7rem 0;background:var(--surface)}
.prep-setup-row{box-shadow:none;border-radius:0;border-left:0;border-right:0}
.prep-session-context,
.prep-subbar,
.prep-detail-tabs,
.prep-sticky-progress{display:none!important}
@media(max-width:620px){
  .prep-work-page{padding-left:.65rem;padding-right:.65rem}
  .prep-title-row.prep-compact-title h2{font-size:1.35rem}
  .prep-context-row{gap:.4rem}
  .prep-setup-compact{padding:.4rem .65rem}
  .prep-list-tools{align-items:flex-start;gap:.35rem;flex-wrap:wrap}
  .prep-compact-progress{width:100%;justify-content:space-between}
  .prep-dish-task-list{padding-left:2.35rem}
  .prep-task-row{min-height:58px}
}

/* v240 — calm first-run Setup + reusable page tutorials */
.onboarding-center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;padding:1.4rem .6rem 1.8rem}
.onboarding-kitcherette{width:min(180px,44vw);height:auto}
.onboarding-question{max-width:620px;margin:0 auto;padding:.4rem 0 1rem}
.onboarding-question>p{margin:.2rem 0 1rem;font-size:1.05rem}
.onboarding-question>small{display:block;margin-top:.8rem;opacity:.72}
.onboarding-options{display:grid;gap:.65rem}
.onboarding-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.onboarding-option,
.onboarding-check-option,
.onboarding-toggle{
  width:100%;min-height:54px;border:1px solid var(--border);background:var(--surface);
  border-radius:12px;padding:.75rem .9rem;text-align:left;font:inherit;color:inherit
}
.onboarding-option.selected,
.onboarding-toggle.selected{border-color:var(--accent,#2f6fed);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,#2f6fed) 18%,transparent)}
.onboarding-menu-options{display:grid;gap:.55rem}
.onboarding-check-option{display:flex;align-items:center;gap:.7rem}
.onboarding-check-option input{width:22px;height:22px}
.onboarding-toggle{display:flex;justify-content:space-between;align-items:center}
.onboarding-switch{width:44px;height:24px;border-radius:999px;background:color-mix(in srgb,currentColor 18%,transparent);position:relative}
.onboarding-switch:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:currentColor;top:3px;left:3px;transition:transform .15s}
.onboarding-toggle.selected .onboarding-switch:after{transform:translateX(20px)}
.onboarding-custom-menu{display:flex;gap:.5rem;margin-top:.75rem}
.onboarding-custom-menu input{flex:1;min-width:0}
.onboarding-custom-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}
.onboarding-custom-tags button{border:0;border-radius:999px;padding:.35rem .6rem}
.onboarding-ready-actions{display:grid;gap:.6rem;width:min(360px,100%)}
.onboarding-help-list{display:grid;gap:.6rem}
.onboarding-page-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.kitcherette-tutorial-highlight{position:relative;z-index:1001;outline:3px solid var(--accent,#2f6fed);outline-offset:4px;border-radius:10px}
.kitcherette-page-tutorial{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:1100;width:min(560px,calc(100vw - 20px));background:var(--surface);color:inherit;border:1px solid var(--border-color,#d9dee5);border-radius:16px;box-shadow:0 14px 44px rgba(0,0,0,.24);padding:.75rem}
.kitcherette-tutorial-top,
.kitcherette-tutorial-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.kitcherette-tutorial-top button{border:0;background:transparent;font-size:1.3rem;min-width:40px;min-height:40px}
.kitcherette-tutorial-guide{display:flex;align-items:center;gap:.75rem;padding:.35rem 0 .65rem}
.kitcherette-tutorial-guide img{width:58px;height:auto;flex:0 0 auto}
.kitcherette-tutorial-guide p{margin:0;line-height:1.35}
.kitcherette-tutorial-actions span{font-size:.82rem;opacity:.68}
.kitcherette-tutorial-offer{position:fixed;z-index:1090;right:14px;bottom:max(14px,env(safe-area-inset-bottom));width:min(390px,calc(100vw - 28px));padding:.85rem;background:var(--surface);color:inherit;border:1px solid var(--border-color,#d9dee5);border-radius:14px;box-shadow:0 12px 36px rgba(0,0,0,.22)}
.kitcherette-tutorial-offer p{margin:.25rem 0 .7rem}
.kitcherette-tutorial-offer>div:last-child{display:flex;justify-content:flex-end;gap:.5rem}
@media(max-width:620px){
  .onboarding-grid,
.onboarding-page-picker{grid-template-columns:1fr}
  .setup-tutorial-page{padding-left:.8rem;padding-right:.8rem}
  .kitcherette-page-tutorial{bottom:max(8px,env(safe-area-inset-bottom))}
}

/* v240 — short tutorial chapters + safe recipe simulation */
.tutorial-recipe-sim{display:grid;gap:.55rem;margin:.25rem 0 .75rem;padding:.7rem;border:1px solid var(--border-color,#d9dee5);border-radius:12px;max-height:42vh;overflow:auto}
.tutorial-recipe-sim-head{display:flex;justify-content:space-between;align-items:center;gap:.7rem}
.tutorial-recipe-sim-head input{width:64px;min-height:38px}
.tutorial-recipe-sim-section{display:grid;gap:.18rem;padding-top:.45rem;border-top:1px solid var(--border-color,#d9dee5)}
.tutorial-recipe-sim-section span{font-size:.9rem}
.tutorial-recipe-sim-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.tutorial-recipe-sim-actions small{opacity:.7}
.tutorial-recipe-relationship{display:flex;align-items:center;justify-content:center;gap:.45rem;flex-wrap:wrap;margin:.25rem 0 .8rem}
.tutorial-recipe-relationship div{display:grid;text-align:center;min-width:120px;padding:.5rem;border-radius:10px;background:color-mix(in srgb,currentColor 5%,transparent)}
.tutorial-recipe-relationship span{font-size:.78rem;opacity:.7}
.kitcherette-chapter-complete{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.28)}
.kitcherette-chapter-complete-card{width:min(440px,100%);padding:1rem;text-align:center;background:var(--surface);color:inherit;border:1px solid var(--border-color,#d9dee5);border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.24)}
.kitcherette-chapter-complete-card img{width:76px;height:auto}
.kitcherette-chapter-complete-card h3{margin:.35rem 0}
.kitcherette-chapter-complete-card p{margin:.35rem 0 .8rem;opacity:.75}
.kitcherette-chapter-complete-card>div{display:grid;gap:.5rem}
.tutorial-overview-list{display:grid;gap:.25rem;margin-bottom:.9rem}
.tutorial-overview-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:.55rem;width:100%;min-height:48px;padding:.55rem .65rem;border:0;border-bottom:1px solid var(--border-color,#d9dee5);background:transparent;color:inherit;text-align:left}
.tutorial-overview-row small{opacity:.65}
.tutorial-overview-continue{width:100%}
@media(max-width:620px){
 .kitcherette-page-tutorial{max-height:78vh;overflow:auto}
 .tutorial-recipe-sim{max-height:36vh}
 .tutorial-overview-row{grid-template-columns:24px 1fr auto}
}

/* v240 — forced full-screen initial Setup */
body.kitcherette-setup-active{overflow:hidden}
body.kitcherette-setup-active .topbar,
body.kitcherette-setup-active #side-menu,
body.kitcherette-setup-active #side-menu-overlay,
body.kitcherette-setup-active #mascot-drawer,
body.kitcherette-setup-active #mascot-drawer-backdrop{display:none!important}
body.kitcherette-setup-active main{max-width:none;margin:0;padding:0;min-height:100dvh}
body.kitcherette-setup-active .app-view{display:none!important}
body.kitcherette-setup-active #view-setup-tutorial.active{
  display:block!important;position:fixed;inset:0;z-index:5000;overflow:auto;
  background:var(--bg);color:var(--text-primary);padding:0
}
body.kitcherette-setup-active .setup-tutorial-page{
  width:min(720px,100%);min-height:100dvh;margin:0 auto;padding:28px 20px 24px;
  display:flex;flex-direction:column;justify-content:center
}
body.kitcherette-setup-active .setup-tutorial-header{position:relative}
body.kitcherette-setup-forced #setup-tutorial-close{display:none!important}
body.kitcherette-setup-active .setup-tutorial-actions{position:sticky;bottom:0;background:var(--bg);padding-top:12px}
.onboarding-language-first{padding-top:.4rem}
.onboarding-language-first .onboarding-question{width:min(520px,100%)}
@media(max-width:620px){
  body.kitcherette-setup-active .setup-tutorial-page{padding:18px 14px 18px;justify-content:flex-start}
  body.kitcherette-setup-active .onboarding-kitcherette{width:min(145px,38vw)}
}

/* v240 — Preparation selector dark-mode consistency */
.prep-mode-tabs-primary{background:var(--surface);border-color:var(--border)}
.prep-mode-tabs-primary button{color:var(--text-primary)}
.prep-mode-tabs-primary button.active{background:var(--primary-color);color:#fff}
.prep-compact-select,
.prep-view-compact select{
  background:var(--surface);color:var(--text-primary);border:1px solid var(--border)
}
body.dark-mode .prep-mode-tabs-primary,
body.dark-mode .prep-compact-select,
body.dark-mode .prep-view-compact select{background:var(--surface);color:var(--text-primary);border-color:var(--border)}

/* v240 — Menu page uses the app-level header only */
.rest-menu-heading-actions-only{justify-content:flex-end}

/* v240 — Dashboard-owned smart meal choices */
.dashboard-smart-choices{padding-top:.9rem;padding-bottom:.9rem}
.dashboard-smart-choices h3{margin:.15rem 0 .25rem}
.dashboard-smart-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}
.dashboard-smart-actions .primary-button,
.dashboard-smart-actions .secondary-button{min-height:38px;padding:.45rem .72rem}
.dashboard-smart-setup{display:grid;gap:.85rem}
.dashboard-smart-setup>label{display:grid;gap:.35rem}
.dashboard-smart-setup select{width:100%;min-height:44px;background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}
.dashboard-smart-people{display:grid;grid-template-columns:44px minmax(64px,1fr) 44px;align-items:center;max-width:190px;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}
.dashboard-smart-people button{min-height:44px;background:var(--surface2);color:var(--text-primary);font-size:1.15rem}
.dashboard-smart-people strong{text-align:center}
.dashboard-smart-result .dashboard-smart-why{margin:.8rem 0;padding:.7rem .8rem;background:var(--surface2);border-radius:10px}
.dashboard-smart-result .dashboard-smart-why p{margin-top:.25rem;color:var(--text-secondary)}
.dashboard-smart-empty{display:grid;gap:.8rem}
body.dark-mode .dashboard-smart-setup select,
body.dark-mode .dashboard-smart-people{background:var(--surface);color:var(--text-primary);border-color:var(--border)}
@media(max-width:620px){.dashboard-smart-actions{display:grid;grid-template-columns:1fr}.dashboard-smart-actions button{width:100%}}
@media(max-width:700px){
  body.guided-recipe-tutorial .recipe-editor-savebar .guided-recipe-skip{
    flex:1 0 100%;
    order:-1;
    text-align:left;
  }
}


/* v240 — Privacy, local profile and granular optional data sharing */
.privacy-profile-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:14px 0;
}
.privacy-profile-grid label{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.privacy-profile-grid label>span{font-size:.78rem;font-weight:800;color:var(--text-secondary)}
.privacy-profile-grid select,
.privacy-profile-grid input{
  width:100%;
  min-height:42px;
}
.privacy-three-choices{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}
.privacy-equal-choice{
  min-height:112px;
  display:flex!important;
  flex-direction:column;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  text-align:left!important;
  gap:7px;
}
.privacy-equal-choice strong{font-size:.9rem}
.privacy-equal-choice small{font-weight:500;color:var(--text-secondary);line-height:1.35}
.privacy-current-summary,
.privacy-ack,
.privacy-minor-note,
.privacy-separation-note,
.privacy-control-note,
.privacy-pending-state,
.privacy-error-state{
  border:1px solid var(--border);
  border-radius:12px;
  padding:11px 12px;
  background:var(--surface-secondary,var(--surface));
}
.privacy-current-summary{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.privacy-minor-note{margin-top:10px}
.privacy-custom-area{
  margin-top:14px;
  border-top:1px solid var(--border);
  padding-top:14px;
}
.privacy-select-tools,
.privacy-settings-convenience,
.privacy-document-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:10px;
}
.privacy-custom-area section+section{margin-top:14px}
.privacy-custom-area h4,
.privacy-control-note h4,
.privacy-confirm-grid h4{margin:0 0 8px}
.privacy-consent-row,
.privacy-settings-toggle{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--border);
}
.privacy-consent-row>span,
.privacy-settings-toggle>span{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.privacy-consent-row small,
.privacy-settings-toggle small{color:var(--text-secondary);line-height:1.35}
.privacy-consent-row input,
.privacy-settings-toggle input{
  flex:0 0 auto;
  width:20px;
  height:20px;
  margin-top:2px;
}
.privacy-review-choice{margin-top:14px}
.privacy-legal-setup{
  display:grid;
  gap:14px;
}
.privacy-legal-block{
  border:1px solid var(--border);
  border-radius:14px;
  padding:14px;
  background:var(--surface);
}
.privacy-legal-block h3,
.privacy-legal-block h4{margin-top:0}
.privacy-terms-check{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:12px 0;
  font-weight:700;
}
.privacy-terms-check input{
  width:20px;
  height:20px;
  flex:0 0 20px;
}
.kitcherette-privacy-modal{
  z-index:310!important;
}
.kitcherette-privacy-migration-modal{
  z-index:300!important;
}
.kitcherette-privacy-modal-panel{
  width:min(720px,calc(100% - 20px));
  max-height:min(88vh,820px);
  overflow:auto;
}
.privacy-confirm-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:14px 0;
}
.privacy-confirm-grid section{
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px;
}
.privacy-confirm-grid ul,
.privacy-control-note ul{
  margin:8px 0 0;
  padding-left:20px;
}
.privacy-confirm-yes li::marker{content:"✓  "}
.privacy-confirm-no li::marker{content:"–  "}
.privacy-settings-overlay{
  position:fixed;
  inset:0;
  z-index:180;
  overflow:auto;
  background:var(--background,var(--bg));
  color:var(--text-primary);
}
.privacy-settings-overlay.hidden{display:none!important}
.privacy-settings-page{
  width:min(820px,100%);
  margin:0 auto;
  padding:16px 14px 80px;
}
.privacy-settings-header{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  gap:14px;
  padding:10px 0 14px;
  background:color-mix(in srgb,var(--background,var(--bg)) 94%,transparent);
  backdrop-filter:blur(10px);
}
.privacy-settings-header h2{margin:2px 0 0}
.privacy-settings-consents{display:flex;flex-direction:column}
.privacy-delete-button strong{color:var(--danger)}
.privacy-local-summary,
.privacy-server-state{
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px;
  margin:10px 0;
}
.privacy-server-state pre{
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  max-height:260px;
  overflow:auto;
  font-size:.72rem;
}
.privacy-lead{font-size:.98rem;line-height:1.5}
body.dark-mode .privacy-legal-block,
body.dark-mode .privacy-confirm-grid section,
body.dark-mode .privacy-local-summary,
body.dark-mode .privacy-server-state{
  background:var(--surface);
}

@media(max-width:700px){
  .privacy-profile-grid{grid-template-columns:1fr}
  .privacy-three-choices{grid-template-columns:1fr}
  .privacy-equal-choice{min-height:0}
  .privacy-confirm-grid{grid-template-columns:1fr}
  .kitcherette-privacy-modal-panel{width:calc(100% - 14px)}
}


/* v240 — Setup privacy screen scrolling fix (layout only)
   Forced Setup owns the viewport; the central content area owns vertical scrolling.
   No consent/profile state or event handling is changed here. */
body.kitcherette-setup-active #view-setup-tutorial.active{
  overflow:hidden!important;
}
body.kitcherette-setup-active .setup-tutorial-page{
  height:100dvh;
  min-height:0;
  max-height:100dvh;
  overflow:hidden;
  justify-content:flex-start;
}
body.kitcherette-setup-active .setup-tutorial-header,
body.kitcherette-setup-active .setup-tutorial-progress,
body.kitcherette-setup-active .setup-tutorial-actions{
  flex:0 0 auto;
}
body.kitcherette-setup-active .setup-tutorial-content{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  padding-bottom:24px;
  scrollbar-gutter:stable;
}
body.kitcherette-setup-active .privacy-sharing-setup,
body.kitcherette-setup-active .privacy-custom-area{
  min-height:0;
  max-width:100%;
}
body.kitcherette-setup-active .privacy-consent-row{
  touch-action:pan-y;
}
body.kitcherette-setup-active .setup-tutorial-actions{
  position:relative;
  bottom:auto;
  margin-top:0;
}

@media(max-width:620px){
  body.kitcherette-setup-active .setup-tutorial-page{
    height:100dvh;
    max-height:100dvh;
    padding-top:max(14px,env(safe-area-inset-top));
    padding-bottom:max(10px,env(safe-area-inset-bottom));
  }
  body.kitcherette-setup-active .setup-tutorial-content{
    padding-bottom:18px;
  }
}


/* v240 — robust privacy option-list scrolling (visual/layout only)
   The custom sharing chooser owns its own scroll region so Android/PWA
   does not depend on the outer Setup scroll chain. Consent logic unchanged. */
body.kitcherette-setup-active .privacy-sharing-setup .privacy-custom-area{
  display:block;
  max-height:min(54dvh,560px);
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-y!important;
  padding-right:6px;
  padding-bottom:14px;
  scrollbar-gutter:stable;
  border-bottom:1px solid var(--border);
}
body.kitcherette-setup-active .privacy-sharing-setup .privacy-custom-area.hidden{
  display:none!important;
}
body.kitcherette-setup-active .privacy-sharing-setup .privacy-custom-area section,
body.kitcherette-setup-active .privacy-sharing-setup .privacy-consent-row,
body.kitcherette-setup-active .privacy-sharing-setup .privacy-consent-row > span,
body.kitcherette-setup-active .privacy-sharing-setup .privacy-consent-row small{
  touch-action:pan-y!important;
}
body.kitcherette-setup-active .privacy-sharing-setup .privacy-consent-row input{
  touch-action:manipulation!important;
}
body.kitcherette-setup-active .privacy-sharing-setup .privacy-custom-area::-webkit-scrollbar{
  width:6px;
}
body.kitcherette-setup-active .privacy-sharing-setup .privacy-custom-area::-webkit-scrollbar-thumb{
  background:color-mix(in srgb,var(--text-secondary) 34%,transparent);
  border-radius:999px;
}
@media(max-width:620px){
  body.kitcherette-setup-active .privacy-sharing-setup .privacy-custom-area{
    max-height:52dvh;
    padding-right:4px;
  }
}


/* v240 — Privacy confirmation dialog must render above forced Setup.
   Graphical/stacking fix only: consent state and confirmation logic unchanged. */
body.kitcherette-setup-active #kitcherette-privacy-modal.kitcherette-privacy-modal{
  position:fixed!important;
  inset:0!important;
  z-index:5200!important;
}
body.kitcherette-setup-active #kitcherette-privacy-modal.kitcherette-privacy-modal:not(.hidden){
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
body.kitcherette-setup-active #kitcherette-privacy-modal .kitcherette-privacy-modal-panel{
  position:relative!important;
  z-index:5201!important;
  max-height:calc(100dvh - 28px)!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
}


/* v240 — Full Setup sub-screen for custom privacy selection */
body.kitcherette-setup-active .privacy-custom-fullscreen{
  width:min(680px,100%);
  max-width:680px;
  height:100%;
  margin:0 auto;
  padding:0;
  display:flex;
  flex-direction:column;
  min-height:0;
}
body.kitcherette-setup-active .privacy-custom-header{
  flex:0 0 auto;
  padding:2px 0 10px;
}
body.kitcherette-setup-active .privacy-custom-header h3{
  margin:.2rem 0 .35rem;
  font-size:1.2rem;
}
body.kitcherette-setup-active .privacy-custom-header p{
  margin:0;
  color:var(--text-secondary);
  line-height:1.45;
}
body.kitcherette-setup-active .privacy-custom-fullscreen .privacy-select-tools{
  flex:0 0 auto;
  margin:2px 0 8px;
}
body.kitcherette-setup-active .privacy-custom-list{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  padding:0 4px 12px 0;
}
body.kitcherette-setup-active .privacy-custom-group{
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px 14px;
  background:var(--surface);
}
body.kitcherette-setup-active .privacy-custom-group + .privacy-custom-group{
  margin-top:10px;
}
body.kitcherette-setup-active .privacy-custom-group h4{
  margin:0 0 4px;
}
body.kitcherette-setup-active .privacy-custom-navigation{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:10px 0 0;
  border-top:1px solid var(--border);
  background:var(--bg);
}
body.kitcherette-setup-active .privacy-custom-navigation button{
  min-height:44px;
}
body.kitcherette-setup-active .privacy-custom-fullscreen .privacy-consent-row{
  min-height:58px;
  cursor:pointer;
}
body.kitcherette-setup-active .privacy-custom-fullscreen .privacy-consent-row input{
  width:22px;
  height:22px;
}
body.dark-mode.kitcherette-setup-active .privacy-custom-group{
  background:var(--surface);
}

@media(max-width:620px){
  body.kitcherette-setup-active .privacy-custom-fullscreen{
    width:100%;
    max-width:none;
  }
  body.kitcherette-setup-active .privacy-custom-group{
    padding:10px 12px;
  }
  body.kitcherette-setup-active .privacy-custom-navigation{
    position:sticky;
    bottom:0;
    padding-bottom:max(2px,env(safe-area-inset-bottom));
  }
}


/* v240 — Menu setup is deferred until the Menu tab is opened */
.kitcherette-menu-first-setup{
  position:fixed;
  inset:0;
  z-index:5100;
  background:var(--bg);
  color:var(--text-primary);
  overflow:hidden;
}
.kitcherette-menu-first-setup-page{
  width:min(720px,100%);
  height:100dvh;
  margin:0 auto;
  padding:max(20px,env(safe-area-inset-top)) 18px max(14px,env(safe-area-inset-bottom));
  display:flex;
  flex-direction:column;
  min-height:0;
}
.kitcherette-menu-first-setup-header{
  flex:0 0 auto;
  padding-bottom:14px;
  border-bottom:1px solid var(--border);
}
.kitcherette-menu-first-setup-header h2{
  margin:.2rem 0 .35rem;
}
.kitcherette-menu-first-setup-header p{
  margin:0;
  color:var(--text-secondary);
  line-height:1.45;
}
.kitcherette-menu-first-setup-content{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  padding:16px 2px 20px;
}
.kitcherette-menu-first-setup-actions{
  flex:0 0 auto;
  display:flex;
  justify-content:flex-end;
  padding-top:12px;
  border-top:1px solid var(--border);
  background:var(--bg);
}
.kitcherette-menu-first-setup-actions .primary-button{
  min-width:140px;
  min-height:44px;
}
@media(max-width:620px){
  .kitcherette-menu-first-setup-page{
    padding-left:14px;
    padding-right:14px;
  }
  .kitcherette-menu-first-setup-actions .primary-button{
    width:100%;
  }
}


/* v240 — Profile/setup choice buttons */
.privacy-profile-grid{
  grid-template-columns:1fr!important;
  gap:16px!important;
}
.profile-choice-field{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.profile-choice-field>span{
  font-size:.82rem;
  font-weight:800;
  color:var(--text-secondary);
}
.profile-choice-buttons{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.profile-choice-button{
  min-height:44px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  color:var(--text-primary);
  font:inherit;
  font-weight:700;
  text-align:left;
  cursor:pointer;
  transition:border-color .16s ease,background .16s ease,transform .08s ease;
}
.profile-choice-button:active{
  transform:scale(.985);
}
.profile-choice-button.selected,
.profile-choice-button[aria-pressed="true"]{
  border-color:var(--primary-color);
  background:color-mix(in srgb,var(--primary-color) 12%,var(--surface));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--primary-color) 45%,transparent);
}
.profile-units-buttons{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
body.dark-mode .profile-choice-button{
  background:var(--surface);
}
@media(max-width:620px){
  .profile-choice-buttons,
.profile-units-buttons{
    grid-template-columns:1fr 1fr;
  }
  .profile-units-buttons .profile-choice-button:last-child{
    grid-column:1 / -1;
  }
}


/* v240 — Existing-user privacy migration custom chooser */
.kitcherette-privacy-migration-modal .kitcherette-privacy-modal-panel{
  display:flex;
  flex-direction:column;
  min-height:0;
}
.kitcherette-privacy-migration-modal #kitcherette-privacy-modal-body{
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.kitcherette-privacy-migration-modal .privacy-migration-custom-screen{
  display:flex;
  flex-direction:column;
  min-height:0;
  height:100%;
}
.kitcherette-privacy-migration-modal .privacy-migration-custom-screen .privacy-custom-list{
  max-height:min(56dvh,560px);
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  padding-right:4px;
}
.kitcherette-privacy-migration-modal #kitcherette-privacy-modal-actions{
  flex:0 0 auto;
  position:sticky;
  bottom:0;
  background:var(--surface);
  z-index:2;
}
@media(max-width:620px){
  .kitcherette-privacy-migration-modal .kitcherette-privacy-modal-panel{
    width:calc(100% - 12px);
    max-height:calc(100dvh - 12px);
  }
  .kitcherette-privacy-migration-modal .privacy-migration-custom-screen .privacy-custom-list{
    max-height:58dvh;
  }
  .kitcherette-privacy-migration-modal #kitcherette-privacy-modal-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
}


/* v240 — Explicit Terms decision when existing user presses Continue */
.kitcherette-privacy-migration-modal .privacy-terms-decision{
  margin-top:12px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
}
.kitcherette-privacy-migration-modal .privacy-terms-decision strong{
  display:block;
  margin-bottom:4px;
}
.kitcherette-privacy-migration-modal .privacy-terms-decision p{
  margin:0 0 10px;
  color:var(--text-secondary);
  line-height:1.45;
}
.kitcherette-privacy-migration-modal .privacy-terms-decision-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.kitcherette-privacy-migration-modal .privacy-terms-attention{
  outline:2px solid var(--primary-color);
  outline-offset:3px;
  border-radius:12px;
}
@media(max-width:620px){
  .kitcherette-privacy-migration-modal .privacy-terms-decision-actions{
    display:grid;
    grid-template-columns:1fr;
  }
}


/* v240 — Appearance and sound share one Setup page */
.onboarding-appearance-sound{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.onboarding-combined-section{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.onboarding-combined-section h3{
  margin:0;
}
.onboarding-combined-section p{
  margin:0 0 4px;
  color:var(--text-secondary);
}
.onboarding-combined-section+.onboarding-combined-section{
  padding-top:16px;
  border-top:1px solid var(--border);
}


/* v240 — Explicit sharing choice and compact review control on Terms */
.privacy-setup-selection-button{
  width:100%;
  display:grid;
  grid-template-columns:1fr auto;
  gap:3px 12px;
  align-items:center;
  padding:13px 14px;
  margin:0 0 14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.privacy-setup-selection-button>span{
  font-size:.82rem;
  color:var(--text-secondary);
}
.privacy-setup-selection-button>strong{
  grid-row:1 / span 2;
  grid-column:2;
  text-align:right;
}
.privacy-setup-selection-button>small{
  font-size:.78rem;
  color:var(--text-secondary);
}
@media(max-width:620px){
  .privacy-setup-selection-button{
    grid-template-columns:1fr;
  }
  .privacy-setup-selection-button>strong{
    grid-row:auto;
    grid-column:auto;
    text-align:left;
  }
}


/* v240 — Privacy & Data settings screen layout repair (visual only).
   Privacy/consent state, confirmation, deletion and network behavior are unchanged. */
.privacy-settings-overlay{
  display:block;
  width:100%;
  height:100dvh;
  max-height:100dvh;
  overflow:hidden;
  overscroll-behavior:contain;
  background:var(--bg);
  color:var(--text-primary);
}
.privacy-settings-overlay.hidden{
  display:none!important;
}
.privacy-settings-page{
  width:min(900px,100%);
  height:100%;
  min-height:0;
  margin:0 auto;
  padding:0 14px max(24px,env(safe-area-inset-bottom));
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.privacy-settings-header{
  flex:0 0 auto;
  position:relative;
  top:auto;
  z-index:2;
  min-height:68px;
  padding:max(12px,env(safe-area-inset-top)) 0 12px;
  background:var(--bg);
  border-bottom:1px solid var(--border);
  backdrop-filter:none;
}
.privacy-settings-header>div{
  min-width:0;
}
.privacy-settings-header h2{
  overflow-wrap:anywhere;
}
#privacy-settings-content{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:14px 0 28px;
}
#privacy-settings-content>.settings-section-card{
  flex:0 0 auto;
  min-width:0;
  margin:0;
}
.privacy-settings-consents{
  gap:0;
}
.privacy-settings-toggle{
  width:100%;
  min-width:0;
}
.privacy-settings-toggle>span,
.privacy-settings-toggle strong,
.privacy-settings-toggle small{
  min-width:0;
  overflow-wrap:anywhere;
}
.privacy-settings-convenience{
  margin:12px 0 8px;
}
.privacy-settings-convenience>.secondary-button{
  flex:1 1 180px;
}
.privacy-profile-editor .privacy-profile-grid{
  width:100%;
  min-width:0;
}
.privacy-profile-editor select,
.privacy-profile-editor input{
  max-width:100%;
}
#privacy-settings-content .settings-list-item{
  min-width:0;
}
#privacy-settings-content .settings-list-item>span:nth-child(2){
  min-width:0;
  overflow-wrap:anywhere;
}
body.dark-mode .privacy-settings-overlay,
body.dark-mode .privacy-settings-header{
  background:var(--bg);
}

@media(max-width:620px){
  .privacy-settings-page{
    padding-left:10px;
    padding-right:10px;
  }
  .privacy-settings-header{
    gap:10px;
    min-height:62px;
  }
  .privacy-settings-header .secondary-button{
    padding:9px 10px;
  }
  #privacy-settings-content{
    gap:10px;
    padding-top:10px;
  }
  #privacy-settings-content>.settings-section-card{
    padding:13px;
    border-radius:12px;
  }
  .privacy-settings-toggle{
    gap:10px;
    padding:11px 0;
  }
  .privacy-settings-toggle input{
    width:22px;
    height:22px;
  }
  .privacy-settings-convenience{
    flex-direction:column;
  }
  .privacy-settings-convenience>.secondary-button{
    width:100%;
    flex:0 0 auto;
  }
  #privacy-settings-content .settings-list-item{
    grid-template-columns:34px minmax(0,1fr) auto;
    gap:9px;
    padding:12px;
  }
  #privacy-settings-content .settings-list-icon{
    width:32px;
    height:32px;
  }
  #privacy-settings-content .settings-chevron{
    padding-left:2px;
  }
}


/* v240 — Privacy & Data top safe-area repair (visual only).
   Prevents the full-screen privacy header from sitting under Android/PWA
   status bars, display cutouts, or browser chrome. Privacy logic unchanged. */
.privacy-settings-overlay{
  padding-top:env(safe-area-inset-top,0px);
}
.privacy-settings-page{
  height:calc(100dvh - env(safe-area-inset-top,0px));
  max-height:calc(100dvh - env(safe-area-inset-top,0px));
}
.privacy-settings-header{
  padding-top:max(16px,env(safe-area-inset-top,0px));
  min-height:76px;
  box-sizing:border-box;
}
@supports(padding-top:constant(safe-area-inset-top)){
  .privacy-settings-overlay{
    padding-top:constant(safe-area-inset-top);
  }
  .privacy-settings-page{
    height:calc(100dvh - constant(safe-area-inset-top));
    max-height:calc(100dvh - constant(safe-area-inset-top));
  }
}
@media(max-width:620px){
  .privacy-settings-header{
    padding-top:max(18px,env(safe-area-inset-top,0px));
    min-height:72px;
  }
}


/* v240 — Privacy & Data header visibility + compact sharing-choice control.
   Visual/layout only; consent remains explicit and unchanged until save + confirm. */
.privacy-settings-overlay{
  z-index:260!important;
  padding-top:0!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
}
.privacy-settings-page{
  height:100dvh!important;
  max-height:100dvh!important;
  padding-top:0!important;
}
.privacy-settings-header{
  position:relative!important;
  flex:0 0 auto;
  z-index:1;
  padding:calc(18px + env(safe-area-inset-top,0px)) 0 14px!important;
  min-height:calc(76px + env(safe-area-inset-top,0px))!important;
  background:var(--bg)!important;
}
.privacy-settings-sharing-button{
  margin:10px 0 8px;
}
.privacy-settings-choice-list{
  max-height:min(58dvh,560px);
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding-right:4px;
}
.privacy-settings-choice-list .privacy-custom-group+.privacy-custom-group{
  margin-top:16px;
}
.privacy-settings-choice-list .privacy-custom-group h4{
  margin:0 0 6px;
}
@media(max-width:620px){
  .privacy-settings-header{
    padding-top:calc(20px + env(safe-area-inset-top,0px))!important;
    min-height:calc(74px + env(safe-area-inset-top,0px))!important;
  }
  .privacy-settings-choice-list{
    max-height:54dvh;
  }
}


/* v240 — concise human-readable changelog */
.settings-version-button{
  width:100%;
  text-align:left;
  color:inherit;
  font:inherit;
  cursor:pointer;
}
.kitcherette-changelog-modal{
  z-index:310!important;
}
.kitcherette-changelog-panel{
  width:min(620px,calc(100% - 20px));
  max-height:min(82dvh,760px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.kitcherette-changelog-panel .modal-header{
  flex:0 0 auto;
}
.kitcherette-changelog-list{
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding-right:4px;
}
.kitcherette-changelog-entry{
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--border);
}
.kitcherette-changelog-entry>strong{
  font-size:.82rem;
}
.kitcherette-changelog-entry ul{
  margin:0;
  padding-left:18px;
}
.kitcherette-changelog-entry li{
  margin:0 0 3px;
  line-height:1.35;
  color:var(--text-secondary);
}


/* v240 — recipe source selector */
#view-recipes .recipe-source-footer{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:max(12px,env(safe-area-inset-bottom));
  z-index:45;
  width:min(920px,calc(100% - 24px));
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px;
  border:1px solid var(--border);
  border-radius:14px;
  background:color-mix(in srgb,var(--surface) 96%,transparent);
  box-shadow:var(--shadow);
  backdrop-filter:blur(12px);
}
#view-recipes .recipe-source-footer .new-recipe-button{
  position:static!important;
  min-width:150px;
  min-height:42px;
  padding:10px 16px;
}
#view-recipes #menu-editor{
  padding-bottom:92px!important;
}
.external-recipe-card{
  width:100%;
  text-align:left;
  color:inherit;
  cursor:pointer;
  grid-template-columns:minmax(0,1fr) auto;
}
.external-recipe-card .manager-row-info{
  min-width:0;
}
.external-recipe-panel{
  max-width:620px;
}
.external-recipe-panel li{
  margin:5px 0;
}
.external-recipe-summary{
  font-size:1rem;
  line-height:1.5;
}
.external-recipe-meta{
  color:var(--text-secondary);
}
@media(max-width:700px){
  #view-recipes .recipe-source-footer{
    width:calc(100% - 14px);
    gap:6px;
    padding:6px;
  }
  #view-recipes .recipe-source-footer .new-recipe-button{
    min-width:auto;
    padding:9px 10px;
    font-size:.76rem;
  }
}


/* v240 — source tabs, top visibility, add-row and Pantry feasibility */
#view-recipes .recipe-source-footer{
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  padding:7px;
}
#view-recipes .recipe-new-row{
  display:flex;
  width:100%;
  padding:0 5px;
  box-sizing:border-box;
}
#view-recipes .recipe-new-row .new-recipe-button{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
#view-recipes.recipe-external-source .recipe-new-row{display:none;}
#view-recipes.recipe-external-source .recipe-topbar{
  position:relative!important;
  top:auto!important;
  z-index:auto!important;
  margin-top:0!important;
}
#view-recipes.recipe-external-source #menu-editor{
  padding-top:12px!important;
}
#view-recipes.recipe-external-source #editor-drink-list{
  padding-top:4px;
}
.external-recipe-card{align-items:center;}
.external-recipe-availability{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin-top:7px;
  padding:4px 8px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:800;
  line-height:1.2;
}
.external-recipe-availability.is-cookable{
  background:rgba(34,197,94,.12);
  border:1px solid rgba(34,197,94,.35);
}
.external-recipe-availability.is-missing{
  background:rgba(245,158,11,.12);
  border:1px solid rgba(245,158,11,.35);
}
.external-add-to-mine{
  width:100%;
  margin:14px 0 10px;
}
@media(max-width:700px){
  #view-recipes .recipe-source-footer{
    width:calc(100% - 16px);
    bottom:max(8px,env(safe-area-inset-bottom));
  }
  #view-recipes #menu-editor{padding-bottom:118px!important;}
  #view-recipes.recipe-external-source #menu-editor{padding-bottom:78px!important;}
  .external-recipe-card{grid-template-columns:minmax(0,1fr);}
}


/* v240 — uniform recipe card layout across My / Shared / Chef's select */
#view-recipes .external-recipe-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
  width:100%;
  text-align:left;
  color:inherit;
  cursor:default;
  /* Card surface/border are owned by .kitcherette-item-card in item-cards.css. */
  border-radius:12px;
  padding:14px;
  box-sizing:border-box;
}
#view-recipes .external-recipe-card .recipe-card-open-area{
  min-width:0;
}
#view-recipes .external-recipe-card .recipe-card-open-area>strong{
  display:block;
  margin-bottom:4px;
}
#view-recipes .external-recipe-card .recipe-card-open-area>small{
  display:block;
  color:var(--text-secondary);
  line-height:1.4;
}
#view-recipes .external-recipe-card .external-recipe-availability{
  margin-top:8px;
}
#view-recipes .external-recipe-card .recipe-action-icon{
  width:40px;
  min-width:40px;
  height:40px;
}
#view-recipes .external-recipe-card:hover{
  border-color:var(--border);
}
@media(max-width:700px){
  #view-recipes .external-recipe-card{
    grid-template-columns:minmax(0,1fr);
  }
}


/* v240 — compact top-right recipe actions */
#view-recipes .recipe-card-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:88px;
}
#view-recipes .recipe-card-top-actions .recipe-action-icon{
  width:40px;
  min-width:40px;
  height:40px;
}
@media(max-width:700px){
  #view-recipes .recipe-card-top-actions{
    justify-content:flex-start;
    min-width:0;
  }
}


/* v240 — external recipe add/remove state */
#view-recipes .recipe-action-icon.is-added{
  font-weight:900;
}
.external-recipe-added-state{
  display:inline-flex;
  width:max-content;
  margin-top:6px;
  font-size:.72rem;
  font-weight:800;
  color:var(--text-secondary);
}
.recipe-source-inline-notice{
  margin:8px 8px 10px;
  padding:9px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface2);
  font-weight:800;
  font-size:.82rem;
}

/* v310 — v240 tab architecture with v309 light palette + fixed quick navigation. */
body:not(.dark-mode){
  --bg:#f6f4ee;
  --surface:#fffefa;
  --surface2:#e6eee3;
  --text-primary:#24362e;
  --text-secondary:#5c6a61;
  --primary-color:#245d48;
  --accent:#245d48;
  --border:#d9dfd5;
  --shadow:0 8px 28px rgba(36,54,46,.08);
  background:var(--bg);
}
body:not(.dark-mode) .topbar{background:rgba(255,254,250,.95);border-bottom-color:var(--border)}
body:not(.dark-mode) #side-menu{background:var(--surface)}
body:not(.dark-mode) .menu-item.active{background:var(--surface2);color:var(--text-primary)}
body:not(.dark-mode) .primary-button{background:#245d48}
body:not(.dark-mode) .secondary-button,
body:not(.dark-mode) input,
body:not(.dark-mode) select,
body:not(.dark-mode) textarea{border-color:var(--border)}

:root{--app-bottom-nav-height:70px;--app-context-nav-height:50px}

#app-primary-nav{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
  width:100%;height:var(--app-bottom-nav-height);
  padding:6px max(8px,calc((100vw - 800px)/2));
  background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -4px 22px rgba(0,0,0,.05)
}
#app-primary-nav button{
  min-width:0;min-height:52px;padding:2px 1px;border:0;border-radius:10px;background:transparent;
  color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  font-size:9.5px;line-height:1.05;font-weight:650;overflow:hidden
}
#app-primary-nav button .app-nav-icon{font-size:20px;line-height:1.2}
#app-primary-nav button .app-nav-label{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app-primary-nav button[aria-current="page"]{background:var(--surface2);color:var(--text-primary);font-weight:800}

#app-context-nav{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;height:var(--app-context-nav-height);max-width:800px;margin:0 auto;
  padding:6px 10px;background:color-mix(in srgb,var(--surface) 96%,transparent);border-top:1px solid var(--border);
  box-shadow:0 -3px 14px rgba(0,0,0,.025);backdrop-filter:blur(12px)
}
#app-context-nav[hidden]{display:none!important}
#app-context-nav button{min-width:0;padding:5px 7px;border:0;border-radius:10px;background:transparent;color:var(--text-secondary);font-size:.74rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app-context-nav button[aria-current="page"]{background:var(--surface2);color:var(--text-primary);font-weight:800}

body.dark-mode #app-primary-nav,
body.dark-mode #app-context-nav{background:var(--surface);border-color:var(--border)}
body.dark-mode #app-primary-nav button,
body.dark-mode #app-context-nav button{color:var(--text-secondary)}
body.dark-mode #app-primary-nav button[aria-current="page"],
body.dark-mode #app-context-nav button[aria-current="page"]{background:var(--surface2);color:var(--text-primary)}

body.kitcherette-setup-active #app-bottom-chrome{display:none!important}
@media print{#app-bottom-chrome{display:none!important}main{padding-bottom:0!important}}
@media(max-width:390px){#app-primary-nav button{font-size:8.5px}#app-primary-nav button .app-nav-icon{font-size:19px}#app-context-nav{padding-inline:7px;gap:2px}#app-context-nav button{font-size:.68rem;padding-inline:4px}}

/* v312 — calm, coordinated bottom-navigation retreat while the left drawer is open. */
#app-primary-nav,
#app-context-nav{
  transform:none;
}
#app-primary-nav .app-menu-nav-icon{width:22px;height:22px;display:grid;place-items:center}
#app-primary-nav .app-menu-nav-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-reduced-motion: reduce){
  #app-primary-nav,
#app-context-nav{
    transition:none!important;
  }
}
nn/* v314 — recipe editor uses the contextual bottom sub-bar for wizard sections. */
#app-context-nav{grid-template-columns:repeat(var(--context-subnav-count,3),minmax(0,1fr));}
#view-recipes.recipe-editing .recipe-wizard-nav{display:none!important;}
body.recipe-editor-context-subnav #app-context-nav button{
  font-size:clamp(.58rem,2.1vw,.72rem);padding-inline:3px;line-height:1.05;white-space:normal;text-wrap:balance;
}
body.recipe-editor-context-subnav #app-context-nav{gap:2px;padding-inline:5px;}
@media(max-width:390px){body.recipe-editor-context-subnav #app-context-nav button{font-size:.56rem;}}
n/* v314 — the contextual sub-bar is the recipe editor section navigator. */
#view-recipes.recipe-editing .recipe-editor-bottom-nav{display:none!important;}
#view-recipes.recipe-editing .recipe-editor-savebar{
  bottom:calc(var(--app-bottom-chrome-height) + 8px)!important;
  z-index:118!important;
}
#view-recipes.recipe-editing #drink-form{
  padding-bottom:calc(var(--app-bottom-chrome-height) + 74px)!important;
}

/* v314 — compact, single-line recipe editor section navigation + stable arrow slots. */
body.recipe-editor-context-subnav #app-context-nav{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:1fr;
  grid-template-columns:repeat(var(--context-subnav-count,5),minmax(0,1fr));
  align-items:center;
  gap:4px;
  padding:5px 8px;
  overflow:hidden;
}
body.recipe-editor-context-subnav #app-context-nav .app-editor-step{
  min-width:0;
  height:38px;
  padding:0;
  display:grid;
  place-items:center;
  border-radius:11px;
  white-space:nowrap;
  overflow:visible;
}
body.recipe-editor-context-subnav #app-context-nav .app-editor-step-icon{
  width:21px;
  height:21px;
  display:grid;
  place-items:center;
}
body.recipe-editor-context-subnav #app-context-nav .app-editor-step-icon svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#view-recipes.recipe-editing .recipe-editor-savebar{
  display:grid!important;
  grid-template-columns:minmax(54px,1fr) 42px minmax(50px,.8fr) 42px minmax(86px,1.35fr);
  gap:6px;
  align-items:center;
}
#view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-arrow-slot{
  width:42px;
  min-width:42px;
  height:40px;
  display:grid;
  place-items:center;
}
#view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-arrow-button{
  width:40px;
  min-width:40px;
  height:40px;
  padding:0;
  border-radius:12px;
  font-size:1.25rem;
  line-height:1;
  display:grid;
  place-items:center;
}
#view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-arrow-button.hidden{
  display:none!important;
}
#view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-exit-control,
#view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-save-control,
#view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-save-exit-control{
  min-width:0;
  width:100%;
  padding-inline:8px;
  white-space:nowrap;
}
@media(max-width:390px){
  #view-recipes.recipe-editing .recipe-editor-savebar{
    grid-template-columns:minmax(48px,1fr) 38px minmax(46px,.75fr) 38px minmax(78px,1.25fr);
    gap:4px;
  }
  #view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-arrow-slot{width:38px;min-width:38px}
  #view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-arrow-button{width:36px;min-width:36px;height:38px}
  #view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-exit-control,
#view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-save-control,
#view-recipes.recipe-editing .recipe-editor-savebar .recipe-editor-save-exit-control{font-size:.72rem;padding-inline:5px}
}


/* v315 — recipe action hierarchy and edge arrows. */
#view-recipes .v315-new-recipe-action{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
  bottom:calc(var(--app-bottom-chrome-height) + 8px)!important;
  z-index:118!important;
  width:min(800px,calc(100% - 20px))!important;
  display:block!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
#view-recipes .v315-new-recipe-action .recipe-new-row{padding:0!important;display:flex!important;justify-content:flex-end!important;}
#view-recipes .v315-new-recipe-action .new-recipe-button{width:auto!important;min-width:142px!important;min-height:42px!important;}
#view-recipes.recipe-external-source .v315-new-recipe-action{display:none!important;}
#view-recipes.recipe-editing .v315-new-recipe-action{display:none!important;}
#view-recipes:not(.recipe-editing):not(.recipe-external-source) #menu-editor{
  /* v389: the shared shell already reserves primary + context + third-bar chrome. */
  padding-bottom:0!important;
}

#view-recipes.recipe-editing .recipe-editor-savebar{
  grid-template-columns:42px minmax(54px,.9fr) minmax(50px,.8fr) minmax(86px,1.35fr) 42px!important;
}
#view-recipes.recipe-editing .recipe-editor-arrow-slot-prev{grid-column:1;}
#view-recipes.recipe-editing .recipe-editor-exit-control{grid-column:2;}
#view-recipes.recipe-editing .recipe-editor-save-control{grid-column:3;}
#view-recipes.recipe-editing .recipe-editor-save-exit-control{grid-column:4;}
#view-recipes.recipe-editing .recipe-editor-arrow-slot-next{grid-column:5;}
@media(max-width:390px){
  #view-recipes.recipe-editing .recipe-editor-savebar{
    grid-template-columns:38px minmax(48px,.9fr) minmax(46px,.75fr) minmax(78px,1.25fr) 38px!important;
  }
  #view-recipes .v315-new-recipe-action{width:calc(100% - 14px)!important;}
  #view-recipes .v315-new-recipe-action .new-recipe-button{min-width:126px!important;font-size:.78rem!important;}
}
body.app-chrome-hidden #view-recipes .v315-new-recipe-action{
  transform:translate3d(-50%,calc(var(--app-bottom-chrome-height) + 24px),0)!important;
  opacity:.04;
  pointer-events:none;
}
#view-recipes .v315-new-recipe-action{
  transition:transform .46s cubic-bezier(.22,.72,.18,1),opacity .34s ease;
}
@media(prefers-reduced-motion:reduce){#view-recipes .v315-new-recipe-action{transition:none!important;}}

/* Today/dashboard declutter — v316 */
.dashboard-attention-hero{padding:14px 16px 12px}
.dashboard-attention-head{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:54px}
.dashboard-attention-mascot{width:58px;height:62px}
.dashboard-attention-hero .dashboard-attention-list{margin-top:2px}
.dashboard-compact-section{padding:13px 16px;gap:2px}
.dashboard-compact-section .dashboard-section-main{font-size:.98rem}
.dashboard-pantry-warning{margin-top:3px;font-size:.84rem;line-height:1.35;font-weight:720;color:#a15c0b}
.dashboard-menu-suggestion{margin-top:-4px;padding:14px 16px}
.dashboard-menu-suggestion h3{margin:0 0 4px;font-size:1.04rem}
.dashboard-menu-suggestion p{font-size:.86rem;line-height:1.4}
.dashboard-menu-suggestion .dashboard-smart-actions{margin-top:10px}
.dark-mode .dashboard-pantry-warning{color:#f2b45f}
@media(max-width:560px){
  .dashboard-attention-hero{padding:12px 14px 10px}
  .dashboard-attention-mascot{width:52px;height:56px}
  .dashboard-compact-section{padding:12px 14px}
  .dashboard-menu-suggestion{padding:13px 14px}
}


/* v317 — category atmosphere: graphical restyle only; existing recipe tabs/renderers stay in charge. */
#view-recipes{
  --recipe-category-image:url("../assets/category-backgrounds/all.webp");
  position:relative;
  background-image:linear-gradient(180deg,rgba(249,247,241,.78),rgba(246,243,235,.9)),var(--recipe-category-image);
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:local;
}
#view-recipes[data-recipe-background="breakfast"]{--recipe-category-image:url("../assets/category-backgrounds/breakfast.webp")}
#view-recipes[data-recipe-background="lunch"]{--recipe-category-image:url("../assets/category-backgrounds/lunch.webp")}
#view-recipes[data-recipe-background="dinner"]{--recipe-category-image:url("../assets/category-backgrounds/dinner.webp")}
#view-recipes[data-recipe-background="soups"]{--recipe-category-image:url("../assets/category-backgrounds/soups.webp")}
#view-recipes[data-recipe-background="salads"]{--recipe-category-image:url("../assets/category-backgrounds/salads.webp")}
#view-recipes[data-recipe-background="sides"]{--recipe-category-image:url("../assets/category-backgrounds/sides.webp")}
#view-recipes[data-recipe-background="baking"]{--recipe-category-image:url("../assets/category-backgrounds/baking.webp")}
#view-recipes[data-recipe-background="desserts"]{--recipe-category-image:url("../assets/category-backgrounds/desserts.webp")}
#view-recipes[data-recipe-background="snacks"]{--recipe-category-image:url("../assets/category-backgrounds/snacks.webp")}
#view-recipes[data-recipe-background="drinks"]{--recipe-category-image:url("../assets/category-backgrounds/drinks.webp")}
#view-recipes[data-recipe-background="other"]{--recipe-category-image:url("../assets/category-backgrounds/other.webp")}
#view-recipes:not(.recipe-editing) .recipe-topbar,
#view-recipes:not(.recipe-editing) .recipe-manager-row:not(.kitcherette-item-card),
#view-recipes:not(.recipe-editing) .recipe-empty-state,
#view-recipes:not(.recipe-editing) .empty-state{
  background:rgba(255,253,248,.86)!important;
  backdrop-filter:blur(16px) saturate(.9);
  -webkit-backdrop-filter:blur(16px) saturate(.9);
}
#view-recipes:not(.recipe-editing) .recipe-manager-row:not(.kitcherette-item-card){box-shadow:0 8px 26px rgba(41,55,46,.08)!important}
#view-recipes:not(.recipe-editing) .content-category-heading{
  width:max-content;
  max-width:100%;
  padding:5px 10px;
  border-radius:12px;
  background:rgba(250,248,242,.72);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.dark-mode #view-recipes{
  background-image:linear-gradient(180deg,rgba(18,24,21,.78),rgba(18,24,21,.92)),var(--recipe-category-image);
}
.dark-mode #view-recipes:not(.recipe-editing) .recipe-topbar,
.dark-mode #view-recipes:not(.recipe-editing) .recipe-manager-row:not(.kitcherette-item-card),
.dark-mode #view-recipes:not(.recipe-editing) .recipe-empty-state,
.dark-mode #view-recipes:not(.recipe-editing) .empty-state,
.dark-mode #view-recipes:not(.recipe-editing) .content-category-heading{
  background:rgba(29,37,33,.86)!important;
}
.category-lock-card,
.category-unknown-card,
.category-display-options{
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  padding:14px;
}
.category-lock-card{display:flex;gap:12px;align-items:flex-start}
.category-lock-card p,
.category-unknown-card p{margin:4px 0 0;color:var(--text-secondary);font-size:.88rem;line-height:1.4}
.category-lock-icon{font-size:1.2rem}
.locked-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.locked-category-chip{display:grid;grid-template-columns:12px 1fr auto;gap:8px;align-items:center;min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}
.locked-category-dot{width:10px;height:10px;border-radius:50%;background:var(--accent)}
.locked-category-lock{font-size:.78rem;opacity:.6}
.category-display-options{display:grid;gap:8px}
.category-display-options legend{padding:0 4px;font-weight:760}
.category-display-option{display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:12px;background:var(--surface2);cursor:pointer}
.category-display-option input{margin-top:3px;accent-color:var(--accent)}
.category-display-option span{display:grid;gap:2px}
.category-display-option small{color:var(--text-secondary);line-height:1.35}
.category-unknown-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.category-unknown-list span{padding:5px 8px;border-radius:999px;background:var(--surface2);font-size:.78rem}
#recipe-category-manager-subtab .category-subtab-header{grid-template-columns:auto 1fr!important}

/* v318 — full-screen category atmosphere with transparent header. */
/* The category photograph now belongs to the viewport, not the recipe content box. */
#view-recipes{
  background:none!important;
  isolation:isolate;
}
#view-recipes.active::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:
    linear-gradient(180deg,rgba(246,244,237,.20) 0%,rgba(246,244,237,.10) 34%,rgba(246,244,237,.18) 72%,rgba(246,244,237,.24) 100%),
    var(--recipe-category-image);
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
#view-recipes.active > *{
  position:relative;
  z-index:1;
}

/* The global top header is deliberately clear so the active photograph can continue behind it. */
.topbar,
body:not(.dark-mode) .topbar,
body.dark-mode .topbar{
  background:transparent!important;
  border-bottom-color:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.topbar-title h1,
.topbar-title small{
  text-shadow:0 1px 9px rgba(255,255,255,.72);
}
body.dark-mode .topbar-title h1,
body.dark-mode .topbar-title small{
  text-shadow:0 1px 9px rgba(0,0,0,.7);
}

/* Large recipe-page bands are clear. Individual controls/cards remain lightly frosted for readability. */
#view-recipes:not(.recipe-editing) .recipe-topbar{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
#view-recipes:not(.recipe-editing) .recipe-manager-row:not(.kitcherette-item-card),
#view-recipes:not(.recipe-editing) .recipe-empty-state,
#view-recipes:not(.recipe-editing) .empty-state{
  background:rgba(255,253,248,.72)!important;
  backdrop-filter:blur(6px) saturate(.96)!important;
  -webkit-backdrop-filter:blur(6px) saturate(.96)!important;
  border-color:rgba(217,218,210,.72)!important;
  box-shadow:0 8px 24px rgba(24,35,29,.09)!important;
}
#view-recipes:not(.recipe-editing) .content-category-heading{
  background:rgba(255,253,248,.50)!important;
  backdrop-filter:blur(4px)!important;
  -webkit-backdrop-filter:blur(4px)!important;
  text-shadow:0 1px 8px rgba(255,255,255,.75);
}
#view-recipes:not(.recipe-editing) input:not([type="checkbox"]),
#view-recipes:not(.recipe-editing) select,
#view-recipes:not(.recipe-editing) .compact-category-pill,
#view-recipes:not(.recipe-editing) .compact-filter-toggle{
  background-color:rgba(255,253,248,.78)!important;
  backdrop-filter:blur(5px)!important;
  -webkit-backdrop-filter:blur(5px)!important;
}

/* Dark mode keeps the same full-screen photo but uses a restrained readability wash. */
.dark-mode #view-recipes.active::before{
  background-image:
    linear-gradient(180deg,rgba(10,16,13,.34) 0%,rgba(10,16,13,.22) 36%,rgba(10,16,13,.34) 100%),
    var(--recipe-category-image);
}
.dark-mode #view-recipes:not(.recipe-editing) .recipe-topbar{
  background:transparent!important;
}
.dark-mode #view-recipes:not(.recipe-editing) .recipe-manager-row:not(.kitcherette-item-card),
.dark-mode #view-recipes:not(.recipe-editing) .recipe-empty-state,
.dark-mode #view-recipes:not(.recipe-editing) .empty-state{
  background:rgba(24,31,27,.72)!important;
  border-color:rgba(74,84,78,.66)!important;
  backdrop-filter:blur(6px) saturate(.92)!important;
  -webkit-backdrop-filter:blur(6px) saturate(.92)!important;
}
.dark-mode #view-recipes:not(.recipe-editing) .content-category-heading{
  background:rgba(24,31,27,.52)!important;
  text-shadow:0 1px 8px rgba(0,0,0,.72);
}
.dark-mode #view-recipes:not(.recipe-editing) input:not([type="checkbox"]),
.dark-mode #view-recipes:not(.recipe-editing) select,
.dark-mode #view-recipes:not(.recipe-editing) .compact-category-pill,
.dark-mode #view-recipes:not(.recipe-editing) .compact-filter-toggle{
  background-color:rgba(29,37,33,.80)!important;
}

/* Bottom quick navigation and contextual subnavigation are the only full-width solid bars. */
#app-primary-nav,
#app-context-nav,
body.dark-mode #app-primary-nav,
body.dark-mode #app-context-nav{
  background:var(--surface)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* ==========================================================================\n   v381 — viewport shells remain transparent; background rendering is owned by
   css/background-system.css + the single #kitcherette-background-root.
   ========================================================================== */
body{
  position:relative!important;
  isolation:isolate;
  background:transparent!important;
  background-color:transparent!important;
}

/* Retire the older Recipes-only fixed backdrop so every tab uses exactly one layer. */
#view-recipes.active::before{
  content:none!important;
  display:none!important;
}
#view-recipes.active > *{
  position:relative;
  z-index:auto;
}

/* No tab or broad content wrapper is allowed to paint an opaque page-sized sheet. */
html body main,
html body .app-view,
html body .dashboard-view,
html body .dashboard-shell,
html body .content,
html body .content-wrap,
html body .view-content,
html body .page-content,
html body [id^="view-"]{
  background:transparent!important;
  background-color:transparent!important;
}

/* This was the square/near-white slab visible around Recipe search/categories. */
html body .compact-category-header,
html body .has-compact-category-header > .compact-category-header,
html body .uniform-list-header,
body.dark-mode .compact-category-header,
body.dark-mode .has-compact-category-header > .compact-category-header,
body.dark-mode .uniform-list-header{
  background:transparent!important;
  background-color:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* Header rows and filter expansion themselves stay transparent; only controls float. */
html body .compact-category-topline,
html body .compact-category-pill-scroller,
html body .compact-category-tabs,
html body .compact-filter-row,
html body .persistent-name-filter,
body.dark-mode .compact-category-topline,
body.dark-mode .compact-category-pill-scroller,
body.dark-mode .compact-category-tabs,
body.dark-mode .compact-filter-row,
body.dark-mode .persistent-name-filter{
  background:transparent!important;
  background-color:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}

/* Recipe empty state was good visually; make it a little more transparent now that the\n   photograph is guaranteed to be present behind it. */
#view-recipes:not(.recipe-editing) .recipe-empty-state,
#view-recipes:not(.recipe-editing) .empty-state{
  background:rgba(250,248,241,.61)!important;
  border-color:rgba(255,255,255,.46)!important;
  backdrop-filter:blur(7px) saturate(.92)!important;
  -webkit-backdrop-filter:blur(7px) saturate(.92)!important;
}

/* Dashboard should feel like Recipes: photograph first, calm glass islands second. */
.dashboard-block,
.dashboard-section,
.dashboard-suggestion,
.dashboard-quick,
.dashboard-tutorial-invite{
  background:rgba(250,248,241,.54)!important;
  border-color:rgba(255,255,255,.42)!important;
  box-shadow:0 8px 24px rgba(48,53,46,.07)!important;
  backdrop-filter:blur(7px) saturate(.91)!important;
  -webkit-backdrop-filter:blur(7px) saturate(.91)!important;
}
.dashboard-attention-hero{
  background:rgba(252,250,245,.67)!important;
}
.dashboard-menu-suggestion{
  background:rgba(247,247,239,.57)!important;
}

/* Light mode stays soft rather than white. */
body:not(.dark-mode){
  --kitcherette-passive:rgba(249,247,239,.30);
  --kitcherette-secondary:rgba(250,248,241,.44);
  --kitcherette-working:rgba(251,249,243,.58);
  --kitcherette-focus:rgba(252,250,245,.74);
  --kitcherette-focus-strong:rgba(252,250,245,.86);
}

/* Dark mode: lifted warm charcoal glass, never a black sheet. */
body.dark-mode{
  background:transparent!important;
  --kitcherette-passive:rgba(53,59,53,.26);
  --kitcherette-secondary:rgba(55,62,56,.40);
  --kitcherette-working:rgba(58,65,59,.53);
  --kitcherette-focus:rgba(63,70,64,.68);
  --kitcherette-focus-strong:rgba(68,76,69,.80);
}
body.dark-mode .dashboard-block,
body.dark-mode .dashboard-section,
body.dark-mode .dashboard-suggestion,
body.dark-mode .dashboard-quick,
body.dark-mode .dashboard-tutorial-invite{
  background:rgba(55,62,56,.46)!important;
  border-color:rgba(238,235,221,.10)!important;
  box-shadow:0 9px 26px rgba(8,11,9,.13)!important;
}
body.dark-mode .dashboard-attention-hero{
  background:rgba(61,68,62,.61)!important;
}
body.dark-mode #view-recipes:not(.recipe-editing) .recipe-empty-state,
body.dark-mode #view-recipes:not(.recipe-editing) .empty-state{
  background:rgba(55,62,56,.56)!important;
  border-color:rgba(238,235,221,.11)!important;
}

/* Preserve the requested strong visual anchor at the bottom. */
#app-primary-nav,
#app-context-nav{
  background:rgba(247,245,239,.97)!important;
  background-color:rgba(247,245,239,.97)!important;
}
body.dark-mode #app-primary-nav,
body.dark-mode #app-context-nav{
  background:rgba(49,55,50,.96)!important;
  background-color:rgba(49,55,50,.96)!important;
}

/* ================================================================
   v327 — soft scroll-under fades
   Content should dissolve gently before passing beneath sticky UI.
   ================================================================ */
:root{
  --scroll-under-fade-height:44px;
  --scroll-under-fade-light:rgba(246,242,232,.54);
  --scroll-under-fade-mid:rgba(246,242,232,.22);
  --scroll-under-fade-dark:rgba(42,48,43,.50);
  --scroll-under-fade-dark-mid:rgba(42,48,43,.20);
}

/* Give sticky controls their own stable painting layer without making
   their visible surface opaque. */
.topbar,
#view-recipes:not(.recipe-editing) .recipe-topbar,
#view-generic-ingredients .generic-ingredients-category-sticky,
#view-service .service-toolbar,
#view-stock-orders .shopping-page-toolbar{
  isolation:isolate;
  overflow:visible;
}

/* A long, low-contrast fade hangs below sticky top UI. The content keeps
   moving normally underneath it; only its visual prominence tapers away. */
.topbar::after,
#view-recipes:not(.recipe-editing) .recipe-topbar::after,
#view-generic-ingredients .generic-ingredients-category-sticky::after,
#view-service .service-toolbar::after,
#view-stock-orders .shopping-page-toolbar::after{
  content:"";
  position:absolute;
  left:-18px;
  right:-18px;
  top:calc(100% - 1px);
  height:var(--scroll-under-fade-height);
  pointer-events:none;
  z-index:-1;
  background:linear-gradient(
    to bottom,
    var(--scroll-under-fade-light) 0%,
    var(--scroll-under-fade-mid) 38%,
    rgba(246,242,232,.07) 68%,
    rgba(246,242,232,0) 100%
  );
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.78) 42%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.78) 42%,transparent 100%);
}

/* The global header gets a broader, even softer falloff because page
   content can travel a larger distance behind it. */
.topbar::after{
  height:54px;
  left:0;
  right:0;
  background:linear-gradient(
    to bottom,
    rgba(246,242,232,.42) 0%,
    rgba(246,242,232,.16) 44%,
    rgba(246,242,232,.045) 72%,
    rgba(246,242,232,0) 100%
  );
}

body.dark-mode .topbar::after,
body.dark-mode #view-recipes:not(.recipe-editing) .recipe-topbar::after,
body.dark-mode #view-generic-ingredients .generic-ingredients-category-sticky::after,
body.dark-mode #view-service .service-toolbar::after,
body.dark-mode #view-stock-orders .shopping-page-toolbar::after{
  background:linear-gradient(
    to bottom,
    var(--scroll-under-fade-dark) 0%,
    var(--scroll-under-fade-dark-mid) 38%,
    rgba(42,48,43,.06) 70%,
    rgba(42,48,43,0) 100%
  );
}

/* Bottom fixed navigation gets the inverse treatment so content arriving
   at the bottom also disappears gradually rather than meeting a hard wall. */
#app-context-nav::before,
#app-primary-nav::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:calc(100% - 1px);
  height:34px;
  pointer-events:none;
  background:linear-gradient(
    to top,
    rgba(246,242,232,.46) 0%,
    rgba(246,242,232,.16) 46%,
    rgba(246,242,232,0) 100%
  );
}
body.dark-mode #app-context-nav::before,
body.dark-mode #app-primary-nav::before{
  background:linear-gradient(
    to top,
    rgba(42,48,43,.44) 0%,
    rgba(42,48,43,.15) 48%,
    rgba(42,48,43,0) 100%
  );
}

/* Avoid motion-based fades: the visual transition is spatial, not animated.
   This remains comfortable for reduced-motion users by design. */
@media (prefers-reduced-motion:reduce){
  .topbar::after,
#view-recipes:not(.recipe-editing) .recipe-topbar::after,
#view-generic-ingredients .generic-ingredients-category-sticky::after,
#view-service .service-toolbar::after,
#view-stock-orders .shopping-page-toolbar::after,
#app-context-nav::before,
#app-primary-nav::before{transition:none!important;animation:none!important}
}

/* ================================================================
   v331 — Recipes empty library as a calm bottom sheet
   ================================================================ */
#view-recipes:not(.recipe-editing) .recipe-empty-state{
  position:fixed!important;
  z-index:112!important;
  left:max(14px,env(safe-area-inset-left))!important;
  right:max(14px,env(safe-area-inset-right))!important;
  bottom:calc(var(--app-page-bottom) + env(safe-area-inset-bottom))!important;
  margin:0 auto!important;
  width:auto!important;
  max-width:920px!important;
  min-height:0!important;
  display:block!important;
  padding:22px 18px 18px!important;
  border-radius:22px 22px 0 0!important;
  border-style:solid!important;
  border-width:1px 1px 0!important;
  box-shadow:0 -12px 34px rgba(43,50,44,.10)!important;
  overflow:hidden!important;
}

#view-recipes:not(.recipe-editing) .recipe-empty-icon{
  display:none!important;
}

#view-recipes:not(.recipe-editing) .recipe-empty-copy{
  display:block!important;
  width:100%!important;
  min-width:0!important;
}

#view-recipes:not(.recipe-editing) .recipe-empty-copy .eyebrow{
  display:block!important;
  margin:0 0 3px!important;
}

#view-recipes:not(.recipe-editing) .recipe-empty-copy h3{
  margin:0 0 9px!important;
  font-size:clamp(1.2rem,4.8vw,1.45rem)!important;
  line-height:1.12!important;
}

#view-recipes:not(.recipe-editing) .recipe-empty-copy p{
  margin:0!important;
  max-width:760px!important;
  line-height:1.45!important;
}

#view-recipes:not(.recipe-editing) .recipe-empty-actions{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:12px!important;
  width:100%!important;
  margin:18px 0 0!important;
  align-items:stretch!important;
}

#view-recipes:not(.recipe-editing) .recipe-empty-actions button{
  width:100%!important;
  min-width:0!important;
  min-height:48px!important;
  margin:0!important;
  padding:11px 12px!important;
  white-space:normal!important;
  line-height:1.2!important;
}

/* The sheet itself defines the lower visual edge, so don't let the old
   mobile rule stack its actions vertically. */
@media(max-width:700px){
  #view-recipes:not(.recipe-editing) .recipe-empty-state{
    left:max(10px,env(safe-area-inset-left))!important;
    right:max(10px,env(safe-area-inset-right))!important;
    padding:20px 14px 14px!important;
  }
  #view-recipes:not(.recipe-editing) .recipe-empty-actions{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:10px!important;
  }
  #view-recipes:not(.recipe-editing) .recipe-empty-actions button{
    width:100%!important;
    font-size:.88rem!important;
  }
}

/* ================================================================
   v331 — completely clear top header
   No tint, gradient, shadow, blur, or fade is painted by the top header.
   ================================================================ */
html body .topbar,
html body header.topbar,
body:not(.dark-mode) .topbar,
body.dark-mode .topbar{
  background:transparent!important;
  background-image:none!important;
  border-bottom-color:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
html body .topbar::before,
html body .topbar::after{
  content:none!important;
  display:none!important;
  background:none!important;
  box-shadow:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
}
html body .topbar-title h1,
html body .topbar-title small,
body.dark-mode .topbar-title h1,
body.dark-mode .topbar-title small{
  text-shadow:none!important;
}


/* v332 — photographic pantry-item thumbnails */
.pantry-row-main:not(.kitcherette-item-card-main){grid-template-columns:58px minmax(0,1fr)!important;align-items:center!important;column-gap:11px!important}
.pantry-row-copy{display:grid;gap:2px;min-width:0}
.pantry-photo{width:58px;height:58px;display:block;flex:0 0 58px;object-fit:cover;object-position:center;border-radius:12px;border:1px solid color-mix(in srgb,var(--border,#d9ded7) 72%,transparent);box-shadow:0 2px 8px rgba(25,34,27,.10);background:color-mix(in srgb,var(--panel,#fff) 74%,transparent)}
.pantry-photo-fallback{display:grid;place-items:center;font-size:1.25rem;color:var(--muted,#667085)}
.inventory-card-photo{width:62px;height:62px;align-self:center}
.stock-manager-row.inventory-card{grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center!important}
@media(max-width:620px){.pantry-photo{width:54px;height:54px;flex-basis:54px;border-radius:11px}.pantry-row-main:not(.kitcherette-item-card-main){grid-template-columns:54px minmax(0,1fr)!important;column-gap:9px!important}.inventory-card-photo{width:54px;height:54px}}


/* v333 — Pantry search/category controls match Recipes */
#view-current-stock .pantry-recipe-style-toolbar{
  display:grid!important;
  gap:8px!important;
  margin:0 0 12px!important;
  padding:0!important;
  background:transparent!important;
}
#view-current-stock .pantry-recipe-search{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#view-current-stock .pantry-recipe-search .compact-name-filter{
  width:100%!important;
  min-height:42px!important;
  padding-left:38px!important;
  padding-right:36px!important;
  border-radius:13px!important;
  box-sizing:border-box!important;
}
#view-current-stock .pantry-recipe-category-line{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  width:100%!important;
  height:32px!important;
  min-height:32px!important;
  margin:0!important;
  padding:1px 0!important;
  background:transparent!important;
}
#view-current-stock .pantry-recipe-category-line .compact-category-pill-scroller{
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  height:30px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  padding:0!important;
  scrollbar-width:none!important;
}
#view-current-stock .pantry-recipe-category-line .compact-category-pill-scroller::-webkit-scrollbar{display:none!important}
#view-current-stock #pantry-fast-category-tabs{
  display:flex!important;
  width:max-content!important;
  min-width:100%!important;
  height:30px!important;
  gap:6px!important;
  padding:0!important;
  margin:0!important;
}
#view-current-stock #pantry-fast-category-tabs .category-tab{
  flex:0 0 auto!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  padding:0 10px!important;
  margin:0!important;
  border-radius:8px!important;
  box-sizing:border-box!important;
}
#view-current-stock .pantry-filter-toggle{
  position:static!important;
  flex:0 0 30px!important;
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  border-radius:8px!important;
  transform:none!important;
}
#view-current-stock .pantry-advanced-panel{
  margin-top:0!important;
  background:var(--kitcherette-focus)!important;
}
#view-current-stock .pantry-status-filter-row{
  grid-column:1/-1;
  display:flex;
  gap:6px;
  overflow-x:auto;
  scrollbar-width:none;
}
#view-current-stock .pantry-status-filter-row::-webkit-scrollbar{display:none}
#view-current-stock .pantry-status-filter-row button{
  flex:0 0 auto;
  height:30px;
  border-radius:8px;
  padding:0 10px;
  border:1px solid var(--kitcherette-border,var(--border));
  background:var(--kitcherette-glass-strong,var(--panel));
  color:inherit;
  font:inherit;
  font-size:.8rem;
  font-weight:700;
}
#view-current-stock .pantry-status-filter-row button.active{
  border-color:var(--accent,#2563eb);
  color:var(--accent,#2563eb);
}
/* The old Pantry-only search/filter treatment must not compete with the recipe-matched one. */
#view-current-stock .pantry-search-row,
#view-current-stock .pantry-filter-strip{display:none!important}
/* Dashboard Attention no longer contains the mascot. */
#view-dashboard .dashboard-attention-mascot{display:none!important}


/* v334 — Pantry header cleanup + dedicated bottom action subheader */
#view-current-stock .pantry-fast-title-row{display:none!important;}
#view-current-stock>.inventory-toolbar{display:none!important;}
#view-current-stock .pantry-recipe-style-toolbar{margin-top:0!important;}











/* ================================================================
   v335 — Pantry add action as a glass bottom sheet behind navigation
   ================================================================ */



/* Keep the established bottom rows above the sheet. */
#app-context-nav{z-index:119!important;}
#app-primary-nav{z-index:120!important;}






/* ================================================================
   v336 — shared third bottom action sheet + visible action labels
   ================================================================ */




/* The old in-page New Recipe button is replaced by the bottom action sheet. */
#view-recipes:not(.recipe-editing) .recipe-source-footer.v316-new-recipe-action{display:none!important;}









nn/* ================================================================
   v339 — Recipes bottom action sheet + fluid sticky-header occlusion
   ================================================================ */
/* The moved controls no longer participate in the collapsing recipe-tools row. */
#view-recipes .recipe-topbar .recipe-tools:empty{display:none!important;}




















/* The legacy empty-state card and its buttons are deliberately retired. */
#view-recipes .recipe-empty-state,
#view-recipes .recipe-empty-actions,
#empty-recipes-tutorial,
#empty-recipes-new{display:none!important;}





/* Sticky recipe filters receive a long soft occlusion apron. Cards fade out before
   entering the sticky-control area instead of remaining legible behind it. */
#view-recipes:not(.recipe-editing) > .compact-category-header{
  isolation:isolate!important;
}
#view-recipes:not(.recipe-editing) > .compact-category-header::before{
  content:""!important;position:absolute!important;z-index:-1!important;
  inset:-6px -10px -38px -10px!important;pointer-events:none!important;
  background:linear-gradient(to bottom,
    rgba(var(--bg-tint,242,238,225),.84) 0%,
    rgba(var(--bg-tint,242,238,225),.74) 58%,
    rgba(var(--bg-tint,242,238,225),.38) 78%,
    rgba(var(--bg-tint,242,238,225),0) 100%)!important;
  -webkit-backdrop-filter:blur(13px) saturate(1.02)!important;
  backdrop-filter:blur(13px) saturate(1.02)!important;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 66%,rgba(0,0,0,.7) 80%,transparent 100%)!important;
  mask-image:linear-gradient(to bottom,#000 0%,#000 66%,rgba(0,0,0,.7) 80%,transparent 100%)!important;
}
#view-recipes:not(.recipe-editing) > .compact-category-header::after{
  content:""!important;position:absolute!important;left:-8px!important;right:-8px!important;bottom:-34px!important;height:38px!important;
  pointer-events:none!important;z-index:5!important;
  background:linear-gradient(to bottom,rgba(var(--bg-tint,242,238,225),.34),rgba(var(--bg-tint,242,238,225),0))!important;
}
body.dark-mode #view-recipes:not(.recipe-editing) > .compact-category-header::before{
  background:linear-gradient(to bottom,rgba(43,48,43,.88) 0%,rgba(43,48,43,.76) 58%,rgba(43,48,43,.42) 78%,rgba(43,48,43,0) 100%)!important;
}
body.dark-mode #view-recipes:not(.recipe-editing) > .compact-category-header::after{
  background:linear-gradient(to bottom,rgba(43,48,43,.38),rgba(43,48,43,0))!important;
}



/* ================================================================
   v340 — robust mobile Recipes bottom-sheet geometry
   Keep content wholly above the context/primary nav while the glass
   sheet itself continues behind both bottom navigation rows.
   ================================================================ */













/* Navigation rows stay visually above the glass sheet. */
#app-context-nav{z-index:120!important;}
#app-primary-nav{z-index:121!important;}


/* Make recipe cards dissolve before the sticky filter controls, without
   putting an opaque slab behind the filter area. */
#view-recipes:not(.recipe-editing) > .compact-category-header{
  z-index:20!important;
  overflow:visible!important;
}
#view-recipes:not(.recipe-editing) > .compact-category-header::before{
  z-index:-1!important;
  inset:-8px -10px -48px!important;
  background:linear-gradient(to bottom,
    rgba(var(--bg-tint,242,238,225),.70) 0%,
    rgba(var(--bg-tint,242,238,225),.56) 55%,
    rgba(var(--bg-tint,242,238,225),.24) 78%,
    rgba(var(--bg-tint,242,238,225),0) 100%)!important;
  -webkit-backdrop-filter:blur(10px) saturate(1.02)!important;
  backdrop-filter:blur(10px) saturate(1.02)!important;
}
#view-recipes:not(.recipe-editing) > .compact-category-header::after{
  bottom:-46px!important;
  height:50px!important;
  background:linear-gradient(to bottom,
    rgba(var(--bg-tint,242,238,225),.28),
    rgba(var(--bg-tint,242,238,225),0))!important;
}
body.dark-mode #view-recipes:not(.recipe-editing) > .compact-category-header::before{
  background:linear-gradient(to bottom,
    rgba(43,48,43,.72) 0%,rgba(43,48,43,.58) 55%,rgba(43,48,43,.26) 78%,rgba(43,48,43,0) 100%)!important;
}


/* v602 — canonical normal-page top geometry.
   The shell owns the gap below the topbar; page modules must not add a second top inset. */
:root{--app-page-top-gap:10px}
main{padding-top:var(--app-page-top-gap)!important}
@media(max-width:700px){main{padding-top:var(--app-page-top-gap)!important}}
body.kitcherette-setup-active main{padding-top:0!important}

/* Legacy compact-list compensation is no longer needed now that main has one canonical top gap. */
.has-compact-category-header > .compact-category-header{margin-top:0!important}
@media(max-width:700px){.has-compact-category-header > .compact-category-header{margin-top:0!important}}

/* Workspace shells inherit the main top start line; retain only horizontal/bottom padding. */
#view-workspace-crew .workspace-shell-page,
#view-workspace-venue .workspace-shell-page{padding-top:0!important}
#view-workspace-equipment .inventory-page{padding-top:0!important}



/* ================================================================
   v341 — transparent scroll-under fade for Recipes
   No painted/glazed fade layer. Recipe content itself fades as it
   approaches the sticky filter edge and stays fully invisible above it.
   ================================================================ */
#view-recipes:not(.recipe-editing) > .compact-category-header::before,
#view-recipes:not(.recipe-editing) > .compact-category-header::after,
#view-recipes:not(.recipe-editing) .recipe-topbar::after{
  content:none!important;
  display:none!important;
  background:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  box-shadow:none!important;
}

/* The sticky header itself remains optically clear; only its controls carry glass. */
#view-recipes:not(.recipe-editing) > .compact-category-header,
#view-recipes:not(.recipe-editing) > .compact-category-header .compact-category-topline,
#view-recipes:not(.recipe-editing) > .compact-category-header .compact-category-pill-scroller,
#view-recipes:not(.recipe-editing) > .compact-category-header > .persistent-name-filter{
  background:transparent!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

/* v342 — spatial clipping, not whole-element opacity.
   Only the pixels that approach/pass beneath the sticky filter are masked.
   A tall recipe card can therefore remain partly visible. */




/* v343 — shorter filter fade + fully visible list start */


/* v344 — very compact spatial fade zone */


/* v345 — Pantry header/filter now uses the same compact language as Recipes */
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar{
  display:grid!important;
  position:sticky!important;
  top:var(--app-header-height)!important;
  z-index:52!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:var(--category-edge-gap,8px)!important;
  gap:var(--category-edge-gap,8px)!important;
  box-sizing:border-box!important;
  background:transparent!important;
  background-color:transparent!important;
  border:0!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
#view-current-stock:not(.inventory-editing){
  --pantry-header-gap:var(--category-edge-gap,8px);
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-recipe-search{
  order:-10!important;
  display:block!important;
  width:100%!important;
  height:32px!important;
  min-height:32px!important;
  max-height:32px!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .compact-name-filter{
  width:100%!important;
  height:32px!important;
  min-height:32px!important;
  border-radius:10px!important;
  font-size:.75rem!important;
  box-sizing:border-box!important;
  background-color:rgba(255,253,248,.78)!important;
  border:1px solid var(--kitcherette-border,var(--border))!important;
  box-shadow:0 4px 14px rgba(30,42,35,.06)!important;
  -webkit-backdrop-filter:blur(5px)!important;
  backdrop-filter:blur(5px)!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-recipe-category-line{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  width:100%!important;
  height:32px!important;
  min-height:32px!important;
  max-height:32px!important;
  margin:0!important;
  padding:1px 0!important;
  background:transparent!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .compact-category-pill-scroller{
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  height:30px!important;
  margin:0!important;
  padding:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .compact-category-pill-scroller::-webkit-scrollbar{display:none!important}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar #pantry-fast-category-tabs{
  display:flex!important;
  width:max-content!important;
  min-width:100%!important;
  height:30px!important;
  gap:6px!important;
  margin:0!important;
  padding:0!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar #pantry-fast-category-tabs .category-tab{
  flex:0 0 auto!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  margin:0!important;
  padding:0 10px!important;
  border-radius:8px!important;
  box-sizing:border-box!important;
  background-color:rgba(255,253,248,.78)!important;
  border:1px solid var(--kitcherette-border,var(--border))!important;
  color:inherit!important;
  box-shadow:0 4px 14px rgba(30,42,35,.06)!important;
  -webkit-backdrop-filter:blur(5px)!important;
  backdrop-filter:blur(5px)!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar #pantry-fast-category-tabs .category-tab.active{
  background:var(--accent,var(--kitcherette-accent,#6d8878))!important;
  border-color:var(--accent,var(--kitcherette-accent,#6d8878))!important;
  color:#fff!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-filter-toggle{
  position:static!important;
  flex:0 0 30px!important;
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  margin:0!important;
  padding:0!important;
  border-radius:8px!important;
  transform:none!important;
  background-color:rgba(255,253,248,.78)!important;
  border:1px solid var(--kitcherette-border,var(--border))!important;
  box-shadow:0 4px 14px rgba(30,42,35,.06)!important;
  -webkit-backdrop-filter:blur(5px)!important;
  backdrop-filter:blur(5px)!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-advanced-panel{
  position:static!important;
  width:100%!important;
  margin:0!important;
  padding:8px!important;
  gap:8px!important;
  box-sizing:border-box!important;
  border-radius:12px!important;
  background:var(--kitcherette-focus)!important;
  border:1px solid var(--kitcherette-border,var(--border))!important;
  box-shadow:0 8px 24px rgba(24,35,29,.09)!important;
  -webkit-backdrop-filter:blur(6px)!important;
  backdrop-filter:blur(6px)!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-advanced-panel.hidden{display:none!important}

/* Match Recipes in dark mode: same geometry, dark glass controls over the photo. */
body.dark-mode #view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .compact-name-filter,
body.dark-mode #view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar #pantry-fast-category-tabs .category-tab,
body.dark-mode #view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-filter-toggle{
  background-color:rgba(29,37,33,.80)!important;
  border-color:rgba(74,84,78,.66)!important;
  color:inherit!important;
}
body.dark-mode #view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar #pantry-fast-category-tabs .category-tab.active{
  background:var(--accent,var(--kitcherette-accent,#789584))!important;
  border-color:var(--accent,var(--kitcherette-accent,#789584))!important;
  color:#fff!important;
}
body.dark-mode #view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-advanced-panel{
  background:rgba(24,31,27,.72)!important;
  border-color:rgba(74,84,78,.66)!important;
}

/* The Pantry list begins below the complete compact header rather than beneath it. */
#view-current-stock:not(.inventory-editing) #current-stock-list{
  margin-top:0!important;
  padding-top:8px!important;
}

/* v346 — Pantry scroll-under visibility matches Recipes.
   Only the pixels entering the compact sticky Pantry filter zone fade away;
   the rest of a tall row remains fully visible. */
#view-current-stock:not(.inventory-editing) #current-stock-list{
  padding-top:34px!important;
}


@media(max-width:620px){
  #view-current-stock:not(.inventory-editing) #current-stock-list{padding-top:34px!important;}
}


/* ================================================================
   v347 — collapse only the third bottom subheader while scrolling
   ================================================================ */






/* ================================================================
   v351 — collapsible 3-column category grids for Recipes + Pantry
   Replaces the horizontal category pill rail with a compact icon grid.
   The grid is open by default and can be collapsed independently of
   the advanced filter controls.
   ================================================================ */
#view-recipes:not(.recipe-editing) > .recipe-category-grid-header .compact-category-topline{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 30px!important;
  grid-template-rows:auto auto!important;
  gap:7px!important;
  height:auto!important;
  max-height:none!important;
  align-items:center!important;
}
#view-recipes:not(.recipe-editing) > .recipe-category-grid-header .compact-filter-toggle{
  grid-column:2!important;
  grid-row:1!important;
}
.category-grid-toggle .category-grid-chevron{
  margin-left:auto!important;
  font-size:.8rem!important;
  opacity:.72!important;
  line-height:1!important;
}
.category-grid-item .category-grid-icon{
  display:block!important;
  height:18px!important;
  line-height:18px!important;
  font-size:1rem!important;
  font-weight:700!important;
  overflow:hidden!important;
}
.category-grid-item .category-grid-label{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:.67rem!important;
  line-height:1.05!important;
  font-weight:650!important;
  text-align:center!important;
}

/* Pantry: category toggle and advanced-filter button share the first row;
   the category grid occupies the full row beneath it. */
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-recipe-category-line{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 30px!important;
  gap:7px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-recipe-category-line .pantry-filter-toggle{
  grid-column:2!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-category-grid-panel{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  margin:0!important;
  padding:0!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-category-grid-panel[hidden]{display:none!important}

/* ================================================================
   v352 — category icon grids belong to the inner page list
   The sticky header keeps only search / category toggle / filter.
   The expanded 3-column grid scrolls naturally as page content.
   ================================================================ */
#view-recipes:not(.recipe-editing) > .recipe-category-grid-header .compact-category-topline{
  grid-template-rows:auto!important;
}

/* Remove the Recipe name search from the sticky top filter region. */
#view-recipes:not(.recipe-editing) > .compact-category-header > .persistent-name-filter{display:none!important}





/* PDF and pantry availability are list content directly under categories. */






/* Third subheader is now search + New recipe. */




/* Since the category grid is inside the list, keep only a small initial breathing room. */
#view-recipes:not(.recipe-editing) #editor-drink-list,
#view-current-stock:not(.inventory-editing) #current-stock-list{padding-top:18px!important}

/* PDF + In pantry form one compact row directly under the full grid. */





/* Empty state is normal scrolling page content, not a giant bottom sheet. */






/* Third bottom subheader: only search + one clean New recipe action. */



/* ================================================================
   v355/v356 — permanent list category grids + top-edge fade + stable Kitcherette title
   ================================================================ */
/* Categories are list content, never a header toggle. */
#view-recipes:not(.recipe-editing) > .recipe-category-grid-header{
  display:none!important;
}
.category-grid-toggle,
[data-category-grid-toggle]{display:none!important}

/* Remove the Recipe category edit/sort section and its manager entry point.
   Category selection itself remains fully functional in the list grid. */
#view-recipes:not(.recipe-editing) #manage-categories,
#view-recipes:not(.recipe-editing) .category-manager-launch[data-category-scope="recipe"],
#view-recipes:not(.recipe-editing) .recipe-category-manager-subtab{
  display:none!important;
}

/* Pantry keeps its useful search/filter control, but no category-toggle row shell. */
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-recipe-category-line{
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
}
#view-current-stock:not(.inventory-editing) > #pantry-fast-toolbar .pantry-filter-toggle{
  width:30px!important;
  min-width:30px!important;
  margin-left:auto!important;
}

/* Scroll-under masks now terminate directly below the global topbar.
   No white/frosted overlay is painted: content itself is spatially masked. */



/* Every page shows Kitcherette in a compact translucent rounded label. */






/* v358 — Pantry categories are available in every Pantry list rendering.
   Shopping list uses the same permanent 3×n category grid as My pantry / About to expire. */
#view-stock-orders > .compact-category-header.shopping-list-header .shopping-header-actions{
  justify-content:flex-end!important;
}
/* Category choice now lives with the list, not in a separate top selector. */
#view-generic-ingredients #generic-ingredient-category-tabs,
#view-generic-ingredients .generic-ingredients-category-sticky{
  display:none!important;
}

/* ================================================================
   v360 — Recipes PDF + In pantry controls beside Kitcherette in header
   ================================================================ */








@media(max-width:620px){
  html body:has(#view-recipes.active:not(.recipe-editing)) .topbar{gap:5px!important;padding-left:8px!important;padding-right:5px!important;}
  html body:has(#view-recipes.active:not(.recipe-editing)) .tier-test-control select{min-width:0!important;width:112px!important;}
  
  
  
  
  
  html body:has(#view-recipes.active:not(.recipe-editing)) .topbar-mascot{flex-basis:36px!important;width:36px!important;}
}

/* ================================================================
   v361 — tier selector moved to Settings; no text title in header
   ================================================================ */
html body .topbar-title.v361-hidden-title{
  display:none!important;
}
#profile-settings .settings-tier-item{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:12px!important;
}
#profile-settings .settings-tier-copy{
  min-width:0!important;
}
#profile-settings .settings-tier-select{
  width:auto!important;
  min-width:128px!important;
  max-width:46vw!important;
  height:42px!important;
  margin:0!important;
  padding:0 34px 0 12px!important;
  border-radius:12px!important;
}
@media(max-width:620px){
  #profile-settings .settings-tier-select{
    min-width:118px!important;
    max-width:42vw!important;
  }
  html body .topbar{
    justify-content:flex-start!important;
  }
  html body .topbar-mascot{
    margin-left:auto!important;
  }
}

/* Current product-layout rules */
#view-recipes .recipe-topbar{display:none!important}
.recipe-header-availability-control{display:inline-flex;align-items:center;gap:6px;margin:0 4px}
.recipe-header-availability-control[hidden]{display:none!important}
.category-grid-item{min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:14px}
.category-grid-icon{font-size:1.05rem}.category-grid-label{font-size:.78rem;line-height:1.1;text-align:center}
.dashboard-recipe-summary{display:grid;gap:8px}.dashboard-explore-recipes{justify-self:start}
.work-minimal-shell{padding:12px 14px 110px}.work-location-card{padding:18px;border-radius:18px}.work-location-identifier{display:flex;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--kitcherette-line)}
.rest-menu-inline-meta{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;margin:0 0 12px}.rest-menu-inline-meta label{display:grid;gap:4px}.rest-menu-section-name{font:inherit;font-weight:700;width:min(100%,22rem)}
.rest-direct-edit-controls{display:flex;gap:4px;align-items:center}.rest-direct-edit-controls button{min-width:34px;min-height:34px}
.settings-background-subpage{margin:0}.settings-background-subpage .settings-section-heading{align-items:center;gap:10px}.settings-background-back{margin-right:8px}
@media(max-width:640px){.rest-menu-inline-meta{grid-template-columns:1fr}}

/* v396 — Menu reads as a menu first; editing appears only on interaction. */
#view-expected-orders .rest-menu-inline-meta{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:5px;
  margin:0 0 12px;
  padding:16px 16px 14px;
  border:1px solid color-mix(in srgb,var(--border) 62%,transparent);
  border-radius:20px;
  background:color-mix(in srgb,var(--surface) 60%,transparent);
  box-shadow:0 7px 20px rgba(22,31,27,.065);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
}
#view-expected-orders .rest-menu-meta-display{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:var(--text-primary);
  text-align:left;
  font-family:Georgia,"Times New Roman",serif;
  cursor:text;
}
#view-expected-orders .rest-menu-name-display{
  font-size:1.34rem;
  font-weight:700;
  line-height:1.25;
}
#view-expected-orders .rest-menu-description-display{
  font-size:.9rem;
  font-weight:400;
  line-height:1.45;
  color:var(--text-secondary);
}
#view-expected-orders .rest-menu-description-display.is-empty{opacity:.55}
#view-expected-orders .rest-menu-meta-input{
  width:100%;
  margin:0;
  padding:2px 0 3px;
  border:0;
  border-bottom:1px solid var(--border);
  border-radius:0;
  outline:none;
  background:transparent;
  color:var(--text-primary);
  font-family:Georgia,"Times New Roman",serif;
}
#view-expected-orders .rest-menu-name-input{font-size:1.34rem;font-weight:700;line-height:1.25}
#view-expected-orders .rest-menu-description-input{font-size:.9rem;line-height:1.45;resize:vertical}
#view-expected-orders .rest-section-heading-display{
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:var(--text-secondary);
  text-align:left;
  font:inherit;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:text;
}
#view-expected-orders .rest-menu-section-name{
  min-width:0;
  width:min(100%,22rem);
  margin:0;
  padding:0 0 2px;
  border:0;
  border-bottom:1px solid var(--border);
  border-radius:0;
  background:transparent;
  color:var(--text-primary);
  font:inherit;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
#view-expected-orders .rest-add-dish{
  display:block;
  width:100%;
  min-height:38px;
  margin:8px 0 14px;
  padding:7px 12px;
  border:1px solid color-mix(in srgb,var(--border) 72%,transparent);
  border-radius:11px;
  background:color-mix(in srgb,var(--surface2) 50%,transparent);
  color:var(--text-primary);
  font:inherit;
  font-size:.82rem;
  font-weight:650;
  text-align:center;
  opacity:.84;
}
#view-expected-orders .rest-add-dish:hover,
#view-expected-orders .rest-add-dish:focus-visible{opacity:1;background:color-mix(in srgb,var(--surface2) 72%,transparent)}
body.dark-mode #view-expected-orders .rest-add-dish{background:rgba(255,255,255,.045)}

/* v397 — Menu is presentation-first: title-level export, no page category filter. */
#view-expected-orders .rest-menu-inline-meta{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:6px;
}
#view-expected-orders .rest-menu-title-line{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-width:0;
}
#view-expected-orders .rest-menu-title-export{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:36px;
  max-width:10.5rem;
  padding:6px 9px;
  border:1px solid color-mix(in srgb,var(--border) 72%,transparent);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface) 54%,transparent);
  color:var(--text-primary);
  font:inherit;
  font-size:.78rem;
  font-weight:700;
  opacity:.62;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  cursor:pointer;
  transition:opacity .16s ease,background .16s ease,border-color .16s ease,transform .1s ease;
}
#view-expected-orders .rest-menu-title-export:hover,
#view-expected-orders .rest-menu-title-export:focus-visible,
#view-expected-orders .rest-menu-title-export:active,
#view-expected-orders .rest-menu-title-export.is-active{
  opacity:1;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  border-color:var(--border);
}
#view-expected-orders .rest-menu-title-export:active,
#view-expected-orders .rest-menu-title-export.is-active{transform:scale(.98)}
#view-expected-orders .rest-menu-title-export-icon{font-size:1rem;line-height:1}
#view-expected-orders .rest-menu-title-export-label{white-space:nowrap}
@media(max-width:420px){
  #view-expected-orders .rest-menu-title-export-label{display:none}
  #view-expected-orders .rest-menu-title-export{width:38px;padding:6px}
}


/* v398 — Menu title/description edit in place on the same rendered text node. */
#view-expected-orders .rest-menu-meta-display[contenteditable="true"]{
  outline:none;
  cursor:text;
  border-radius:4px;
  box-shadow:inset 0 -1px 0 var(--border);
  background:color-mix(in srgb,var(--surface) 26%,transparent);
}
#view-expected-orders .rest-menu-name-display[contenteditable="true"],
#view-expected-orders .rest-menu-description-display[contenteditable="true"]{
  width:100%;
  min-width:0;
}
#view-expected-orders .rest-menu-description-display[contenteditable="true"]{
  white-space:pre-wrap;
}


/* v399 — keep Menu inline editing anchored and tighten title-to-menu spacing. */
#view-expected-orders .rest-menu-inline-meta{
  margin:0 0 12px;
}
#view-expected-orders .rest-menu-body{gap:14px;}


/* v401 — Menu edit lock, collapsible dish options and cross-section reorder. */
#view-expected-orders .rest-menu-title-actions{
  display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;
}
#view-expected-orders .rest-menu-title-lock{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;padding:0;border:1px solid color-mix(in srgb,var(--border) 72%,transparent);
  border-radius:10px;background:color-mix(in srgb,var(--surface) 58%,transparent);
  color:var(--text-primary);opacity:.72;cursor:pointer;
}
#view-expected-orders .rest-menu-title-lock:hover,
#view-expected-orders .rest-menu-title-lock:focus-visible,
#view-expected-orders .rest-menu-title-lock.is-locked{opacity:1}
#view-expected-orders .rest-dish-summary{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;width:100%;
}
#view-expected-orders .rest-dish-copy{
  min-width:0;width:100%;text-align:left;
}
#view-expected-orders .rest-section-drag{
  width:34px;height:34px;padding:0;border:0;background:transparent;color:var(--text-secondary);
  cursor:grab;font-size:1rem;
}
/* v752 — keep Menu drag/drop behavior, but replace the browser's full-card
   drag snapshot with a compact preview and a quiet source placeholder. */
#view-expected-orders .rest-menu-section.is-reordering,
#view-expected-orders .rest-menu-dish.is-reordering{
  opacity:.38;outline:0;filter:saturate(.82);transform:scale(.99);
  transition:opacity 100ms ease,transform 100ms ease,filter 100ms ease;
}
#view-expected-orders .rest-menu-dish.is-reordering{box-shadow:none}
.rest-menu-drag-preview{
  position:fixed;left:-10000px;top:0;z-index:10000;
  display:inline-flex;align-items:center;max-width:min(260px,70vw);min-height:38px;
  padding:8px 13px;border:1px solid color-mix(in srgb,var(--border) 68%,transparent);
  border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);
  box-shadow:0 10px 24px rgba(22,31,27,.18);color:var(--text-primary);
  font:inherit;font-size:.88rem;font-weight:750;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:none;
}
body.dark-mode .rest-menu-drag-preview{box-shadow:0 10px 24px rgba(0,0,0,.28)}
/* v754 — responsive Menu reorder preview without reparenting the native drag source.
   A neutral drop slot moves through the layout so surrounding cards move live;
   canonical Menu state is still committed only on drop. */
body.menu-layout-reordering #view-expected-orders .rest-menu-section,
body.menu-layout-reordering #view-expected-orders .rest-menu-dish{
  will-change:transform;
}
body.menu-layout-reordering #view-expected-orders .rest-menu-section.is-reordering,
body.menu-layout-reordering #view-expected-orders .rest-menu-dish.is-reordering{
  opacity:.42;transform:scale(.99);
}
body.menu-layout-reordering #view-expected-orders .rest-menu-section.is-reordering-collapsed,
body.menu-layout-reordering #view-expected-orders .rest-menu-dish.is-reordering-collapsed{
  height:0!important;min-height:0!important;max-height:0!important;
  margin:0!important;padding:0!important;border-width:0!important;
  overflow:hidden!important;opacity:0!important;transform:none!important;
  background:transparent!important;box-shadow:none!important;pointer-events:none!important;
}
#view-expected-orders .rest-menu-drop-slot{
  box-sizing:border-box;width:100%;min-height:18px;
  border:1px solid color-mix(in srgb,var(--text-secondary) 18%,transparent);
  border-radius:18px;background:color-mix(in srgb,var(--surface) 20%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--surface) 22%,transparent);
  pointer-events:none;
}
#view-expected-orders .rest-menu-drop-slot-item{border-radius:16px}
#view-expected-orders .rest-menu-drop-slot-section{border-radius:22px}
body.dark-mode #view-expected-orders .rest-menu-drop-slot{
  background:color-mix(in srgb,var(--surface) 14%,transparent);
}

#view-expected-orders .rest-menu-dish{display:block}

/* v406 — + Recipe anchored creation balloon. */
#recipe-create-choice.recipe-create-choice{
  position:fixed!important;
  inset:auto!important;
  left:var(--recipe-create-left,12px)!important;
  top:var(--recipe-create-top,12px)!important;
  z-index:1400!important;
  display:block;
  width:min(292px,calc(100vw - 24px));
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  pointer-events:none;
}
#recipe-create-choice.recipe-create-choice.hidden{display:none!important}
#recipe-create-choice .recipe-create-choice-card{
  position:relative;
  width:100%!important;
  max-width:none!important;
  padding:8px!important;
  border:1px solid color-mix(in srgb,var(--border) 74%,transparent)!important;
  border-radius:14px!important;
  background:color-mix(in srgb,var(--surface) 88%,transparent)!important;
  box-shadow:0 14px 36px rgba(0,0,0,.18)!important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  pointer-events:auto;
}
#recipe-create-choice .recipe-create-choice-card::after{
  content:"";
  position:absolute;
  right:24px;
  top:-6px;
  width:10px;height:10px;
  transform:rotate(45deg);
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  border-left:1px solid color-mix(in srgb,var(--border) 74%,transparent);
  border-top:1px solid color-mix(in srgb,var(--border) 74%,transparent);
}
#recipe-create-choice.opens-above .recipe-create-choice-card::after{
  top:auto;bottom:-6px;transform:rotate(225deg);
}
#recipe-create-choice .recipe-create-choice-copy,
#recipe-create-choice .recipe-create-choice-actions,
#recipe-create-choice .recipe-start-option-copy small,
#recipe-create-choice .alpha-badge{display:none!important}
#recipe-create-choice .recipe-create-choice-options{
  display:flex!important;
  flex-direction:column;
  gap:4px!important;
  margin:0!important;
}
#recipe-create-choice .recipe-start-option{
  min-height:0!important;
  padding:10px 11px!important;
  display:grid!important;
  grid-template-columns:34px 1fr;
  align-items:center!important;
  gap:9px!important;
  border:0!important;
  border-radius:10px!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
}
#recipe-create-choice .recipe-start-option:hover,
#recipe-create-choice .recipe-start-option:focus-visible{
  background:color-mix(in srgb,var(--surface2) 78%,transparent)!important;
  outline:none;
}
#recipe-create-choice .recipe-start-option-icon{
  width:32px!important;min-width:32px!important;height:32px!important;
  border:0!important;border-radius:9px!important;
  background:color-mix(in srgb,var(--surface2) 78%,transparent)!important;
}
#recipe-create-choice .recipe-start-option-copy{display:block!important;min-width:0}
#recipe-create-choice .recipe-start-option-copy strong{font-size:.9rem;font-weight:650}
body.dark-mode #recipe-create-choice .recipe-create-choice-card{
  background:color-mix(in srgb,var(--surface) 90%,transparent)!important;
}
@media(max-width:700px){
  #recipe-create-choice.recipe-create-choice{width:min(280px,calc(100vw - 24px))!important;padding:0!important}
  #recipe-create-choice .recipe-start-option{min-height:0!important}
}


/* v414 — Single owner for quick Recipe editor presentation and layout.
   Supersedes v403-v405 and v409-v413 recipe-editor CSS. Keep all quick-editor
   presentation here so older global form styles cannot be counter-patched in layers. */
#view-recipes.recipe-editing.recipe-quick-editing #menu-editor{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
#view-recipes.recipe-editing.recipe-quick-editing #menu-editor > .modal-panel{
  background:transparent!important;
  padding:42px 14px calc(var(--app-bottom-chrome-height,132px) + 30px)!important;
}
#drink-form.recipe-quick-entry{
  width:min(100%,760px)!important;
  margin:8px auto 18px!important;
  padding:14px 16px 22px!important;
  gap:8px!important;
  color:var(--text-primary);
}

/* Quick-entry structure. */
#drink-form.recipe-quick-entry .recipe-wizard-nav,
#drink-form.recipe-quick-entry .recipe-editor-arrow-slot,
#drink-form.recipe-quick-entry .recipe-editor-step-label,
#drink-form.recipe-quick-entry > .recipe-wizard-step > .wizard-actions,
#drink-form.recipe-quick-entry .form-header,
#drink-form.recipe-quick-entry #edit-categories-inline,
#drink-form.recipe-quick-entry .ingredient-editor-actions,
#drink-form.recipe-quick-entry #manage-ingredients-inline{
  display:none!important;
}
#drink-form.recipe-quick-entry > .recipe-wizard-step[data-step-panel="0"],
#drink-form.recipe-quick-entry > .recipe-wizard-step[data-step-panel="1"],
#drink-form.recipe-quick-entry > .recipe-wizard-step[data-step-panel="2"],
#drink-form.recipe-quick-entry > .recipe-wizard-step[data-step-panel="3"]{
  display:block!important;
}
#drink-form.recipe-quick-entry > .recipe-wizard-step[data-step-panel="4"]{
  display:none!important;
}
#drink-form.recipe-quick-entry.recipe-quick-advanced > .recipe-wizard-step[data-step-panel="4"]{
  display:block!important;
  width:100%;
  min-width:0;
}
#drink-form.recipe-quick-entry .wizard-card{
  margin:0!important;
  padding:12px 0 14px!important;
  border:0!important;
  border-radius:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent)!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
#drink-form.recipe-quick-entry .wizard-card:first-of-type{padding-top:2px!important;}
#drink-form.recipe-quick-entry .editor-section{border:0!important;padding-top:0!important;}
/* Recipe document section headings deliberately mirror the v414 Menu section header. */
#drink-form.recipe-quick-entry .section-title{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  min-width:0!important;
  margin:0 0 5px!important;
  padding:7px 0!important;
  border:0!important;
  border-bottom:1px solid var(--border)!important;
  background:transparent!important;
}
#drink-form.recipe-quick-entry .section-title h3{
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  font-family:inherit!important;
  font-size:.78rem!important;
  line-height:normal!important;
  font-weight:700!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  color:var(--text-secondary)!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#drink-form.recipe-quick-entry .section-title p,
#drink-form.recipe-quick-entry > .recipe-wizard-step[data-step-panel="3"] .section-title p{display:none!important;}

/* Main title/category/metadata row. */
#drink-form.recipe-quick-entry .form-grid.two{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto auto!important;
  gap:6px 12px!important;
  align-items:center!important;
}
#drink-form.recipe-quick-entry .recipe-quick-name{grid-column:1 / -1!important;margin:0 0 2px!important;min-width:0;}
#drink-form.recipe-quick-entry .recipe-quick-name > span,
#drink-form.recipe-quick-entry .category-field > span,
#drink-form.recipe-quick-entry .recipe-quick-basic:not(.category-field) > span{display:none!important;}
#drink-form.recipe-quick-entry .category-field{grid-column:1!important;min-width:0!important;align-self:center;}
#drink-form.recipe-quick-entry .category-input-row{display:none!important;}
#drink-form.recipe-quick-entry .recipe-quick-basic:not(.category-field){
  display:inline-flex!important;
  align-items:baseline!important;
  gap:4px!important;
  min-width:0!important;
  margin:0!important;
  white-space:nowrap;
}
#drink-form.recipe-quick-entry .recipe-quick-basic:not(.category-field)::after{
  content:attr(data-inline-suffix);
  color:var(--text-secondary);
  font-size:.82rem;
  font-weight:550;
}

/* Category summary/grid. */
#drink-form.recipe-quick-entry .recipe-quick-category-selector{display:block;margin-top:2px;}
#drink-form.recipe-quick-entry .recipe-category-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:7px!important;
  min-height:40px!important;
  padding:4px 0!important;
  border:0!important;
  background:transparent!important;
}
#drink-form.recipe-quick-entry .recipe-category-summary strong{
  min-width:0;
  font-family:inherit!important;
  font-size:.94rem!important;
  line-height:1.2;
  color:var(--text-primary);
  font-weight:700!important;
}
#drink-form.recipe-quick-entry .recipe-category-correct{
  display:inline-grid;
  place-items:center;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  padding:0!important;
  border:1px solid color-mix(in srgb,var(--border) 58%,transparent)!important;
  border-radius:9px!important;
  background:transparent!important;
  color:var(--text-secondary);
  opacity:.78;
  font-size:.72rem!important;
}
#drink-form.recipe-quick-entry .recipe-category-correct:hover,
#drink-form.recipe-quick-entry .recipe-category-correct:focus-visible{opacity:1;}
#drink-form.recipe-quick-entry .recipe-category-grid-host{display:none;padding:8px 0 2px;max-height:min(58vh,520px);overflow:auto;}
#drink-form.recipe-quick-entry .recipe-quick-category-selector.is-open .recipe-category-grid-host{display:block;}

/* Document-native fields are transparent by identity.
   Generic form skins above explicitly exclude .kitcherette-document-field, so this
   is the field's native presentation rather than a counter-override. */
.kitcherette-document-field{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  outline:0!important;
  color:var(--text-primary);
}
input.kitcherette-document-field,
textarea.kitcherette-document-field,
select.kitcherette-document-field{
  -webkit-appearance:none;
  appearance:none;
}
.kitcherette-document-field:focus{
  background:transparent!important;
  background-color:transparent!important;
  border:0!important;
  box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--accent) 62%,var(--border))!important;
  outline:0!important;
}
#drink-form.recipe-quick-entry :is(
  .form-grid,
  label,
  .editor-row,
  .ingredient-name-autocomplete,
  .drink-ingredient-row,
  .step-row
){
  background:transparent;
  background-color:transparent;
  box-shadow:none;
}
#drink-form.recipe-quick-entry .recipe-quick-name input{
  width:100%!important;
  min-height:46px!important;
  padding:0!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(1.7rem,6vw,2.15rem)!important;
  line-height:1.05!important;
  font-weight:700!important;
}
#drink-form.recipe-quick-entry .recipe-quick-name input::placeholder{color:var(--text-secondary);opacity:.66;font-weight:600;}
#drink-form.recipe-quick-entry .recipe-quick-basic:not(.category-field) input{
  width:2.6ch!important;
  min-width:0!important;
  min-height:30px!important;
  padding:0!important;
  text-align:right!important;
  font-size:.94rem!important;
  font-weight:700!important;
}
#drink-form.recipe-quick-entry .recipe-quick-basic:not(.category-field) input::placeholder{color:var(--text-secondary);opacity:.62;font-weight:600;}

/* Ingredient document lines. */
#drink-form.recipe-quick-entry #drink-ingredients-editor{display:grid;gap:0!important;}
#drink-form.recipe-quick-entry .drink-ingredient-row{
  display:grid!important;
  grid-template-columns:4.7rem 3.8rem minmax(0,1fr) 30px!important;
  gap:5px!important;
  align-items:center!important;
  min-height:42px!important;
  margin:0!important;
  padding:2px 0!important;
  border:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 30%,transparent)!important;
  border-radius:0!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row :is(input,select){
  min-height:34px!important;
  padding:4px 3px!important;
  font-size:.95rem!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .editor-ingredient-amount{text-align:right;font-weight:700;}
#drink-form.recipe-quick-entry .drink-ingredient-row .editor-ingredient-unit{color:var(--text-secondary)!important;font-weight:650;}
#drink-form.recipe-quick-entry .drink-ingredient-row .ingredient-name-autocomplete{min-width:0;}
#drink-form.recipe-quick-entry .drink-ingredient-row .editor-ingredient-name{width:100%;font-weight:520;}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-ingredient-remove{
  opacity:0!important;
  pointer-events:none;
  transition:opacity .12s ease;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  padding:0!important;
  border-radius:9px!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row:focus-within .recipe-ingredient-remove,
#drink-form.recipe-quick-entry .drink-ingredient-row:hover .recipe-ingredient-remove{opacity:.72!important;pointer-events:auto;}
#drink-form.recipe-quick-entry .drink-ingredient-row.recipe-row-empty{
  grid-template-columns:minmax(0,1fr)!important;
  min-height:38px!important;
  padding:0!important;
  border-bottom:0!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row.recipe-row-empty > :not(.ingredient-name-autocomplete):not(datalist){display:none!important;}
#drink-form.recipe-quick-entry .drink-ingredient-row.recipe-row-empty .editor-ingredient-name{
  min-height:38px!important;
  padding:7px 2px!important;
  color:var(--text-secondary)!important;
  font-weight:600!important;
}
#drink-form.recipe-quick-entry .ingredient-stock-hint,
#drink-form.recipe-quick-entry .recipe-unit-conversion{grid-column:3 / -1!important;margin:0!important;font-size:.72rem!important;}

/* Method document lines. */
#drink-form.recipe-quick-entry #preparation-steps-editor{display:grid;gap:1px;}
#drink-form.recipe-quick-entry .step-row{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr) 30px!important;
  gap:7px!important;
  align-items:start!important;
  padding:3px 0!important;
  margin:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 30%,transparent)!important;
  background:transparent!important;
}
#drink-form.recipe-quick-entry .step-row .step-title,
#drink-form.recipe-quick-entry .step-row .step-time,
#drink-form.recipe-quick-entry .step-row .step-notes{display:none!important;}
#drink-form.recipe-quick-entry.recipe-quick-advanced .step-row .step-title,
#drink-form.recipe-quick-entry.recipe-quick-advanced .step-row .step-time,
#drink-form.recipe-quick-entry.recipe-quick-advanced .step-row .step-notes{display:block!important;grid-column:2!important;width:100%!important;min-width:0!important;}
#drink-form.recipe-quick-entry .step-number{
  width:30px!important;
  height:30px!important;
  min-height:30px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:999px!important;
  background:transparent!important;
  font-weight:700!important;
  font-size:.82rem!important;
}
#drink-form.recipe-quick-entry .step-instruction{
  min-height:42px!important;
  height:auto;
  padding:5px 2px!important;
  resize:none!important;
  overflow:hidden!important;
  font-size:.96rem!important;
  line-height:1.42!important;
}
#drink-form.recipe-quick-entry .step-row .delete-button{
  opacity:0!important;
  pointer-events:none;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  padding:0!important;
  border-radius:9px!important;
}
#drink-form.recipe-quick-entry .step-row:focus-within .delete-button,
#drink-form.recipe-quick-entry .step-row:hover .delete-button{opacity:.72!important;pointer-events:auto;}
#drink-form.recipe-quick-entry .step-row.recipe-row-empty{
  grid-template-columns:34px minmax(0,1fr)!important;
  min-height:38px!important;
  padding:0!important;
  border-bottom:0!important;
}
#drink-form.recipe-quick-entry .step-row.recipe-row-empty .delete-button{display:none!important;}
#drink-form.recipe-quick-entry .step-row.recipe-row-empty .step-instruction{
  min-height:38px!important;
  padding:7px 2px!important;
  color:var(--text-secondary)!important;
  font-weight:600!important;
}
#drink-form.recipe-quick-entry:not(.recipe-quick-advanced) #add-preparation-step{display:none!important;}

/* Disclosure and advanced appendix. */
#drink-form:not(.recipe-quick-entry) .recipe-quick-disclosure{display:none!important;}
#drink-form.recipe-quick-entry .recipe-quick-disclosure{
  display:flex;
  justify-content:flex-start!important;
  margin:12px 0 0!important;
  padding-top:10px!important;
  border-top:1px solid color-mix(in srgb,var(--border) 34%,transparent)!important;
}
#drink-form.recipe-quick-entry .recipe-quick-disclosure button{
  min-height:34px!important;
  padding:6px 0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:left!important;
  opacity:.78;
}
#drink-form.recipe-quick-entry .recipe-quick-disclosure button:hover,
#drink-form.recipe-quick-entry .recipe-quick-disclosure button:focus-visible{opacity:1;}
#drink-form.recipe-quick-entry .recipe-advanced-field,
#drink-form.recipe-quick-entry .calc-row.recipe-advanced-field{display:none!important;}
#drink-form.recipe-quick-entry .recipe-quick-advanced-settings{
  display:none;
  margin:8px 0 0;
  padding:14px 0 4px;
  border-top:1px solid color-mix(in srgb,var(--border) 36%,transparent);
}
#drink-form.recipe-quick-entry.recipe-quick-advanced .recipe-quick-advanced-settings{
  display:flex;
  flex-direction:column;
  gap:14px;
}
#drink-form.recipe-quick-entry.recipe-quick-advanced .recipe-quick-advanced-settings .recipe-advanced-field,
#drink-form.recipe-quick-entry.recipe-quick-advanced .recipe-quick-advanced-settings .calc-row.recipe-advanced-field{display:flex!important;}
#drink-form.recipe-quick-entry .recipe-quick-advanced-settings > *{width:100%;min-width:0;margin:0!important;}
#drink-form.recipe-quick-entry .recipe-quick-advanced-settings label.recipe-advanced-field{
  flex-direction:column;
  align-items:stretch;
  gap:6px;
}
#drink-form.recipe-quick-entry .recipe-quick-advanced-settings label.check-row.recipe-advanced-field{
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:40px;
}
#drink-form.recipe-quick-entry .recipe-quick-advanced-settings label.check-row.recipe-advanced-field > span{flex:1;min-width:0;overflow-wrap:normal;word-break:normal;}
#drink-form.recipe-quick-entry .recipe-quick-advanced-settings label.check-row.recipe-advanced-field > input[type="checkbox"]{
  flex:0 0 auto;
  width:22px!important;
  height:22px!important;
  margin:0!important;
}
#drink-form.recipe-quick-entry .recipe-quick-advanced-settings :is(input:not([type="checkbox"]),select,textarea),
#drink-form.recipe-quick-entry.recipe-quick-advanced > .recipe-wizard-step[data-step-panel="2"] :is(input,select,textarea),
#drink-form.recipe-quick-entry.recipe-quick-advanced > .recipe-wizard-step[data-step-panel="4"] :is(input,select,textarea){
  width:100%!important;
  min-width:0!important;
  min-height:40px!important;
  padding:7px 2px!important;
  border:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent)!important;
  border-radius:0!important;
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}
#drink-form.recipe-quick-entry .recipe-quick-advanced-settings :is(input:not([type="checkbox"]),select,textarea):focus{
  outline:none!important;
  border-bottom-color:color-mix(in srgb,var(--accent) 72%,var(--border))!important;
  background:transparent!important;
  box-shadow:none!important;
}
#drink-form.recipe-quick-entry .recipe-quick-advanced-settings .calc-row{
  display:flex!important;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:8px 18px;
  padding-top:4px;
  background:transparent!important;
  color:var(--text-secondary);
}

/* v713 — keep canonical recipe actions persistently reachable above bottom navigation.
   Context navigation may mirror these actions, but must never be their sole owner. */
#view-recipes.recipe-editing .recipe-editor-savebar{display:grid!important;}
body.recipe-editor-context-subnav #app-context-nav{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
  padding:6px 8px!important;
}
body.recipe-editor-context-subnav #app-context-nav .app-editor-action{
  min-width:0;
  min-height:40px;
  height:40px;
  padding:6px 8px;
  border-radius:12px;
  font-size:.78rem;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}
body.recipe-editor-context-subnav #app-context-nav .app-editor-save-exit{
  background:var(--accent);
  color:var(--accent-contrast,#fff);
  border-color:transparent;
}
#view-recipes.recipe-editing #drink-form{
  padding-bottom:calc(var(--app-bottom-chrome-height) + 22px)!important;
}


/* v422 — Recipe document controls are text on the document, never nested surfaces.
   This is the sole quick-editor control presentation contract; legacy generic form
   skins are excluded above and cannot create per-field cards. */
#drink-form.recipe-quick-entry :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select){
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  outline:0!important;
  -webkit-appearance:none!important;
  appearance:none!important;
}
#drink-form.recipe-quick-entry :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select):focus{
  background:transparent!important;
  background-color:transparent!important;
  box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--accent) 62%,var(--border))!important;
}
#drink-form.recipe-quick-entry :is(.ingredient-name-autocomplete,.drink-ingredient-row,.step-row,.recipe-row-empty,.recipe-quick-name,.recipe-quick-basic){
  background:transparent!important;
  background-color:transparent!important;
  box-shadow:none!important;
}

/* Chromium/WebView autofill: keep recipe content visually transparent. */
input.kitcherette-document-field:-webkit-autofill,
input.kitcherette-document-field:-webkit-autofill:hover,
input.kitcherette-document-field:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--text-primary)!important;
  caret-color:var(--text-primary)!important;
  -webkit-box-shadow:none!important;
  box-shadow:none!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  background:transparent!important;
  background-color:transparent!important;
  transition:background-color 99999s ease-out 0s!important;
}

@media(max-width:620px){
  #view-recipes.recipe-editing.recipe-quick-editing #menu-editor > .modal-panel{
    padding:42px 14px calc(var(--app-bottom-chrome-height,132px) + 30px)!important;
  }
  #drink-form.recipe-quick-entry{width:100%!important;margin:8px auto 16px!important;padding:13px 14px 20px!important;}
  #drink-form.recipe-quick-entry .form-grid.two{grid-template-columns:minmax(0,1fr) auto auto!important;}
  #drink-form.recipe-quick-entry .drink-ingredient-row{grid-template-columns:4rem 3.2rem minmax(0,1fr) 28px!important;}
  #drink-form.recipe-quick-entry.recipe-quick-advanced .step-row{grid-template-columns:34px minmax(0,1fr) 28px!important;}
  #drink-form.recipe-quick-entry .recipe-quick-advanced-settings{gap:12px;}
  body.recipe-editor-context-subnav #app-context-nav .app-editor-action{font-size:.73rem;padding-inline:5px;}
}
@media(max-width:360px){
  body.recipe-editor-context-subnav #app-context-nav .app-editor-action{font-size:.69rem;}
}


/* v430 — clean recipe ingredient lines: [name] [amount]. Unit stays inside the amount cell. */
#drink-form.recipe-quick-entry .drink-ingredient-row{
  grid-template-columns:minmax(0,1fr) minmax(112px,9rem) 30px!important;
  gap:8px!important;
  align-items:center!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .ingredient-name-autocomplete{
  grid-column:1!important;
  min-width:0!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-ingredient-amount-wrap{
  grid-column:2!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  min-width:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 45%,transparent);
}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-ingredient-amount-wrap .editor-ingredient-amount{
  width:100%!important;
  min-width:0!important;
  border:0!important;
  text-align:right!important;
  font-weight:700!important;
  background:transparent!important;
  box-shadow:none!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-ingredient-amount-wrap .editor-ingredient-unit{
  width:3.3rem!important;
  min-width:0!important;
  border:0!important;
  padding-left:2px!important;
  color:var(--text-secondary)!important;
  text-align:left!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:.78rem!important;
  font-weight:600!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-ingredient-remove{
  grid-column:3!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .ingredient-stock-hint{
  grid-column:1 / 3!important;
  margin:-2px 0 2px 2px!important;
  padding:0!important;
  color:var(--text-secondary)!important;
  font-size:.66rem!important;
  font-weight:500!important;
  line-height:1.2!important;
  opacity:.58!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .ingredient-stock-hint.unavailable{
  color:var(--text-secondary)!important;
  opacity:.64!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-unit-conversion{
  grid-column:1 / 3!important;
  justify-self:start!important;
  margin:0!important;
  font-size:.66rem!important;
  opacity:.68;
}
#drink-form.recipe-quick-entry .drink-ingredient-row.recipe-row-empty{
  grid-template-columns:minmax(0,1fr)!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row.recipe-row-empty > :not(.ingredient-name-autocomplete):not(datalist){
  display:none!important;
}
@media(max-width:620px){
  #drink-form.recipe-quick-entry .drink-ingredient-row{
    grid-template-columns:minmax(0,1fr) minmax(96px,7.5rem) 28px!important;
    gap:6px!important;
  }
}



/* v431 — denser ingredient rhythm + direct drag reordering. */
#drink-form.recipe-quick-entry #drink-ingredients-editor{
  gap:0!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row{
  grid-template-columns:22px minmax(0,1fr) minmax(108px,8.5rem) 28px!important;
  column-gap:5px!important;
  row-gap:0!important;
  min-height:34px!important;
  padding:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 22%,transparent)!important;
  transition:opacity .12s ease,transform .12s ease,background .12s ease;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-ingredient-drag-handle{
  grid-column:1!important;
  grid-row:1!important;
  align-self:center!important;
  width:22px!important;
  min-width:22px!important;
  height:28px!important;
  min-height:28px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--text-secondary)!important;
  opacity:.34;
  font-size:.72rem!important;
  line-height:1!important;
  letter-spacing:-3px;
  cursor:grab;
  touch-action:none;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-ingredient-drag-handle:active{
  cursor:grabbing;
  opacity:.72;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .ingredient-name-autocomplete{
  grid-column:2!important;
  grid-row:1!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-ingredient-amount-wrap{
  grid-column:3!important;
  grid-row:1!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-ingredient-remove{
  grid-column:4!important;
  grid-row:1!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row :is(.editor-ingredient-name,.editor-ingredient-amount,.editor-ingredient-unit){
  min-height:31px!important;
  padding-top:2px!important;
  padding-bottom:2px!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .ingredient-stock-hint{
  grid-column:2 / 4!important;
  grid-row:2!important;
  margin:-5px 0 1px 2px!important;
  padding:0!important;
  min-height:0!important;
  font-size:.63rem!important;
  line-height:1.05!important;
  opacity:.52!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .ingredient-stock-hint:empty{
  display:none!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .recipe-unit-conversion{
  grid-column:2 / 4!important;
  margin:-3px 0 1px 2px!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row.is-dragging{
  z-index:12;
  opacity:.82;
  background:color-mix(in srgb,var(--surface) 88%,transparent)!important;
  box-shadow:0 5px 16px rgba(0,0,0,.10);
}
body.recipe-ingredient-reordering{
  user-select:none;
}
#drink-form.recipe-quick-entry .drink-ingredient-row.recipe-row-empty{
  grid-template-columns:minmax(0,1fr)!important;
  min-height:32px!important;
  border-bottom:0!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row.recipe-row-empty > :not(.ingredient-name-autocomplete):not(datalist){
  display:none!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row.recipe-row-empty .ingredient-name-autocomplete{
  grid-column:1!important;
}
@media(max-width:620px){
  #drink-form.recipe-quick-entry .drink-ingredient-row{
    grid-template-columns:20px minmax(0,1fr) minmax(92px,7rem) 26px!important;
    column-gap:4px!important;
  }
  #drink-form.recipe-quick-entry .drink-ingredient-row .recipe-ingredient-drag-handle{
    width:20px!important;
    min-width:20px!important;
  }
}



/* v432 — Mise en place and Method use the same compact, draggable document-row language as Ingredients. */
#drink-form.recipe-quick-entry > .recipe-wizard-step[data-step-panel="2"]{
  order:2;
}
#drink-form.recipe-quick-entry > .recipe-wizard-step[data-step-panel="3"]{
  order:3;
}
#drink-form.recipe-quick-entry [data-step-panel="2"] .row-labels{
  display:none!important;
}
#drink-form.recipe-quick-entry #mise-en-place-editor,
#drink-form.recipe-quick-entry #preparation-steps-editor{
  display:grid!important;
  gap:0!important;
}
#drink-form.recipe-quick-entry .mise-row,
#drink-form.recipe-quick-entry .step-row{
  display:grid!important;
  align-items:center!important;
  column-gap:5px!important;
  row-gap:0!important;
  margin:0!important;
  padding:0!important;
  min-height:34px!important;
  border:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 22%,transparent)!important;
  background:transparent!important;
  transition:opacity .12s ease,transform .12s ease,background .12s ease;
}
#drink-form.recipe-quick-entry .mise-row{
  grid-template-columns:22px minmax(0,1fr) minmax(108px,8.5rem) 28px!important;
}
#drink-form.recipe-quick-entry .step-row{
  grid-template-columns:22px 28px minmax(0,1fr) 28px!important;
}
#drink-form.recipe-quick-entry .recipe-row-drag-handle{
  width:22px!important;
  min-width:22px!important;
  height:28px!important;
  min-height:28px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--text-secondary)!important;
  opacity:.34;
  font-size:.72rem!important;
  line-height:1!important;
  letter-spacing:-3px;
  cursor:grab;
  touch-action:none;
}
#drink-form.recipe-quick-entry .recipe-row-drag-handle:active{
  cursor:grabbing;
  opacity:.72;
}
#drink-form.recipe-quick-entry .mise-row .recipe-row-drag-handle{grid-column:1!important;grid-row:1!important;}
#drink-form.recipe-quick-entry .mise-row .mise-name{
  grid-column:2!important;
  grid-row:1!important;
  min-width:0!important;
  min-height:31px!important;
  padding:2px 2px!important;
}
#drink-form.recipe-quick-entry .mise-row .mise-meta{
  grid-column:3!important;
  grid-row:1!important;
  display:grid!important;
  grid-template-columns:3.4rem minmax(0,1fr)!important;
  min-width:0!important;
  align-items:center!important;
}
#drink-form.recipe-quick-entry .mise-row .mise-time,
#drink-form.recipe-quick-entry .mise-row .mise-notes{
  min-width:0!important;
  min-height:31px!important;
  padding:2px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#drink-form.recipe-quick-entry .mise-row .mise-time{
  text-align:right!important;
  font-weight:700!important;
}
#drink-form.recipe-quick-entry .mise-row .mise-notes{
  color:var(--text-secondary)!important;
  font-size:.78rem!important;
}
#drink-form.recipe-quick-entry .mise-row .recipe-row-remove{
  grid-column:4!important;
  grid-row:1!important;
}
#drink-form.recipe-quick-entry .step-row .recipe-row-drag-handle{
  grid-column:1!important;
  grid-row:1!important;
}
#drink-form.recipe-quick-entry .step-row .step-number{
  grid-column:2!important;
  grid-row:1!important;
  width:26px!important;
  min-width:26px!important;
  height:26px!important;
  min-height:26px!important;
  font-size:.76rem!important;
}
#drink-form.recipe-quick-entry .step-row .step-instruction{
  grid-column:3!important;
  grid-row:1!important;
  min-width:0!important;
  min-height:32px!important;
  padding:3px 2px!important;
  font-size:.95rem!important;
  line-height:1.28!important;
}
#drink-form.recipe-quick-entry .step-row .recipe-row-remove{
  grid-column:4!important;
  grid-row:1!important;
}
#drink-form.recipe-quick-entry .mise-row .recipe-row-remove,
#drink-form.recipe-quick-entry .step-row .recipe-row-remove{
  opacity:0!important;
  pointer-events:none;
  width:26px!important;
  min-width:26px!important;
  height:26px!important;
  min-height:26px!important;
  padding:0!important;
  border-radius:8px!important;
}
#drink-form.recipe-quick-entry .mise-row:focus-within .recipe-row-remove,
#drink-form.recipe-quick-entry .mise-row:hover .recipe-row-remove,
#drink-form.recipe-quick-entry .step-row:focus-within .recipe-row-remove,
#drink-form.recipe-quick-entry .step-row:hover .recipe-row-remove{
  opacity:.68!important;
  pointer-events:auto;
}
#drink-form.recipe-quick-entry.recipe-quick-advanced .step-row .step-title,
#drink-form.recipe-quick-entry.recipe-quick-advanced .step-row .step-time,
#drink-form.recipe-quick-entry.recipe-quick-advanced .step-row .step-notes{
  grid-column:3 / 4!important;
  width:100%!important;
  min-width:0!important;
}
#drink-form.recipe-quick-entry.recipe-quick-advanced .step-row .step-title{grid-row:2!important;}
#drink-form.recipe-quick-entry.recipe-quick-advanced .step-row .step-time{grid-row:3!important;}
#drink-form.recipe-quick-entry.recipe-quick-advanced .step-row .step-notes{grid-row:4!important;}
#drink-form.recipe-quick-entry .mise-row.is-dragging,
#drink-form.recipe-quick-entry .step-row.is-dragging{
  z-index:12;
  opacity:.82;
  background:color-mix(in srgb,var(--surface) 88%,transparent)!important;
  box-shadow:0 5px 16px rgba(0,0,0,.10);
}
body.recipe-row-reordering{
  user-select:none;
}
#drink-form.recipe-quick-entry .mise-row.recipe-row-empty,
#drink-form.recipe-quick-entry .step-row.recipe-row-empty{
  grid-template-columns:minmax(0,1fr)!important;
  min-height:32px!important;
  border-bottom:0!important;
}
#drink-form.recipe-quick-entry .mise-row.recipe-row-empty > :not(.mise-name),
#drink-form.recipe-quick-entry .step-row.recipe-row-empty > :not(.step-instruction){
  display:none!important;
}
#drink-form.recipe-quick-entry .mise-row.recipe-row-empty .mise-name,
#drink-form.recipe-quick-entry .step-row.recipe-row-empty .step-instruction{
  grid-column:1!important;
  grid-row:1!important;
  min-height:32px!important;
  padding:5px 2px!important;
  color:var(--text-secondary)!important;
  font-weight:600!important;
}
@media(max-width:620px){
  #drink-form.recipe-quick-entry .mise-row{
    grid-template-columns:20px minmax(0,1fr) minmax(92px,7rem) 26px!important;
    column-gap:4px!important;
  }
  #drink-form.recipe-quick-entry .step-row{
    grid-template-columns:20px 25px minmax(0,1fr) 26px!important;
    column-gap:4px!important;
  }
  #drink-form.recipe-quick-entry .recipe-row-drag-handle{
    width:20px!important;
    min-width:20px!important;
  }
}



/* v434 — Recipe editor ends with Recipe note; legacy Extra details appendix is retired. */
#drink-form.recipe-quick-entry .recipe-quick-disclosure,
#drink-form.recipe-quick-entry .recipe-quick-advanced-settings,
#drink-form.recipe-quick-entry .recipe-advanced-field,
#drink-form.recipe-quick-entry .calc-row.recipe-advanced-field{
  display:none!important;
}
#drink-form.recipe-quick-entry .recipe-note-section{
  display:block!important;
  width:100%;
  min-width:0;
  margin:0!important;
  padding:12px 0 14px!important;
  border:0!important;
  border-bottom:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#drink-form.recipe-quick-entry .recipe-note-section .section-title{
  margin-bottom:2px!important;
}
#drink-form.recipe-quick-entry .recipe-note-field{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  min-height:72px!important;
  margin:0!important;
  padding:7px 2px!important;
  border:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  resize:vertical;
  font:inherit;
  line-height:1.4;
}


/* v435 — tighter recipe document rhythm. */
#drink-form.recipe-quick-entry{
  gap:0!important;
}
#drink-form.recipe-quick-entry .wizard-card,
#drink-form.recipe-quick-entry .recipe-note-section{
  padding-top:7px!important;
  padding-bottom:8px!important;
}
#drink-form.recipe-quick-entry .section-title{
  margin-bottom:1px!important;
}
#drink-form.recipe-quick-entry .section-title h3{
  margin-bottom:1px!important;
}
#drink-form.recipe-quick-entry .section-title p{
  margin-top:0!important;
  margin-bottom:2px!important;
}
#drink-form.recipe-quick-entry #drink-ingredients-editor,
#drink-form.recipe-quick-entry #mise-en-place-editor,
#drink-form.recipe-quick-entry #preparation-steps-editor{
  gap:0!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row,
#drink-form.recipe-quick-entry .mise-row,
#drink-form.recipe-quick-entry .step-row{
  min-height:30px!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row :is(.editor-ingredient-name,.editor-ingredient-amount,.editor-ingredient-unit),
#drink-form.recipe-quick-entry .mise-row :is(.mise-name,.mise-time,.mise-notes){
  min-height:28px!important;
}
#drink-form.recipe-quick-entry .step-row .step-instruction{
  min-height:29px!important;
  padding-top:2px!important;
  padding-bottom:2px!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row .ingredient-stock-hint{
  margin:-6px 0 0 2px!important;
}
#drink-form.recipe-quick-entry .drink-ingredient-row.recipe-row-empty,
#drink-form.recipe-quick-entry .mise-row.recipe-row-empty,
#drink-form.recipe-quick-entry .step-row.recipe-row-empty{
  min-height:29px!important;
}
#drink-form.recipe-quick-entry .recipe-note-field{
  min-height:62px!important;
  padding-top:4px!important;
  padding-bottom:4px!important;
}


/* v604 — Recipes list starts on the shell-owned top line.
   Its hidden legacy toolbar must not leave list/first-group spacing behind. */
#view-recipes:not(.recipe-editing) #editor-drink-list{padding-top:0!important}
#view-recipes:not(.recipe-editing) #editor-drink-list > .content-category-heading:first-child{margin-top:0!important}

/* v436 — give the recipe document a little more breathing room below the top controls. */
#view-recipes.recipe-editing.recipe-quick-editing #menu-editor > .modal-panel{
  padding-top:52px!important;
}


/* v437 — lower recipe start, minimal trailing document padding. */
#view-recipes.recipe-editing.recipe-quick-editing #menu-editor > .modal-panel{
  padding-top:62px!important;
  padding-bottom:4px!important;
}
#drink-form.recipe-quick-entry{
  margin-bottom:0!important;
  padding-bottom:0!important;
}
#drink-form.recipe-quick-entry .recipe-note-section{
  padding-bottom:2px!important;
  margin-bottom:0!important;
}
#drink-form.recipe-quick-entry .recipe-note-field{
  margin-bottom:0!important;
}


/* v438 — Recipes page-wide options live behind ⋯ in the third bottom subheader. */
.kitcherette-recipe-bottom-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  min-width:0;
}
.kitcherette-recipe-options-button{
  flex:0 0 40px!important;
  width:40px!important;
  min-width:40px!important;
  padding:0!important;
  font-size:1.45rem!important;
  line-height:1!important;
  letter-spacing:.04em;
}
.kitcherette-recipe-page-options-menu{
  position:fixed;
  z-index:1450;
  display:grid;
  gap:2px;
  padding:8px;
  border:1px solid color-mix(in srgb,var(--border) 72%,transparent);
  border-radius:14px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  box-shadow:0 14px 34px rgba(0,0,0,.18);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.kitcherette-recipe-page-options-menu.hidden{display:none!important;}
.kitcherette-recipe-page-option{
  display:flex;
  align-items:center;
  min-height:44px;
  padding:4px 7px;
  border-radius:10px;
}
.kitcherette-recipe-page-option:hover,
.kitcherette-recipe-page-option:focus-within{
  background:color-mix(in srgb,var(--surface2) 70%,transparent);
}
.kitcherette-recipe-menu-export{
  width:100%!important;
  min-height:36px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:9px!important;
  padding:5px 4px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font:inherit!important;
}
.kitcherette-recipe-menu-export::after{
  content:attr(title);
  font-size:.84rem;
  font-weight:650;
}
.kitcherette-recipe-menu-availability{
  width:100%;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0!important;
  padding:0 4px!important;
}
.kitcherette-recipe-menu-availability .availability-switch-label{
  order:-1;
  flex:1;
  font-size:.84rem;
  font-weight:650;
}
.kitcherette-recipe-sort-option{
  justify-content:space-between;
  gap:12px;
  font-size:.84rem;
  font-weight:650;
}
.kitcherette-recipe-sort-option > span{flex:1;}
.kitcherette-recipe-sort-option [data-recipe-option-sort]{
  min-width:0;
  flex:0 1 58%;
}
.kitcherette-recipe-menu-sort{
  width:100%;
  min-width:0;
  min-height:34px;
  margin:0!important;
}
.kitcherette-header-export-slot[hidden]{display:none!important;}
@media(max-width:420px){
  .kitcherette-recipe-bottom-actions .new-recipe-button{
    min-width:0!important;
  }
}


/* v439 — keep discard confirmation clear of bottom navigation and fully visible. */
.recipe-cancel-confirm{
  align-items:center!important;
  padding:
    max(18px,env(safe-area-inset-top))
    18px
    max(96px,calc(env(safe-area-inset-bottom) + 84px))
    18px!important;
  overflow:auto!important;
}
.recipe-cancel-confirm-card{
  max-height:calc(100dvh - 130px)!important;
  overflow:auto!important;
  margin:auto!important;
}
.recipe-cancel-confirm-actions{
  position:sticky;
  bottom:0;
  z-index:1;
  padding-top:12px;
  padding-bottom:2px;
  background:linear-gradient(to bottom,transparent 0,var(--surface) 18px,var(--surface) 100%);
}
@media(max-width:700px){
  .recipe-cancel-confirm{
    align-items:center!important;
    padding:
      max(14px,env(safe-area-inset-top))
      12px
      max(110px,calc(env(safe-area-inset-bottom) + 96px))
      12px!important;
  }
  .recipe-cancel-confirm-card{
    max-height:calc(100dvh - 150px)!important;
  }
  .recipe-cancel-confirm-actions{
    grid-template-columns:1fr 1fr!important;
    margin-top:12px!important;
  }
  .recipe-cancel-confirm-actions button{
    min-height:42px!important;
  }
}
/* v443 — editor lock lives in the bottom contextual action subheader. */
body.recipe-editor-context-subnav #app-context-nav{
  grid-template-columns:minmax(0,1fr) minmax(0,.82fr) minmax(0,1.25fr) 38px!important;
}
body.recipe-editor-context-subnav #app-context-nav .app-editor-lock{
  width:34px;
  min-width:34px;
  max-width:34px;
  height:34px;
  min-height:34px;
  justify-self:center;
  align-self:center;
  padding:0!important;
  border-radius:10px;
  font-size:.9rem!important;
  line-height:1;
  opacity:.7;
}
body.recipe-editor-context-subnav #app-context-nav .app-editor-lock.is-locked,
body.recipe-editor-context-subnav #app-context-nav .app-editor-lock:focus-visible{
  opacity:1;
}
#drink-form.recipe-fields-locked :is(input,textarea,select){
  cursor:default!important;
}
#drink-form.recipe-fields-locked :is(input,textarea,select):not([type="hidden"]){
  opacity:.72;
}


/* v445 — locked Recipe editor is a clean read-only recipe view. */
#drink-form.recipe-fields-locked :is(input,textarea,select){
  pointer-events:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  caret-color:transparent!important;
}
#drink-form.recipe-fields-locked :is(input,textarea){
  cursor:default!important;
}
#drink-form.recipe-fields-locked select{
  appearance:none!important;
  -webkit-appearance:none!important;
  cursor:default!important;
}

/* Hide row-level editing affordances while the recipe is locked. */
#drink-form.recipe-fields-locked :is(
  .recipe-row-drag-handle,
  .recipe-ingredient-remove,
  .recipe-unit-conversion,
  .delete-button,
  .editor-row > button,
  .wizard-card > .section-title > button,
  #add-preparation-step
){
  display:none!important;
}

/* The inline blank rows are add controls, not recipe content. */
#drink-form.recipe-fields-locked :is(
  .drink-ingredient-row.recipe-row-empty,
  .mise-row.recipe-row-empty,
  .step-row.recipe-row-empty
){
  display:none!important;
}

/* Autocomplete/edit-only overlays must never appear in locked view. */
#drink-form.recipe-fields-locked :is(
  .ingredient-name-suggestions,
  .recipe-autocomplete-suggestions,
  [class*="autocomplete"][class*="suggest"]
){
  display:none!important;
}

/* Locked fields should read as document text rather than disabled form widgets. */
#drink-form.recipe-fields-locked :is(input,textarea,select):not([type="hidden"]){
  opacity:1!important;
}


/* v447 — compact recipe-photo attachment directly below the title. */
#drink-form .recipe-photo-field{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  margin-top:-3px;
  margin-bottom:2px;
}
#drink-form .recipe-photo-dropzone{
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:28px;
  width:auto;
  padding:3px 8px;
  border:1px dashed color-mix(in srgb,var(--border) 72%,transparent);
  border-radius:9px;
  background:color-mix(in srgb,var(--surface) 24%,transparent);
  color:var(--text-secondary);
  font:inherit;
  font-size:.72rem;
  line-height:1.1;
  cursor:pointer;
  opacity:.72;
}
#drink-form .recipe-photo-dropzone:hover,
#drink-form .recipe-photo-dropzone:focus-visible,
#drink-form .recipe-photo-dropzone.is-dragover{
  opacity:1;
  border-color:var(--text-secondary);
  background:color-mix(in srgb,var(--surface) 52%,transparent);
}
#drink-form .recipe-photo-add-icon{
  font-size:.9rem;
  line-height:1;
}
#drink-form .recipe-photo-preview-list{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
}
#drink-form .recipe-photo-preview-list::-webkit-scrollbar{display:none;}
#drink-form .recipe-photo-preview{
  position:relative;
  flex:0 0 34px;
  width:34px;
  height:34px;
  border-radius:8px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--border) 72%,transparent);
  background:var(--surface2);
}
#drink-form .recipe-photo-preview img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  user-select:none;
  -webkit-user-select:none;
}
#drink-form .recipe-photo-remove{
  position:absolute;
  top:1px;
  right:1px;
  width:15px!important;
  min-width:15px!important;
  height:15px!important;
  min-height:15px!important;
  padding:0!important;
  display:grid;
  place-items:center;
  border:0;
  border-radius:999px;
  background:rgba(15,18,20,.72);
  color:white;
  font-size:11px;
  line-height:1;
}
#drink-form .recipe-photo-primary-badge{
  position:absolute;
  left:2px;
  bottom:2px;
  max-width:29px;
  padding:1px 3px;
  border-radius:4px;
  overflow:hidden;
  background:rgba(15,18,20,.68);
  color:white;
  font-size:6px;
  line-height:1.15;
  white-space:nowrap;
}

/* Read-only recipe view shows attached photos, but no photo editing affordances. */
#drink-form.recipe-fields-locked .recipe-photo-dropzone,
#drink-form.recipe-fields-locked .recipe-photo-remove{
  display:none!important;
}
#drink-form.recipe-fields-locked .recipe-photo-preview{
  pointer-events:none!important;
}
#drink-form.recipe-fields-locked .recipe-photo-field:not(.has-photos){
  display:none!important;
}


/* v448 — recipe-view photo gallery and fullscreen-ish lightbox. */
#drink-form.recipe-fields-locked .recipe-photo-field.is-gallery-view{
  display:block!important;
  margin:5px 0 12px!important;
}
#drink-form.recipe-fields-locked .recipe-photo-field.is-gallery-view .recipe-photo-preview-list{
  display:block;
  width:100%;
  overflow:visible;
}
#drink-form .recipe-photo-viewer{
  position:relative;
  width:min(100%,560px);
  margin:0 auto;
  border-radius:14px;
  overflow:hidden;
  background:rgba(16,20,24,.08);
  box-shadow:0 4px 18px rgba(10,14,18,.08);
}
#drink-form .recipe-photo-viewer-stage{
  display:block;
  width:100%;
  height:clamp(180px,31vw,280px);
  min-height:180px;
  padding:0!important;
  border:0!important;
  border-radius:14px!important;
  overflow:hidden;
  background:rgba(16,20,24,.08)!important;
  cursor:zoom-in!important;
}
#drink-form .recipe-photo-viewer-stage img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  user-select:none;
  -webkit-user-select:none;
}
#drink-form .recipe-photo-viewer-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  width:34px!important;
  min-width:34px!important;
  height:44px!important;
  min-height:44px!important;
  padding:0!important;
  border:0!important;
  border-radius:12px!important;
  background:rgba(10,14,18,.45)!important;
  color:#fff!important;
  font-size:28px!important;
  line-height:1!important;
  opacity:.82;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
#drink-form .recipe-photo-viewer-prev{left:8px;}
#drink-form .recipe-photo-viewer-next{right:8px;}
#drink-form .recipe-photo-viewer-dots{
  position:absolute;
  left:50%;
  bottom:9px;
  transform:translateX(-50%);
  display:flex;
  gap:5px;
  z-index:3;
  padding:4px 6px;
  border-radius:999px;
  background:rgba(10,14,18,.28);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
#drink-form .recipe-photo-viewer-dot{
  width:7px!important;
  min-width:7px!important;
  height:7px!important;
  min-height:7px!important;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.48)!important;
}
#drink-form .recipe-photo-viewer-dot.active{
  background:#fff!important;
  transform:scale(1.18);
}

.recipe-photo-lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(8,11,14,.82);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.recipe-photo-lightbox.hidden{display:none!important;}
.recipe-photo-lightbox-shell{
  position:relative;
  width:min(94vw,1080px);
  height:min(88vh,820px);
  display:grid;
  place-items:center;
}
.recipe-photo-lightbox-image{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:16px;
  box-shadow:0 20px 70px rgba(0,0,0,.38);
}
.recipe-photo-lightbox-close,
.recipe-photo-lightbox-nav{
  position:absolute;
  z-index:2;
  border:0;
  color:white;
  background:rgba(16,20,24,.56);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.recipe-photo-lightbox-close{
  top:4px;
  right:4px;
  width:42px;
  height:42px;
  border-radius:999px;
  font-size:25px;
}
.recipe-photo-lightbox-nav{
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:58px;
  border-radius:14px;
  font-size:34px;
}
.recipe-photo-lightbox-prev{left:4px;}
.recipe-photo-lightbox-next{right:4px;}
.recipe-photo-lightbox-count{
  position:absolute;
  left:50%;
  bottom:7px;
  transform:translateX(-50%);
  padding:5px 9px;
  border-radius:999px;
  background:rgba(16,20,24,.55);
  color:white;
  font-size:.75rem;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.recipe-photo-lightbox.is-single .recipe-photo-lightbox-nav,
.recipe-photo-lightbox.is-single .recipe-photo-lightbox-count{display:none!important;}
body.recipe-photo-lightbox-open{overflow:hidden!important;}

@media(max-width:600px){
  #drink-form .recipe-photo-viewer{
    width:100%;
  }
  #drink-form .recipe-photo-viewer-stage{
    height:clamp(190px,56vw,260px);
  }
  .recipe-photo-lightbox{
    padding:10px;
  }
  .recipe-photo-lightbox-shell{
    width:96vw;
    height:90vh;
  }
  .recipe-photo-lightbox-nav{
    width:38px;
    height:52px;
  }
}


/* v450 — Pantry item editor follows the Recipe document-editor interaction language.
   Recipes are protected; this block is Pantry-only. */
#view-current-stock.inventory-editing .inventory-toolbar,
#ingredient-form.pantry-document-editor .inventory-wizard-nav,
#ingredient-form.pantry-document-editor > .inventory-wizard-step[data-inv-panel="3"],
#ingredient-form.pantry-document-editor > .inventory-wizard-step > .form-actions,
#ingredient-form.pantry-document-editor .form-header{
  display:none!important;
}
#ingredient-form.pantry-document-editor{
  display:flex!important;
  flex-direction:column;
  gap:0!important;
  width:min(760px,100%);
  margin:0 auto;
  padding:4px 0 calc(var(--app-bottom-chrome-height) + 22px)!important;
}
#ingredient-form.pantry-document-editor > .inventory-wizard-step[data-inv-panel="0"],
#ingredient-form.pantry-document-editor > .inventory-wizard-step[data-inv-panel="1"],
#ingredient-form.pantry-document-editor > .inventory-wizard-step[data-inv-panel="2"]{
  display:block!important;
}
#ingredient-form.pantry-document-editor .wizard-card{
  margin:0!important;
  padding:12px 0 14px!important;
  border:0!important;
  border-radius:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent)!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
#ingredient-form.pantry-document-editor .editor-section{
  border:0!important;
  padding-top:0!important;
}
#ingredient-form.pantry-document-editor .section-title{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  min-width:0!important;
  margin:0 0 7px!important;
  padding:7px 0!important;
  border:0!important;
  border-bottom:1px solid var(--border)!important;
  background:transparent!important;
}
#ingredient-form.pantry-document-editor .section-title h3{
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  font-family:inherit!important;
  font-size:.78rem!important;
  line-height:normal!important;
  font-weight:700!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  color:var(--text-secondary)!important;
}
#ingredient-form.pantry-document-editor .section-title p{display:none!important;}
#ingredient-form.pantry-document-editor .form-grid.two{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:4px 14px!important;
}
#ingredient-form.pantry-document-editor label{
  gap:2px!important;
  margin:0!important;
  padding:0!important;
  font-size:.73rem!important;
  font-weight:620!important;
  color:var(--text-secondary)!important;
}
#ingredient-form.pantry-document-editor :is(input:not([type="checkbox"]),select,textarea).kitcherette-document-field{
  width:100%!important;
  min-width:0!important;
  min-height:38px!important;
  padding:6px 2px!important;
  border:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent)!important;
  border-radius:0!important;
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
  color:var(--text-primary)!important;
}
#ingredient-form.pantry-document-editor :is(input:not([type="checkbox"]),select,textarea).kitcherette-document-field:focus{
  outline:none!important;
  border-bottom-color:color-mix(in srgb,var(--accent) 72%,var(--border))!important;
  box-shadow:none!important;
}
#ingredient-form.pantry-document-editor label.check-row{
  min-height:38px;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:9px!important;
  color:var(--text-primary)!important;
}
#ingredient-form.pantry-document-editor label.check-row input[type="checkbox"]{
  width:21px!important;
  height:21px!important;
  flex:0 0 21px;
}
#ingredient-form.pantry-document-editor .form-help{
  margin:7px 0 0!important;
  font-size:.72rem!important;
  line-height:1.35;
  opacity:.72;
}
#ingredient-form.pantry-document-editor #manage-generic-from-inventory{
  min-height:30px!important;
  padding:4px 8px!important;
  font-size:.7rem!important;
  border-radius:9px!important;
}
#ingredient-form.pantry-document-editor .pantry-editor-savebar{display:none!important;}

body.pantry-editor-context-subnav #app-context-nav{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
  padding:6px 8px!important;
}
body.pantry-editor-context-subnav #app-context-nav .app-editor-action{
  min-width:0;
  min-height:40px;
  height:40px;
  padding:6px 8px;
  border-radius:12px;
  font-size:.78rem;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}
body.pantry-editor-context-subnav #app-context-nav .app-editor-save-exit{
  background:var(--accent);
  color:var(--accent-contrast,#fff);
  border-color:transparent;
}

@media(max-width:620px){
  #ingredient-form.pantry-document-editor .form-grid.two{
    grid-template-columns:1fr!important;
    gap:3px!important;
  }
  #ingredient-form.pantry-document-editor{
    width:100%;
  }
}


/* v452 — Menu View/Edit mode mirrors the Recipe view/edit distinction.
   The protected Recipe subsystem is untouched. */
#view-expected-orders [data-rest-menu-lock],
#view-expected-orders .rest-menu-title-lock{
  display:none!important;
}
body[data-kitcherette-third-view="expected-orders"] #app-context-nav [data-menu-mode]{
  min-width:0;
  min-height:40px;
  height:40px;
  border-radius:12px;
  font-size:.78rem;
  font-weight:700;
}
#view-expected-orders .menu-editor-locked .rest-menu-name-display,
#view-expected-orders .menu-editor-locked .rest-menu-description-display,
#view-expected-orders .menu-editor-locked .rest-section-heading-display{
  cursor:default!important;
}


/* v455 — Recipe dietary/allergen indicators. */
#drink-form.recipe-quick-entry .recipe-diet-section{
  order:1;
  margin:0!important;
  padding:12px 0 14px!important;
  border:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent)!important;
  background:transparent!important;
  box-shadow:none!important;
}
#drink-form.recipe-quick-entry .recipe-diet-section .section-title{margin-bottom:7px!important}
#drink-form.recipe-quick-entry .recipe-dietary-row,
#drink-form.recipe-quick-entry .recipe-allergen-editor{
  display:grid;
  gap:6px;
  margin-top:7px;
}
#drink-form.recipe-quick-entry .recipe-dietary-label{
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-secondary);
}
#drink-form.recipe-quick-entry .recipe-dietary-options,
#drink-form.recipe-quick-entry .recipe-allergen-options{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
#drink-form.recipe-quick-entry .recipe-diet-choice,
#drink-form.recipe-quick-entry .recipe-allergen-options label{
  position:relative;
  display:inline-flex!important;
  align-items:center!important;
  gap:0!important;
  margin:0!important;
  padding:0!important;
  color:var(--text-primary)!important;
  font:inherit!important;
}
#drink-form.recipe-quick-entry .recipe-diet-choice input,
#drink-form.recipe-quick-entry .recipe-allergen-options input{
  position:absolute!important;
  opacity:0!important;
  pointer-events:none;
}
#drink-form.recipe-quick-entry .recipe-diet-choice span,
#drink-form.recipe-quick-entry .recipe-allergen-options label span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:4px 9px;
  border:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  border-radius:999px;
  background:transparent;
  color:var(--text-secondary);
  font-size:.72rem;
  font-weight:650;
  cursor:pointer;
  user-select:none;
}
#drink-form.recipe-quick-entry .recipe-diet-choice input:checked + span{
  border-color:color-mix(in srgb,var(--accent) 46%,var(--border));
  background:color-mix(in srgb,var(--accent) 11%,transparent);
  color:var(--text-primary);
}
#drink-form.recipe-quick-entry .recipe-allergen-options input:checked + span{
  border-color:color-mix(in srgb,#a95f19 48%,var(--border));
  background:color-mix(in srgb,#d97706 12%,transparent);
  color:var(--text-primary);
}
#drink-form.recipe-quick-entry .recipe-allergen-note{
  color:var(--text-secondary);
  font-size:.68rem;
  line-height:1.35;
  opacity:.74;
}
#drink-form.recipe-fields-locked .recipe-diet-choice input:not(:checked) + span,
#drink-form.recipe-fields-locked .recipe-allergen-options input:not(:checked) + span{
  display:none!important;
}
#drink-form.recipe-fields-locked .recipe-diet-choice input:checked + span,
#drink-form.recipe-fields-locked .recipe-allergen-options input:checked + span{
  cursor:default;
  pointer-events:none;
}
#drink-form.recipe-fields-locked #recipe-diet-unspecified:checked + span{
  display:none!important;
}
#drink-form.recipe-fields-locked .recipe-allergen-note{display:none!important}

.recipe-indicators{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:5px;
}
.recipe-indicator{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 6px;
  border:1px solid color-mix(in srgb,var(--border) 64%,transparent);
  border-radius:999px;
  font-size:.62rem;
  line-height:1.1;
  font-weight:720;
  color:var(--text-secondary);
  background:color-mix(in srgb,var(--surface) 55%,transparent);
}
.recipe-indicator-vegetarian,
.recipe-indicator-vegan{
  color:#27663c;
  border-color:rgba(75,145,91,.28);
  background:rgba(223,242,226,.46);
}
.recipe-indicator-meat,
.recipe-indicator-fish{
  color:var(--text-primary);
}
.recipe-indicator-allergen{
  color:#8a5117;
  border-color:rgba(190,116,35,.28);
  background:rgba(247,230,202,.46);
}
body.dark-mode .recipe-indicator-vegetarian,
body.dark-mode .recipe-indicator-vegan{color:#a9ddb4;background:rgba(52,108,64,.26)}
body.dark-mode .recipe-indicator-allergen{color:#f0c88f;background:rgba(133,78,23,.25)}

@media(max-width:620px){
  #drink-form.recipe-quick-entry .recipe-dietary-options,
  #drink-form.recipe-quick-entry .recipe-allergen-options{gap:5px}
  #drink-form.recipe-quick-entry .recipe-diet-choice span,
  #drink-form.recipe-quick-entry .recipe-allergen-options label span{
    min-height:29px;
    padding:4px 8px;
    font-size:.69rem;
  }
}


/* v457 — Work > Preparation operational workflow. Scoped to Work only. */
#view-service .work-prep-v457{max-width:980px;margin:0 auto;padding:.35rem .15rem 6rem}
#view-service .work-prep-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:.15rem 0 .7rem}
#view-service .work-prep-head h2{margin:.12rem 0 0;font-size:1.45rem}
#view-service .work-prep-head select{width:min(340px,46vw);min-height:42px}
#view-service .work-prep-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;border:1px solid color-mix(in srgb,var(--border) 72%,transparent);background:color-mix(in srgb,var(--surface) 76%,transparent);border-radius:15px;position:sticky;top:58px;z-index:8;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
#view-service .work-prep-tabs button{position:relative;min-width:0;min-height:43px;border:0;border-radius:11px;background:transparent;color:var(--text-secondary);font:inherit;font-size:.78rem;font-weight:760;padding:.5rem .35rem}
#view-service .work-prep-tabs button.active{background:var(--surface);color:var(--text-primary);box-shadow:0 2px 10px rgba(0,0,0,.08)}
#view-service .work-prep-tabs button small{position:absolute;right:5px;top:4px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:var(--primary-color);color:#fff;font-size:.6rem}
#view-service .work-prep-panel{margin-top:.7rem}
#view-service .work-prep-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:.7rem 0 1rem}
#view-service .work-prep-summary>div{display:grid;grid-template-columns:auto 1fr;align-items:end;column-gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 82%,transparent)}
#view-service .work-prep-summary small{grid-column:1/-1;color:var(--text-secondary);font-size:.68rem;text-transform:uppercase;font-weight:800;letter-spacing:.06em}
#view-service .work-prep-summary strong{font-size:1.65rem;line-height:1}
#view-service .work-prep-summary span{font-size:.75rem;color:var(--text-secondary);padding-bottom:2px}
#view-service .work-prep-summary .is-warning{border-color:rgba(190,116,35,.42)}
#view-service .work-prep-summary .is-ok{border-color:rgba(56,142,85,.34)}
#view-service .work-prep-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem;margin:1rem 1px .45rem}
#view-service .work-prep-section-title h3{margin:0;font-size:1rem}
#view-service .work-prep-section-title p{margin:.15rem 0 0;color:var(--text-secondary);font-size:.73rem}
#view-service .work-plan-dishes,#view-service .work-stock-list,#view-service .work-check-list,#view-service .work-order-dishes,#view-service .work-ticket-list{display:flex;flex-direction:column;gap:6px}
#view-service .work-plan-dish,#view-service .work-stock-row,#view-service .work-order-dish,#view-service .work-ticket-link{border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--surface) 75%,transparent);border-radius:13px}
#view-service .work-plan-dish{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 10px 10px 13px}
#view-service .work-plan-dish.is-short{border-color:rgba(190,116,35,.45)}
#view-service .work-plan-dish-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
#view-service .work-plan-dish-copy strong{font-size:.95rem}
#view-service .work-plan-dish-copy small{font-size:.67rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#view-service .work-plan-dish-copy span{font-size:.68rem;font-weight:700}
#view-service .is-ok{color:var(--success,#388e55)}
#view-service .is-warning{color:#a86100}
#view-service .work-qty-stepper,#view-service .work-order-qty{display:flex;align-items:center;gap:4px}
#view-service .work-qty-stepper button,#view-service .work-order-qty button{width:34px;height:34px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:inherit;font-size:1.15rem}
#view-service .work-qty-stepper input{width:52px;height:34px;text-align:center;padding:3px;border-radius:9px}
#view-service .work-stock-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:9px 12px}
#view-service .work-stock-row>div{display:flex;flex-direction:column}
#view-service .work-stock-row small,#view-service .work-stock-row span{font-size:.7rem;color:var(--text-secondary)}
#view-service .work-stock-row b{min-width:58px;text-align:right;font-size:.76rem}
#view-service .work-mise-progress{display:flex;align-items:center;gap:12px;margin:.75rem 0 1rem}
#view-service .work-mise-progress strong{font-size:.8rem;white-space:nowrap}
#view-service .work-mise-progress>span{height:7px;flex:1;border-radius:999px;background:color-mix(in srgb,var(--border) 60%,transparent);overflow:hidden}
#view-service .work-mise-progress i{display:block;height:100%;background:var(--primary-color);border-radius:inherit}
#view-service .work-check-row,#view-service .work-action-row{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--surface) 75%,transparent);border-radius:13px;color:inherit}
#view-service .work-check-row>input,#view-service .work-action-row>input{position:absolute;opacity:0;pointer-events:none}
#view-service .work-check-box{width:27px;height:27px;border:2px solid color-mix(in srgb,var(--text-primary) 68%,transparent);border-radius:8px;display:grid;place-items:center}
#view-service input:checked + .work-check-box::after{content:"✓";font-weight:900;font-size:1rem}
#view-service .work-check-row.is-done,#view-service .work-action-row.is-done{opacity:.52}
#view-service .work-check-row.is-done .work-check-copy strong,#view-service .work-action-row.is-done strong{text-decoration:line-through}
#view-service .work-check-row.is-warning{border-color:rgba(190,116,35,.45)}
#view-service .work-check-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
#view-service .work-check-copy small,#view-service .work-check-copy em{font-size:.69rem;color:var(--text-secondary);font-style:normal}
#view-service .work-order-builder-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:.8rem 0}
#view-service .work-order-builder-head h3{margin:0}
#view-service .work-order-builder-head p{margin:.15rem 0 0;color:var(--text-secondary);font-size:.73rem}
#view-service .work-order-builder-head label{display:flex;flex-direction:column;gap:3px;font-size:.68rem;color:var(--text-secondary);font-weight:700}
#view-service .work-order-builder-head input{width:110px;min-height:40px}
#view-service .work-order-dish{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:4px 7px 4px 4px}
#view-service .work-order-dish-main{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:0;background:transparent;color:inherit;padding:8px 9px;min-width:0}
#view-service .work-order-dish-main strong{font-size:.94rem}
#view-service .work-order-dish-main small{font-size:.68rem;color:var(--text-secondary)}
#view-service .work-order-qty strong{min-width:22px;text-align:center}
#view-service .work-order-send{position:sticky;bottom:72px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;margin:.65rem 0 1rem;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(12px);z-index:5}
#view-service .work-order-send span{font-size:.78rem;font-weight:700}
#view-service .work-ticket-link{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;color:inherit;padding:10px 12px}
#view-service .work-ticket-link>span{display:flex;flex-direction:column;gap:2px;min-width:0}
#view-service .work-ticket-link small{font-size:.68rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#view-service .work-ticket-link b{font-size:1.25rem}
#view-service .work-prepare-board{display:flex;flex-direction:column;gap:10px}
#view-service .work-kitchen-ticket{border:1px solid var(--border);border-radius:15px;background:color-mix(in srgb,var(--surface) 82%,transparent);overflow:hidden}
#view-service .work-kitchen-ticket.is-now{border-color:rgba(190,116,35,.5)}
#view-service .work-kitchen-ticket.is-ready{border-color:rgba(56,142,85,.52)}
#view-service .work-kitchen-ticket>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent)}
#view-service .work-kitchen-ticket>header>div{display:flex;flex-direction:column;gap:3px;min-width:0}
#view-service .work-kitchen-ticket>header span{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-weight:800}
#view-service .work-kitchen-ticket>header strong{font-size:.85rem}
#view-service .work-kitchen-ticket>header time{font-size:.72rem;color:var(--text-secondary)}
#view-service .work-ticket-target{display:flex;justify-content:space-between;align-items:center;padding:7px 13px;font-size:.72rem}
#view-service .work-action-zone{padding:8px 10px 4px}
#view-service .work-action-zone h4{margin:0 0 5px 2px;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}
#view-service .work-action-zone.is-now h4{color:#a86100}
#view-service .work-action-row{grid-template-columns:27px minmax(0,1fr) auto;margin-bottom:5px;padding:8px 9px;background:color-mix(in srgb,var(--surface) 88%,transparent)}
#view-service .work-action-row>span:nth-of-type(2){display:flex;flex-direction:column;gap:2px}
#view-service .work-action-row small{font-size:.67rem;color:var(--text-secondary)}
#view-service .work-action-row time{font-size:.68rem;font-weight:800;color:var(--text-secondary)}
#view-service .work-kitchen-ticket>footer{display:flex;justify-content:flex-end;padding:8px 10px 10px}
#view-service .work-prepare-empty{text-align:center;padding:3rem 1rem}
#view-service .work-prepare-empty>span{font-size:2.2rem}
#view-service .work-prepare-empty h3{margin:.5rem 0 .2rem}
#view-service .work-prepare-empty p{margin:0 0 1rem;color:var(--text-secondary)}
@media(max-width:620px){
  #view-service .work-prep-v457{padding-left:.05rem;padding-right:.05rem}
  #view-service .work-prep-head{align-items:flex-start}
  #view-service .work-prep-head select{width:46vw;font-size:.8rem}
  #view-service .work-prep-tabs{top:53px}
  #view-service .work-prep-tabs button{font-size:.68rem;padding:.48rem .15rem}
  #view-service .work-plan-dish{grid-template-columns:minmax(0,1fr) auto}
  #view-service .work-stock-row{grid-template-columns:minmax(0,1fr) auto}
  #view-service .work-stock-row>span{display:none}
  #view-service .work-order-builder-head{align-items:flex-start}
  #view-service .work-order-builder-head input{width:92px}
  #view-service .work-action-row{grid-template-columns:27px minmax(0,1fr)}
  #view-service .work-action-row time{grid-column:2}
}


/* v458 — Work Overview categories. Scoped to Work overview only. */
#view-work .work-overview-shell{
  max-width:980px;
  margin:0 auto;
  padding:14px 14px 110px;
}
#view-work .work-overview-header{
  margin:2px 2px 14px;
}
#view-work .work-overview-header h2{
  margin:3px 0 4px;
  font-size:1.35rem;
}
#view-work .work-overview-header p{
  margin:0;
  max-width:42rem;
  color:var(--text-secondary);
  font-size:.8rem;
  line-height:1.45;
}
#view-work .work-category-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:0 0 18px;
}
#view-work .work-category-card{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  min-height:88px;
  padding:13px 14px;
  border:1px solid color-mix(in srgb,var(--border) 72%,transparent);
  border-radius:17px;
  background:color-mix(in srgb,var(--surface) 78%,transparent);
  color:var(--text-primary);
  text-align:left;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 3px 14px rgba(0,0,0,.045);
}
#view-work .work-category-card:hover,
#view-work .work-category-card:focus-visible{
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  border-color:var(--border);
}
#view-work .work-category-card:active{transform:scale(.985)}
#view-work .work-category-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:color-mix(in srgb,var(--surface2) 68%,transparent);
  font-size:1.35rem;
}
#view-work .work-category-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
#view-work .work-category-copy strong{
  font-size:.96rem;
  line-height:1.2;
}
#view-work .work-category-copy small{
  color:var(--text-secondary);
  font-size:.71rem;
  line-height:1.35;
}
#view-work .work-category-arrow{
  font-size:1.45rem;
  color:var(--text-secondary);
  opacity:.72;
}
#view-work .work-overview-location{
  margin-top:4px;
  background:color-mix(in srgb,var(--surface) 70%,transparent);
  border:1px solid color-mix(in srgb,var(--border) 64%,transparent);
}
#view-work .work-overview-location h3{
  margin:4px 0;
  font-size:1rem;
}
#view-work .work-overview-location p{
  margin:0;
  color:var(--text-secondary);
  font-size:.74rem;
}
@media(max-width:620px){
  #view-work .work-overview-shell{padding-left:10px;padding-right:10px}
  #view-work .work-category-grid{grid-template-columns:1fr}
  #view-work .work-category-card{min-height:82px}
}


/* v460 — Work Preparation navigation lives in the shared third bottom subheader. */
#view-service .work-prep-head,
#view-service .work-prep-tabs{display:none!important}
#view-service .work-prep-menu-row{
  display:flex;
  justify-content:flex-end;
  margin:.2rem 0 .5rem;
}
#view-service .work-prep-menu-row select{
  width:min(340px,62vw);
  min-height:42px;
}
#view-service .work-prep-summary-single{
  grid-template-columns:minmax(0,1fr);
}
.kitcherette-third-subheader .kitcherette-third-work-scroller{
  width:100%;
  display:flex;
  align-items:center;
  gap:4px;
  overflow-x:auto;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.kitcherette-third-subheader .kitcherette-third-work-scroller::-webkit-scrollbar{display:none}
.kitcherette-third-subheader .kitcherette-third-work-tab{
  flex:1 0 auto;
  min-width:max-content;
  min-height:38px;
  padding:7px 12px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--text-secondary);
  font:inherit;
  font-size:.76rem;
  font-weight:740;
  white-space:nowrap;
}
.kitcherette-third-subheader .kitcherette-third-work-tab.active{
  background:color-mix(in srgb,var(--surface) 90%,transparent);
  color:var(--text-primary);
  box-shadow:0 2px 9px rgba(0,0,0,.07);
}
#view-work .work-category-grid{margin-top:2px}
@media(max-width:620px){
  #view-service .work-prep-menu-row{justify-content:stretch}
  #view-service .work-prep-menu-row select{width:100%}
  .kitcherette-third-subheader .kitcherette-third-work-tab{padding-left:10px;padding-right:10px;font-size:.72rem}
}


/* v461 — manual dish selection and scaled coherent steps in Work > Prepare. */
#view-service .work-prepare-toolbar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin:.75rem 0;
  padding:11px 12px;
  border:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  border-radius:14px;
  background:color-mix(in srgb,var(--surface) 76%,transparent);
}
#view-service .work-prepare-toolbar h3{margin:0;font-size:1rem}
#view-service .work-prepare-toolbar p{margin:.18rem 0 0;color:var(--text-secondary);font-size:.72rem}
#view-service .work-prepare-selector{
  margin:.5rem 0 .85rem;
  padding:10px;
  border:1px solid var(--border);
  border-radius:15px;
  background:color-mix(in srgb,var(--surface) 86%,transparent);
}
#view-service .work-prepare-select-list{display:flex;flex-direction:column;gap:6px}
#view-service .work-prepare-select-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:9px 10px;
  border:1px solid color-mix(in srgb,var(--border) 64%,transparent);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface) 72%,transparent);
}
#view-service .work-prepare-select-row>div:first-child{display:flex;flex-direction:column;gap:2px}
#view-service .work-prepare-select-row small{font-size:.68rem;color:var(--text-secondary)}
#view-service .work-prepare-selector-actions{
  position:sticky;
  bottom:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:9px;
  padding:8px 9px;
  border:1px solid var(--border);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  backdrop-filter:blur(10px);
}
#view-service .work-prepare-selector-actions span{font-size:.75rem;font-weight:700}
#view-service .work-prepare-manual-run{
  margin:.65rem 0 1rem;
  padding:0 0 10px;
  border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent);
}
#view-service .work-prepare-amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
#view-service .work-prepare-amount-card{
  padding:10px 11px;
  border:1px solid color-mix(in srgb,var(--border) 68%,transparent);
  border-radius:13px;
  background:color-mix(in srgb,var(--surface) 76%,transparent);
}
#view-service .work-prepare-amount-card header{margin-bottom:6px}
#view-service .work-prepare-amount-card>div{display:flex;flex-direction:column;gap:3px}
#view-service .work-prepare-amount-card span{font-size:.72rem;line-height:1.35;color:var(--text-secondary)}
#view-service .work-prepare-amount-card span b{color:var(--text-primary)}
#view-service .work-ticket-section-title{margin-top:1.2rem}
#view-service .work-prepare-manual-empty{padding:1.5rem .75rem}
@media(max-width:620px){
  #view-service .work-prepare-toolbar{align-items:center}
  #view-service .work-prepare-toolbar p{display:none}
  #view-service .work-prepare-amounts{grid-template-columns:1fr}
}


/* v567 recipe prose fields: compact initially, grow with multiline content. */
#drink-form textarea.recipe-multiline-field{
  box-sizing:border-box;
  width:100%;
  min-height:48px;
  overflow-y:hidden;
  resize:none;
  white-space:pre-wrap;
  line-height:1.4;
}
#drink-form .mise-row textarea.mise-name,
#drink-form .mise-row textarea.mise-notes,
#drink-form .step-row textarea.step-instruction,
#drink-form .step-row textarea.step-notes{
  align-self:stretch;
}

/* v607 — Recipe editor visual refinement only. Layout/navigation/savebar behavior unchanged. */
#view-recipes.recipe-editing #drink-form.recipe-quick-entry{
  font-family:var(--font-family,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-name>span,
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-basic>span,
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .section-title h3{
  letter-spacing:.01em!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry #drink-name{
  min-height:42px!important;
  padding:6px 4px!important;
  font:700 1.28rem/1.2 var(--font-family,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)!important;
  letter-spacing:-.015em!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .form-grid.two{
  row-gap:7px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-basic{
  margin:0!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-basic>span{
  margin-bottom:3px!important;
  color:var(--text-secondary);
  font-size:.72rem!important;
  font-weight:650!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry :is(.category-field,#drink-base-yield,#drink-total-time){
  font-family:inherit!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry :is(#drink-category,#drink-base-yield,#drink-total-time){
  min-height:36px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
  border-color:color-mix(in srgb,var(--border) 82%,var(--text-secondary) 18%)!important;
  background:color-mix(in srgb,var(--surface) 42%,transparent)!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-photo-field{
  margin-top:-1px!important;margin-bottom:1px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-photo-dropzone{
  min-height:31px;padding:4px 10px;border-color:color-mix(in srgb,var(--border) 82%,var(--text-secondary) 18%);
  background:color-mix(in srgb,var(--surface) 38%,transparent);color:var(--text-primary);font-weight:650;opacity:.88;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .section-title h3{
  font-size:.92rem!important;font-weight:720!important;letter-spacing:.015em!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .section-title p{
  font-size:.72rem!important;line-height:1.3!important;opacity:.78;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .drink-ingredient-row{
  padding:3px 0!important;
  border-bottom-color:color-mix(in srgb,var(--border) 48%,transparent)!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .drink-ingredient-row :is(input,select){
  border:1px solid transparent!important;border-radius:7px!important;background:color-mix(in srgb,var(--surface) 22%,transparent)!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .drink-ingredient-row :is(input,select):hover,
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .drink-ingredient-row :is(input,select):focus{
  border-color:color-mix(in srgb,var(--border) 76%,var(--text-secondary) 24%)!important;
  background:color-mix(in srgb,var(--surface) 56%,transparent)!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry :is(input,textarea,select)::placeholder{
  color:color-mix(in srgb,var(--text-secondary) 88%,var(--text-primary) 12%)!important;opacity:.82!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-diet-section{
  padding-top:7px!important;padding-bottom:8px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry :is(.recipe-dietary-options,.recipe-allergen-options){
  display:flex!important;flex-wrap:wrap!important;gap:5px 6px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-dietary-row,
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-allergen-editor{
  gap:6px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-diet-choice span,
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-allergen-options label span{
  min-height:27px!important;padding:3px 8px!important;font-size:.69rem!important;
}



/* v611 — Recipe editor portions/time row only. */
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-metadata-row{
  grid-column:1 / -1!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  min-width:0!important;
  margin:1px 0 0!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-metadata-row .recipe-quick-basic{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  min-width:0!important;
  margin:0!important;
  white-space:nowrap!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-metadata-row :is(#drink-base-yield,#drink-total-time){
  box-sizing:border-box!important;
  width:48px!important;
  min-width:48px!important;
  height:32px!important;
  min-height:32px!important;
  padding:3px 6px!important;
  border:1px solid color-mix(in srgb,var(--border) 72%,var(--text-secondary) 28%)!important;
  border-radius:7px!important;
  background:color-mix(in srgb,var(--surface) 30%,transparent)!important;
  font:650 .86rem/1 var(--font-family,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)!important;
  text-align:center!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-metadata-row :is(#drink-base-yield,#drink-total-time):focus{
  border-color:color-mix(in srgb,var(--accent) 58%,var(--border))!important;
  background:color-mix(in srgb,var(--surface) 48%,transparent)!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-metadata-row .recipe-quick-basic::after{
  font-size:.78rem!important;
  font-weight:550!important;
}

/* v609 — Recipe creation category + preparation-time placement only. */
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .mise-row:not(.recipe-row-empty){
  grid-template-columns:20px minmax(0,1fr) 26px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .mise-row:not(.recipe-row-empty) .mise-name{
  grid-column:2!important;
  grid-row:1!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .mise-row:not(.recipe-row-empty) .mise-meta{
  grid-column:2!important;
  grid-row:2!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:3px!important;
  padding:1px 2px 4px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-step-time-field{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:7px!important;
  min-width:0!important;
  color:var(--text-secondary)!important;
  font-size:.68rem!important;
  font-weight:620!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-step-time-control{
  display:inline-flex!important;
  align-items:baseline!important;
  gap:3px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-step-time-control :is(.mise-time,.step-time){
  display:block!important;
  width:3.4ch!important;
  min-width:0!important;
  min-height:25px!important;
  padding:1px 2px!important;
  text-align:right!important;
  font-size:.78rem!important;
  font-weight:700!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-step-time-control small{
  font-size:.66rem!important;
  font-weight:560!important;
  color:var(--text-secondary)!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .mise-row .mise-notes{
  display:none!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry.recipe-quick-advanced .mise-row .mise-notes{
  display:block!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .step-row:not(.recipe-row-empty){
  grid-template-columns:20px 25px minmax(0,1fr) 26px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .step-row:not(.recipe-row-empty) .step-instruction{
  grid-column:3!important;
  grid-row:1!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .step-row:not(.recipe-row-empty) .step-time-field{
  grid-column:3!important;
  grid-row:2!important;
  width:max-content!important;
  padding:0 2px 4px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .step-row:not(.recipe-row-empty) .step-time{
  grid-column:auto!important;
  grid-row:auto!important;
}


/* v612 — ingredient-owned dietary/allergen information in Recipe ingredient rows. */
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-ingredient-diet-info{
  grid-column:3 / -1!important;display:flex!important;align-items:center!important;gap:6px!important;
  min-width:0!important;margin:-2px 0 3px!important;padding:0 2px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-ingredient-diet-info.hidden{display:none!important;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-ingredient-diet-text{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);
  font-size:.68rem;line-height:1.25;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-ingredient-diet-edit{
  flex:0 0 auto;border:0;background:transparent;color:var(--accent);padding:1px 3px;font:650 .68rem/1.2 inherit;
}
.recipe-ingredient-diet-dialog{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.34);}
.recipe-ingredient-diet-dialog.hidden{display:none!important;}
.recipe-ingredient-diet-panel{width:min(94vw,520px);max-height:86vh;overflow:auto;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 18px 48px rgba(0,0,0,.24);}
.recipe-ingredient-diet-panel h3{margin:0 0 3px;}
.recipe-ingredient-diet-name{margin:0 0 12px;color:var(--text-secondary);font-weight:650;}
.recipe-ingredient-diet-panel>label{display:grid;gap:4px;margin:8px 0;}
.recipe-ingredient-allergen-grid{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0;}
.recipe-ingredient-allergen-grid>strong{flex:0 0 100%;font-size:.78rem;}
.recipe-ingredient-allergen-grid label{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid var(--border);border-radius:999px;font-size:.72rem;}
.ingredient-dietary-editor{display:grid;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);}
.ingredient-allergen-options{display:flex;flex-wrap:wrap;gap:6px;}
.ingredient-allergen-options>span{flex:0 0 100%;font-size:.78rem;font-weight:700;}
.ingredient-allergen-options label{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;}

#view-recipes.recipe-editing #recipe-diet-section.recipe-diet-additional-collapsed :is(.recipe-dietary-row,.recipe-allergen-editor){display:none!important;}
#view-recipes.recipe-editing #recipe-diet-section #recipe-additional-diet-toggle{flex:0 0 auto;font-size:.7rem;padding:4px 7px;}

#view-recipes.recipe-editing .recipe-ingredient-derived-dietary{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0 3px;padding:0 2px;}
#view-recipes.recipe-editing .recipe-ingredient-derived-dietary.hidden{display:none!important;}

/* v623 — inline facts for genuinely new Recipe ingredients. */
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .drink-ingredient-row.recipe-new-ingredient-open{
  margin:2px -5px 5px!important;padding:7px 5px 8px!important;border-radius:10px;
  background:color-mix(in srgb,var(--accent) 7%,var(--surface) 26%)!important;
  border-bottom-color:color-mix(in srgb,var(--accent) 28%,var(--border))!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-info{
  grid-column:2 / -1!important;display:grid;gap:7px;margin:3px 0 1px;padding:8px 9px;
  border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-radius:9px;
  background:color-mix(in srgb,var(--surface) 52%,transparent);
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-info.hidden{display:none!important;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-info-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-info-head strong{font-size:.73rem;color:var(--text-secondary);font-weight:700;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-done{min-height:30px!important;padding:4px 13px!important;font-size:.75rem!important;font-weight:750!important;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-diet{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.7rem;color:var(--text-secondary);}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-diet select{width:auto;min-height:29px!important;padding:3px 7px!important;font-size:.72rem!important;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-allergens{display:flex;flex-wrap:wrap;gap:5px;align-items:center;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-allergens>span{flex:0 0 100%;font-size:.68rem;color:var(--text-secondary);font-weight:700;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-allergens label{display:inline-flex;align-items:center;gap:3px;padding:3px 6px;border:1px solid color-mix(in srgb,var(--border) 76%,transparent);border-radius:999px;font-size:.67rem;color:var(--text-secondary);background:color-mix(in srgb,var(--surface) 40%,transparent);}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-allergens label:has(input:checked){border-color:color-mix(in srgb,var(--accent) 44%,var(--border));color:var(--text-primary);background:color-mix(in srgb,var(--accent) 10%,var(--surface));}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-allergens input{width:13px!important;height:13px!important;min-height:0!important;margin:0!important;}

/* v624 — one inline dietary/allergen editor; compact button pills, no checkbox chrome. */
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-ingredient-diet-edit{
  min-height:27px;padding:4px 9px!important;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));
  border-radius:999px;background:color-mix(in srgb,var(--surface) 66%,transparent);font-weight:700;cursor:pointer;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-ingredient-diet-edit:active{transform:translateY(1px);}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-diet{display:grid;justify-content:stretch;gap:5px;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-diet>span,
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-allergens>span{font-size:.68rem;color:var(--text-secondary);font-weight:700;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-ingredient-pill-group,
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-allergens{display:flex;flex-wrap:wrap;gap:5px;align-items:center;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-new-ingredient-allergens>span{flex:0 0 100%;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-fact-pill{
  appearance:none;min-height:27px!important;margin:0!important;padding:4px 8px!important;border:1px solid color-mix(in srgb,var(--border) 76%,transparent)!important;
  border-radius:999px!important;background:color-mix(in srgb,var(--surface) 40%,transparent)!important;color:var(--text-secondary)!important;
  font:650 .68rem/1.15 inherit!important;cursor:pointer;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-fact-pill.is-selected{
  border-color:color-mix(in srgb,var(--accent) 48%,var(--border))!important;background:color-mix(in srgb,var(--accent) 12%,var(--surface))!important;color:var(--text-primary)!important;
}


/* v462 — Work > Prepare uses the Recipe document visual language.
   Deliberately Work-scoped: no Recipe selectors or Recipe layout rules are modified. */
#view-service .work-prepare-board{
  width:min(100%,760px);
  margin:.5rem auto 0;
  padding:14px 16px calc(var(--app-bottom-chrome-height,132px) + 26px);
  color:var(--text-primary);
  background:transparent;
}

/* Prepare page title/action reads like the Recipe document title area. */
#view-service .work-prepare-board .work-prepare-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:12px;
  margin:0;
  padding:2px 0 15px;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
#view-service .work-prepare-board .work-prepare-toolbar h3{
  margin:0;
  padding:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.7rem,6vw,2.15rem);
  line-height:1.05;
  font-weight:700;
}
#view-service .work-prepare-board .work-prepare-toolbar p{
  max-width:34rem;
  margin:5px 0 0;
  color:var(--text-secondary);
  font-size:.76rem;
  line-height:1.4;
}
#view-service .work-prepare-board .work-prepare-toolbar .primary-button{
  min-height:36px;
  padding:6px 10px;
  border-radius:9px;
  font-size:.76rem;
}

/* Shared document-section heading treatment, copied visually rather than reusing
   Recipe selectors so future Recipe changes remain isolated. */
#view-service .work-prepare-board .work-prep-section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
  margin:12px 0 5px;
  padding:7px 0;
  border:0;
  border-bottom:1px solid var(--border);
  background:transparent;
}
#view-service .work-prepare-board .work-prep-section-title h3{
  min-width:0;
  margin:0;
  padding:0;
  font-family:inherit;
  font-size:.78rem;
  line-height:normal;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--text-secondary);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#view-service .work-prepare-board .work-prep-section-title p{
  display:none;
}
#view-service .work-prepare-board .work-prep-section-title>strong{
  color:var(--text-secondary);
  font-size:.75rem;
  font-weight:700;
}

/* Dish selection becomes a clean document list rather than a stack of cards. */
#view-service .work-prepare-board .work-prepare-selector{
  margin:0;
  padding:10px 0 14px;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
#view-service .work-prepare-board .work-prepare-select-list{
  display:grid;
  gap:0;
}
#view-service .work-prepare-board .work-prepare-select-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-height:42px;
  margin:0;
  padding:4px 0;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--border) 30%,transparent);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
#view-service .work-prepare-board .work-prepare-select-row>div:first-child{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}
#view-service .work-prepare-board .work-prepare-select-row strong{
  font-size:.96rem;
  line-height:1.25;
  font-weight:600;
}
#view-service .work-prepare-board .work-prepare-select-row small{
  color:var(--text-secondary);
  font-size:.68rem;
}
#view-service .work-prepare-board .work-prepare-select-row .work-qty-stepper{
  display:grid;
  grid-template-columns:30px 3.1rem 30px;
  align-items:center;
  gap:2px;
}
#view-service .work-prepare-board .work-prepare-select-row .work-qty-stepper button{
  width:30px;
  min-width:30px;
  height:30px;
  min-height:30px;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text-secondary);
  box-shadow:none;
}
#view-service .work-prepare-board .work-prepare-select-row .work-qty-stepper button:hover,
#view-service .work-prepare-board .work-prepare-select-row .work-qty-stepper button:focus-visible{
  background:color-mix(in srgb,var(--surface2) 72%,transparent);
  color:var(--text-primary);
}
#view-service .work-prepare-board .work-prepare-select-row .work-qty-stepper input{
  width:100%;
  min-height:30px;
  padding:2px 1px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  text-align:center;
  color:var(--text-primary);
  font-size:.95rem;
  font-weight:700;
}
#view-service .work-prepare-board .work-prepare-selector-actions{
  position:static;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:9px 0 0;
  padding:4px 0 0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

/* Selected dishes / ingredient amounts read like Recipe ingredient lines. */
#view-service .work-prepare-board .work-prepare-manual-run{
  margin:0;
  padding:0 0 14px;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent);
}
#view-service .work-prepare-board .work-prepare-amounts{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
}
#view-service .work-prepare-board .work-prepare-amount-card{
  margin:0;
  padding:9px 0 6px;
  border:0;
  border-radius:0;
  border-bottom:1px solid color-mix(in srgb,var(--border) 30%,transparent);
  background:transparent;
  box-shadow:none;
}
#view-service .work-prepare-board .work-prepare-amount-card header{
  margin:0 0 4px;
  padding:0;
}
#view-service .work-prepare-board .work-prepare-amount-card header strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.05rem;
  line-height:1.25;
  font-weight:700;
}
#view-service .work-prepare-board .work-prepare-amount-card>div{
  display:grid;
  gap:0;
}
#view-service .work-prepare-board .work-prepare-amount-card span{
  display:grid;
  grid-template-columns:5.1rem minmax(0,1fr);
  align-items:baseline;
  gap:7px;
  min-height:32px;
  padding:5px 2px;
  border-bottom:1px solid color-mix(in srgb,var(--border) 22%,transparent);
  color:var(--text-primary);
  font-size:.91rem;
  line-height:1.3;
}
#view-service .work-prepare-board .work-prepare-amount-card span:last-child{
  border-bottom:0;
}
#view-service .work-prepare-board .work-prepare-amount-card span b{
  text-align:right;
  color:var(--text-primary);
  font-weight:700;
}

/* Method/actions read like Recipe method rows instead of checklist cards. */
#view-service .work-prepare-board .work-action-zone{
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
#view-service .work-prepare-board .work-action-zone h4{
  margin:10px 0 2px;
  padding:5px 0;
  border:0;
  color:var(--text-secondary);
  font-size:.7rem;
  line-height:1;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
#view-service .work-prepare-board .work-action-row{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) auto;
  align-items:start;
  column-gap:7px;
  row-gap:0;
  min-height:40px;
  margin:0;
  padding:4px 0;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--border) 30%,transparent);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
#view-service .work-prepare-board .work-action-row .work-check-box{
  width:26px;
  min-width:26px;
  height:26px;
  min-height:26px;
  margin-top:1px;
  border:1px solid color-mix(in srgb,var(--border) 76%,transparent);
  border-radius:999px;
  background:transparent;
}
#view-service .work-prepare-board .work-action-row>span:nth-of-type(2){
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:2px;
}
#view-service .work-prepare-board .work-action-row>span:nth-of-type(2)>strong{
  font-size:.95rem;
  line-height:1.35;
  font-weight:520;
}
#view-service .work-prepare-board .work-action-row>span:nth-of-type(2)>small{
  color:var(--text-secondary);
  font-size:.74rem;
  line-height:1.35;
}
#view-service .work-prepare-board .work-action-row time{
  padding-top:6px;
  color:var(--text-secondary);
  font-size:.68rem;
  font-weight:650;
  white-space:nowrap;
}
#view-service .work-prepare-board .work-action-row.is-done{
  opacity:.46;
}
#view-service .work-prepare-board .work-action-row.is-done strong{
  text-decoration:line-through;
}

/* Empty Prepare state is plain document content. */
#view-service .work-prepare-board .work-prepare-empty{
  margin:0;
  padding:28px 0 24px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  text-align:left;
}
#view-service .work-prepare-board .work-prepare-empty>span{
  display:none;
}
#view-service .work-prepare-board .work-prepare-empty h3{
  margin:0 0 4px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.18rem;
}
#view-service .work-prepare-board .work-prepare-empty p{
  margin:0;
  max-width:34rem;
  color:var(--text-secondary);
  font-size:.78rem;
  line-height:1.45;
}

/* Service tickets use the same restrained document hierarchy. */
#view-service .work-prepare-board .work-kitchen-ticket{
  margin:0;
  padding:10px 0 13px;
  border:0;
  border-radius:0;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent);
  background:transparent;
  box-shadow:none;
}
#view-service .work-prepare-board .work-kitchen-ticket>header{
  padding:0;
  border:0;
  background:transparent;
}
#view-service .work-prepare-board .work-kitchen-ticket>header strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.05rem;
  line-height:1.25;
}
#view-service .work-prepare-board .work-ticket-target{
  margin:6px 0 2px;
  padding:5px 0;
  border:0;
  border-radius:0;
  border-top:1px solid color-mix(in srgb,var(--border) 22%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--border) 22%,transparent);
  background:transparent;
}
#view-service .work-prepare-board .work-kitchen-ticket footer{
  display:flex;
  justify-content:flex-end;
  padding-top:9px;
}

@media(max-width:620px){
  #view-service .work-prepare-board{
    padding-left:10px;
    padding-right:10px;
  }
  #view-service .work-prepare-board .work-prepare-toolbar{
    grid-template-columns:minmax(0,1fr) auto;
  }
  #view-service .work-prepare-board .work-prepare-toolbar p{
    display:none;
  }
  #view-service .work-prepare-board .work-prepare-select-row{
    grid-template-columns:minmax(0,1fr) auto;
  }
  #view-service .work-prepare-board .work-prepare-amount-card span{
    grid-template-columns:4.7rem minmax(0,1fr);
  }
}


/* v499 — one document-sheet presentation owner for Preparation + Service.
   Plan, Shopping, Stock, Mise en place, Orders, Open tickets and Service tickets
   now use exactly the same background box geometry and glass treatment. */
#view-service .work-prep-document,
#view-stock-orders .work-prep-document{
  width:min(100%,760px);
  margin:.5rem auto 0;
  padding:14px 16px calc(var(--app-bottom-chrome-height,132px) + 26px);
  color:var(--text-primary);
  background:color-mix(in srgb,var(--surface) 72%,transparent);
  border:1px solid color-mix(in srgb,var(--border) 42%,transparent);
  border-radius:16px;
  box-shadow:0 10px 30px rgba(0,0,0,.06);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  overflow:visible;
}
body.dark-mode #view-service .work-prep-document,
body.dark-mode #view-stock-orders .work-prep-document{
  background:color-mix(in srgb,var(--surface) 66%,transparent);
  border-color:color-mix(in srgb,var(--border) 38%,transparent);
}
@media(max-width:620px){
  #view-service .work-prep-document,
  #view-stock-orders .work-prep-document{
    padding-left:10px;
    padding-right:10px;
    border-left:1px solid color-mix(in srgb,var(--border) 42%,transparent);
    border-right:1px solid color-mix(in srgb,var(--border) 42%,transparent);
    border-radius:16px;
    margin-left:8px;
    margin-right:8px;
    width:calc(100% - 16px);
  }
}


/* v467 — Work > Plan > Plan menu activation grid.
   Plan only: compact, equal-width menu buttons replace the dropdown. */
#view-service .work-plan-menu-grid{
  width:min(100%,760px);
  margin:.5rem auto .55rem;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(0,1fr));
  gap:6px;
}
#view-service .work-plan-menu-tab{
  width:100%;
  min-width:0;
  height:auto;
  min-height:0;
  padding:7px 10px;
  border:1px solid color-mix(in srgb,var(--border) 54%,transparent);
  border-radius:10px;
  background:color-mix(in srgb,var(--surface) 58%,transparent);
  color:var(--text-secondary);
  box-shadow:none;
  font:inherit;
  font-size:.78rem;
  line-height:1.15;
  font-weight:700;
  text-align:center;
  white-space:normal;
}
#view-service .work-plan-menu-tab.active{
  background:color-mix(in srgb,var(--surface) 86%,transparent);
  color:var(--text-primary);
  border-color:color-mix(in srgb,var(--accent) 34%,var(--border));
  box-shadow:0 2px 8px rgba(0,0,0,.05);
}
#view-service .work-plan-menu-tab:hover,
#view-service .work-plan-menu-tab:focus-visible{
  color:var(--text-primary);
  background:color-mix(in srgb,var(--surface) 78%,transparent);
}
@media(max-width:620px){
  #view-service .work-plan-menu-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding-inline:10px;
  }
}


/* v468 — Work > Plan menu selector belongs to the Plan document only. */
#view-service .work-prep-panel .work-plan-menu-section{
  margin:-2px 0 14px;
  padding:0 0 12px;
  border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent);
}
#view-service .work-prep-panel .work-plan-menu-section .work-prep-section-title{margin-top:0}
#view-service .work-prep-panel .work-plan-menu-grid{
  width:100%;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:6px;
}
#view-service .work-prep-panel .work-plan-menu-tab{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
  min-width:0;
  min-height:0;
  height:auto;
  padding:7px 10px;
  border:1px solid color-mix(in srgb,var(--border) 54%,transparent);
  border-radius:9px;
  background:color-mix(in srgb,var(--surface) 48%,transparent);
  color:var(--text-secondary);
  box-shadow:none;
  font:inherit;
  font-size:.78rem;
  line-height:1.15;
  font-weight:700;
  text-align:center;
}
#view-service .work-prep-panel .work-plan-menu-tab.active{
  border:2px solid color-mix(in srgb,var(--accent) 72%,var(--text-primary));
  padding:6px 9px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  color:var(--text-primary);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent),0 3px 10px rgba(0,0,0,.08);
}
#view-service .work-prep-panel .work-plan-menu-tab.active::before{
  content:"✓";
  display:inline-grid;
  place-items:center;
  width:16px;
  height:16px;
  min-width:16px;
  border-radius:999px;
  background:var(--accent);
  color:white;
  font-size:.62rem;
  line-height:1;
  font-weight:900;
}
#view-service .work-prep-panel .work-plan-menu-tab:hover,
#view-service .work-prep-panel .work-plan-menu-tab:focus-visible{
  background:color-mix(in srgb,var(--surface) 78%,transparent);
  color:var(--text-primary);
}
@media(max-width:620px){
  #view-service .work-prep-panel .work-plan-menu-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* v469 — active Plan menu can be toggled off. */
#view-service .work-prep-panel .work-plan-menu-active-note{
  margin:7px 1px 0;
  color:var(--text-secondary);
  font-size:.72rem;
  line-height:1.25;
}


/* v470 sheet geometry consolidated into the v499 work-prep-document owner. */


/* v470 — compact contextual info bubbles for Work > Plan > Plan. */
#view-service .work-plan-menu-control{
  display:flex;
  align-items:flex-start;
  gap:7px;
}
#view-service .work-plan-menu-control .work-plan-menu-grid{
  flex:1 1 auto;
  min-width:0;
}
#view-service .work-prep-section-title-with-info{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:7px;
}
#view-service .work-info-bubble{
  position:relative;
  flex:0 0 auto;
}
#view-service .work-info-bubble > summary{
  list-style:none;
  display:inline-grid;
  place-items:center;
  width:20px;
  height:20px;
  padding:0;
  border:1px solid color-mix(in srgb,var(--border) 62%,transparent);
  border-radius:999px;
  background:color-mix(in srgb,var(--surface) 72%,transparent);
  color:var(--text-secondary);
  font-size:.72rem;
  line-height:1;
  font-weight:800;
  font-family:Georgia,"Times New Roman",serif;
  cursor:pointer;
  user-select:none;
}
#view-service .work-info-bubble > summary::-webkit-details-marker{display:none}
#view-service .work-info-bubble[open] > summary{
  color:var(--text-primary);
  border-color:color-mix(in srgb,var(--accent) 58%,var(--border));
  background:color-mix(in srgb,var(--surface) 94%,transparent);
}
#view-service .work-info-popover{
  position:absolute;
  z-index:30;
  top:calc(100% + 7px);
  right:0;
  width:min(280px,calc(100vw - 38px));
  padding:10px 11px;
  border:1px solid color-mix(in srgb,var(--border) 45%,transparent);
  border-radius:11px;
  background:color-mix(in srgb,var(--surface) 96%,transparent);
  box-shadow:0 10px 28px rgba(0,0,0,.14);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
#view-service .work-info-popover strong{
  display:block;
  margin:0 0 3px;
  font-size:.78rem;
  line-height:1.2;
}
#view-service .work-info-popover p{
  margin:0;
  color:var(--text-secondary);
  font-size:.74rem;
  line-height:1.35;
}
#view-service .work-plan-menu-section{
  overflow:visible;
}


/* v471 — Plan help placement refinement. */
#view-service .work-prep-section-title-with-info{
  width:100%;
  justify-content:space-between;
}
#view-service .work-prep-section-title-with-info .work-info-right{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
}

/* v472 — Work > Prepare > Table layout. */
#view-service .work-table-layout-page{display:flex;flex-direction:column;gap:14px}
#view-service .work-table-layout-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
#view-service .work-table-layout-head h3{margin:0;font-size:1rem}
#view-service .work-table-layout-head p{margin:4px 0 0;color:var(--text-secondary);font-size:.76rem;line-height:1.35}
#view-service .work-table-areas{display:flex;flex-direction:column;gap:12px}
#view-service .work-table-area{border:1px solid color-mix(in srgb,var(--border) 48%,transparent);border-radius:14px;padding:11px;background:color-mix(in srgb,var(--surface) 46%,transparent)}
#view-service .work-table-area-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
#view-service .work-table-area-name{flex:1 1 auto;min-width:0;border:0;border-bottom:1px solid color-mix(in srgb,var(--border) 48%,transparent);border-radius:0;background:transparent;padding:4px 2px;font:inherit;font-weight:800;color:var(--text-primary)}
#view-service .work-table-area-remove{min-width:32px;width:32px;height:32px;padding:0}
#view-service .work-table-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:7px}
#view-service .work-table-chip{display:flex;align-items:center;gap:4px;min-width:0;border:1px solid color-mix(in srgb,var(--border) 48%,transparent);border-radius:10px;background:color-mix(in srgb,var(--surface) 70%,transparent);padding:4px 5px 4px 8px}
#view-service .work-table-chip input{width:100%;min-width:0;border:0;background:transparent;padding:4px 0;font:inherit;font-size:.78rem;font-weight:700;color:var(--text-primary)}
#view-service .work-table-chip button{flex:0 0 24px;width:24px;height:24px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--text-secondary)}
#view-service .work-table-add{min-height:38px;border:1px dashed color-mix(in srgb,var(--border) 62%,transparent);border-radius:10px;background:transparent;color:var(--text-secondary);font:inherit;font-size:.76rem;font-weight:750}
#view-service .work-table-layout-empty{padding:22px 12px;text-align:center;border:1px dashed color-mix(in srgb,var(--border) 55%,transparent);border-radius:14px}
#view-service .work-table-layout-empty p{margin:0 0 10px;color:var(--text-secondary);font-size:.8rem}
@media(max-width:620px){#view-service .work-table-layout-head{align-items:stretch;flex-direction:column}#view-service .work-table-layout-head .primary-button{align-self:flex-start}#view-service .work-table-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v473 — spatial floor-plan editor for Work > Prepare > Table layout. */
#view-service .work-table-layout-page{gap:12px}
#view-service .work-floor-plan{
  position:relative;
  width:100%;
  min-height:560px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--border) 48%,transparent);
  border-radius:16px;
  background:
    linear-gradient(color-mix(in srgb,var(--border) 12%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--border) 12%,transparent) 1px,transparent 1px),
    color-mix(in srgb,var(--surface) 48%,transparent);
  background-size:24px 24px;
  touch-action:none;
}
#view-service .work-floor-area{
  position:absolute;
  min-width:150px;
  min-height:120px;
  border:2px solid color-mix(in srgb,var(--accent) 26%,var(--border));
  border-radius:16px;
  background:color-mix(in srgb,var(--surface) 74%,transparent);
  box-shadow:0 8px 22px rgba(0,0,0,.07);
  overflow:hidden;
}
#view-service .work-floor-area-head{
  display:flex;
  align-items:center;
  gap:5px;
  min-height:34px;
  padding:5px 6px 5px 9px;
  border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  cursor:grab;
  touch-action:none;
}
#view-service .work-floor-area-head:active{cursor:grabbing}
#view-service .work-floor-area-head input{
  flex:1 1 auto;
  min-width:0;
  border:0;
  background:transparent;
  padding:2px;
  font:inherit;
  font-size:.78rem;
  font-weight:850;
  color:var(--text-primary);
}
#view-service .work-floor-area-head button{
  flex:0 0 27px;
  width:27px;height:27px;padding:0;
  border:0;border-radius:8px;
  background:transparent;color:var(--text-secondary);
}
#view-service .work-floor-table-layer{position:absolute;inset:35px 0 0}
#view-service .work-floor-table{
  position:absolute;
  display:flex;
  align-items:center;
  gap:3px;
  width:96px;
  min-height:42px;
  padding:4px;
  border:1px solid color-mix(in srgb,var(--border) 56%,transparent);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  box-shadow:0 3px 9px rgba(0,0,0,.08);
  transform:translate(0,0);
}
#view-service .work-floor-table input{
  width:100%;min-width:0;
  border:0;background:transparent;
  padding:2px;
  text-align:center;
  font:inherit;font-size:.72rem;font-weight:800;
  color:var(--text-primary);
}
#view-service .work-floor-table-drag{
  flex:0 0 18px;width:18px;height:30px;padding:0;
  border:0;background:transparent;color:var(--text-secondary);
  cursor:grab;touch-action:none;
}
#view-service .work-floor-table-remove{
  flex:0 0 20px;width:20px;height:20px;padding:0;
  border:0;border-radius:6px;background:transparent;color:var(--text-secondary);
}
#view-service .work-floor-area-resize{
  position:absolute;
  right:2px;bottom:2px;
  width:22px;height:22px;
  padding:0;border:0;background:transparent;
  cursor:nwse-resize;touch-action:none;
}
#view-service .work-floor-area-resize::after{
  content:"";
  position:absolute;
  right:3px;bottom:3px;
  width:10px;height:10px;
  border-right:2px solid color-mix(in srgb,var(--text-secondary) 65%,transparent);
  border-bottom:2px solid color-mix(in srgb,var(--text-secondary) 65%,transparent);
}
#view-service .work-floor-empty{
  position:absolute;inset:0;
  display:grid;place-content:center;justify-items:center;
  padding:24px;text-align:center;
}
#view-service .work-floor-empty p{margin:0 0 10px;color:var(--text-secondary);font-size:.8rem}
#view-service .work-floor-hint{margin:0;color:var(--text-secondary);font-size:.72rem;line-height:1.3}
@media(max-width:620px){
  #view-service .work-floor-plan{min-height:520px}
  #view-service .work-floor-area{min-width:128px;min-height:108px}
  #view-service .work-floor-table{width:84px;min-height:38px}
}


/* v474 — larger mobile workspace for spatial table layout. */
#view-service .work-floor-scroll{
  width:100%;
  overflow:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  border-radius:16px;
}
#view-service .work-floor-scroll .work-floor-plan{
  min-width:760px;
  min-height:600px;
}
@media(max-width:620px){
  #view-service .work-table-layout-page{
    padding-left:8px;
    padding-right:8px;
  }
  #view-service .work-floor-scroll{
    margin-inline:-2px;
    padding-bottom:8px;
  }
  #view-service .work-floor-scroll .work-floor-plan{
    width:900px;
    min-width:900px;
    height:680px;
    min-height:680px;
  }
  #view-service .work-floor-area{
    min-width:160px;
    min-height:126px;
  }
  #view-service .work-floor-table{
    width:96px;
    min-height:42px;
  }
}
@media(max-width:420px){
  #view-service .work-floor-scroll .work-floor-plan{
    width:960px;
    min-width:960px;
    height:720px;
    min-height:720px;
  }
}


/* v475 — restore mobile interaction: canvas pans, dedicated handles drag. */
#view-service .work-floor-scroll{
  touch-action:pan-x pan-y;
}
#view-service .work-floor-scroll .work-floor-plan{
  touch-action:pan-x pan-y;
}
#view-service .work-floor-area-head{
  cursor:default;
  touch-action:auto;
}
#view-service .work-floor-area-drag{
  flex:0 0 24px;
  width:24px;
  height:28px;
  padding:0;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--text-secondary);
  cursor:grab;
  touch-action:none;
  user-select:none;
}
#view-service .work-floor-area-drag:active,
#view-service .work-floor-table-drag:active{
  cursor:grabbing;
}
#view-service .work-floor-table-drag,
#view-service .work-floor-area-resize{
  touch-action:none;
}
@media(max-width:620px){
  #view-service .work-floor-area-drag{
    width:30px;
    height:32px;
    flex-basis:30px;
    font-size:1rem;
  }
  #view-service .work-floor-table-drag{
    width:24px;
    flex-basis:24px;
  }
  #view-service .work-floor-area-resize{
    width:30px;
    height:30px;
  }
}

/* v476 — POS-style draw-on table layout editor. */
#view-service .work-pos-layout{gap:10px}
#view-service .work-pos-topbar{display:flex;flex-direction:column;gap:8px}
#view-service .work-pos-area-tabs{display:flex;gap:6px;overflow-x:auto;padding:1px 0 3px;scrollbar-width:none}
#view-service .work-pos-area-tabs::-webkit-scrollbar{display:none}
#view-service .work-pos-area-tab,#view-service .work-pos-area-add{flex:0 0 auto;min-height:36px;padding:7px 12px;border:1px solid color-mix(in srgb,var(--border) 48%,transparent);border-radius:10px;background:color-mix(in srgb,var(--surface) 64%,transparent);color:var(--text-secondary);font:inherit;font-size:.76rem;font-weight:800}
#view-service .work-pos-area-tab.active{color:var(--text-primary);border-color:color-mix(in srgb,var(--accent) 68%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
#view-service .work-pos-area-edit{display:flex;gap:6px}
#view-service .work-pos-area-edit input{flex:1 1 auto;min-width:0;border:1px solid color-mix(in srgb,var(--border) 45%,transparent);border-radius:9px;padding:7px 9px;background:color-mix(in srgb,var(--surface) 62%,transparent);color:var(--text-primary);font:inherit;font-size:.76rem;font-weight:750}
#view-service .work-pos-area-edit button{width:34px;height:34px;padding:0}
#view-service .work-pos-toolbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
#view-service .work-pos-toolbar button{min-width:0;min-height:48px;padding:5px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid color-mix(in srgb,var(--border) 46%,transparent);border-radius:10px;background:color-mix(in srgb,var(--surface) 64%,transparent);color:var(--text-secondary);font:inherit;font-size:1rem;font-weight:850}
#view-service .work-pos-toolbar button span{font-size:.62rem;font-weight:750;line-height:1.05}
#view-service .work-pos-toolbar button.active{color:var(--text-primary);border-color:color-mix(in srgb,var(--accent) 68%,var(--border));background:color-mix(in srgb,var(--surface) 90%,transparent)}
#view-service .work-pos-canvas-wrap{width:100%;overflow:auto;border-radius:14px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
#view-service .work-pos-canvas{position:relative;width:920px;height:650px;min-width:920px;min-height:650px;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 48%,transparent);border-radius:14px;background:linear-gradient(color-mix(in srgb,var(--border) 11%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--border) 11%,transparent) 1px,transparent 1px),color-mix(in srgb,var(--surface) 45%,transparent);background-size:24px 24px;touch-action:pan-x pan-y}
#view-service .work-pos-canvas.is-drawing{cursor:crosshair}
#view-service .work-pos-block{position:absolute;min-width:64px;min-height:46px;border:2px solid color-mix(in srgb,var(--accent) 24%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 4px 12px rgba(0,0,0,.08);user-select:none}
#view-service .work-pos-block.is-round{border-radius:999px}
#view-service .work-pos-block.is-counter{border-radius:8px;background:color-mix(in srgb,var(--surface) 76%,transparent)}
#view-service .work-pos-block.is-label{border-style:dashed;background:transparent;box-shadow:none}
#view-service .work-pos-block-body{position:absolute;inset:0;display:grid;place-items:center;padding:7px 24px 7px 7px;cursor:grab;touch-action:none}
#view-service .work-pos-block-body:active{cursor:grabbing}
#view-service .work-pos-block input{width:100%;min-width:0;border:0;background:transparent;padding:2px;text-align:center;color:var(--text-primary);font:inherit;font-size:.72rem;font-weight:850}
#view-service .work-pos-block-remove{position:absolute;right:3px;top:3px;z-index:2;width:22px;height:22px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--text-secondary)}
#view-service .work-pos-block-resize{position:absolute;right:1px;bottom:1px;z-index:2;width:24px;height:24px;padding:0;border:0;background:transparent;touch-action:none;cursor:nwse-resize}
#view-service .work-pos-block-resize::after{content:"";position:absolute;right:4px;bottom:4px;width:9px;height:9px;border-right:2px solid color-mix(in srgb,var(--text-secondary) 60%,transparent);border-bottom:2px solid color-mix(in srgb,var(--text-secondary) 60%,transparent)}
@media(max-width:620px){#view-service .work-pos-layout{padding-left:6px;padding-right:6px}#view-service .work-pos-canvas{width:1000px;min-width:1000px;height:720px;min-height:720px}#view-service .work-pos-toolbar button{min-height:52px}#view-service .work-pos-block-remove{width:26px;height:26px}#view-service .work-pos-block-resize{width:30px;height:30px}}


/* v477 — mobile-first POS floor planner. */
#view-service .work-pos-selection-bar{
  display:flex;
  gap:7px;
  align-items:center;
}
#view-service .work-pos-selection-bar input{
  flex:1 1 auto;
  min-width:0;
  min-height:40px;
  padding:8px 10px;
  border:1px solid color-mix(in srgb,var(--border) 48%,transparent);
  border-radius:10px;
  background:color-mix(in srgb,var(--surface) 72%,transparent);
  color:var(--text-primary);
  font:inherit;
  font-size:.8rem;
  font-weight:750;
}
#view-service .work-pos-block.is-selected{
  border-color:color-mix(in srgb,var(--accent) 78%,var(--border));
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent),0 5px 14px rgba(0,0,0,.10);
}
#view-service .work-pos-block-body span{
  display:block;
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:center;
  color:var(--text-primary);
  font-size:.72rem;
  font-weight:850;
}
@media(max-width:620px){
  #view-service .work-table-layout-page.work-pos-layout{
    width:100%;
    margin-left:0;
    margin-right:0;
    padding:8px 6px calc(var(--app-bottom-chrome-height,132px) + 16px);
    border-radius:14px;
  }
  #view-service .work-pos-topbar{
    gap:6px;
  }
  #view-service .work-pos-area-tabs{
    padding-bottom:2px;
  }
  #view-service .work-pos-area-tab,
  #view-service .work-pos-area-add{
    min-height:40px;
    padding:8px 13px;
  }
  #view-service .work-pos-toolbar{
    position:sticky;
    top:4px;
    z-index:12;
    grid-template-columns:repeat(5,minmax(58px,1fr));
    gap:4px;
    padding:5px;
    margin:0 -2px;
    overflow-x:auto;
    border:1px solid color-mix(in srgb,var(--border) 34%,transparent);
    border-radius:12px;
    background:color-mix(in srgb,var(--surface) 88%,transparent);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }
  #view-service .work-pos-toolbar button{
    min-height:48px;
    padding:4px 2px;
  }
  #view-service .work-pos-canvas-wrap{
    overflow:hidden;
    width:100%;
    border-radius:12px;
  }
  #view-service .work-pos-canvas{
    width:100% !important;
    min-width:0 !important;
    height:clamp(430px,58vh,620px) !important;
    min-height:430px !important;
    border-radius:12px;
    background-size:20px 20px;
    touch-action:none;
  }
  #view-service .work-pos-block{
    min-width:58px;
    min-height:44px;
  }
  #view-service .work-pos-block-body{
    padding:6px 18px 6px 6px;
    touch-action:none;
  }
  #view-service .work-pos-block-body span{
    font-size:.68rem;
  }
  #view-service .work-pos-block-resize{
    width:28px;
    height:28px;
  }
  #view-service .work-pos-selection-bar{
    position:sticky;
    bottom:calc(var(--app-bottom-chrome-height,132px) + 8px);
    z-index:13;
    padding:6px;
    border:1px solid color-mix(in srgb,var(--border) 40%,transparent);
    border-radius:12px;
    background:color-mix(in srgb,var(--surface) 92%,transparent);
    box-shadow:0 8px 22px rgba(0,0,0,.12);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }
  #view-service .work-floor-hint{
    padding:0 2px;
  }
}


/* v480 — keep all five primary bottom-navigation labels visible. */
#app-primary-nav button .app-nav-label{
  display:block;
  min-height:1em;
  max-width:100%;
  opacity:1;
  visibility:visible;
}
@media(max-width:390px){
  #app-primary-nav button .app-nav-label{
    font-size:8px;
    letter-spacing:-.01em;
  }
}


/* v481 — Preparation uses one five-item contextual bottom subheader. */
#app-context-nav[style*="--context-subnav-count: 5"],
#app-context-nav[style*="--context-subnav-count:5"]{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:2px;
  padding-inline:5px;
}
#app-context-nav[style*="--context-subnav-count: 5"] button,
#app-context-nav[style*="--context-subnav-count:5"] button{
  padding-inline:2px;
  font-size:clamp(.54rem,2vw,.68rem);
  line-height:1.05;
  white-space:normal;
  text-wrap:balance;
}


/* v482 — Service splits order entry and kitchen ticket views into four direct sub-tabs. */
#app-context-nav[style*="--context-subnav-count: 4"],
#app-context-nav[style*="--context-subnav-count:4"]{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:2px;
  padding-inline:5px;
}
#app-context-nav[style*="--context-subnav-count: 4"] button,
#app-context-nav[style*="--context-subnav-count:4"] button{
  padding-inline:2px;
  font-size:clamp(.55rem,2.15vw,.7rem);
  line-height:1.05;
  white-space:normal;
  text-wrap:balance;
}


/* v483 — Menu owns Table layout; edit state is controlled by a compact lock in the shared third subheader. */
body[data-kitcherette-third-view="expected-orders"] #app-context-nav [data-menu-page]{
  min-width:0;min-height:40px;height:40px;border-radius:12px;font-size:.78rem;font-weight:700;
}
#kitcherette-third-subheader .kitcherette-third-menu-selector{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;min-width:0}
#kitcherette-third-subheader .kitcherette-third-menu-selector .kitcherette-third-menu-scroller{min-width:0}
#kitcherette-third-subheader .kitcherette-third-menu-lock{
  width:36px;height:36px;min-width:36px;padding:0;border:1px solid var(--kitcherette-bottom-header-border);border-radius:10px;background:transparent;color:var(--text-primary);display:grid;place-items:center;font-size:.92rem;
}
#kitcherette-third-subheader .kitcherette-third-menu-lock.is-locked{background:var(--surface2)}

/* v756 — one Menu selector in the shared subheader; the list owns switching,
   creation and canonical menu-order drag/drop without crowding the bottom chrome. */
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader{
  background:transparent;
  border-color:transparent;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-selector-single{
  display:flex;justify-content:center;width:100%;
}
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-picker{
  width:min(100%,320px);min-width:0;min-height:42px;padding:7px 15px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border:1px solid color-mix(in srgb,var(--border) 62%,transparent);border-radius:999px;
  background:color-mix(in srgb,var(--surface) 74%,transparent);color:var(--text-primary);
  box-shadow:0 4px 14px rgba(22,31,27,.065);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font:inherit;font-size:.82rem;font-weight:740;text-align:left;
}
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-picker-label{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-picker-chevron{
  flex:0 0 auto;font-size:1.05rem;color:var(--text-secondary);transform:translateY(-1px);
}
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-picker[aria-expanded="true"]{
  border-color:color-mix(in srgb,var(--accent,var(--kitcherette-accent,#6d8878)) 48%,var(--border));
  background:color-mix(in srgb,var(--accent,var(--kitcherette-accent,#6d8878)) 13%,var(--surface));
}
/* Table-layout area tabs keep the compact independent-pill presentation. */
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-scroller{gap:8px;padding-inline:2px}
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-tab,
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-new{
  min-height:38px;border:1px solid color-mix(in srgb,var(--border) 62%,transparent);border-radius:999px!important;
  background:color-mix(in srgb,var(--surface) 70%,transparent);box-shadow:0 4px 14px rgba(22,31,27,.055);
  backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);
}
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-tab{padding:7px 14px}
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-tab.active{
  border-color:color-mix(in srgb,var(--accent,var(--kitcherette-accent,#6d8878)) 48%,var(--border));
  background:color-mix(in srgb,var(--accent,var(--kitcherette-accent,#6d8878)) 13%,var(--surface));color:var(--text-primary);
}
body[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader .kitcherette-third-menu-new{width:38px;min-width:38px;padding:0;font-size:1.05rem}
body.dark-mode[data-kitcherette-third-view="expected-orders"] #kitcherette-third-subheader :is(.kitcherette-third-menu-picker,.kitcherette-third-menu-tab,.kitcherette-third-menu-new){box-shadow:none}

#menu-modal.rest-menu-selector-popover{z-index:1400!important;display:block!important;pointer-events:none!important}
#menu-modal.rest-menu-selector-popover .pantry-modal-backdrop{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;pointer-events:auto!important}
#menu-modal.rest-menu-selector-popover .pantry-modal-panel{
  position:fixed!important;inset:auto!important;left:var(--rest-menu-selector-left,12px)!important;top:var(--rest-menu-selector-top,12px)!important;
  width:min(360px,calc(100vw - 24px))!important;max-height:min(62vh,520px)!important;overflow:visible!important;
  padding:10px!important;border:1px solid color-mix(in srgb,var(--border) 74%,transparent)!important;border-radius:18px!important;
  background:color-mix(in srgb,var(--surface) 92%,transparent)!important;box-shadow:0 14px 36px rgba(0,0,0,.18)!important;
  backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important;pointer-events:auto!important;
}
#menu-modal.rest-menu-selector-popover .pantry-modal-panel::after{
  content:"";position:absolute;left:var(--rest-menu-selector-arrow-left,24px);top:-6px;width:10px;height:10px;transform:rotate(45deg);
  background:color-mix(in srgb,var(--surface) 92%,transparent);border-left:1px solid color-mix(in srgb,var(--border) 74%,transparent);border-top:1px solid color-mix(in srgb,var(--border) 74%,transparent);
}
#menu-modal.rest-menu-selector-popover.opens-above .pantry-modal-panel::after{top:auto;bottom:-6px;transform:rotate(225deg)}
#menu-modal.rest-menu-selector-popover .pantry-sheet-header{margin:0 0 5px!important;padding:2px 4px 5px!important;align-items:center!important}
#menu-modal.rest-menu-selector-popover .pantry-sheet-header [data-menu-kicker]{display:none!important}
#menu-modal.rest-menu-selector-popover .pantry-sheet-header h2{margin:0!important;font-size:.92rem!important;font-weight:760!important}
#menu-modal.rest-menu-selector-popover .pantry-sheet-header .icon-button{width:30px!important;height:30px!important;min-height:30px!important;border:0!important;background:transparent!important;font-size:1.05rem!important}
.rest-menu-selector-sheet{display:grid;gap:7px;min-width:0}
.rest-menu-selector-list{display:grid;gap:4px;max-height:min(42vh,340px);overflow:auto;padding:1px;overscroll-behavior:contain}
.rest-menu-selector-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:2px;min-height:48px;border-radius:12px;background:transparent;transition:transform .12s ease,background .12s ease}
.rest-menu-selector-row.is-current{background:color-mix(in srgb,var(--accent,var(--kitcherette-accent,#6d8878)) 10%,transparent)}
.rest-menu-selector-choice{min-width:0;width:100%;min-height:46px;padding:9px 10px;border:0;background:transparent;color:var(--text-primary);display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font:inherit;font-size:.86rem;font-weight:700;border-radius:11px}
.rest-menu-selector-choice>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rest-menu-selector-choice:hover,.rest-menu-selector-choice:focus-visible{background:color-mix(in srgb,var(--surface2) 78%,transparent);outline:none}
.rest-menu-selector-state{flex:0 0 auto;color:var(--accent,var(--kitcherette-accent,#6d8878));font-weight:800}
.rest-menu-selector-drag{width:34px;height:40px;display:grid;place-items:center;border-radius:10px;color:var(--text-secondary);font-size:1rem;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.rest-menu-selector-drag:active{cursor:grabbing;background:color-mix(in srgb,var(--surface2) 75%,transparent)}
.rest-menu-selector-add{width:100%;min-height:44px;padding:9px 12px;border:0;border-top:1px solid color-mix(in srgb,var(--border) 58%,transparent);background:transparent;color:var(--text-primary);font:inherit;font-size:.84rem;font-weight:760;text-align:left;border-radius:10px}
.rest-menu-selector-add:hover,.rest-menu-selector-add:focus-visible{background:color-mix(in srgb,var(--surface2) 78%,transparent);outline:none}
.rest-menu-selector-placeholder{border-radius:12px;background:color-mix(in srgb,var(--accent,var(--kitcherette-accent,#6d8878)) 8%,transparent);border:1px dashed color-mix(in srgb,var(--accent,var(--kitcherette-accent,#6d8878)) 35%,transparent)}
.rest-menu-selector-row.is-menu-selector-dragging{background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:0 12px 26px rgba(0,0,0,.18);transform:scale(1.015);pointer-events:none}
body.menu-selector-reordering{user-select:none;-webkit-user-select:none}
body.dark-mode #menu-modal.rest-menu-selector-popover .pantry-modal-panel{background:color-mix(in srgb,var(--surface) 94%,transparent)!important}
@media(prefers-reduced-motion:reduce){.rest-menu-selector-row{transition:none}}

#view-expected-orders>.work-prep-panel.work-table-layout-page{margin:8px 0 18px}

/* v487 — Service ticket dish links open the shared locked recipe viewer. */
#view-service .work-service-tickets-page .work-ticket-recipe-list{display:flex;flex-direction:column;gap:2px;margin-top:2px}
#view-service .work-service-tickets-page .work-ticket-recipe-link{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:3px 0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}
#view-service .work-service-tickets-page .work-ticket-recipe-link strong{font-size:.85rem}
#view-service .work-service-tickets-page .work-ticket-recipe-link>span{font-size:1rem;color:var(--text-secondary)}


/* v504 — Pantry + Add uses the same compact anchored balloon language as + New recipe. */
#pantry-add-choice.pantry-add-choice{
  position:fixed!important;
  inset:auto!important;
  left:var(--pantry-add-left,12px)!important;
  top:var(--pantry-add-top,12px)!important;
  z-index:1400!important;
  display:block;
  width:min(292px,calc(100vw - 24px));
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  pointer-events:none;
}
#pantry-add-choice.pantry-add-choice.hidden{display:none!important}
#pantry-add-choice .recipe-create-choice-card{
  position:relative;
  width:100%!important;
  max-width:none!important;
  padding:8px!important;
  border:1px solid color-mix(in srgb,var(--border) 74%,transparent)!important;
  border-radius:14px!important;
  background:color-mix(in srgb,var(--surface) 88%,transparent)!important;
  box-shadow:0 14px 36px rgba(0,0,0,.18)!important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  pointer-events:auto;
}
#pantry-add-choice .recipe-create-choice-card::after{
  content:"";
  position:absolute;
  right:24px;
  top:-6px;
  width:10px;height:10px;
  transform:rotate(45deg);
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  border-left:1px solid color-mix(in srgb,var(--border) 74%,transparent);
  border-top:1px solid color-mix(in srgb,var(--border) 74%,transparent);
}
#pantry-add-choice.opens-above .recipe-create-choice-card::after{
  top:auto;bottom:-6px;transform:rotate(225deg);
}
#pantry-add-choice .recipe-create-choice-options{
  display:flex!important;
  flex-direction:column;
  gap:4px!important;
  margin:0!important;
}
#pantry-add-choice .recipe-start-option{
  min-height:0!important;
  padding:10px 11px!important;
  display:grid!important;
  grid-template-columns:34px 1fr;
  align-items:center!important;
  gap:9px!important;
  border:0!important;
  border-radius:10px!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
  text-align:left;
  color:var(--text-primary);
}
#pantry-add-choice .recipe-start-option:hover,
#pantry-add-choice .recipe-start-option:focus-visible{
  background:color-mix(in srgb,var(--surface2) 78%,transparent)!important;
  outline:none;
}
#pantry-add-choice .recipe-start-option-icon{
  width:32px!important;min-width:32px!important;height:32px!important;
  display:grid;place-items:center;
  border:0!important;border-radius:9px!important;
  background:color-mix(in srgb,var(--surface2) 78%,transparent)!important;
}
#pantry-add-choice .recipe-start-option-copy{
  display:block!important;
  min-width:0;
  visibility:visible!important;
  opacity:1!important;
  color:var(--text-primary)!important;
}
#pantry-add-choice .recipe-start-option-copy strong{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  color:var(--text-primary)!important;
  font-size:.9rem;
  font-weight:650;
  line-height:1.25;
}
#pantry-add-choice .recipe-start-option-copy small{display:none!important}
body.dark-mode #pantry-add-choice .recipe-create-choice-card{
  background:color-mix(in srgb,var(--surface) 90%,transparent)!important;
}
@media(max-width:700px){
  #pantry-add-choice.pantry-add-choice{width:min(280px,calc(100vw - 24px))!important;padding:0!important}
  #pantry-add-choice .recipe-start-option{min-height:0!important}
}

/* Receipt capture remains a normal sheet after the compact choice is made. */
.pantry-receipt-capture{display:flex;flex-direction:column;gap:16px}
.pantry-receipt-capture-button{position:relative;display:flex;justify-content:center;cursor:pointer}
.pantry-receipt-capture-button input{position:absolute;inset:0;opacity:0;cursor:pointer}

/* v506 — user-configurable bottom chrome order */
.bottom-chrome-order-settings{margin-top:0}
.bottom-chrome-order-list{display:flex;flex-direction:column;gap:7px}
.bottom-chrome-order-row{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:48px;
  padding:8px 10px;
  border-radius:10px;
  background:var(--surface2);
  color:var(--text-primary);
}
.bottom-chrome-order-row strong{font-size:.84rem}
.bottom-chrome-order-grip{font-size:1.1rem;color:var(--text-secondary);text-align:center}
.bottom-chrome-order-actions{display:flex;gap:5px}
.bottom-chrome-order-actions button{
  width:34px;height:34px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface);
  color:var(--text-primary);
  font:inherit;font-weight:800;
  cursor:pointer;
}
.bottom-chrome-order-actions button:disabled{opacity:.32;cursor:default}
body.dark-mode .bottom-chrome-order-actions button{background:var(--surface)}

.primary-navigation-settings{display:flex;flex-direction:column;gap:10px}
.primary-nav-order-value{font-size:.78rem;color:var(--text-secondary);padding:9px 10px;border-radius:10px;background:var(--surface2);line-height:1.4}
.primary-navigation-settings .secondary-button{align-self:flex-start}


/* v565 Recipes and Pantry share one anchored action-menu presentation. */
.kitcherette-anchored-create-choice{
  position:fixed!important;inset:auto!important;z-index:1400!important;display:block;
  width:min(292px,calc(100vw - 24px));min-height:0!important;padding:0!important;margin:0!important;
  background:transparent!important;pointer-events:none;
}
#recipe-create-choice.kitcherette-anchored-create-choice{left:var(--recipe-create-left,12px)!important;top:var(--recipe-create-top,12px)!important}
#pantry-add-choice.kitcherette-anchored-create-choice{left:var(--pantry-add-left,12px)!important;top:var(--pantry-add-top,12px)!important}
.kitcherette-anchored-create-choice.hidden{display:none!important}
.kitcherette-anchored-create-choice .recipe-create-choice-card{
 position:relative;width:100%!important;max-width:none!important;padding:8px!important;
 border:1px solid color-mix(in srgb,var(--border) 74%,transparent)!important;border-radius:14px!important;
 background:color-mix(in srgb,var(--surface) 88%,transparent)!important;box-shadow:0 14px 36px rgba(0,0,0,.18)!important;
 backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);pointer-events:auto;
}
.kitcherette-anchored-create-choice .recipe-create-choice-card::after{
 content:"";position:absolute;right:24px;top:-6px;width:10px;height:10px;transform:rotate(45deg);
 background:color-mix(in srgb,var(--surface) 88%,transparent);
 border-left:1px solid color-mix(in srgb,var(--border) 74%,transparent);
 border-top:1px solid color-mix(in srgb,var(--border) 74%,transparent);
}
.kitcherette-anchored-create-choice.opens-above .recipe-create-choice-card::after{top:auto;bottom:-6px;transform:rotate(225deg)}
.kitcherette-anchored-create-choice .recipe-create-choice-copy,
.kitcherette-anchored-create-choice .recipe-create-choice-actions{display:none!important}
.kitcherette-anchored-create-choice .recipe-create-choice-options{display:flex!important;flex-direction:column;gap:4px!important;margin:0!important}
.kitcherette-anchored-create-choice .recipe-start-option{
 min-height:0!important;padding:10px 11px!important;display:grid!important;grid-template-columns:34px 1fr;
 align-items:center!important;gap:9px!important;border:0!important;border-radius:10px!important;background:transparent!important;
 box-shadow:none!important;transform:none!important;text-align:left;color:var(--text-primary);
}
.kitcherette-anchored-create-choice .recipe-start-option:hover,
.kitcherette-anchored-create-choice .recipe-start-option:focus-visible{background:color-mix(in srgb,var(--surface2) 78%,transparent)!important;outline:none}
.kitcherette-anchored-create-choice .recipe-start-option-icon{
 width:32px!important;min-width:32px!important;height:32px!important;display:grid;place-items:center;border:0!important;
 border-radius:9px!important;background:color-mix(in srgb,var(--surface2) 78%,transparent)!important;
}
.kitcherette-anchored-create-choice .recipe-start-option-copy{display:block!important;min-width:0;color:var(--text-primary)!important}
.kitcherette-anchored-create-choice .recipe-start-option-copy strong{display:block!important;color:var(--text-primary)!important;font-size:.9rem;font-weight:650;line-height:1.25}
.kitcherette-anchored-create-choice .recipe-start-option-copy small{display:none!important}
body.dark-mode .kitcherette-anchored-create-choice .recipe-create-choice-card{background:color-mix(in srgb,var(--surface) 90%,transparent)!important}
@media(max-width:700px){.kitcherette-anchored-create-choice{width:min(280px,calc(100vw - 24px))!important;padding:0!important}}

/* v599 — Settings remains anchored to the bottom of the right workspace drawer. */
.mascot-drawer-actions{
  min-height:calc(100% - 78px);
}
.mascot-drawer .mascot-menu-item[data-mascot-action="settings"]{
  position:sticky;
  bottom:0;
  z-index:2;
  margin-top:auto;
  border-top:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
}


/* v619 — shared semantic style variants.
   Style variants tune the shared presentation contract; theme tokens remain the
   sole owner of light/dark colour. Page-local CSS owns geometry only. */
.settings-ui-style-select{min-width:112px;max-width:132px;padding:7px 9px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-primary);font:inherit;font-size:.78rem}

body{
  --ui-shared-radius:12px;
  --ui-shared-control-radius:10px;
  --ui-shared-gap:10px;
  --ui-shared-padding:12px;
  --ui-shared-shadow:var(--kitcherette-shadow-soft,0 8px 26px rgba(57,62,54,.08));
  --ui-shared-surface:var(--kitcherette-working,var(--surface));
  --ui-shared-border:var(--kitcherette-line,var(--border));
}
html[data-ui-style="compact"] body{--ui-shared-radius:8px;--ui-shared-control-radius:8px;--ui-shared-gap:7px;--ui-shared-padding:9px;--ui-shared-shadow:0 4px 14px rgba(16,24,40,.07)}
html[data-ui-style="soft"] body{--ui-shared-radius:20px;--ui-shared-control-radius:14px;--ui-shared-gap:13px;--ui-shared-padding:16px;--ui-shared-shadow:var(--kitcherette-shadow-focus,0 8px 28px rgba(16,24,40,.10))}
html[data-ui-style="minimal"] body{--ui-shared-radius:4px;--ui-shared-control-radius:4px;--ui-shared-gap:8px;--ui-shared-padding:10px;--ui-shared-shadow:none}

/* Canonical shared surfaces. This is intentionally centralized so deployable
   pages inherit style variants without owning theme/style colour rules. */
html:is([data-ui-style="compact"],[data-ui-style="soft"],[data-ui-style="minimal"]) body :is(
  .card,.panel,.surface,.settings-section-card,.settings-list-item,.account-placeholder-card,.kitcherette-item-card,
  .manager-row:not(.kitcherette-item-card),.recipe-manager-row:not(.kitcherette-item-card),.stock-manager-row,.inventory-manager-row,
  .inventory-card,.drink-card,.service-recipe-card,.checklist-row,.expected-order-row,.shopping-browse-row,.shopping-checked-row,
  .shopping-final-card,.shopping-missing-product-card,.editor-section,.wizard-card,.work-coming-soon-card,.preparation-card,.summary-card,.stats-card,.info-card,
  .crew-roster-row,.crew-person-row,.crew-calendar,.crew-editor,
  .inventory-row,.inventory-editor,.storage-card,
  .venue-metric,.venue-card,.venue-business,.venue-report
){border-radius:var(--ui-shared-radius)!important;box-shadow:var(--ui-shared-shadow)!important}
html:is([data-ui-style="compact"],[data-ui-style="soft"],[data-ui-style="minimal"]) body :is(
  button,.primary-button,.secondary-button,input:not([type="checkbox"]):not([type="radio"]),select,textarea,
  .filter-chip,.chip,.category-chip,.pill,.filter-button,.icon-button
){border-radius:var(--ui-shared-control-radius)!important}
html:is([data-ui-style="compact"],[data-ui-style="soft"],[data-ui-style="minimal"]) body :is(#app-primary-nav,#app-context-nav,#kitcherette-third-subheader) button{border-radius:var(--ui-shared-control-radius)!important}
html[data-ui-style="minimal"] body :is(#app-primary-nav,#app-context-nav,#kitcherette-third-subheader){box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html:is([data-ui-style="compact"],[data-ui-style="soft"]) body :is(.settings-list-item,.editor-section,.wizard-card,.manager-row:not(.kitcherette-item-card)){padding:var(--ui-shared-padding)!important}
html[data-ui-style="minimal"] body :is(
  .card,.panel,.surface,.settings-section-card,.settings-list-item,.account-placeholder-card,.kitcherette-item-card,
  .manager-row:not(.kitcherette-item-card),.recipe-manager-row:not(.kitcherette-item-card),.stock-manager-row,.inventory-manager-row,
  .inventory-card,.drink-card,.service-recipe-card,.checklist-row,.expected-order-row,.shopping-browse-row,.shopping-checked-row,
  .shopping-final-card,.shopping-missing-product-card,.editor-section,.wizard-card,.work-coming-soon-card,.preparation-card,.summary-card,.stats-card,.info-card,
  .crew-roster-row,.crew-person-row,.crew-calendar,.crew-editor,
  .inventory-row,.inventory-editor,.storage-card,
  .venue-metric,.venue-card,.venue-business,.venue-report
){background:var(--ui-shared-surface)!important;border-color:var(--ui-shared-border)!important}


/* v628 — Menu presentation follows the shared UI-style contract.
   Locked mode is presentation-first; unlocked mode keeps the existing editor affordances. */
body{
  --menu-view-radius:18px;
  --menu-view-padding:18px 20px 20px;
  --menu-view-section-gap:14px;
  --menu-view-rule:color-mix(in srgb,var(--ui-shared-border,var(--border)) 52%,transparent);
  --menu-view-title-font:Georgia,"Times New Roman",serif;
  --menu-view-dish-font:Georgia,"Times New Roman",serif;
  --menu-view-title-size:1.48rem;
  --menu-view-dish-size:1.03rem;
  --menu-view-letter-spacing:0;
}
html[data-ui-style="compact"] body{
  --menu-view-radius:8px;
  --menu-view-padding:13px 15px 15px;
  --menu-view-section-gap:9px;
  --menu-view-title-font:inherit;
  --menu-view-dish-font:inherit;
  --menu-view-title-size:1.28rem;
  --menu-view-dish-size:.98rem;
}
html[data-ui-style="soft"] body{
  --menu-view-radius:26px;
  --menu-view-padding:22px 24px 24px;
  --menu-view-section-gap:18px;
  --menu-view-title-size:1.52rem;
  --menu-view-dish-size:1.06rem;
}
html[data-ui-style="minimal"] body{
  --menu-view-radius:0;
  --menu-view-padding:14px 2px 16px;
  --menu-view-section-gap:12px;
  --menu-view-title-font:inherit;
  --menu-view-dish-font:inherit;
  --menu-view-title-size:1.34rem;
  --menu-view-dish-size:1rem;
  --menu-view-rule:color-mix(in srgb,var(--ui-shared-border,var(--border)) 70%,transparent);
}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked{
  padding:var(--menu-view-padding);
  border:1px solid var(--ui-shared-border,var(--border));
  border-radius:var(--menu-view-radius);
  background:color-mix(in srgb,var(--ui-shared-surface,var(--surface)) 78%,transparent);
  box-shadow:var(--ui-shared-shadow);
}
html[data-ui-style="minimal"] body #view-expected-orders #restaurant-menu-shell.menu-editor-locked{
  border-width:1px 0;
  background:transparent;
}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-inline-meta{
  margin:0 0 var(--menu-view-section-gap);
  padding:0;
  border-bottom:0;
}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-name-display{
  font-family:var(--menu-view-title-font);
  font-size:var(--menu-view-title-size);
  letter-spacing:var(--menu-view-letter-spacing);
}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-description-display.is-empty{display:none}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-description-display{
  margin-top:4px;
  max-width:42rem;
  opacity:.78;
}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-title-actions{align-self:start}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-title-export{
  min-height:32px;
  width:32px;
  padding:0;
  border-color:transparent;
  background:transparent;
  opacity:.55;
}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-title-export-label{display:none}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-body{gap:var(--menu-view-section-gap)}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-section-title{
  padding:2px 0 5px;
  border-bottom:0;
}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-section-heading-display{
  cursor:default;
  font-size:.72rem;
  letter-spacing:.16em;
  opacity:.82;
}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-dish{
  padding:8px 0 10px;
  border-bottom:1px solid var(--menu-view-rule);
}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-dish-copy{cursor:pointer;gap:3px}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-dish-copy strong{
  font-family:var(--menu-view-dish-font);
  font-size:var(--menu-view-dish-size);
}
#view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-dish-copy>span{
  font-size:.78rem;
  opacity:.82;
}
html[data-ui-style="soft"] body #view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-dish{
  padding:10px 2px 12px;
}
html[data-ui-style="compact"] body #view-expected-orders #restaurant-menu-shell.menu-editor-locked .rest-menu-dish{
  padding:6px 0 7px;
}
@media(max-width:620px){
  #view-expected-orders #restaurant-menu-shell.menu-editor-locked{margin-inline:0}
}

/* v651 — Menu/Drinks print action is owned by the shared top header. */
#view-expected-orders .rest-menu-title-export{display:none!important}


/* v652 — shared always-editable Menu surface (Kitchen + Bar). */
#view-expected-orders .rest-add-dish,
#view-expected-orders .rest-add-section{
  display:inline-flex;align-items:center;justify-content:center;
  width:auto;min-height:32px;margin:2px 0 4px;padding:5px 11px;
  border:1px solid color-mix(in srgb,var(--border) 58%,transparent)!important;
  border-radius:999px;background:color-mix(in srgb,var(--surface) 46%,transparent)!important;
  box-shadow:none!important;color:var(--text-secondary);font:inherit;font-size:.8rem;font-weight:650;text-align:center;opacity:.82;
}
#view-expected-orders .rest-add-dish:hover,
#view-expected-orders .rest-add-dish:focus-visible,
#view-expected-orders .rest-add-section:hover,
#view-expected-orders .rest-add-section:focus-visible{opacity:1;background:color-mix(in srgb,var(--surface) 72%,transparent)!important;color:var(--text-primary)}
#view-expected-orders .rest-menu-no-sections{padding:10px 0}
#view-expected-orders .rest-menu-no-sections p{margin:0 0 4px;color:var(--text-secondary);font-size:.82rem}
#view-expected-orders .rest-menu-title-line{grid-template-columns:minmax(0,1fr)}
body.dark-mode #view-expected-orders .rest-menu-inline-meta,
body.dark-mode #view-expected-orders .rest-section-title,
body.dark-mode #view-expected-orders .rest-menu-dish{box-shadow:none}

/* v661 — Mise en place uses the same presentation-first document language as Menu. */
#view-service .work-prep-document .work-mise-section{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
#view-service .work-prep-document .work-mise-section + .work-mise-section{
  margin-top:18px;
}
#view-service .work-prep-document .work-mise-section .work-prep-section-title{
  align-items:center;
  margin:0 0 3px;
  padding:0 0 6px;
  border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);
}
#view-service .work-prep-document .work-mise-section .work-prep-section-title h3{
  margin:0;
  color:var(--text-secondary);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
  line-height:1.25;
  text-transform:uppercase;
}
#view-service .work-prep-document .work-mise-section .work-prep-section-title p{
  margin:2px 0 0;
  font-size:.68rem;
  line-height:1.3;
}
#view-service .work-prep-document .work-mise-section .work-check-list{
  gap:0;
}
#view-service .work-prep-document .work-mise-section .work-check-row{
  grid-template-columns:25px minmax(0,1fr);
  gap:10px;
  min-height:48px;
  padding:8px 2px;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent);
  border-radius:0;
  background:transparent;
}
#view-service .work-prep-document .work-mise-section .work-check-row:last-child{
  border-bottom:0;
}
#view-service .work-prep-document .work-mise-section .work-check-box{
  width:22px;
  height:22px;
  border-width:1.5px;
  border-radius:6px;
}
#view-service .work-prep-document .work-mise-section .work-check-copy strong{
  font-size:.91rem;
  font-weight:650;
  line-height:1.3;
}
#view-service .work-prep-document .work-mise-section .work-check-copy small,
#view-service .work-prep-document .work-mise-section .work-check-copy em{
  font-size:.68rem;
  line-height:1.35;
}
#view-service .work-prep-document .work-mise-progress{
  margin:2px 0 18px;
  padding:0 0 11px;
  border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);
}
#view-service .work-prep-document .work-mise-progress strong{
  font-size:.72rem;
  color:var(--text-secondary);
  font-weight:700;
}
#view-service .work-prep-document .work-mise-progress>span{
  height:4px;
}
#view-service .work-prep-document .work-mise-section .empty-state{
  padding:12px 2px;
  border:0;
  background:transparent;
  text-align:left;
}

/* v663 — keep Menu virtual-order quantity controls compact and inline. */
#view-expected-orders .rest-menu-dish .rest-dish-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  width:100%;
  min-width:0;
}
#view-expected-orders .rest-menu-dish .rest-dish-copy{
  min-width:0;
  width:auto;
  max-width:100%;
}
#view-expected-orders .rest-menu-dish .rest-menu-virtual-order{
  display:grid;
  grid-template-columns:28px 36px 28px;
  align-items:center;
  gap:2px;
  width:96px;
  min-width:96px;
  max-width:96px;
  justify-self:end;
  flex:none;
}
#view-expected-orders .rest-menu-dish .rest-menu-virtual-order button{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  min-width:28px;
  max-width:28px;
  height:28px;
  min-height:28px;
  margin:0;
  padding:0;
  border:0;
  border-radius:999px;
  background:color-mix(in srgb,var(--surface) 34%,transparent);
  color:var(--text-primary);
  font:inherit;
  font-size:1rem;
  line-height:1;
}
#view-expected-orders .rest-menu-dish .rest-menu-virtual-order input[type="number"]{
  box-sizing:border-box;
  display:block;
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  height:28px;
  min-height:28px;
  margin:0!important;
  padding:2px!important;
  border:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--text-primary) 24%,transparent)!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--text-primary)!important;
  text-align:center;
  font:inherit;
  line-height:1;
  box-shadow:none!important;
  appearance:textfield;
}
#view-expected-orders .rest-menu-dish .rest-menu-virtual-order input[type="number"]::-webkit-inner-spin-button,
#view-expected-orders .rest-menu-dish .rest-menu-virtual-order input[type="number"]::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}
@media(max-width:390px){
  #view-expected-orders .rest-menu-dish .rest-dish-summary{gap:7px}
  #view-expected-orders .rest-menu-dish .rest-menu-virtual-order{grid-template-columns:26px 32px 26px;width:88px;min-width:88px;max-width:88px}
  #view-expected-orders .rest-menu-dish .rest-menu-virtual-order button{width:26px;min-width:26px;max-width:26px;height:26px;min-height:26px}
  #view-expected-orders .rest-menu-dish .rest-menu-virtual-order input[type="number"]{width:32px!important;min-width:32px!important;max-width:32px!important;height:26px;min-height:26px}
}

/* v670 cleanup — shared shell owns bottom-navigation clearance. Work documents shrink-wrap
   their content instead of reserving a second bottom-chrome height internally. */
#view-service .work-prep-document,
#view-stock-orders .work-prep-document{
  padding-bottom:16px;
  min-height:0;
  height:auto;
}

/* Operational workspace documents use the same outer width as Menu.
   The shared app shell owns the page gutter; do not add a second mobile inset. */
@media(max-width:620px){
  #view-service .work-prep-document,
  #view-stock-orders .work-prep-document{
    width:100%;
    max-width:100%;
    margin-left:0;
    margin-right:0;
  }
}

/* Pantry quantity editor follows the shared compact purchase-control pattern. */
#pantry-quick-body .pantry-purchase-quantity{display:grid;grid-template-columns:1fr;gap:6px;padding:10px 0;border-top:1px solid var(--border,#e1e6ed)}
#pantry-quick-body .pantry-purchase-quantity>span{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#667085)}
#pantry-quick-body .pantry-purchase-stepper{display:grid;grid-template-columns:42px minmax(62px,1fr) minmax(92px,auto) 42px;gap:0;align-items:stretch;border:1px solid var(--border,#dfe4eb);border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--panel,#fff) 82%,transparent)}
#pantry-quick-body .pantry-purchase-stepper button{width:auto;height:42px;border:0;border-radius:0;background:transparent;font-size:1.05rem}
#pantry-quick-body .pantry-purchase-stepper input{width:100%;min-width:0;height:42px;padding:6px 8px;border:0;border-left:1px solid var(--border,#dfe4eb);border-right:1px solid var(--border,#dfe4eb);border-radius:0;background:transparent;text-align:center;font:inherit}
#pantry-quick-body .pantry-purchase-unit{display:flex;align-items:center;padding:0 10px;color:var(--muted,#667085);font-size:.84rem;border-right:1px solid var(--border,#dfe4eb)}
#pantry-quick-body .pantry-purchase-quantity>small{grid-column:auto;font-size:.76rem}
#pantry-quick-body .pantry-purchase-actions{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:7px;margin-top:10px}
#pantry-quick-body .pantry-purchase-actions button{min-height:42px!important;padding:7px 9px!important;font-size:.82rem!important;white-space:nowrap}
#pantry-quick-body .pantry-purchase-more{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}
#pantry-quick-body .pantry-purchase-more.hidden{display:none!important}
#pantry-quick-body .pantry-purchase-more button{min-height:40px;padding:7px 9px;font-size:.78rem}
@media(max-width:390px){#pantry-quick-body .pantry-purchase-actions{grid-template-columns:1fr 1fr}#pantry-quick-body .pantry-purchase-actions [data-add]{grid-column:1/-1}#pantry-quick-body .pantry-purchase-stepper{grid-template-columns:38px minmax(54px,1fr) minmax(78px,auto) 38px}}

.pantry-compact-row .pantry-inline-stock-editor{
  grid-column:1/-1;
  display:grid;
  gap:7px;
  margin-top:2px;
  padding:10px;
  border-radius:13px;
  border:1px solid var(--border,#dfe4eb);
  background:color-mix(in srgb,var(--panel,#fff) 58%,transparent);
}
/* Pantry inline stock entry shares the Shopping-style compact action rhythm. */
.pantry-inline-stock-editor>small{font-size:.74rem;color:var(--muted,#667085)}
.pantry-inline-stock-actions{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:7px}
.pantry-inline-stock-actions button{min-height:40px!important;padding:7px 8px!important;font-size:.8rem!important;white-space:nowrap}
@media(max-width:390px){.pantry-inline-stock-actions{grid-template-columns:1fr 1fr}.pantry-inline-stock-actions [data-inline-add]{grid-column:1/-1}}

/* Compact Pantry product picker and new-product flow. */
#pantry-quick-add-modal.pantry-picker-sheet{align-items:flex-end}
#pantry-quick-add-modal.pantry-picker-sheet .pantry-modal-panel{width:min(calc(100% - 24px),680px);max-height:min(68vh,620px);margin:0 auto 10px;border-radius:22px;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}
#pantry-quick-add-modal .pantry-picker-header{margin-bottom:10px;align-items:center}
#pantry-quick-add-modal .pantry-picker-header h2{margin:0;font-size:1.25rem}
#pantry-quick-add-modal .pantry-picker-search input{width:100%;min-height:44px;padding:9px 12px;border-radius:12px}
#pantry-quick-add-modal .pantry-picker-results{display:block;margin:10px 0 4px}
#pantry-quick-add-modal .pantry-picker-section{display:grid;gap:0;margin-top:8px}
#pantry-quick-add-modal .pantry-picker-section>small{padding:5px 4px 6px;color:var(--muted,#667085);font-size:.7rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
#pantry-quick-add-modal .pantry-picker-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:10px 4px!important;border:0!important;border-bottom:1px solid color-mix(in srgb,var(--border,#dfe4eb) 72%,transparent)!important;border-radius:0!important;background:transparent!important;text-align:left}
#pantry-quick-add-modal .pantry-picker-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.94rem;font-weight:650}
#pantry-quick-add-modal .pantry-picker-row span{color:var(--muted,#667085);font-size:.8rem;white-space:nowrap}
#pantry-quick-add-modal .pantry-picker-section:last-child .pantry-picker-row span{color:var(--accent,#276b52);font-weight:650}
#pantry-quick-add-modal .pantry-picker-new{display:block;margin:8px 2px 0;padding:7px 4px;font-size:.82rem;text-align:left}
/* New Pantry products stay inside the compact picker flow. */
#pantry-quick-add-modal .pantry-new-product-head{margin-bottom:10px}
#pantry-quick-add-modal .pantry-new-product-head h3{margin:6px 0 0;font-size:1.08rem}
#pantry-quick-add-modal .pantry-new-product-compact{display:grid;gap:8px}
#pantry-quick-add-modal .pantry-new-product-compact>input,
#pantry-quick-add-modal .pantry-new-package-row>input,
#pantry-quick-add-modal .pantry-new-package-row>select{min-height:44px;height:44px;margin:0;padding:8px 11px;border-radius:12px}
#pantry-quick-add-modal .pantry-new-package-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(105px,.7fr);gap:8px}
#pantry-quick-add-modal .pantry-new-product-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:8px;margin-top:10px}
#pantry-quick-add-modal .pantry-new-product-actions button{min-height:44px;margin:0}
/* Canonical compact Pantry stock entry. */
.pantry-compact-row .pantry-inline-stock-editor.pantry-stock-entry{display:flex;flex-direction:column;gap:7px;padding:9px;margin:7px 10px 10px;border:1px solid color-mix(in srgb,var(--border) 48%,transparent);border-radius:13px;background:color-mix(in srgb,var(--surface2) 62%,transparent)}
.pantry-stock-entry-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-width:0}
.pantry-stock-entry-name{grid-column:1/-1;width:100%;height:38px!important;min-height:38px!important;padding:6px 10px!important;border-radius:9px!important}
.pantry-stock-entry-measure,.pantry-stock-entry-price{display:grid;grid-template-columns:minmax(0,1fr) minmax(68px,.75fr);height:38px;overflow:hidden;border:1px solid var(--border,#dfe4eb);border-radius:9px;background:color-mix(in srgb,var(--panel,#fff) 82%,transparent)}
.pantry-stock-entry-price{grid-template-columns:28px minmax(0,1fr) minmax(74px,.85fr)}
.pantry-stock-entry-price>span{display:flex;align-items:center;justify-content:center;color:var(--muted,#667085)}
.pantry-stock-entry-measure input,.pantry-stock-entry-price input,.pantry-stock-entry-measure select,.pantry-stock-entry-price select{width:100%;min-width:0;height:36px!important;min-height:36px!important;padding:5px 7px!important;border:0!important;border-radius:0!important;background:transparent!important;font:inherit}
.pantry-stock-entry-measure select,.pantry-stock-entry-price select{border-left:1px solid var(--border,#dfe4eb)!important}
.pantry-stock-entry-error{color:var(--danger,#a33);font-size:.7rem}
.pantry-picker-create{margin-top:4px}
@media(max-width:390px){.pantry-stock-entry-fields{grid-template-columns:1fr}.pantry-stock-entry-name{grid-column:auto}.pantry-stock-entry-measure,.pantry-stock-entry-price{grid-column:1/-1}}
/* v703 recipe-library menu placement sheet */
.rest-add-recipe-sheet{display:grid;gap:14px}.rest-add-recipe-heading{display:grid;gap:3px}.rest-add-recipe-heading>strong{font-size:1.05rem}.rest-add-recipe-heading>small{color:var(--text-secondary)}.rest-recipe-menu-targets{display:grid;gap:8px;max-height:min(52vh,440px);overflow:auto}.rest-recipe-menu-target{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;padding:13px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.rest-recipe-menu-target>span:first-child{display:grid;gap:2px}.rest-recipe-menu-target small{color:var(--text-secondary)}.rest-recipe-menu-target-state{font-weight:700;color:var(--accent)}.rest-recipe-menu-target.is-current{opacity:.62}.rest-add-recipe-empty{display:grid;gap:8px}


/* v704 — Add to menu follows the compact anchored + New recipe popover. */
#menu-modal.rest-add-recipe-popover{
  z-index:1400!important;display:block!important;pointer-events:none!important;
}
#menu-modal.rest-add-recipe-popover .pantry-modal-backdrop{
  background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;pointer-events:auto!important;
}
#menu-modal.rest-add-recipe-popover .pantry-modal-panel{
  position:fixed!important;inset:auto!important;left:var(--rest-add-left,12px)!important;top:var(--rest-add-top,12px)!important;
  width:min(340px,calc(100vw - 24px))!important;max-height:min(62vh,520px)!important;overflow:auto!important;
  padding:10px!important;border:1px solid color-mix(in srgb,var(--border) 74%,transparent)!important;border-radius:16px!important;
  background:color-mix(in srgb,var(--surface) 90%,transparent)!important;box-shadow:0 14px 36px rgba(0,0,0,.18)!important;
  backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important;pointer-events:auto!important;
}
#menu-modal.rest-add-recipe-popover .pantry-modal-panel::after{
  content:"";position:absolute;right:var(--rest-add-arrow-right,24px);top:-6px;width:10px;height:10px;transform:rotate(45deg);
  background:color-mix(in srgb,var(--surface) 90%,transparent);border-left:1px solid color-mix(in srgb,var(--border) 74%,transparent);border-top:1px solid color-mix(in srgb,var(--border) 74%,transparent);
}
#menu-modal.rest-add-recipe-popover.opens-above .pantry-modal-panel::after{top:auto;bottom:-6px;transform:rotate(225deg)}
#menu-modal.rest-add-recipe-popover .pantry-sheet-header{margin:0 0 6px!important;padding:2px 4px 5px!important;align-items:center!important}
#menu-modal.rest-add-recipe-popover .pantry-sheet-header [data-menu-kicker]{display:none!important}
#menu-modal.rest-add-recipe-popover .pantry-sheet-header h2{margin:0!important;font-size:.92rem!important;font-weight:750!important}
#menu-modal.rest-add-recipe-popover .pantry-sheet-header .icon-button{width:30px!important;height:30px!important;min-height:30px!important;border:0!important;background:transparent!important;font-size:1.05rem!important}
#menu-modal.rest-add-recipe-popover .rest-add-recipe-sheet{gap:7px!important}
#menu-modal.rest-add-recipe-popover .rest-add-recipe-heading{padding:3px 5px 6px!important;gap:1px!important}
#menu-modal.rest-add-recipe-popover .rest-add-recipe-heading>strong{font-size:.86rem!important;font-weight:700!important}
#menu-modal.rest-add-recipe-popover .rest-add-recipe-heading>small{font-size:.7rem!important}
#menu-modal.rest-add-recipe-popover .rest-recipe-menu-targets{gap:4px!important;max-height:min(42vh,340px)!important}
#menu-modal.rest-add-recipe-popover .rest-recipe-menu-target{
  min-height:52px!important;padding:9px 11px!important;border:0!important;border-radius:11px!important;background:transparent!important;box-shadow:none!important;
}
#menu-modal.rest-add-recipe-popover .rest-recipe-menu-target:hover,#menu-modal.rest-add-recipe-popover .rest-recipe-menu-target:focus-visible{background:color-mix(in srgb,var(--surface2) 78%,transparent)!important;outline:none!important}
#menu-modal.rest-add-recipe-popover .rest-recipe-menu-target strong{font-size:.86rem!important}
#menu-modal.rest-add-recipe-popover .rest-recipe-menu-target small{font-size:.7rem!important}
#menu-modal.rest-add-recipe-popover .rest-recipe-menu-target-state{font-size:.78rem!important}
#menu-modal.rest-add-recipe-popover .pantry-sheet-actions{display:none!important}
#menu-modal.rest-add-recipe-popover .rest-add-recipe-empty{padding:6px!important;font-size:.78rem!important}
body.dark-mode #menu-modal.rest-add-recipe-popover .pantry-modal-panel{background:color-mix(in srgb,var(--surface) 92%,transparent)!important}

/* v712 — Recipe editor: align the opened recipe with Kitcherette's floating glass-card language. */
#view-recipes.recipe-editing #drink-form.recipe-quick-entry{
  width:calc(100% - 24px)!important;
  max-width:760px!important;
  margin:14px auto 22px!important;
  padding:18px 16px 22px!important;
  border:1px solid color-mix(in srgb,var(--border) 76%,transparent)!important;
  border-radius:22px!important;
  background:color-mix(in srgb,var(--surface) 72%,transparent)!important;
  box-shadow:0 12px 34px rgba(20,28,24,.08)!important;
  backdrop-filter:blur(18px) saturate(1.08)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.08)!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .form-header{display:none!important;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .wizard-card{
  margin:0!important;
  padding:14px 0!important;
  border:0!important;
  border-top:1px solid color-mix(in srgb,var(--border) 58%,transparent)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-wizard-step[data-step-panel="0"] .wizard-card{
  padding-top:0!important;
  border-top:0!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry #drink-name{
  min-height:46px!important;
  padding:2px 6px!important;
  border:0!important;
  background:transparent!important;
  font-size:1.42rem!important;
  font-weight:720!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .category-field{
  margin-top:2px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .category-field>span,
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-name>span{
  display:none!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .category-input-row{
  display:flex!important;align-items:center!important;gap:6px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry #drink-category{
  width:auto!important;max-width:min(260px,70vw)!important;min-height:34px!important;
  padding:4px 28px 4px 7px!important;border:0!important;background:transparent!important;
  font-size:.96rem!important;font-weight:650!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry #edit-categories-inline{
  width:34px!important;min-width:34px!important;height:34px!important;padding:0!important;
  border-radius:11px!important;font-size:0!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry #edit-categories-inline::before{content:'✎';font-size:.9rem;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-metadata-row{
  margin-top:6px!important;gap:9px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-metadata-row .recipe-quick-basic{
  display:grid!important;grid-template-columns:auto!important;gap:4px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-metadata-row .recipe-quick-basic>span{
  order:2!important;margin:0 3px!important;font-size:.68rem!important;font-weight:600!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-quick-metadata-row :is(#drink-base-yield,#drink-total-time){
  width:64px!important;min-width:64px!important;height:38px!important;border-radius:10px!important;
  background:color-mix(in srgb,var(--surface) 55%,transparent)!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .section-title{margin:0 0 8px!important;align-items:center!important;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .section-title h3{
  margin:0!important;font-size:.83rem!important;font-weight:760!important;letter-spacing:.045em!important;
  text-transform:uppercase!important;color:var(--text-secondary)!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .section-title p{display:none!important;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-note-field{
  min-height:62px!important;padding:8px 4px!important;border:0!important;background:transparent!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-diet-section{
  margin-top:0!important;padding:14px 0!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .drink-ingredient-row{
  padding:8px 0!important;column-gap:7px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-photo-dropzone{
  width:38px!important;min-width:38px!important;height:38px!important;min-height:38px!important;
  padding:0!important;border-radius:12px!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-photo-dropzone span:not(.recipe-photo-add-icon){display:none!important;}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry .recipe-photo-add-icon{font-size:1rem!important;}
@media(max-width:700px){
  #view-recipes.recipe-editing #drink-form.recipe-quick-entry{
    width:calc(100% - 24px)!important;margin:12px auto 18px!important;padding:16px 14px 20px!important;border-radius:20px!important;
  }
}

/* v717 — absent recipe timing is not recipe content. Keep timing controls available
   while editing, but hide zero/missing total and step times in the locked recipe view. */
#drink-form.recipe-fields-locked .recipe-time-missing{
  display:none!important;
}

/* v718 — compact read-only Recipe document layout.
   Empty metadata is not recipe content, catalogue ingredients do not prompt for
   local allergen editing, and fixed editor actions must never cover Method rows. */
#drink-form.recipe-fields-locked .recipe-time-missing{
  display:none!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-section-empty{
  display:none!important;
}
#drink-form.recipe-fields-locked .recipe-ingredient-diet-edit{
  display:none!important;
}
#drink-form.recipe-fields-locked .recipe-ingredient-diet-info:not(.recipe-ingredient-diet-known){
  display:none!important;
}
#drink-form.recipe-fields-locked .recipe-ingredient-diet-info.recipe-ingredient-diet-known{
  margin-top:0!important;
  padding-top:0!important;
}
#view-recipes.recipe-editing #drink-form.recipe-quick-entry{
  padding-bottom:calc(var(--app-bottom-chrome-height,132px) + 108px)!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .wizard-card{
  padding-top:12px!important;
  padding-bottom:12px!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .step-row:not(.recipe-row-empty){
  padding:7px 0!important;
  align-items:start!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .step-row .step-instruction{
  padding-top:2px!important;
  padding-bottom:2px!important;
  line-height:1.4!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-note-section:not(.recipe-section-empty){
  padding-top:12px!important;
  padding-bottom:12px!important;
}
@media(max-width:700px){
  #view-recipes.recipe-editing #drink-form.recipe-quick-entry{
    padding-bottom:calc(var(--app-bottom-chrome-height,132px) + 116px)!important;
  }
  #drink-form.recipe-fields-locked.recipe-quick-entry .wizard-card{
    padding-top:10px!important;
    padding-bottom:10px!important;
  }
}


/* v719 — locked recipes are viewers, not disabled editors.
   Editing actions disappear completely. Navigation arrows and Exit remain;
   a locally owned locked recipe may still show the lock control so it can be unlocked. */
#drink-form.recipe-fields-locked :is(
  .wizard-actions,
  .ingredient-editor-actions,
  #edit-categories-inline,
  #recipe-additional-diet-toggle,
  .recipe-new-ingredient-info,
  .recipe-photo-dropzone,
  .recipe-photo-remove,
  .recipe-ingredient-diet-edit
){
  display:none!important;
}
#drink-form.recipe-fields-locked .recipe-editor-savebar .recipe-editor-save-control,
#drink-form.recipe-fields-locked .recipe-editor-savebar .recipe-editor-save-exit-control{
  display:none!important;
}
#drink-form.recipe-fields-locked .recipe-editor-savebar{
  grid-template-columns:42px minmax(92px,1fr) 42px!important;
}
#drink-form.recipe-fields-locked .recipe-editor-savebar .recipe-editor-arrow-slot-prev{grid-column:1!important;}
#drink-form.recipe-fields-locked .recipe-editor-savebar .recipe-editor-exit-control{grid-column:2!important;}
#drink-form.recipe-fields-locked .recipe-editor-savebar .recipe-editor-arrow-slot-next{grid-column:3!important;}

/* The shared contextual nav mirrors editor actions. Hide save actions while locked.
   Catalogue/shared previews are not editable at all, so their unlock/edit affordance
   is hidden as well; users can add a copy to My Recipes from the source card. */
body.recipe-editor-locked.recipe-editor-context-subnav #app-context-nav :is(.app-editor-save,.app-editor-save-exit){
  display:none!important;
}
body.recipe-editor-locked:not(.recipe-external-readonly).recipe-editor-context-subnav #app-context-nav{
  grid-template-columns:minmax(0,1fr) 44px!important;
}
body.recipe-external-readonly.recipe-editor-context-subnav #app-context-nav .app-editor-lock{
  display:none!important;
}
body.recipe-external-readonly.recipe-editor-context-subnav #app-context-nav{
  grid-template-columns:1fr!important;
}
body.recipe-external-readonly.recipe-editor-context-subnav #app-context-nav .app-editor-exit{
  grid-column:1!important;
}
@media(max-width:390px){
  #drink-form.recipe-fields-locked .recipe-editor-savebar{
    grid-template-columns:38px minmax(88px,1fr) 38px!important;
  }
}

/* v721 — Recipe viewer is a reading surface, not a disabled form. */
#view-recipes.recipe-editing #drink-form.recipe-quick-entry.recipe-fields-locked{
  width:min(calc(100% - 28px),660px)!important;
  margin:18px auto 22px!important;
  padding:22px 22px calc(var(--app-bottom-chrome-height,132px) + 112px)!important;
  border:1px solid color-mix(in srgb,var(--border) 48%,transparent)!important;
  border-radius:24px!important;
  background:color-mix(in srgb,var(--surface) 72%,transparent)!important;
  box-shadow:0 12px 34px rgba(28,36,30,.10)!important;
  backdrop-filter:blur(18px) saturate(1.05)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.05)!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-quick-title{
  margin:0 0 14px!important;
  font-size:clamp(1.55rem,6vw,2rem)!important;
  line-height:1.12!important;
  font-weight:720!important;
  letter-spacing:-.025em!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-photo-field:not(.has-photos){display:none!important;}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-quick-category-row{
  margin:0 0 8px!important;padding:0 0 12px!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 36%,transparent)!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-quick-category-row :is(input,select){
  padding:0!important;min-height:0!important;font-size:.95rem!important;font-weight:650!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-quick-metadata-row{
  gap:18px!important;margin:8px 0 12px!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-quick-metadata-row :is(#drink-base-yield,#drink-total-time){
  width:auto!important;min-width:0!important;height:auto!important;min-height:0!important;
  padding:0!important;font-size:1rem!important;text-align:left!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-quick-metadata-row .recipe-quick-basic{
  gap:5px!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .wizard-card{
  margin:0!important;padding:14px 0!important;border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .section-title{
  margin:4px 0 8px!important;padding:8px 0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 42%,transparent)!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .section-title h3{
  font-size:.78rem!important;letter-spacing:.10em!important;font-weight:760!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .drink-ingredient-row{
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:4px 14px!important;padding:10px 0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 30%,transparent)!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .drink-ingredient-row .drag-handle{display:none!important;}
#drink-form.recipe-fields-locked.recipe-quick-entry .drink-ingredient-row :is(.ingredient-name,.drink-ingredient-name){grid-column:1!important;}
#drink-form.recipe-fields-locked.recipe-quick-entry .drink-ingredient-row :is(.ingredient-amount,.drink-ingredient-amount){grid-column:2!important;}
#drink-form.recipe-fields-locked.recipe-quick-entry .drink-ingredient-row .ingredient-meta,
#drink-form.recipe-fields-locked.recipe-quick-entry .drink-ingredient-row .drink-ingredient-meta{grid-column:1!important;}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-ingredient-diet-info{grid-column:1 / -1!important;}
#drink-form.recipe-fields-locked.recipe-quick-entry .step-row:not(.recipe-row-empty){
  grid-template-columns:28px minmax(0,1fr)!important;gap:10px!important;padding:5px 0!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 30%,transparent)!important;
}
#drink-form.recipe-fields-locked.recipe-quick-entry .step-row .drag-handle{display:none!important;}
#drink-form.recipe-fields-locked.recipe-quick-entry .step-row .step-number{grid-column:1!important;grid-row:1!important;font-size:.76rem!important;font-weight:750!important;color:var(--text-secondary)!important;}
#drink-form.recipe-fields-locked.recipe-quick-entry .step-row .step-instruction{grid-column:2!important;grid-row:1!important;font-size:1rem!important;line-height:1.48!important;}
#drink-form.recipe-fields-locked.recipe-quick-entry .step-row .step-time-field{grid-column:2!important;grid-row:2!important;margin-top:2px!important;padding:0!important;}
#drink-form.recipe-fields-locked.recipe-quick-entry .recipe-note-field{font-size:.94rem!important;line-height:1.5!important;}
@media(max-width:700px){
  #view-recipes.recipe-editing #drink-form.recipe-quick-entry.recipe-fields-locked{
    width:calc(100% - 32px)!important;margin:14px auto 20px!important;padding:18px 16px calc(var(--app-bottom-chrome-height,132px) + 112px)!important;border-radius:22px!important;
  }
}

/* v722 — structural read-only recipe viewer. Editor controls are not the reading UI. */
#drink-form.recipe-fields-locked .category-field.recipe-viewer-empty{display:none!important;}
#drink-form.recipe-fields-locked .category-field>span,
#drink-form.recipe-fields-locked .category-field .category-input-row{display:none!important;}
#drink-form.recipe-fields-locked .recipe-viewer-category{
  font-size:.92rem;font-weight:700;color:var(--text-primary);padding:0;
}
#drink-form.recipe-fields-locked .category-field{margin:0 0 6px!important;}
#drink-form.recipe-fields-locked .recipe-quick-metadata-row{
  display:flex!important;align-items:center!important;gap:14px!important;margin:6px 0 10px!important;
}
#drink-form.recipe-fields-locked .recipe-quick-metadata-row label{
  display:flex!important;flex-direction:row!important;align-items:baseline!important;gap:5px!important;
  width:auto!important;margin:0!important;color:var(--text-secondary)!important;font-size:.82rem!important;
}
#drink-form.recipe-fields-locked .recipe-quick-metadata-row input{
  width:auto!important;max-width:4ch!important;border:0!important;background:transparent!important;box-shadow:none!important;
  padding:0!important;font-size:.95rem!important;font-weight:720!important;color:var(--text-primary)!important;
}
#drink-form.recipe-fields-locked .recipe-time-missing{display:none!important;visibility:hidden!important;height:0!important;margin:0!important;padding:0!important;}
#drink-form.recipe-fields-locked #drink-ingredients-editor .drink-ingredient-row{
  display:block!important;padding:9px 0!important;min-width:0!important;
}
#drink-form.recipe-fields-locked .recipe-viewer-ingredient{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;align-items:baseline!important;
  width:100%!important;min-width:0!important;
}
#drink-form.recipe-fields-locked .recipe-viewer-ingredient-name{
  min-width:0!important;font-size:.98rem!important;font-weight:650!important;line-height:1.3!important;overflow-wrap:anywhere!important;
}
#drink-form.recipe-fields-locked .recipe-viewer-ingredient-amount{
  white-space:nowrap!important;font-size:.92rem!important;font-weight:650!important;color:var(--text-secondary)!important;
}
#drink-form.recipe-fields-locked .drink-ingredient-row :is(.ingredient-name-autocomplete,.recipe-ingredient-amount-wrap,.ingredient-stock-hint,.recipe-unit-conversion,.recipe-ingredient-diet-info,.recipe-ingredient-remove,.recipe-ingredient-drag-handle){display:none!important;}
#drink-form.recipe-fields-locked .recipe-diet-section{padding:12px 0!important;}
#drink-form.recipe-fields-locked .recipe-diet-section .recipe-dietary-row,
#drink-form.recipe-fields-locked .recipe-diet-section .recipe-allergen-editor{display:none!important;}
#drink-form.recipe-fields-locked .step-row:not(.recipe-row-empty){
  display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;gap:8px 12px!important;padding:11px 0!important;
}
#drink-form.recipe-fields-locked .step-row :is(.step-title,.step-notes,.recipe-row-remove,.step-drag-handle){display:none!important;}
#drink-form.recipe-fields-locked .step-row .step-instruction{
  width:100%!important;min-height:0!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;
  box-shadow:none!important;resize:none!important;overflow:hidden!important;font-size:1rem!important;line-height:1.45!important;color:var(--text-primary)!important;
}
#drink-form.recipe-fields-locked .step-row .step-time-field:not(.recipe-time-missing){
  grid-column:2!important;display:flex!important;flex-direction:row!important;gap:5px!important;align-items:baseline!important;margin:0!important;
  color:var(--text-secondary)!important;font-size:.78rem!important;
}
#drink-form.recipe-fields-locked .step-row .step-time-field:not(.recipe-time-missing)>span:first-child{display:none!important;}
#drink-form.recipe-fields-locked .step-row .step-time-control{display:flex!important;gap:3px!important;align-items:baseline!important;}
#drink-form.recipe-fields-locked .step-row .step-time-control input{
  width:auto!important;max-width:5ch!important;border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;text-align:left!important;
}
#drink-form.recipe-fields-locked .recipe-editor-savebar{
  width:min(calc(100% - 32px),560px)!important;padding:7px!important;border-radius:18px!important;
}
#drink-form.recipe-fields-locked .recipe-editor-savebar .recipe-editor-exit-control{min-height:42px!important;padding:8px 16px!important;}
@media(max-width:700px){
  #view-recipes.recipe-editing #drink-form.recipe-quick-entry.recipe-fields-locked{
    width:calc(100% - 28px)!important;padding:18px 18px calc(var(--app-bottom-chrome-height,132px) + 82px)!important;
  }
}

/* v755 — visually nest Menu items beneath their section header without changing
   Menu structure, drag/drop ownership, or persistence. Keep the live item drop
   slot on the same inset so reordering feedback matches the resting layout. */
#view-expected-orders .rest-menu-section > .rest-menu-dish,
#view-expected-orders .rest-menu-section > .rest-menu-drop-slot-item{
  margin-inline:10px;
}

/* v757 — market-aware ingredient references */
.settings-food-market-select{
  min-width:148px;
  max-width:190px;
  padding:7px 9px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface);
  color:var(--text-primary);
  font:inherit;
  font-size:.78rem;
}
.ingredient-reference-suggestion small{font-weight:650;}
.ingredient-reference-suggestion small::before{content:"Reference · ";font-weight:800;}
#drink-ingredients-editor .editor-ingredient-unit{
  appearance:auto;
  -webkit-appearance:menulist;
  cursor:pointer;
}
@media(max-width:560px){
  .settings-food-market-item{grid-template-columns:42px minmax(0,1fr);}
  .settings-food-market-select{grid-column:2;width:100%;max-width:none;}
}
