:root{--canvas:#f8f3e8;--surface:#fffdf7;--surface-muted:#eef3e9;--surface-accent:#dfeadd;--text:#21302b;--text-muted:#68756b;--text-subtle:#59665d;--text-on-primary:#fffdf7;--border-subtle:#ded8ca;--border-control:#9daf9f;--action:#1f5a49;--action-hover:#173f35;--action-soft:#dfe9d9;--focus-ring:#33745b;--font-display:Georgia, "Times New Roman", serif;--font-ui:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display-size:clamp(2.45rem, 5vw, 4.65rem);--section-size:clamp(1.65rem, 2.8vw, 2.45rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--shadow-sm:0 8px 22px #362b1e12;--shadow-md:0 18px 50px #362b1e1f;--bg:var(--canvas);--paper:var(--surface-muted);--surface-2:var(--surface-accent);--ink:var(--text);--muted:var(--text-muted);--border:var(--border-subtle);--primary:var(--action);--primary-dark:var(--action-hover);--primary-ink:var(--text-on-primary);--herb:#33745b;--herb-dark:#285d49;--accent:#c96947;--accent-soft:#f4ded2;--sage:#dfe9d9;--butter:#f5d36a;--data:#2f6f9f;--citrus:#f2c84b;--danger:#b84a36;--muted-strong:var(--text-subtle);--control-border:var(--border-control);--interaction-hover-surface:color-mix(in srgb, var(--sage) 34%, var(--surface));--interaction-hover-surface-strong:color-mix(in srgb, var(--sage) 58%, var(--surface));--interaction-hover-border:color-mix(in srgb, var(--herb) 82%, var(--border));--interaction-hover-shadow:0 8px 20px #362b1e17;--interaction-duration:.15s;--interaction-easing:ease;--shadow:var(--shadow-md);--soft-shadow:var(--shadow-sm);--serif:var(--font-display);--sans:var(--font-ui)}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--sans);margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}a{color:inherit}.app-shell{min-height:100vh}.site-header{z-index:20;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbf7eff0;grid-template-columns:minmax(190px,max-content) minmax(0,1fr);align-items:center;gap:18px;min-height:76px;padding:14px clamp(18px,4vw,52px);display:grid;position:sticky;top:0}.auth-site-header{grid-template-columns:minmax(0,max-content)}.brand{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.brand-button{text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;width:100%;min-height:56px;padding:4px 9px 4px 4px;transition:background .16s,border-color .16s,box-shadow .16s}.brand-button:hover,.brand-button:focus-visible,.brand-button[aria-expanded=true]{border-color:var(--border);background:#fffdf8b3;outline:0;box-shadow:0 10px 24px #34201914}.brand-menu{min-width:0;position:relative}.brand-static{pointer-events:none}.brand-menu-icon{color:var(--herb);flex:none;margin-left:2px;transition:color .16s,transform .18s}.brand-button[aria-expanded=true] .brand-menu-icon{color:var(--accent);transform:rotate(90deg)}.brand-mark{width:50px;height:50px;color:var(--primary-ink);border-radius:0;place-items:center;display:grid}.brand-mark img{width:50px;height:50px;display:block}.admin-invite-form{grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:12px;margin-top:18px;display:grid}.admin-invite-form label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;gap:7px;font-size:.78rem;font-weight:900;display:grid}.brand strong,.brand small{display:block}.brand strong{font-family:var(--serif);letter-spacing:.12em;text-transform:uppercase;font-size:1.1rem;font-weight:500}.brand small,.muted,.hero-summary,.macro span,.stat span{color:var(--muted)}.unit-toggle{white-space:nowrap}.header-search{width:100%;min-width:0}.header-search-toggle{display:none}.header-search-form{border:1px solid var(--border);background:#fffdf8db;align-items:center;gap:8px;min-height:42px;padding:0 10px;display:flex}.header-search-icon{color:var(--muted);flex:none}.header-search-form input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0}.header-search-submit{color:var(--herb);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;font-size:.68rem;font-weight:900}.brand-flyout{z-index:35;border:1px solid var(--border);background:var(--surface);width:min(340px,100vw - 28px);box-shadow:var(--shadow);transform-origin:0 0;border-radius:8px;gap:16px;padding:16px;animation:.14s ease-out both menuFlyoutIn;display:grid;position:absolute;top:calc(100% + 10px);left:0}.brand-flyout-nav,.brand-flyout-tools{gap:12px;display:grid}.brand-flyout-tools{border-top:1px solid var(--border);padding-top:12px}.brand-flyout-tools form,.brand-flyout-tools .unit-toggle{width:100%}.brand-flyout-tools .unit-toggle{justify-content:center}.menu-section{gap:6px;display:grid}.menu-section-label{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.66rem;font-weight:900}.menu-section-links{gap:4px;display:grid}.menu-link{min-height:42px;color:var(--ink);letter-spacing:.08em;text-transform:uppercase;background:#fbf7ef40;border:1px solid #0000;border-radius:7px;align-items:center;gap:10px;padding:10px 11px;font-size:.72rem;font-weight:800;text-decoration:none;transition:background .16s,border-color .16s,color .16s,transform .16s,box-shadow .16s;display:flex}.menu-link-icon{color:var(--muted);flex:none;transition:color .16s,transform .16s}.menu-link:hover,.menu-link.is-active{background:var(--paper);color:var(--herb);border-color:var(--border);box-shadow:inset 3px 0 0 var(--herb);transform:translate(2px)}.menu-link:hover .menu-link-icon,.menu-link.is-active .menu-link-icon{color:var(--herb);transform:scale(1.05)}.menu-link:focus-visible{outline:2px solid var(--herb);outline-offset:2px}.menu-logout-button{justify-content:center;align-items:center;gap:8px;display:inline-flex}@keyframes menuFlyoutIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes messageIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes modalBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.main{width:min(1180px,100% - 36px);margin:0 auto;padding:18px 0 74px}
.hero-band{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;margin-bottom:30px;padding:48px 0 32px;display:grid}.eyebrow{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px;font-size:.68rem;font-weight:900}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:500}h1{max-width:860px;font-size:var(--display-size);margin-bottom:0;line-height:.95}h2{font-size:var(--section-size);margin-bottom:12px;line-height:1}h3{margin-bottom:10px;font-size:.98rem}p{line-height:1.65}.hero-summary{flex-wrap:wrap;justify-content:flex-end;gap:10px;max-width:360px;display:flex}.hero-summary span,.chip,.filter-button{border:1px solid var(--border);background:var(--surface);letter-spacing:.09em;text-transform:uppercase;padding:7px 10px;font-size:.68rem;font-weight:900}.primary-action,.secondary-action,.icon-action{border:1px solid var(--primary);border-radius:var(--radius-sm);justify-content:center;align-items:center;min-height:42px;font-weight:900;text-decoration:none;display:inline-flex}.primary-action{background:var(--primary);color:var(--primary-ink);padding:11px 16px}.primary-action:hover{background:var(--primary-dark)}.primary-action:active,.secondary-action:active,.icon-action:active{transform:translateY(1px)}.secondary-action{color:var(--herb);border-color:var(--herb);background:0 0;padding:10px 14px}.secondary-action.on-dark{color:var(--primary-ink);border-color:#ffffffb3}.icon-action{width:42px;height:42px;color:var(--herb);background:0 0;font-size:1.2rem}.recipe-detail-grid>div,.recipe-detail-grid>section,.swap-list,.ingredient-list,.instruction-list,.grocery-list{gap:18px;display:grid}.recipe-detail-grid{grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:28px;display:grid}.recipe-detail-grid>div,.recipe-detail-grid>aside,.recipe-detail-grid>section{min-width:0}.recipe-main-top,.recipe-cooking-panel{grid-column:1}.sticky-panel{grid-area:1/2/span 2}.panel,.recipe-card,.grocery-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.grocery-section{box-shadow:var(--soft-shadow);padding:20px}.panel{padding:26px}.section-header,.card-row,.recipe-actions,.ingredient-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.start-actions{justify-content:flex-start;margin-top:20px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.stat,.macro{border-top:1px solid var(--border);padding:11px 0}.macro-label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:900}.macro{min-width:72px}.stat strong,.macro strong{font-family:var(--serif);font-size:1.35rem;font-weight:500;display:block}.macro span,.stat span{letter-spacing:.1em;text-transform:uppercase;margin-top:2px;font-size:.66rem;font-weight:900;display:block}.recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}.spaced-grid{margin-top:20px}.recipe-card{background:var(--surface);box-shadow:var(--soft-shadow);transition:transform var(--interaction-duration) var(--interaction-easing), box-shadow var(--interaction-duration) var(--interaction-easing);align-content:start;display:grid;position:relative;overflow:hidden}.recipe-card:not(.add-recipe-card){grid-template-rows:auto 1fr}.food-art{object-fit:cover;background:var(--surface-2);width:100%;display:block}.recipe-image{aspect-ratio:3/2;border-bottom:1px solid var(--border);height:auto}.recipe-card-body{grid-template-rows:31px minmax(2.55rem,auto) auto auto 1fr;gap:12px;padding:16px;display:grid}.recipe-card .tag-row{flex-wrap:nowrap;overflow:hidden}.recipe-card .chip{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.recipe-card h3{line-height:1.3}.recipe-card h3,.recipe-card p,.recipe-card .tag-row,.recipe-card .macro-summary-wrap{margin:0}.recipe-card h3 a{text-underline-offset:4px;transition:color var(--interaction-duration) var(--interaction-easing), text-decoration-color var(--interaction-duration) var(--interaction-easing);text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px}.recipe-card:has(.recipe-card-nav:focus-visible){box-shadow:var(--interaction-hover-shadow);transform:translateY(-2px)}.recipe-card h3 a:focus-visible{color:var(--primary);text-decoration-color:currentColor}.tag-row,.filter-row{flex-wrap:wrap;gap:8px;display:flex}.chip{color:var(--primary)}.filter-button{color:var(--muted)}.filter-button.is-active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.searchbar{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--ink);background:0 0;margin-bottom:16px;padding:15px 0}.search-summary{margin-bottom:16px}.recipe-library-controls{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.recipe-library-controls .filter-row{min-width:0}.sort-control{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;flex:0 0 210px;gap:7px;font-size:.72rem;font-weight:900;display:grid}.sort-control select{border:1px solid var(--border);background:var(--surface);width:100%;min-height:40px;color:var(--ink);padding:8px 10px}.empty-results{margin-top:18px}.empty-state-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}
.auth-layout,.admin-stack,.account-panel{gap:22px;display:grid}.auth-layout{width:min(560px,100%);margin:36px auto 58px}.auth-brand{place-items:center;width:min(320px,78vw);margin:0 auto -4px;display:grid}.auth-brand img{width:100%;height:auto;display:block}.auth-card,.setup-notice,.empty-state{border:1px solid var(--border);background:var(--surface);gap:16px;padding:clamp(24px,5vw,42px);display:grid}.setup-notice{background:var(--paper);margin-bottom:28px}.auth-card h1{font-size:clamp(2.4rem,6vw,4rem)}.auth-mode-toggle{border:1px solid var(--border);background:var(--paper);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.auth-mode-button{min-height:42px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:1px solid #0000;border-radius:6px;font-size:.72rem;font-weight:900;transition:background .16s,border-color .16s,color .16s,box-shadow .16s}.auth-mode-button:focus-visible{border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface);color:var(--ink)}.auth-mode-button.is-active{border-color:var(--border);background:var(--surface);color:var(--herb);box-shadow:0 6px 16px #34201914}.auth-inner-form{gap:16px;display:grid}.auth-card-actions,.auth-card-actions form{gap:10px;display:grid}.auth-card label,.field-stack,.plan-modal label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;gap:7px;font-size:.78rem;font-weight:900;display:grid}.auth-card input,.auth-card select,.auth-card textarea,.admin-invite-form input,.admin-form input,.admin-form select,.admin-form textarea,.admin-row select{border:1px solid var(--border);background:var(--surface);width:100%;min-height:44px;color:var(--ink);padding:10px 12px}.auth-card input.code-input{min-height:58px;font-family:var(--serif);letter-spacing:.18em;text-align:center;font-size:2rem}.captcha-wrap{min-height:1px}.admin-form textarea,.auth-card textarea{resize:vertical;line-height:1.45}.auth-alt,.form-message{color:var(--muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.form-message{border-left:3px solid var(--accent);background:var(--paper);margin:0;padding:10px 12px;animation:.18s ease-out both messageIn}.form-message.is-success{border-left-color:var(--herb)}.form-footer-actions{z-index:20;border-top:1px solid var(--border);background:color-mix(in srgb, var(--surface) 94%, white);justify-content:flex-end;gap:10px;margin:10px -18px -18px;padding:12px 18px;display:flex;position:sticky;bottom:0;box-shadow:0 -12px 24px #261f1714}.recipe-import-form{max-width:760px}.compact-hero-band{min-height:auto}.admin-workspace{gap:18px;display:grid}.admin-command-panel{border:1px solid var(--border);background:var(--paper);grid-template-columns:minmax(0,1.2fr) auto;align-items:start;gap:18px;padding:18px;display:grid}.admin-command-main h2{font-family:var(--serif);margin:2px 0 8px;font-size:clamp(1.55rem,2vw,2.25rem)}.admin-command-actions,.admin-command-stats{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-command-stats{grid-column:1/2;justify-content:flex-start}.admin-command-stats span{border:1px solid var(--border);background:var(--surface);min-height:34px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:5px;padding:6px 9px;font-size:.76rem;font-weight:900;display:inline-flex}.admin-search{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--muted);grid-column:2/3;grid-template-columns:auto minmax(180px,260px);align-items:center;gap:8px;padding:0 12px;display:grid}.admin-search input{width:100%;min-height:40px;color:var(--ink);background:0 0;border:0;outline:0}.admin-list-panel{gap:14px;display:grid}.admin-reorder-list{gap:10px;display:grid}.admin-recipe-row{grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.admin-recipe-row.is-dragging{opacity:.82}.drag-handle{cursor:grab;background:var(--paper)}.drag-handle:active{cursor:grabbing}.admin-recipe-card{border:1px solid var(--border);background:var(--surface);grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;padding:10px;display:grid}.admin-recipe-thumb{aspect-ratio:1;border:1px solid var(--border);background:var(--paper);width:78px;color:var(--muted);letter-spacing:.06em;text-align:center;text-transform:uppercase;place-items:center;font-size:.68rem;font-weight:900;display:grid;overflow:hidden}.admin-recipe-thumb img{object-fit:cover;width:100%;height:100%}.row-move-actions{gap:6px;display:grid}.order-save-bar{z-index:15;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffefaf5;border:1px solid #31594e59;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 16px 36px #34201929}.order-save-bar span{font-weight:900}.order-save-bar div{flex-wrap:wrap;gap:8px;display:flex}.import-review-panel{gap:22px;display:grid}.compact-section-header{margin:0}.compact-section-header h3{font-family:var(--serif);margin:2px 0 0;font-size:1.3rem}.import-quality-panel{border:1px solid var(--border);background:var(--paper);gap:14px;padding:16px;display:grid}.import-quality-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.import-quality-item{border:1px solid var(--border);background:var(--surface);gap:6px;min-height:118px;padding:12px;display:grid}.import-quality-item p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.45}.import-quality-status{border:1px solid var(--border);width:max-content;color:var(--herb);letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;font-size:.67rem;font-weight:900}.import-quality-item.needs-review{border-left:3px solid var(--accent)}.import-quality-item.needs-review .import-quality-status{color:var(--danger)}.import-warning-list{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--paper);gap:8px;padding:14px 16px;display:grid}.import-warning-list ul{color:var(--muted);margin:0;padding-left:18px}.import-warning-list li+li{margin-top:6px}.image-upload-field{border:1px solid var(--border);background:var(--paper);grid-template-columns:minmax(180px,260px) minmax(0,1fr);align-items:start;gap:16px;padding:16px;display:grid}.image-upload-preview{border:1px solid var(--border);background:var(--surface);min-height:150px;color:var(--muted);text-align:center;place-items:center;display:grid;overflow:hidden}.image-upload-preview img{object-fit:cover;width:100%;height:100%;min-height:150px}.image-upload-details,.image-upload-metadata{gap:8px;min-width:0;display:grid}.image-upload-metadata .eyebrow,.image-upload-metadata p,.image-upload-guidance{margin:0}.image-upload-metadata strong{overflow-wrap:anywhere}.image-upload-actions{flex-wrap:wrap;gap:10px;display:flex}.image-upload-button{position:relative;overflow:hidden}.image-upload-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.link-button{color:var(--herb);text-align:left;text-underline-offset:4px;background:0 0;border:0;padding:0;font-weight:900;text-decoration:underline}.link-button:disabled{color:var(--muted);cursor:not-allowed;text-decoration:none}.account-grid,.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.account-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.admin-form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-form{gap:18px;display:grid}.recipe-editor-form{gap:22px}.wizard-stepper{border:1px solid var(--border);background:var(--paper);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:8px;list-style:none;display:grid}.wizard-stepper li{min-width:0}.wizard-stepper button{min-height:46px;color:var(--muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;width:100%;font-weight:900;display:flex}.wizard-stepper button span{border:1px solid var(--border);background:var(--surface);place-items:center;width:24px;height:24px;display:inline-grid}.wizard-stepper button.is-active{border-color:var(--herb);color:var(--herb);background:#31594e14}.ingredient-expand-action{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:4px 2px;font-size:.76rem;font-weight:800;display:flex}.ingredient-expand-action:hover:not(:disabled){color:var(--primary)}.ingredient-toolbar{flex-wrap:wrap;gap:10px;display:flex}.ingredient-toolbar .secondary-action,.ingredient-list-actions .secondary-action{border-color:color-mix(in srgb, var(--border) 88%, var(--primary));background:var(--surface);min-height:44px;box-shadow:none;border-radius:4px;padding-inline:14px}.ingredient-paste-panel{border:1px solid var(--border);background:color-mix(in srgb, var(--paper) 72%, var(--surface));border-radius:5px;gap:10px;padding:14px;display:grid}.ingredient-paste-panel>label{color:var(--primary);font-size:.82rem;font-weight:850}.ingredient-paste-panel textarea{min-height:170px}.ingredient-bulk-lock{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent-soft) 62%, var(--surface));color:var(--ink);margin:0;padding:10px 12px;font-size:.82rem;font-weight:800}.ingredient-group-editor{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.ingredient-group-card{border:1px solid var(--border);background:var(--surface);min-width:0;box-shadow:none;border-radius:5px;overflow:clip}.ingredient-group-card.is-dragging,.ingredient-editor-row.is-dragging{z-index:3;opacity:.72;position:relative}.ingredient-group-header{background:color-mix(in srgb, var(--paper) 32%, var(--surface));grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:4px;min-width:0;min-height:52px;padding:3px 7px;display:grid}.ingredient-drag-handle{width:44px;min-height:44px;color:color-mix(in srgb, var(--muted) 72%, transparent);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.ingredient-drag-handle:active:not(:disabled){cursor:grabbing}.ingredient-group-title-field{min-width:0}.ingredient-group-title-field input{width:100%;min-width:0;min-height:38px;color:var(--ink);background:0 0;border-color:#0000;border-radius:3px;padding:7px 8px;font-size:.82rem;font-weight:850;transition:border-color .14s,background-color .14s}.ingredient-group-title-field input:focus{border-color:var(--herb);background:var(--surface)}.ingredient-group-actions,.ingredient-row-actions{justify-content:flex-end;align-items:center;gap:2px;display:flex;position:relative}.ingredient-group-body{border-top:1px solid var(--border);display:grid}.ingredient-column-headings,.ingredient-editor-row{grid-template-columns:44px minmax(66px,.55fr) minmax(88px,.72fr) minmax(150px,2fr) 76px;align-items:center;gap:8px;min-width:0;display:grid}.ingredient-column-headings{color:var(--muted);padding:7px 8px 3px;font-size:.64rem;font-weight:800}.ingredient-editor-row{border-top:1px solid var(--border);padding:4px 8px}.ingredient-column-headings+.ingredient-editor-row{border-top:0}.ingredient-row-field{gap:3px;min-width:0;display:grid}.ingredient-row-field>label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ingredient-row-field input,.ingredient-row-field select{border-color:color-mix(in srgb, var(--border) 88%, white);background:var(--surface);border-radius:3px;width:100%;min-width:0;min-height:38px;padding:7px 9px;font-size:.78rem;transition:border-color .14s,background-color .14s}@media (hover:hover) and (pointer:fine){.ingredient-group-title-field input:hover:not(:disabled):not([readonly]):not(:focus),.ingredient-row-field input:hover:not(:disabled):not([readonly]):not(:focus),.ingredient-row-field select:hover:not(:disabled):not(:focus){border-color:color-mix(in srgb, var(--herb) 58%, var(--border));background:color-mix(in srgb, var(--sage) 34%, var(--surface))}}.ingredient-editor-row.has-warning{box-shadow:inset 2px 0 0 var(--accent)}.ingredient-row-warning{width:28px;color:var(--accent);justify-content:center;align-items:center;display:inline-flex}.ingredient-list-actions{flex-wrap:wrap;justify-self:start;gap:10px;display:flex}.ingredient-group-editor:disabled{opacity:.66}.instruction-editor-helper{margin:-4px 0 0}.instruction-group-editor{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.instruction-group-editor:disabled{opacity:.66}.instruction-group-card{border:1px solid var(--border);background:var(--surface);border-radius:5px;min-width:0;overflow:clip}.instruction-group-card.is-dragging,.instruction-editor-row.is-dragging{z-index:3;opacity:.72;position:relative}.instruction-group-header{background:color-mix(in srgb, var(--paper) 32%, var(--surface));grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:6px;min-width:0;min-height:54px;padding:3px 7px;display:grid}.instruction-section-title-field{min-width:0}.instruction-section-title-field input{width:100%;min-width:0;min-height:38px;color:var(--ink);background:0 0;border-color:#0000;border-radius:3px;padding:7px 8px;font-size:.88rem;font-weight:850;transition:border-color .14s,background-color .14s}.instruction-section-title-field input:focus{border-color:var(--herb);background:var(--surface)}.instruction-section-title-field input::placeholder{color:var(--muted);font-weight:700}.instruction-step-count{color:var(--muted);white-space:nowrap;font-size:.7rem;font-weight:800}.instruction-group-actions,.instruction-row-actions{justify-content:flex-end;align-items:center;gap:2px;display:flex}.instruction-group-body{border-top:1px solid var(--border);display:grid}.instruction-editor-row{border-top:1px solid var(--border);grid-template-columns:44px 38px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:8px;transition:background-color .14s,box-shadow .14s;display:grid}.instruction-editor-row:first-child{border-top:0}.instruction-editor-row:focus-within,.instruction-editor-row.is-active{background:color-mix(in srgb, var(--sage) 34%, var(--surface));box-shadow:inset 2px 0 0 var(--herb)}.instruction-step-number{background:color-mix(in srgb, var(--sage) 72%, var(--surface));width:34px;height:34px;color:var(--primary);border-radius:4px;place-items:center;font-size:.8rem;font-weight:900;display:grid}.instruction-step-field{min-width:0}.instruction-step-field textarea{field-sizing:content;border-color:color-mix(in srgb, var(--border) 88%, white);background:var(--surface);resize:none;border-radius:3px;width:100%;min-width:0;min-height:58px;max-height:none;padding:9px 10px;font-size:.82rem;line-height:1.5;overflow-y:hidden}.instruction-add-step{min-height:44px;color:var(--herb-dark);background:0 0;border:0;justify-self:start;align-items:center;gap:7px;margin:4px 8px;padding:7px 9px;font-size:.78rem;font-weight:850;display:inline-flex}@media (hover:hover) and (pointer:fine){.instruction-section-title-field input:hover:not(:disabled):not([readonly]):not(:focus),.instruction-step-field textarea:hover:not(:disabled):not([readonly]):not(:focus){border-color:color-mix(in srgb, var(--herb) 58%, var(--border));background:color-mix(in srgb, var(--sage) 34%, var(--surface))}.instruction-add-step:hover:not(:disabled){background:color-mix(in srgb, var(--sage) 42%, var(--surface))}}.inline-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ingredient-parse-messages{color:var(--muted);gap:6px;margin:0;padding-left:20px;font-size:.92rem;display:grid}.ingredient-review-list{gap:8px;display:grid}.ingredient-review-row{border:1px solid var(--border);background:var(--surface);grid-template-columns:minmax(86px,.7fr) minmax(82px,.55fr) minmax(92px,.65fr) minmax(180px,1.5fr) minmax(126px,.9fr) minmax(106px,.75fr) auto;align-items:end;gap:8px;padding:10px;display:grid}.ingredient-review-meta,.ingredient-review-row label{gap:5px;min-width:0;display:grid}.ingredient-review-meta strong,.ingredient-review-row label span:first-child{color:var(--muted);text-transform:uppercase;letter-spacing:0;font-size:.72rem;font-weight:900}.ingredient-review-row input{width:100%;min-width:0}.ingredient-name-cell{min-width:0}.ingredient-preview-list{gap:8px;display:grid}.ingredient-preview-row{border:1px solid var(--border);background:var(--surface);grid-template-columns:34px minmax(160px,1.4fr) minmax(100px,.8fr) minmax(110px,.8fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.ingredient-preview-row strong,.ingredient-preview-row span{min-width:0}.ingredient-preview-index{border:1px solid var(--border);background:var(--paper);width:28px;height:28px;color:var(--muted);place-items:center;font-size:.78rem;font-weight:900;display:inline-grid}.markdown-editor{gap:10px;display:grid}.markdown-toolbar{border:1px solid var(--border);background:var(--paper);flex-wrap:wrap;align-items:center;gap:6px;padding:8px;display:flex}.toolbar-divider{background:var(--border);align-self:stretch;width:1px}.compact-action{min-height:38px;padding:8px 10px}.compact-action.is-active{border-color:var(--herb);color:var(--herb)}.markdown-preview{border:1px solid var(--border);background:var(--surface);min-height:220px;padding:14px 18px;line-height:1.55}.markdown-preview>:first-child,.instruction-markdown>:first-child{margin-top:0}.markdown-preview>:last-child,.instruction-markdown>:last-child{margin-bottom:0}.markdown-preview ul,.markdown-preview ol,.instruction-markdown ul,.instruction-markdown ol{padding-left:22px}.instruction-markdown{line-height:1.6}.editor-section{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 78%, var(--paper));gap:16px;padding:18px;display:grid}.editor-section-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.editor-section-header h3{font-family:var(--serif);margin:2px 0 0;font-size:clamp(1.15rem,1vw + .95rem,1.45rem)}.editor-section-description{color:var(--muted);margin-top:6px;line-height:1.5}.editor-section-description>*{margin:0}.editor-section-actions,.advanced-json-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.editor-section-body,.structured-list,.advanced-json-body{gap:14px;display:grid}.editor-overview-workspace{gap:18px;min-width:0;display:grid}.editor-overview-workspace>.editor-section{background:var(--surface);box-shadow:0 8px 24px #362b1e0d}.overview-details-primary{gap:14px;display:grid}.overview-details-secondary{grid-template-columns:minmax(180px,.72fr) minmax(260px,1.28fr);align-items:start;gap:14px;display:grid}.tag-editor{border:1px solid var(--border);background:var(--surface);letter-spacing:normal;text-transform:none;min-width:0}.tag-editor:focus-within{border-color:var(--interaction-hover-border);outline:2px solid var(--herb);outline-offset:2px}.tag-editor.has-error{border-color:var(--danger)}.tag-token-list{flex-wrap:wrap;align-items:center;gap:7px;min-height:44px;padding:6px 8px;display:flex}.tag-token{border:1px solid color-mix(in srgb, var(--herb) 24%, var(--border));background:color-mix(in srgb, var(--sage) 68%, white);max-width:100%;min-height:30px;color:var(--ink);border-radius:999px;align-items:center;gap:4px;padding-left:10px;font-size:.82rem;font-weight:750;display:inline-flex}.tag-token>span{overflow-wrap:anywhere}.tag-token button{width:30px;height:30px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.tag-token button:focus-visible{outline:2px solid var(--herb);outline-offset:1px}.tag-token-list>input{background:0 0;border:0;outline:0;flex:140px;min-width:110px;min-height:32px;padding:4px 2px}.tag-editor-help{letter-spacing:normal;text-transform:none;font-size:.82rem}.overview-inline-disclosure,.overview-settings-disclosure{min-width:0}.overview-inline-disclosure{border:1px solid var(--border);background:color-mix(in srgb, var(--paper) 78%, var(--surface))}.overview-inline-disclosure>summary,.overview-settings-disclosure>summary{cursor:pointer;list-style:none}.overview-inline-disclosure>summary::-webkit-details-marker{display:none}.overview-settings-disclosure>summary::-webkit-details-marker{display:none}.overview-inline-disclosure>summary{min-height:48px;color:var(--herb);align-items:center;padding:12px 14px;font-weight:850;display:flex}.overview-inline-disclosure>summary:focus-visible,.overview-settings-disclosure>summary:focus-visible{outline:2px solid var(--herb);outline-offset:3px}.overview-settings-disclosure{padding:0!important}.overview-settings-disclosure>summary{justify-content:space-between;align-items:center;gap:16px;padding:clamp(18px,2vw,26px);display:flex}.overview-settings-disclosure>summary h3{font-family:var(--serif);margin:2px 0 0;font-size:clamp(1.35rem,1.5vw,1.75rem)}.overview-settings-disclosure>summary .muted{margin:6px 0 0}.overview-settings-disclosure>summary>svg{flex:none;transition:transform .16s}.overview-settings-disclosure[open]>summary>svg{transform:rotate(180deg)}.overview-disclosure-body{padding:0 14px 14px}.overview-settings-disclosure>.overview-disclosure-body{padding:0 clamp(18px,2vw,26px) clamp(18px,2vw,26px)}.overview-settings-disclosure input[readonly]{background:color-mix(in srgb, var(--paper) 78%, var(--surface));color:var(--muted);cursor:text;opacity:1}.structured-row{border:1px solid var(--border);background:var(--surface);gap:14px;padding:14px;display:grid}.structured-row-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.structured-row-header strong{font-size:.94rem}.structured-row-actions{gap:6px;display:flex}.advanced-json-panel{border:1px dashed var(--border);background:var(--paper)}.advanced-json-panel summary{min-height:48px;color:var(--herb);cursor:pointer;align-items:center;gap:10px;padding:12px 16px;font-weight:900;display:flex}.advanced-json-body{padding:0 16px 16px}.danger-icon-action{color:var(--danger)}.icon-action:disabled{cursor:not-allowed;opacity:.4}.editor-publish-row{align-self:end;min-height:44px}.admin-table{gap:10px;margin-top:18px;display:grid}.bulk-toolbar{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:16px;display:flex}.bulk-select-all{color:var(--muted);font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;font-size:.72rem;font-weight:700;display:flex}.bulk-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 0;display:grid}.admin-row-selectable{grid-template-columns:auto minmax(0,1fr) auto}.admin-row.is-selected{box-shadow:inset 4px 0 0 var(--herb);background:#31594e14;padding-left:12px;padding-right:12px}.admin-row-check{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.admin-row-check input{width:20px;height:20px}.admin-recipe-summary{min-width:0}.admin-row strong,.admin-row span{display:block}.admin-recipe-meta{flex-wrap:wrap;align-items:center;gap:7px;margin-top:7px;display:flex}.admin-recipe-meta span,.status-pill{display:inline-flex}.status-pill{border:1px solid var(--border);background:var(--paper);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;min-height:28px;padding:5px 8px;font-size:.66rem;font-weight:900}.status-pill.is-published{color:var(--herb);background:#31594e1a;border-color:#31594e59}.admin-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-row-actions form{gap:8px;display:flex}.admin-edit-action,.admin-delete-action{min-height:44px}.danger-action{border-color:var(--accent);color:var(--accent)}.field-error{color:var(--accent);letter-spacing:0;text-transform:none;font-size:.76rem}.check-row{color:var(--ink);align-items:center;gap:10px;font-weight:800;display:flex}.check-row input{width:auto}.qr-wrap{border:1px solid var(--border);background:#fff;place-items:center;padding:18px;display:grid}.qr-wrap svg{width:min(240px,100%);height:auto}.detail-hero{min-height:430px}
.recipe-facts{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:0;margin:22px 0 14px;display:grid}.recipe-facts div{border-right:1px solid var(--border);padding:14px 12px}.recipe-facts div:last-child{border-right:0}.recipe-facts dt{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:.68rem;font-weight:900}.recipe-facts dd{font-family:var(--serif);margin:5px 0 0;font-size:1.25rem}.ingredient-measure{text-align:right;justify-items:end;min-width:96px;display:inline-grid;position:relative}.ingredient-measure-trigger{border:1px solid var(--border);background:var(--surface);max-width:100%;min-height:44px;color:var(--ink);border-radius:4px;justify-content:flex-end;align-items:center;gap:6px;padding:7px 9px;display:inline-flex}.ingredient-measure-trigger:hover strong{color:var(--herb)}.ingredient-measure-trigger svg{flex:none;transition:transform .14s}.ingredient-measure-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.ingredient-measure-menu{z-index:30;border:1px solid var(--border);background:var(--surface);width:max-content;min-width:max(100%,190px);max-width:min(280px,100vw - 32px);box-shadow:var(--shadow);text-align:left;border-radius:5px;display:grid;position:absolute;inset-block-start:calc(100% + 6px);inset-inline-end:0;overflow:hidden}.ingredient-measure-option{border:0;border-bottom:1px solid var(--border);min-height:44px;color:var(--ink);text-align:left;background:0 0;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:10px;padding:7px 10px;display:grid}.ingredient-measure-option:last-child{border-bottom:0}.ingredient-measure-option:hover,.ingredient-measure-option:focus-visible,.ingredient-measure-option[aria-selected=true]{background:color-mix(in srgb, var(--sage) 36%, var(--surface))}.ingredient-measure-option>span{gap:1px;min-width:0;display:grid}.ingredient-measure-option small{color:var(--muted);font-size:.72rem}.ingredient-measure-option svg{color:var(--herb)}.ingredient-measure-static{padding-block:7px}.sticky-panel{background:var(--paper);align-self:start;position:sticky;top:104px}.scale-selector{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.scale-selector button{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--muted);font-weight:900}.scale-selector button.is-active{border-color:var(--primary);background:var(--primary);color:var(--primary-ink)}.stepper{grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin:14px 0;display:grid}.stepper button{border:1px solid var(--border);background:var(--bg);height:42px;color:var(--herb);font-weight:900}.stepper output{text-align:center;font-family:var(--serif);gap:2px;font-size:1.7rem;display:grid}.stepper output span{color:var(--muted);font-family:var(--sans);letter-spacing:.09em;text-transform:uppercase;font-size:.68rem;font-weight:900}.full-button{width:100%;margin-top:14px}.wake-switch{background:var(--surface);border:1px solid var(--border);color:var(--ink);text-align:left;justify-content:space-between;align-items:center;gap:14px;width:100%;margin-top:14px;padding:12px;display:flex}.wake-switch strong,.wake-switch span span{display:block}.wake-switch strong{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.wake-switch span span{color:var(--muted);letter-spacing:0;text-transform:none;margin-top:3px;font-size:.78rem}.switch-track{background:var(--border);border:1px solid var(--border);border-radius:999px;flex:none;align-items:center;width:52px;height:28px;padding:3px;transition:background .16s,border-color .16s;display:inline-flex}.switch-thumb{background:var(--paper);border-radius:50%;width:20px;height:20px;transition:transform .16s;transform:translate(0);box-shadow:0 1px 4px #3625192e}.wake-switch[aria-pressed=true] .switch-track{background:var(--primary);border-color:var(--primary)}.wake-switch[aria-pressed=true] .switch-thumb{transform:translate(22px)}.wake-switch:disabled{cursor:not-allowed;opacity:.65}.swap-button{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--ink);text-align:left;padding:13px}.swap-button span{margin-top:4px;display:block}.swap-button.is-active{border-color:var(--herb);box-shadow:inset 4px 0 0 var(--herb)}.grocery-callout{background:var(--surface);border:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(300px,.55fr);align-items:center;gap:28px;padding:clamp(24px,4vw,42px);display:grid}.ingredient-row,.grocery-item{border:0;border-bottom:1px solid var(--border);padding:12px 0}.ingredient-row:last-child,.grocery-item:last-child{border-bottom:0}.section-spacer{margin-top:22px}.grocery-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grocery-toolbar,.saved-recipe-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.saved-recipe-list{gap:12px;display:grid}.saved-recipe-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 0;display:grid}.saved-recipe-row strong,.saved-recipe-row span{display:block}.saved-recipe-row input{border:1px solid var(--border);background:var(--surface);width:86px;min-height:42px;color:var(--ink);padding:8px 10px}.grocery-item{align-items:center;gap:10px;display:flex}.grocery-item span,.grocery-item strong{transition:color .16s,opacity .16s}.grocery-item input:checked+span{opacity:.66}.grocery-item input:checked+span strong{color:var(--herb)}.grocery-item input,.grocery-toolbar input{flex:none;width:22px;height:22px}.toast{background:var(--ink);color:var(--bg);opacity:0;pointer-events:none;z-index:30;padding:12px 14px;transition:all .18s;position:fixed;bottom:24px;right:24px;transform:translateY(12px)}.toast.is-visible{opacity:1;transform:translateY(0)}.modal-backdrop{z-index:40;background:#20211f57;place-items:center;padding:20px;animation:.14s ease-out both modalBackdropIn;display:grid;position:fixed;inset:0}.plan-modal{border:1px solid var(--border);background:var(--bg);gap:14px;width:min(460px,100%);padding:24px;animation:.16s ease-out both modalIn;display:grid;box-shadow:0 24px 80px #20211f38}.plan-modal label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;gap:7px;font-size:.78rem;font-weight:900;display:grid}.plan-modal select,.plan-modal input{border:1px solid var(--border);background:var(--surface);width:100%;min-height:44px;color:var(--ink);padding:10px 12px}
@media (max-width:1080px){.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:980px){.site-header{grid-template-columns:minmax(168px,max-content) minmax(0,1fr);gap:12px;padding:12px 14px}.auth-site-header{grid-template-columns:minmax(0,max-content)}.main{width:min(1180px,100% - 28px);padding-bottom:64px}.hero-band,.recipe-detail-grid,.grocery-layout,.grocery-callout{grid-template-columns:1fr}.sticky-panel{grid-area:auto;position:static}.recipe-detail-grid>.recipe-side-panel{order:-1}.recipe-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-facts div{border-right:0;border-bottom:1px solid var(--border)}.recipe-facts div:last-child{border-bottom:0}}@media (max-width:640px){.site-header{grid-template-columns:minmax(150px,max-content) minmax(0,1fr);gap:8px;min-height:64px;padding:9px 10px}.auth-site-header{grid-template-columns:minmax(0,max-content)}.brand{gap:7px}.brand-button{min-height:48px;padding-right:6px}.brand-mark,.brand-mark img{width:40px;height:40px}.brand strong{letter-spacing:.06em;font-size:.78rem}.brand small{display:none}.auth-layout{margin-block:26px 42px}.auth-brand{width:min(260px,76vw)}.header-search-form{min-height:40px;padding:0 8px}.header-search-submit{letter-spacing:0;min-width:28px;font-size:0}.header-search-submit:after{content:"Go";letter-spacing:.04em;font-size:.65rem}.recipe-library-controls{display:grid}.sort-control{flex-basis:auto}.bulk-toolbar{background:var(--paper);border:1px solid var(--border);align-items:stretch;margin-top:16px;padding:14px}.bulk-select-all{justify-content:space-between;width:100%;min-height:44px}.bulk-select-all input{width:20px;height:20px}.brand-flyout{top:calc(100% + 8px)}h1{font-size:2.7rem}.hero-summary{justify-content:flex-start}.recipe-grid,.stat-grid,.admin-command-panel,.image-upload-field,.import-quality-grid,.account-grid,.admin-form-grid,.admin-form-grid.four,.ingredient-review-row,.ingredient-preview-row,.admin-invite-form,.admin-row{grid-template-columns:1fr}.admin-command-actions,.admin-command-actions .primary-action,.admin-command-actions .secondary-action,.admin-search{width:100%}.admin-command-actions,.admin-command-stats{justify-content:stretch}.admin-command-stats,.admin-search{grid-column:auto}.admin-search{grid-template-columns:auto minmax(0,1fr)}.editor-section{padding:14px}.form-footer-actions{margin:10px -14px -14px;padding:10px 14px}.wizard-stepper{grid-template-columns:1fr}.markdown-toolbar .secondary-action{width:auto}.editor-section-header,.structured-row-header{flex-direction:column;align-items:stretch}.editor-section-actions,.structured-row-actions,.advanced-json-actions{justify-content:stretch}.editor-section-actions .secondary-action,.advanced-json-actions .secondary-action{width:100%}.structured-row-actions .icon-action{flex:1;min-height:44px}.ingredient-review-row .structured-row-actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.ingredient-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ingredient-toolbar .secondary-action{width:100%}.ingredient-paste-trigger,.instruction-paste-trigger{grid-column:1/-1}.ingredient-group-header{grid-template-columns:44px minmax(0,1fr) auto}.ingredient-column-headings{display:none}.ingredient-editor-row,.ingredient-column-headings+.ingredient-editor-row{border-top:1px solid var(--border);grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 44px;grid-template-areas:"handle amount unit actions"".ingredient ingredient.";gap:8px;padding:8px 6px}.ingredient-editor-row>.ingredient-drag-handle{grid-area:handle;align-self:end}.ingredient-row-field[data-ingredient-field=amount]{grid-area:amount}.ingredient-row-field[data-ingredient-field=unit]{grid-area:unit}.ingredient-row-field[data-ingredient-field=ingredient]{grid-area:ingredient}.ingredient-row-actions{grid-area:actions;align-self:end}.ingredient-row-warning{position:absolute;transform:translate(-26px,-27px)}.instruction-group-header{grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"handle title title""count actions actions";padding:6px}.instruction-group-header>.ingredient-drag-handle{grid-area:handle}.instruction-section-title-field{grid-area:title}.instruction-step-count{grid-area:count;padding-left:8px}.instruction-group-actions{grid-area:actions}.instruction-editor-row{grid-template-columns:44px 38px minmax(0,1fr);grid-template-areas:"handle number actions""field field field";padding:8px 6px}.instruction-editor-row>.ingredient-drag-handle{grid-area:handle}.instruction-step-number{grid-area:number}.instruction-step-field{grid-area:field}.instruction-row-actions{grid-area:actions}.ingredient-row-field>label{clip:auto;clip-path:none;width:auto;height:auto;color:var(--muted);white-space:normal;font-size:.64rem;font-weight:800;position:static;overflow:visible}.ingredient-list-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.ingredient-list-actions .secondary-action,.admin-row-actions,.admin-row-actions form{width:100%}.admin-recipe-row{grid-template-columns:44px minmax(0,1fr);align-items:start}.admin-recipe-row .row-move-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-recipe-card{grid-template-columns:64px minmax(0,1fr)}.admin-recipe-card .admin-row-actions{grid-column:1/-1}.admin-recipe-thumb{width:64px}.saved-recipe-row{grid-template-columns:1fr}.saved-recipe-actions,.saved-recipe-actions input,.saved-recipe-actions .secondary-action,.saved-recipe-row form,.saved-recipe-row form .secondary-action,.bulk-actions,.bulk-actions .secondary-action{width:100%}.bulk-actions{justify-content:stretch}.admin-row.admin-row-selectable{background:var(--surface);border:1px solid var(--border);grid-template-columns:auto minmax(0,1fr);align-items:start;padding:14px}.admin-row-selectable .admin-row-actions{grid-column:1/-1}.admin-row.is-selected{box-shadow:inset 4px 0 0 var(--herb), 0 10px 24px #34201914;border-color:#31594e73}.admin-row-check{min-width:48px;min-height:48px}.admin-recipe-summary{padding-top:5px}.admin-recipe-meta{gap:8px}.admin-row-actions{grid-template-columns:1fr;display:grid}.admin-edit-action,.admin-delete-action,.admin-delete-form{width:100%}.admin-edit-action{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.account-actions,.account-actions form{width:100%}.account-actions,.admin-row-actions form{flex-direction:column}.detail-hero{min-height:280px}.section-header{flex-direction:column;align-items:flex-start}.form-footer-actions{z-index:12;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffefaf5;justify-content:stretch;margin:0 -26px -26px;padding:12px 26px;position:sticky;bottom:0}.form-footer-actions .primary-action,.order-save-bar,.order-save-bar div,.order-save-bar .primary-action,.order-save-bar .secondary-action{width:100%}.order-save-bar div{grid-template-columns:1fr;display:grid}}
.filter-button{border-color:var(--control-border)}.recipe-card h3 .recipe-card-nav{text-underline-offset:4px;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px}.header-search-form,.admin-search{border-color:var(--control-border);transition:background-color var(--interaction-duration) var(--interaction-easing), border-color var(--interaction-duration) var(--interaction-easing), box-shadow var(--interaction-duration) var(--interaction-easing)}.header-search-form:focus-within,.admin-search:focus-within{border-color:var(--herb);background:var(--surface);box-shadow:0 0 0 1px var(--herb)}.searchbar,.saved-recipe-row input{transition:background-color var(--interaction-duration) var(--interaction-easing), border-color var(--interaction-duration) var(--interaction-easing), box-shadow var(--interaction-duration) var(--interaction-easing)}.saved-recipe-row input{border-color:var(--control-border)}@media (hover:hover) and (pointer:fine){.header-search-form:hover,.admin-search:hover,.searchbar:hover:not(:disabled):not([readonly]):not(:focus),.saved-recipe-row input:hover:not(:disabled):not([readonly]):not(:focus){border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.brand-button[aria-expanded=true] .brand-menu-icon,.primary-action:active,.secondary-action:active,.icon-action:active,.menu-link:hover,.menu-link.is-active,.menu-link:hover .menu-link-icon,.menu-link.is-active .menu-link-icon{transform:none}}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--herb);outline-offset:3px}:where(.primary-action,.secondary-action,.icon-action,.compact-action,.filter-button,.link-action,.link-button){transition:color var(--interaction-duration) var(--interaction-easing), background-color var(--interaction-duration) var(--interaction-easing), border-color var(--interaction-duration) var(--interaction-easing), box-shadow var(--interaction-duration) var(--interaction-easing), transform var(--interaction-duration) var(--interaction-easing)}:where(.primary-action,.secondary-action,.icon-action,.compact-action,.filter-button,.link-button):disabled,:where(.primary-action,.secondary-action,.icon-action,.compact-action,.filter-button)[aria-disabled=true]{cursor:not-allowed;opacity:.52;transform:none}:where(.auth-card input,.auth-card select,.auth-card textarea,.admin-invite-form input,.admin-form input,.admin-form select,.admin-form textarea,.admin-row select,.sort-control select,.plan-modal input,.plan-modal select,.unit-select,.editor-status-control select):not([type=checkbox]):not([type=radio]){border-color:var(--control-border);transition:background-color var(--interaction-duration) var(--interaction-easing), border-color var(--interaction-duration) var(--interaction-easing), box-shadow var(--interaction-duration) var(--interaction-easing)}:where(.auth-card input,.auth-card select,.auth-card textarea,.admin-invite-form input,.admin-form input,.admin-form select,.admin-form textarea,.admin-row select,.sort-control select,.plan-modal input,.plan-modal select,.unit-select,.editor-status-control select):not([type=checkbox]):not([type=radio]):focus{border-color:var(--herb);background:var(--surface)}:where(.auth-card label,.field-stack,.plan-modal label,.sort-control){color:var(--muted-strong)}:where(input,select,textarea)[aria-invalid=true]{box-shadow:inset 3px 0 0 color-mix(in srgb, var(--danger) 72%, transparent);border-color:var(--danger)!important}:where(input,select,textarea):disabled,:where(input,select,textarea)[readonly]{cursor:not-allowed;opacity:.68}:where(input[type=checkbox],input[type=radio]){accent-color:var(--primary)}.link-action,.link-button,.auth-alt a,.muted a,.form-message a,.editor-breadcrumb a{text-underline-offset:4px;text-decoration-line:underline;text-decoration-thickness:1px}.form-message{border-left-color:var(--danger);background:color-mix(in srgb, var(--accent-soft) 58%, var(--surface));color:var(--ink)}.form-message.is-success{border-left-color:var(--herb);background:color-mix(in srgb, var(--sage) 58%, var(--surface))}.form-message.is-warning{border-left-color:var(--accent);background:color-mix(in srgb, var(--accent-soft) 58%, var(--surface))}@media (hover:hover) and (pointer:fine){.primary-action:hover:not(:disabled){background:var(--primary-dark);box-shadow:var(--interaction-hover-shadow)}.secondary-action:hover:not(:disabled),.compact-action:hover:not(:disabled){border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface);color:var(--primary);box-shadow:var(--interaction-hover-shadow)}.secondary-action.on-dark:hover:not(:disabled){border-color:var(--primary-ink);color:var(--primary-ink);background:#ffffff24}.icon-action:hover:not(:disabled),.filter-button:hover:not(:disabled){border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface);color:var(--primary)}:where(.link-action,.link-button,.auth-alt a,.muted a,.form-message a,.editor-breadcrumb a):hover{color:var(--primary-dark);text-decoration-thickness:2px}:where(.auth-card input,.auth-card select,.auth-card textarea,.admin-invite-form input,.admin-form input,.admin-form select,.admin-form textarea,.admin-row select,.sort-control select,.plan-modal input,.plan-modal select,.unit-select,.editor-status-control select):not([type=checkbox]):not([type=radio]):hover:not(:disabled):not([readonly]):not(:focus){border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface)}.danger-action:hover:not(:disabled),.danger-icon-action:hover:not(:disabled){border-color:var(--danger);background:color-mix(in srgb, var(--accent-soft) 72%, var(--surface));color:var(--danger);box-shadow:none}.danger-link:hover:not(:disabled){color:var(--danger);text-decoration-thickness:2px}.recipe-card:has(.recipe-card-nav:hover){box-shadow:var(--interaction-hover-shadow);transform:translateY(-2px)}.recipe-card h3 a:hover{color:var(--primary);text-decoration-color:currentColor}.add-recipe-card:hover{border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface);box-shadow:var(--interaction-hover-shadow);transform:translateY(-2px)}.scale-selector button:hover:not(.is-active),.stepper button:hover,.wake-switch:hover:not(:disabled),.swap-button:hover:not(.is-active){border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface)}.recipe-tabs a:hover{color:var(--primary);background:var(--interaction-hover-surface);box-shadow:inset 0 -3px 0 var(--herb)}}:where(.primary-action,.secondary-action,.icon-action):active:not(:disabled){box-shadow:none;transform:translateY(1px)}.filter-button.is-active,.filter-button[aria-pressed=true]{border-color:var(--primary);background:var(--primary);color:var(--primary-ink)}.secondary-action.is-active,.compact-action.is-active,.secondary-action[aria-pressed=true],.compact-action[aria-pressed=true]{border-color:var(--herb);background:var(--interaction-hover-surface-strong);color:var(--primary-dark);box-shadow:inset 0 -2px 0 var(--herb)}.add-recipe-card:focus-visible{border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface);box-shadow:var(--interaction-hover-shadow);transform:translateY(-2px)}.scale-selector button,.stepper button,.wake-switch,.swap-button,.recipe-tabs a{transition:color var(--interaction-duration) var(--interaction-easing), background-color var(--interaction-duration) var(--interaction-easing), border-color var(--interaction-duration) var(--interaction-easing), box-shadow var(--interaction-duration) var(--interaction-easing), transform var(--interaction-duration) var(--interaction-easing)}.scale-selector button,.stepper button,.wake-switch,.swap-button{border-color:var(--control-border)}.scale-selector button.is-active,.scale-selector button[aria-pressed=true]{border-color:var(--primary);background:var(--primary);color:var(--primary-ink)}.wake-switch[aria-pressed=true]{border-color:var(--herb);background:var(--interaction-hover-surface)}.swap-button.is-active,.swap-button[aria-pressed=true]{border-color:var(--herb);background:var(--interaction-hover-surface);box-shadow:inset 4px 0 0 var(--herb)}.grocery-item,.editor-section-rail button,.ingredient-drag-handle,.drag-handle,.auth-mode-button,.saved-grocery-controls input,.saved-grocery-controls button:not(.secondary-action){transition:color var(--interaction-duration) var(--interaction-easing), background-color var(--interaction-duration) var(--interaction-easing), border-color var(--interaction-duration) var(--interaction-easing), box-shadow var(--interaction-duration) var(--interaction-easing)}.saved-grocery-controls input,.saved-grocery-controls button:not(.secondary-action){border-color:var(--control-border)}.editor-section-rail button.is-active,.editor-section-rail button[aria-pressed=true]{border-color:color-mix(in srgb, var(--herb) 52%, var(--border));background:var(--interaction-hover-surface-strong);color:var(--primary);box-shadow:inset 3px 0 0 var(--herb)}@media (hover:hover) and (pointer:fine){.auth-mode-button:hover:not(:disabled){border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface);color:var(--ink)}.grocery-item:has(input:not(:disabled)):hover{background:var(--interaction-hover-surface)}.saved-grocery-controls input:hover:not(:disabled):not([readonly]):not(:focus),.saved-grocery-controls button:not(.secondary-action):hover:not(:disabled){border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface)}.editor-section-rail button:hover:not(:disabled){border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface);color:var(--ink)}.ingredient-drag-handle:hover:not(:disabled),.drag-handle:hover:not(:disabled){border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface);color:var(--primary)}}.link-action{color:var(--primary);font-weight:900;text-decoration:none}.soft-chip{border:1px solid color-mix(in srgb, var(--border) 76%, white);background:color-mix(in srgb, var(--sage) 60%, white);min-height:28px;color:var(--primary);align-items:center;padding:5px 9px;font-size:.72rem;font-weight:800;display:inline-flex}.recipe-image-fallback{background:linear-gradient(135deg, #1f5a4914, #c969471a), var(--paper);min-height:180px;color:var(--primary);text-align:center;align-content:center;place-items:center;gap:8px;padding:18px;display:grid}.recipe-image-fallback.recipe-image{min-height:0}.recipe-image-fallback span{letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;font-weight:900}.recipe-image-fallback strong{max-width:18rem;font-family:var(--serif);font-size:1.25rem;font-weight:500}.macro-summary-wrap{gap:8px;display:grid}.macro-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.macro-summary .macro{border-top:1px solid var(--border);min-width:0;padding:9px 8px}.macro-summary-wrap.is-compact .macro{padding:8px 0}.macro.is-featured{background:color-mix(in srgb, var(--sage) 54%, white);border-color:color-mix(in srgb, var(--herb) 35%, var(--border));padding-inline:8px}.grocery-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.grocery-stat-card{border:1px solid var(--border);background:var(--surface);min-height:86px;color:inherit;box-shadow:var(--soft-shadow);gap:4px;padding:16px;text-decoration:none;display:grid}.grocery-stat-card strong{font-family:var(--serif);font-size:1.8rem;font-weight:500}.grocery-stat-card span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:900}.archive-control-panel{background:color-mix(in srgb, var(--surface) 86%, white)}.recipe-card-image-link{display:block}.recipe-card h3 a{text-decoration:none}.recipe-card-actions{z-index:2;justify-content:space-between;align-self:end;align-items:center;gap:8px;padding-top:4px;display:flex;position:relative}
.recipe-card-actions .primary-action{flex:1;min-height:44px;padding-inline:12px;font-size:.78rem}.add-recipe-card{min-height:360px;color:var(--primary);text-align:center;border-style:dashed;place-items:center;padding:24px;text-decoration:none}.add-recipe-card strong{font-family:var(--serif);font-size:1.4rem;font-weight:500}.archive-grocery-callout{margin-top:24px}.recipe-detail-page{gap:30px;display:grid}#ingredients,#instructions,#nutrition{scroll-margin-top:100px}.recipe-hero-shell{grid-template-columns:minmax(0,1fr) minmax(360px,.88fr);align-items:center;gap:clamp(28px,5vw,50px);padding:34px 0 24px;display:grid}.recipe-hero-content{gap:18px;display:grid}.recipe-hero-content h1{font-size:clamp(3rem,6vw,5rem)}.detail-hero{aspect-ratio:4/3;object-fit:cover;width:100%;min-height:360px;box-shadow:var(--soft-shadow)}.recipe-action-bar{grid-template-columns:1.2fr repeat(3,minmax(0,1fr));gap:10px;display:grid}.recipe-action-bar .primary-action,.recipe-action-bar .secondary-action{gap:8px}.recipe-action-bar .primary-action:not(.recipe-start-action){background:var(--surface);color:var(--primary)}.recipe-tabs{border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin:-26px -26px 24px;display:grid}.recipe-tabs a{min-height:48px;color:var(--muted);text-align:center;padding:16px;font-weight:900;text-decoration:none}.recipe-tabs a:focus-visible{color:var(--primary);background:var(--interaction-hover-surface);box-shadow:inset 0 -3px 0 var(--herb)}.ingredient-group-list,.ingredient-group,.instruction-section{gap:16px;display:grid}.ingredient-group+.ingredient-group,.instruction-section{margin-top:26px}.ingredient-group h3{color:var(--primary);letter-spacing:.1em;text-transform:uppercase;margin-bottom:0;font-size:.8rem;font-weight:900}.ingredient-check-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.ingredient-check-row input{width:18px;height:18px}.ingredient-check-row>label{cursor:pointer}.instruction-list{counter-reset:recipe-step;padding-left:0;list-style:none}.instruction-list li{border-bottom:1px solid var(--border);grid-template-columns:38px minmax(0,1fr);gap:14px;padding:16px 0;display:grid}.instruction-list li>span{background:var(--sage);width:34px;height:34px;color:var(--primary);place-items:center;font-weight:900;display:grid}.instruction-list p{margin:0}.structured-instruction-groups{gap:24px;display:grid}.structured-instruction-group{gap:6px;display:grid}.structured-instruction-group h3{color:var(--primary);font-family:var(--serif);margin:0;font-size:1.22rem;font-weight:600}.structured-instruction-group .instruction-list{gap:0}.instruction-markdown-cook{counter-reset:recipe-paragraph;gap:14px;display:grid}.instruction-markdown-cook>p{border-bottom:1px solid var(--border);counter-increment:recipe-paragraph;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:14px;margin:0;padding:16px 0;display:grid}.instruction-markdown-cook>p:before{content:counter(recipe-paragraph);background:var(--sage);width:34px;height:34px;color:var(--primary);place-items:center;font-weight:900;display:grid}.instruction-markdown-cook h3,.instruction-markdown-cook h4{color:var(--primary);margin:18px 0 0}.instruction-markdown-cook ol,.instruction-markdown-cook ul{gap:12px;margin:0;padding-left:28px;display:grid}.instruction-markdown-cook li::marker{color:var(--primary);font-weight:900}.recipe-side-panel{gap:14px;display:grid}.serving-scaler{gap:12px;display:grid}.grocery-page,.grocery-section-list{gap:20px;display:grid}.grocery-saved-panel,.grocery-generated-panel{gap:18px;display:grid}.saved-grocery-card-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.saved-grocery-card{border:1px solid var(--border);background:var(--surface);grid-template-columns:92px minmax(0,1fr);gap:12px;padding:10px;display:grid}.saved-grocery-thumb{object-fit:cover;width:92px;height:100%;min-height:116px}.saved-grocery-card-body,.saved-grocery-controls{gap:8px;display:grid}.saved-grocery-controls{grid-template-columns:34px minmax(52px,1fr) 34px}.saved-grocery-controls input,.saved-grocery-controls button:not(.secondary-action){border:1px solid var(--border);background:var(--surface);text-align:center;min-height:36px}.saved-grocery-controls .secondary-action{grid-column:1/-1;min-height:38px}.danger-link,.danger-action{color:var(--danger);border-color:var(--danger)}.grocery-section-header{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding-bottom:12px;display:flex}.grocery-section-header h3{font-family:var(--serif);margin:0;font-size:1.3rem}.grocery-section-header span{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:900}.grocery-item span{gap:3px;display:grid}.grocery-item small{color:var(--muted);line-height:1.4}.grocery-finish-panel{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 74%, var(--sage));justify-content:space-between;align-items:center;gap:20px;padding:22px;display:flex}.grocery-finish-panel>div:first-child{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 14px;display:grid}.grocery-finish-panel p{grid-column:2}.grocery-finish-actions{flex-wrap:wrap;gap:10px;display:flex}.admin-editor-title-row,.recipe-editor-form>.wizard-stepper,.recipe-editor-form>.form-message,.recipe-editor-form>.form-footer-actions{grid-column:1/-1}.admin-editor-title-row h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1}.admin-editor-title-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.admin-quality-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--soft-shadow);align-self:start;gap:18px;padding:18px;display:grid}.quality-score{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:12px;display:grid}.quality-score>span{aspect-ratio:1;border:4px solid var(--herb);width:64px;color:var(--primary);border-radius:50%;place-items:center;font-weight:900;display:grid}.quality-score p,.quality-publish-status p{color:var(--muted);margin:4px 0 0;font-size:.82rem;line-height:1.4}.quality-check-group{border-top:1px solid var(--border);gap:10px;padding-top:14px;display:grid}.quality-check{grid-template-columns:18px minmax(0,1fr);align-items:start;gap:8px;display:grid}.quality-check svg{margin-top:2px}.quality-check.is-ok svg{color:var(--herb)}.quality-check.needs-review svg{color:var(--accent)}.quality-check span{gap:2px;display:grid}.quality-check small{color:var(--muted);line-height:1.35}.quality-publish-status{border-top:1px solid var(--border);padding-top:14px}.admin-image-preview,.admin-recipe-thumb .food-art{object-fit:cover;width:100%;height:100%;min-height:150px}@media (min-width:1120px){.recipe-editor-form{grid-template-columns:minmax(0,1fr) minmax(280px,320px);align-items:start}.recipe-editor-form>.editor-section,.recipe-editor-form>.advanced-json-panel{grid-column:1}.recipe-editor-form>.admin-quality-panel{grid-area:3/2/span 20;position:sticky;top:104px}}@media (max-width:1180px){.saved-grocery-card-row,.recipe-action-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:980px){.recipe-hero-shell{grid-template-columns:1fr}}@media (max-width:640px){.grocery-finish-panel{display:grid}.detail-hero{min-height:260px}.grocery-summary-grid,.saved-grocery-card-row{grid-template-columns:1fr}.recipe-action-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-tabs a{padding-inline:8px;font-size:.78rem}.saved-grocery-card{grid-template-columns:82px minmax(0,1fr)}.recipe-hero-content h1{font-size:2.6rem}.ingredient-check-row{grid-template-columns:auto minmax(0,1fr)}.ingredient-measure{text-align:left;grid-column:2;justify-items:start;max-width:100%}.ingredient-measure-trigger{justify-content:flex-start}.ingredient-measure-menu{inset-inline:0 auto}.admin-quality-panel{order:3}}.member-page-intro{gap:var(--space-5);padding:var(--space-6) 0 var(--space-5);margin-bottom:var(--space-5)}.member-page-intro h1{font-size:clamp(2.5rem,5vw,4.4rem);line-height:1}.member-page-intro>div:first-child>p:last-child{max-width:660px;margin:var(--space-2) 0 0}.archive-control-panel{border-color:color-mix(in srgb, var(--border) 72%, transparent);box-shadow:none;padding:18px 20px}.recipe-filter-groups{gap:8px;min-width:0;display:grid}.desktop-secondary-filters{display:block}.mobile-filter-disclosure{display:none}.recipe-grid{gap:20px}.recipe-card{border-color:color-mix(in srgb, var(--border) 78%, transparent);box-shadow:var(--shadow-sm)}.recipe-image,.recipe-image--card{aspect-ratio:4/3}.recipe-card-body{grid-template-rows:auto minmax(2.55rem,auto) auto auto 1fr;gap:10px;padding:15px}.recipe-card .tag-row{align-items:center;min-height:28px}.chip.is-category{border-color:color-mix(in srgb, var(--herb) 26%, var(--border));background:color-mix(in srgb, var(--sage) 48%, var(--surface))}.chip.is-supporting{color:var(--muted-strong);background:0 0;border-color:#0000;padding-inline:2px}.recipe-card h3{font-size:1.02rem;line-height:1.28}.recipe-card-actions{display:block}.recipe-card-actions .primary-action{width:100%}.macro-summary-empty{border-top:1px solid var(--border);gap:4px;padding:10px 0}.macro-summary-empty p:last-child{color:var(--muted);margin:0;font-size:.78rem;line-height:1.4}.recipe-hero-shell{align-items:center}.recipe-hero-content{grid-area:1/2}.recipe-hero-image-wrap{grid-area:1/1}.recipe-hero-content h1{font-size:clamp(2.8rem,5.4vw,4.65rem);line-height:.98}.detail-hero,.recipe-image--hero{aspect-ratio:4/3;border-radius:var(--radius-md);min-height:0}.recipe-action-bar{grid-template-columns:1.1fr 1.1fr .8fr}.recipe-grocery-link{color:var(--primary);text-underline-offset:3px;grid-column:1/-1;justify-self:start;font-size:.8rem;font-weight:800}.recipe-side-panel{border-color:color-mix(in srgb, var(--herb) 20%, var(--border));background:color-mix(in srgb, var(--surface) 78%, var(--paper));box-shadow:none}.recipe-tabs{z-index:5;background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:76px}.grocery-empty-state{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:clamp(28px,6vw,64px)}.grocery-empty-state .empty-state{background:0 0;border:0;max-width:760px;padding:0}.grocery-empty-state .secondary-action{text-underline-offset:3px;border-color:#0000;min-height:auto;padding:6px 2px;text-decoration:underline}.grocery-summary-grid{margin-bottom:0}.grocery-stat-card{min-height:70px;box-shadow:none;padding:12px 14px}.grocery-stat-card strong{font-size:1.55rem}.grocery-saved-panel,.grocery-generated-panel{padding:22px}.saved-grocery-card{border-color:color-mix(in srgb, var(--border) 80%, transparent);border-radius:var(--radius-sm)}.grocery-item{min-height:54px;padding-block:14px}.grocery-item input{width:24px;height:24px}.grocery-item input:checked+span strong{text-decoration:line-through;text-decoration-thickness:1px}@media (max-width:980px){.recipe-hero-content,.recipe-hero-image-wrap{grid-column:1}.recipe-hero-content{grid-row:1}.recipe-hero-image-wrap{grid-row:2}.recipe-tabs{top:64px}}@media (max-width:640px){.site-header{grid-template-columns:minmax(0,1fr) 44px}.header-search{justify-content:flex-end;display:flex;position:static}.header-search-toggle{border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--surface);width:44px;height:44px;color:var(--primary);place-items:center;padding:0;display:inline-grid}.header-search-form{top:calc(100% + 8px);background:var(--surface);min-height:48px;box-shadow:var(--shadow-md);display:none;position:absolute;inset-inline:10px}.header-search-form.is-open{display:flex}.header-search-submit{min-width:54px;font-size:.68rem}.header-search-submit:after{content:none}.member-page-intro{margin-bottom:18px;padding:22px 0 18px}.member-page-intro h1{font-size:clamp(2.35rem,13vw,3.35rem)}.hero-summary{justify-content:flex-start}.archive-control-panel{padding:14px}.desktop-secondary-filters{display:none}.mobile-filter-disclosure{gap:10px;display:grid}.mobile-filter-disclosure>summary{border:1px solid var(--control-border);border-radius:var(--radius-sm);width:fit-content;min-height:40px;color:var(--primary);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;padding:10px 12px;font-size:.72rem;font-weight:900;list-style-position:inside}.mobile-filter-disclosure .filter-row{padding-top:2px}.sort-control{margin-top:4px}.recipe-hero-shell{gap:18px;padding-top:20px}.recipe-hero-content{gap:12px}.recipe-hero-content h1{font-size:clamp(2.35rem,12vw,3.1rem)}.recipe-hero-content>p{margin-bottom:2px;line-height:1.5}.recipe-facts{gap:0}.recipe-facts div{padding:10px 8px}.recipe-action-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.recipe-action-bar .primary-action,.recipe-action-bar .secondary-action{min-height:48px;padding:9px 7px;font-size:.72rem}.recipe-action-bar svg{display:none}.detail-hero,.recipe-image--hero{aspect-ratio:4/3;min-height:0;max-height:420px}.recipe-side-panel{padding:20px}.recipe-tabs{margin-inline:-20px}.grocery-empty-state{padding:26px}.grocery-empty-state .empty-state-actions{flex-direction:column;align-items:flex-start}.grocery-saved-panel,.grocery-generated-panel{padding:18px}.grocery-toolbar{z-index:4;border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;width:100%;padding:8px;position:sticky;top:68px}}
.main:has(.admin-editor-page){width:min(1580px,100% - 36px)}.admin-editor-page,.admin-editor-surface,.import-review-workspace{min-width:0}.admin-editor-page{padding-top:10px}.admin-editor-surface{width:100%}.import-review-workspace{gap:22px;display:grid}.import-review-summary{gap:18px;display:grid}.recipe-editor-form.is-split-editor{align-items:start;gap:18px}.split-editor-header{z-index:18;border:1px solid color-mix(in srgb, var(--border) 86%, white);background:color-mix(in srgb, var(--surface) 94%, white);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:minmax(0,1fr) auto;gap:10px 22px;padding:16px 18px;display:grid;position:sticky;top:76px;box-shadow:0 10px 28px #362b1e14}.editor-breadcrumb{min-width:0;color:var(--muted);grid-column:1/-1;align-items:center;gap:8px;font-size:.76rem;display:flex}.editor-breadcrumb a{color:var(--primary);align-items:center;gap:6px;font-weight:850;text-decoration:none;display:inline-flex}.editor-breadcrumb>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.split-editor-heading{flex-wrap:wrap;align-items:center;gap:10px 14px;min-width:0;display:flex}.split-editor-heading>div{min-width:0}.split-editor-heading .eyebrow{margin-bottom:4px}.split-editor-heading h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:clamp(1.65rem,2.3vw,2.25rem);line-height:1.05;overflow:hidden}.editor-save-status{border:1px solid var(--border);background:var(--surface);min-height:30px;color:var(--muted);border-radius:999px;flex:none;align-items:center;gap:6px;padding:5px 9px;font-size:.72rem;font-weight:800;display:inline-flex}.editor-save-status.is-saved{border-color:color-mix(in srgb, var(--herb) 36%, var(--border));color:var(--herb-dark)}.editor-save-status.is-error{border-color:color-mix(in srgb, var(--danger) 46%, var(--border));color:var(--danger)}.editor-save-dot{background:var(--accent);border-radius:50%;width:7px;height:7px}.split-editor-actions{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:9px;display:flex}.split-editor-actions .primary-action,.split-editor-actions .secondary-action{justify-content:center;align-items:center;gap:7px;min-height:44px;display:inline-flex}.editor-status-control{gap:3px;min-width:116px;display:grid}.editor-status-control>span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:900}.editor-status-control select{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--ink);padding:8px 30px 8px 10px;font-weight:800}.editor-section-rail{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 84%, var(--paper));scrollbar-width:thin;gap:8px;min-width:0;padding:10px;display:flex;overflow-x:auto}.editor-section-nav-group{flex:none;gap:8px;min-width:max-content;display:flex}.editor-section-nav-group>.eyebrow{display:none}.editor-section-rail button{min-height:44px;color:var(--muted);text-align:left;white-space:nowrap;background:0 0;border:1px solid #0000;flex:none;align-items:center;gap:9px;padding:9px 11px;font-size:.78rem;font-weight:850;display:inline-flex}.editor-section-rail button:focus-visible{border-color:var(--interaction-hover-border);background:var(--interaction-hover-surface);color:var(--ink)}.editor-section-rail button.is-active{border-color:color-mix(in srgb, var(--herb) 28%, var(--border));background:color-mix(in srgb, var(--sage) 64%, white);color:var(--primary);box-shadow:inset 3px 0 0 var(--herb)}.editor-advanced-nav{margin-left:auto}.recipe-editor-form.is-split-editor>.editor-section,.recipe-editor-form.is-split-editor>.advanced-json-panel{background:var(--surface);min-width:0;padding:clamp(18px,2vw,26px);box-shadow:0 8px 24px #362b1e0d}.recipe-editor-form.is-split-editor>.advanced-json-panel{padding:0}.recipe-editor-form.is-split-editor .editor-section-header h3{font-size:clamp(1.35rem,1.5vw,1.75rem)}.split-editor-message{min-width:0}.editor-preview-rail{outline:0;gap:14px;min-width:0;display:none}.editor-preview-rail:focus-visible{outline:2px solid var(--herb);outline-offset:3px}.editor-preview-panel{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 90%, white);min-width:0;box-shadow:var(--soft-shadow)}.editor-preview-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;min-height:52px;padding:8px 10px 8px 14px;display:flex}.editor-preview-toolbar>strong{font-size:.82rem}.editor-preview-toolbar-actions,.preview-mode-switch{align-items:center;gap:4px;display:flex}.preview-mode-switch{border:1px solid var(--border);background:var(--paper);padding:3px}.preview-mode-switch button{min-height:34px;color:var(--muted);background:0 0;border:0;align-items:center;gap:6px;padding:6px 8px;font-size:.69rem;font-weight:850;display:inline-flex}.preview-mode-switch button.is-active{background:var(--primary);color:var(--primary-ink)}.editor-preview-close{min-width:40px;min-height:40px}.editor-recipe-preview{padding:12px;transition:max-width .18s}.editor-recipe-preview.is-mobile{max-width:300px;margin-inline:auto}.editor-preview-card{border:1px solid var(--border);background:var(--surface);overflow:hidden}.editor-preview-image{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;min-height:200px}.editor-preview-content{gap:14px;padding:18px;display:grid}.editor-preview-category{color:var(--herb);letter-spacing:.11em;text-transform:uppercase;margin:0;font-size:.66rem;font-weight:900}.editor-preview-content h2{margin:-4px 0 0;font-size:clamp(1.55rem,2.1vw,2rem);line-height:1.06}.editor-preview-summary,.editor-preview-placeholder,.editor-preview-more{color:var(--muted);margin:0;font-size:.8rem;line-height:1.5}.editor-preview-placeholder{font-style:italic}.editor-preview-facts{border-block:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;display:grid}.editor-preview-facts>div{min-width:0;padding:10px 6px}.editor-preview-facts dt{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:5px;font-size:.6rem;font-weight:850;display:flex}.editor-preview-facts dd{margin:4px 0 0 20px;font-size:.78rem;font-weight:850}.editor-preview-section{border-top:1px solid var(--border);gap:9px;padding-top:14px;display:grid}.editor-preview-section h3{font-family:var(--serif);margin:0;font-size:1.2rem;font-weight:500}.editor-preview-ingredient-groups,.editor-preview-ingredient-group{gap:9px;display:grid}.editor-preview-ingredient-group+.editor-preview-ingredient-group{padding-top:4px}.editor-preview-ingredient-group h4{color:var(--primary);margin:0;font-size:.7rem;font-weight:900}.editor-preview-section ul,.editor-preview-section ol{gap:7px;margin:0;padding:0;list-style:none;display:grid}.editor-preview-section ul li{grid-template-columns:minmax(72px,auto) minmax(0,1fr);gap:8px;font-size:.75rem;line-height:1.35;display:grid}.editor-preview-section ul li>span{color:var(--herb-dark);font-weight:850}.editor-preview-section ol li{grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;display:grid}.editor-preview-section ol li>span{background:var(--sage);width:24px;height:24px;color:var(--primary);border-radius:50%;place-items:center;font-size:.68rem;font-weight:900;display:grid}.editor-preview-section ol p{margin:2px 0 0;font-size:.74rem;line-height:1.4}.editor-preview-instruction-groups,.editor-preview-instruction-group{gap:8px;display:grid}.editor-preview-instruction-group h4{color:var(--primary);margin:0;font-size:.72rem;font-weight:900}.editor-preview-section.is-focused-section{background:color-mix(in srgb, var(--sage) 20%, transparent);box-shadow:inset 2px 0 0 var(--herb);margin-inline:-6px;padding-inline:6px}.editor-preview-section ol li.is-active{background:color-mix(in srgb, var(--sage) 55%, var(--surface));box-shadow:inset 2px 0 0 var(--herb);border-radius:3px;margin-inline:-5px;padding:5px}.editor-preview-rail .admin-quality-panel{box-shadow:none;gap:14px;padding:16px}.editor-preview-rail .quality-score{grid-template-columns:52px minmax(0,1fr)}.editor-preview-rail .quality-score>span{border-width:3px;width:52px;font-size:.82rem}.editor-preview-rail .quality-check-group{gap:8px;padding-top:11px}.editor-preview-rail .quality-check small{font-size:.72rem}.admin-quality-panel.is-compact .quality-check.is-ok small,.admin-quality-panel.is-compact .quality-score .muted,.admin-quality-panel.is-compact .quality-publish-status .muted{display:none}.admin-quality-panel.is-compact .quality-check{align-items:center}.is-spinning{animation:.8s linear infinite editorSpin}@keyframes editorSpin{to{transform:rotate(360deg)}}@media (min-width:1181px){.recipe-editor-form.is-split-editor{grid-template-columns:minmax(170px,200px) minmax(520px,1fr) minmax(350px,410px)}.recipe-editor-form.is-split-editor>.split-editor-header{grid-column:1/-1}.recipe-editor-form.is-split-editor>.editor-section-rail{grid-area:2/1/span 8;position:sticky;top:214px}.recipe-editor-form.is-split-editor>.editor-section,.recipe-editor-form.is-split-editor>.editor-overview-workspace,.recipe-editor-form.is-split-editor>.advanced-json-panel,.recipe-editor-form.is-split-editor>.split-editor-message{grid-column:2}.recipe-editor-form.is-split-editor>.editor-section,.recipe-editor-form.is-split-editor>.editor-overview-workspace,.recipe-editor-form.is-split-editor>.advanced-json-panel{grid-row:2}.recipe-editor-form.is-split-editor>.editor-preview-rail{z-index:2;overscroll-behavior-y:contain;scrollbar-gutter:stable;scrollbar-width:thin;grid-area:2/3/span 8;align-self:start;max-height:calc(100dvh - 271px);display:grid;position:sticky;top:214px;overflow-y:auto}.editor-section-rail,.editor-section-nav-group{align-content:start;display:grid;overflow:visible}.editor-section-nav-group>.eyebrow{margin:4px 8px 2px;display:block}.editor-section-rail button{width:100%}.editor-advanced-nav{margin:12px 0 0;border-top-color:var(--border)!important;padding-top:14px!important}.editor-preview-close,.split-editor-actions .editor-preview-trigger{display:none}}@media (min-width:761px) and (max-width:1180px){.recipe-editor-form.is-split-editor{grid-template-columns:minmax(170px,200px) minmax(0,1fr)}.recipe-editor-form.is-split-editor>.split-editor-header{grid-column:1/-1}.recipe-editor-form.is-split-editor>.editor-section-rail{grid-area:2/1/span 8;position:sticky;top:214px}.recipe-editor-form.is-split-editor>.editor-section,.recipe-editor-form.is-split-editor>.editor-overview-workspace,.recipe-editor-form.is-split-editor>.advanced-json-panel,.recipe-editor-form.is-split-editor>.split-editor-message{grid-column:2}.recipe-editor-form.is-split-editor>.editor-section,.recipe-editor-form.is-split-editor>.editor-overview-workspace,.recipe-editor-form.is-split-editor>.advanced-json-panel{grid-row:2}.editor-section-rail,.editor-section-nav-group{align-content:start;display:grid;overflow:visible}.editor-section-nav-group>.eyebrow{margin:4px 8px 2px;display:block}.editor-section-rail button{width:100%}.editor-advanced-nav{margin:12px 0 0;border-top-color:var(--border)!important;padding-top:14px!important}}@media (max-width:1180px){.editor-preview-rail{z-index:70;background:var(--bg);width:min(520px,100%);padding:14px;position:fixed;inset:76px 0 0 auto;overflow-y:auto;box-shadow:-20px 0 50px #261f172e}.editor-preview-rail.is-open{animation:.18s ease-out both editorPreviewIn;display:grid}@keyframes editorPreviewIn{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}}@media (max-width:760px){.main:has(.admin-editor-page){width:min(100% - 20px,1580px)}.admin-editor-page{padding-top:0}.recipe-editor-form.is-split-editor{grid-template-columns:minmax(0,1fr)}.recipe-editor-form.is-split-editor>*{grid-column:1}.split-editor-header{grid-template-columns:minmax(0,1fr);padding:13px}.split-editor-heading h2{font-size:1.55rem}.split-editor-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.split-editor-actions .primary-action,.split-editor-actions .secondary-action,.editor-status-control{width:100%}.split-editor-actions .primary-action{grid-column:1/-1}.editor-section-rail{overscroll-behavior-x:contain;padding:8px}.editor-section-rail button{padding-inline:10px}.editor-advanced-nav{margin-left:0}.recipe-editor-form.is-split-editor>.editor-section{padding:16px}.overview-details-secondary{grid-template-columns:minmax(0,1fr)}.editor-overview-workspace .image-upload-preview{aspect-ratio:16/10;min-height:0}.editor-overview-workspace .image-upload-preview img{min-height:0}.editor-preview-rail{width:100%;padding:10px}}@media (max-width:640px){.split-editor-header{top:64px}.editor-preview-rail{inset:64px 0 0}.editor-preview-content{padding:15px}.editor-preview-image{min-height:180px}.preview-mode-switch button span{display:none}}.recipe-card h3 .recipe-card-nav{text-underline-offset:4px;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px}.recipe-card h3 .recipe-card-nav:focus-visible{color:var(--primary);text-decoration-color:currentColor}@media (hover:hover) and (pointer:fine){.recipe-card h3 .recipe-card-nav:hover{color:var(--primary);text-decoration-color:currentColor}}@media (prefers-reduced-motion:reduce){.is-spinning,.editor-preview-rail.is-open{animation:none}.overview-settings-disclosure>summary>svg{transition:none}}
@media print{.site-header,.recipe-action-bar,.recipe-tabs,.grocery-toolbar,.grocery-summary-grid,.grocery-saved-panel,.grocery-finish-panel,.grocery-finish-actions,.brand-flyout,.editor-section-rail,.editor-preview-rail,.split-editor-header,.admin-quality-panel,.form-footer-actions,.wake-switch,.serving-scaler,.swap-list,.recipe-hero-image-wrap{display:none!important}body{color:#000;background:#fff;font-size:11pt}.main,.recipe-detail-page,.recipe-detail-grid,.grocery-page{width:100%;max-width:none;margin:0;padding:0;display:block}.recipe-hero-shell{padding:0 0 18px;display:block}.recipe-hero-content h1{font-size:30pt}.recipe-side-panel{margin-top:18px}.grocery-generated-panel{border:0;padding:0}.grocery-section,.ingredient-group,.instruction-section{break-inside:avoid}.panel,.recipe-card,.grocery-section{box-shadow:none}}

