:root{--ui-bg:#f7f5f1;--ui-surface:#ffffff;--ui-text:#1b1b1b;--ui-muted:#5f6368;--ui-border:#ddd7ce;--ui-accent:#1f2937;--ui-accent-secondary:#2563eb;--ui-terracotta:#9c4f32;--ui-terracotta-soft:#f9ece6;--ui-herb:#2f6b46;--ui-herb-soft:#e9f4ec;--ui-error:#b91c1c;--ui-radius-md:12px;--ui-radius-lg:16px;--ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;--ui-space-4:16px;--ui-space-5:24px;--ui-space-6:32px;--ui-z-sticky:100;--ui-z-overlay:200;--ui-z-modal:300;color-scheme:light;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;background:var(--ui-bg);color:var(--ui-text)}*{box-sizing:border-box}body{margin:0}body,html{width:100%;max-width:100%;overflow-x:clip}.offline-banner{background:#1f2937;color:#f9fafb;padding:8px 16px;text-align:center;font-size:14px}.container{max-width:720px;margin:0 auto;padding:32px 24px}main{max-width:960px;margin:0 auto;padding:48px 24px}h1{font-size:32px;margin:0 0 24px}h1,h2{font-weight:600}h2{font-size:22px;margin:32px 0 16px;color:#333}h3{margin:24px 0 12px;font-weight:500;color:#555}h3,p{font-size:18px}p{line-height:1.5;margin:0 0 12px}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}.recipe-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}.recipe-card{position:relative;border:1px solid #ddd7ce;background:#ffffff;border-radius:12px;overflow:hidden;transition:box-shadow .2s,transform .2s}.recipe-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.08);transform:translateY(-2px)}.recipe-card--has-variations:after,.recipe-card--has-variations:before{content:"";position:absolute;inset:0;border-radius:12px;border:1px solid #ddd7ce;background:#f8f6f2;z-index:-1;pointer-events:none}.recipe-card--has-variations:before{transform:translate(4px,4px)}.recipe-card--has-variations:after{transform:translate(8px,8px)}.recipe-card a{display:block;padding:20px 24px;color:inherit;text-decoration:none}.recipe-card h2{font-size:20px;margin:0 0 8px}.recipe-card--importing{border-style:dashed;border-color:#c7bfb4;background:#faf8f4}.importing-recipe-card{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px}.importing-recipe-card h2{margin:0 0 8px;font-size:20px}.importing-recipe-card p{margin:0;font-size:15px;color:#4b5563;font-style:italic}.importing-recipe-card__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.recipe-full-title{font-size:20px;font-weight:700;margin:var(--ui-space-4) 0 0;line-height:1.3;color:var(--ui-text)}.recipe-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;color:#666}.recipe-meta span{display:flex;align-items:center;gap:4px}.variation-count-badge{display:inline-block;margin:10px 0 0;padding:6px 10px;border-radius:999px;border:1px solid #d9cec0;background:#f5ede3;color:#5b3f1f;font-size:12px;font-weight:600;line-height:1}.variation-context{margin-top:var(--ui-space-4)}.variation-breadcrumb{margin:0;font-size:14px;color:var(--ui-muted)}.variation-parent-link{margin:8px 0 0;font-size:14px}.variation-description{margin:var(--ui-space-2) 0 0;color:var(--ui-muted);font-size:15px}.variation-page-subtitle{margin:0 0 var(--ui-space-4);font-size:14px}.variation-parent-card{margin-bottom:var(--ui-space-4)}.variation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.variation-list-card{border:1px solid var(--ui-border);border-radius:10px;background:#faf8f4;overflow:hidden}.variation-list-card__link{display:block;color:inherit;text-decoration:none;padding:14px 16px}.variation-list-card__header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.variation-list-card__header a{text-decoration:none}.variation-list-card h3{margin:0;font-size:16px;font-weight:700;color:#374151}.variation-list-card__link:hover h3{text-decoration:underline}.variation-list-card p{margin:8px 0 0;font-size:14px;font-style:italic;color:#4b5563}.variation-list-card .recipe-meta{margin-top:8px}.variation-create-footer{margin:20px 0 0;display:flex;justify-content:flex-start}.empty-state{text-align:center;color:#666;padding:48px 0}.recipe-detail{position:relative}.recipe-nav{margin-bottom:24px}.recipe-header{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid #e5e5e5}.recipe-header h1{margin-bottom:12px}.section-nav{position:fixed;left:24px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;background:white;padding:12px;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.1)}.section-nav a{font-size:24px;text-decoration:none;opacity:.7;transition:opacity .2s}.section-nav a:hover{opacity:1}@media (max-width:900px){.section-nav{position:fixed;left:auto;right:16px;bottom:16px;top:auto;transform:none;flex-direction:row}}.recipe-section{margin-bottom:32px}.recipe-section-collapsible{margin-bottom:24px}.recipe-section-toggle{font-size:22px;font-weight:600;color:#333}.recipe-section-body{margin-top:10px;border:1px solid #ddd7ce;border-radius:12px;background:#fff;padding:16px 18px 18px}.equipment-list,.ingredients-list{list-style:none;padding:0;margin:0}.equipment-list li,.ingredients-list li{padding:8px 0;border-bottom:1px solid #f0f0f0;font-size:16px}.equipment-list .item,.ingredients-list .quantity{font-weight:600;color:#333}.equipment-list .settings{color:#1f2937}.ingredients-list .item{color:#1b1b1b}.preheat-callout{padding:12px 14px;margin:0 0 12px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa}.preheat-callout p{margin:0;color:#7c2d12}.preheat-callout p+p{margin-top:6px}.equipment-list .note{color:#6b7280;font-size:14px;margin-left:4px}.ingredients-list .note{color:#888;font-size:14px;margin-left:4px}.instruction-section{margin-bottom:24px}.instruction-section ol{padding-left:24px;margin:0}.instruction-section li{padding:8px 0;font-size:16px;line-height:1.6}.tips-list{list-style:none;padding:0;margin:0}.tips-list li{padding:12px 16px;background:var(--ui-terracotta-soft);border-left:3px solid var(--ui-herb);margin-bottom:8px;font-size:15px;line-height:1.5}.raw-text{white-space:pre-wrap;font-family:inherit;font-size:15px;line-height:1.6;background:#f9f9f9;padding:16px;border-radius:8px;overflow-x:auto}.card{border:1px solid #ddd7ce;background:#ffffff;border-radius:16px;padding:24px;box-shadow:0 10px 30px rgba(0,0,0,.06)}.home-hub-grid{margin-top:20px;display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.home-hub-tile{display:flex;flex-direction:column;gap:10px;border:1px solid #ded7cd;border-radius:14px;background:#f8f5ef;color:#1f2937;text-decoration:none;padding:18px 16px;min-height:150px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.home-hub-tile:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 10px 20px rgba(15,23,42,.08);border-color:#c8bdaf}.home-hub-tile__icon{width:28px;height:28px;color:#334155}.home-hub-tile__title{font-size:18px;font-weight:600;line-height:1.2}.home-hub-tile__description{font-size:14px;line-height:1.4;color:#475569}ul{padding-left:20px;margin:12px 0 0}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:999px;border:none;background:#1f2937;color:#ffffff;font-weight:600;cursor:pointer;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}.primary-button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(31,41,55,.2);text-decoration:none}.primary-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.recipes-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.library-controls{margin:20px 0 24px;padding:20px;border:1px solid #e7e1d7;border-radius:14px;background:#ffffff}.ui-page-container{max-width:960px;margin:0 auto;padding:var(--ui-space-6) var(--ui-space-5)}.ui-app-shell{display:flex;flex-direction:column;gap:var(--ui-space-5)}.ui-app-shell__header h1{margin:0 0 var(--ui-space-2)}.ui-app-shell__header p{margin:0;color:var(--ui-muted)}.ui-app-shell__content{display:flex;flex-direction:column;gap:var(--ui-space-5)}.ui-playground-section h2{margin-top:0}.ui-playground-row{display:flex;flex-wrap:wrap;gap:var(--ui-space-3)}.ui-playground-grid{display:grid;grid-gap:var(--ui-space-4);gap:var(--ui-space-4);grid-template-columns:1fr}.ui-button{border:1px solid transparent;border-radius:999px;cursor:pointer;font-weight:600;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}.ui-button:not(:disabled):hover{transform:translateY(-1px)}.ui-button:focus-visible{outline:2px solid var(--ui-accent-secondary);outline-offset:2px}.ui-button:not(:disabled):active{transform:translateY(0)}.ui-button--sm{padding:6px 12px}.ui-button--md{padding:10px 16px}.ui-button--lg{padding:12px 20px}.ui-button--primary{background:var(--ui-accent);color:#fff}.ui-button--secondary{background:var(--ui-surface);border-color:var(--ui-border);color:var(--ui-text)}.ui-button--ghost{background:transparent;border-color:var(--ui-border);color:var(--ui-accent-secondary)}.ui-button:disabled{opacity:.6;cursor:not-allowed}.ui-input-group{display:flex;flex-direction:column;gap:var(--ui-space-2)}.ui-input-group__label{font-size:14px;font-weight:500}.ui-input{border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);padding:10px 12px;font-size:16px;transition:border-color .15s ease,box-shadow .15s ease}.ui-input:hover:not(:disabled){border-color:#b8b0a6}.ui-input:focus-visible{outline:none;border-color:var(--ui-accent-secondary);box-shadow:0 0 0 3px rgba(37,99,235,.2)}.ui-input:active:not(:disabled){border-color:var(--ui-accent-secondary)}.ui-input:disabled{background:#f3f4f6;color:var(--ui-muted);cursor:not-allowed}.ui-input--error{border-color:var(--ui-error)}.ui-input--error:focus-visible{border-color:var(--ui-error);box-shadow:0 0 0 3px rgba(185,28,28,.2)}.ui-input-group__helper{color:var(--ui-muted);margin:0;font-size:14px}.ui-input-group__error{color:var(--ui-error);margin:0;font-size:14px}.ui-card{border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);background:var(--ui-surface);padding:var(--ui-space-4)}.ui-card__header h3{margin:0;font-size:20px}.ui-card__header p{margin:var(--ui-space-2) 0 0;font-size:14px;color:var(--ui-muted)}.ui-card__content{margin-top:var(--ui-space-4)}.ui-icon{display:inline-flex;align-items:center;justify-content:center}.ui-icon--sm{width:16px}.ui-icon--md{width:20px}.ui-icon--lg{width:24px}.ui-typography-demo p{margin:0 0 var(--ui-space-2)}.ui-type-display{font-size:40px;font-weight:600;line-height:1.2}.ui-type-h1{font-size:32px;font-weight:600;line-height:1.25}.ui-type-h2{font-size:24px;font-weight:600;line-height:1.3}.ui-type-body-lg{font-size:18px;line-height:1.5}.ui-type-body{font-size:16px;line-height:1.5}.ui-type-caption{font-size:14px;line-height:1.4}.ui-spacing-demo{display:grid;grid-gap:var(--ui-space-2);gap:var(--ui-space-2)}.ui-spacing-demo__row{display:flex;align-items:center;gap:var(--ui-space-3)}.ui-spacing-demo__row span{width:48px;font-size:14px}.ui-spacing-demo__bar{height:14px;border-radius:999px;background:var(--ui-accent-secondary)}.ui-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:var(--ui-space-2)}.ui-list--ordered{list-style:decimal}@media (min-width:640px){.ui-playground-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px}.filter-summary{margin-top:12px;font-size:13px;color:#6b7280}.collection-manager{margin-bottom:24px;border:1px solid #e7e1d7;border-radius:14px;background:#ffffff;padding:20px}.collection-manager h2{margin-top:0}.collection-form{display:flex;gap:10px;align-items:center;margin-bottom:12px}.collection-form input{flex:1 1;border:1px solid #d7d2c9;border-radius:10px;padding:10px 12px;font-size:15px;font-family:inherit}.collection-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.collection-list li{display:inline-flex;align-items:center;gap:8px;border:1px solid #d7d2c9;border-radius:999px;padding:4px 10px;background:#f7f5f1}.collection-inline-input{width:160px;border:1px solid #d1c9bc;border-radius:8px;padding:4px 8px;font-size:14px;font-family:inherit}.recipe-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chip{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:12px;line-height:1.4;border:1px solid transparent}.chip-collection{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.chip-tag{background:#ecfeff;color:#0f766e;border-color:#99f6e4}.secondary-button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid #374151;background:#ffffff;color:#374151;font-weight:600;padding:9px 16px;cursor:pointer}.secondary-button:disabled{opacity:.6;cursor:not-allowed}.link-button{border:none;background:transparent;font:inherit;cursor:pointer;text-decoration:underline}.link-button.danger{color:#b91c1c}.recipe-library-panel{margin:0 0 24px;padding:20px;border:1px solid #e7e1d7;border-radius:14px;background:#ffffff}.recipe-library-stack{display:flex;flex-direction:column;gap:10px}.recipe-library-panel .recipe-section-collapsible{margin-bottom:0}.recipe-library-panel .recipe-section-toggle{font-size:19px;font-weight:600;color:#5f6368}.recipe-library-panel .recipe-section-body{background:#f6f6f5;border-color:#e0dbd2;padding:14px}.recipe-library-column h3{margin-top:0;margin-bottom:8px}.recipe-library-helper{margin:6px 0 10px;font-size:14px}.collection-checkbox-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}.collection-checkbox-list label{display:inline-flex;align-items:center;gap:8px;font-size:15px}.tag-form{display:flex;flex-direction:column;gap:10px}.tag-input-row{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px}.tag-editor-chips{display:flex;flex-wrap:wrap;gap:8px}.inline-empty-state{color:#666;margin:0;font-size:14px}.editable-chip{gap:6px}.editable-chip button{border:none;background:transparent;color:inherit;cursor:pointer;font-size:16px;line-height:1;padding:0}.chip-button{border:1px solid #99f6e4;cursor:pointer;font-family:inherit}.recipe-label-category{padding:10px 12px;margin-top:10px}.recipe-label-category--collapsed{cursor:pointer}.recipe-label-category__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;color:inherit;text-align:left;font-size:17px;font-weight:600;margin:0}.recipe-label-category__controls{display:inline-flex;align-items:center;gap:10px}.recipe-label-category__toggle .tag{flex-shrink:0;margin:0}.recipe-label-category__icon{border:none;background:transparent;width:24px;height:24px;border-radius:999px;color:#111827;font-size:24px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.recipe-label-category__summary{margin:6px 0 0;font-size:14px;color:#6b7280}.recipe-label-category__row,.recipe-label-category__suggestions{margin-top:8px}.tag-catalog h4{margin:14px 0 8px;font-size:14px;color:#6b7280}.import-header p{color:#555;margin-bottom:0}.import-launchpad{margin-top:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.import-launchpad-card{aspect-ratio:1/1;display:flex;flex-direction:column;justify-content:flex-start;gap:8px;border-radius:16px;border:1px solid #e7e1d7;padding:16px;background:#ffffff;box-shadow:0 12px 28px rgba(0,0,0,.06);color:inherit;text-decoration:none}.import-launchpad-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.1)}.import-launchpad-card h2{margin:0;font-size:18px}.import-launchpad-card p{margin:0;font-size:14px;color:#555}.import-launchpad-icon{width:24px;height:24px;color:#1f2937}.import-launchpad-icon-frame{width:44px;height:44px;border-radius:8px;border:1px solid #ddd7ce;background:#f8f6f2;display:inline-flex;align-items:center;justify-content:center;align-self:center;margin-top:2px}.chat-starters{margin:20px 0;display:flex;flex-wrap:wrap;gap:8px}.chat-starter-button{border:1px solid #d7d2c9;background:#fff;border-radius:999px;padding:8px 12px;font:inherit;cursor:pointer}.chat-thread{margin-top:12px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px}.chat-bubble{border-radius:14px;border:1px solid #e7e1d7;background:#fffefc;padding:12px 14px}.chat-bubble h3{margin:0 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#6b7280}.chat-bubble p{margin:0;white-space:pre-wrap}.chat-bubble-user{background:var(--ui-terracotta-soft);border-color:#edc2b0}.chat-bubble-assistant{background:var(--ui-herb-soft);border-color:#bad8c5}.chat-empty{margin:0;color:#666}.chat-compose{display:grid;grid-gap:12px;gap:12px}.chat-actions{display:flex;flex-wrap:wrap;gap:8px}.chat-history-note{margin:0 0 12px;color:#6b7280;font-size:14px}.chat-history-list{display:flex;flex-direction:column;gap:12px}.photo-upload-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.photo-upload-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #e7e1d7;border-radius:10px;padding:10px 12px}@media (min-width:768px){.import-launchpad{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}.customize-form,.import-form{display:flex;flex-direction:column;gap:16px;background:#ffffff;border-radius:16px;padding:24px;border:1px solid #e7e1d7;box-shadow:0 12px 28px rgba(0,0,0,.06)}.preferences-header p{color:#555;margin-bottom:0}.preferences-form{gap:16px;background:#ffffff;border-radius:16px;padding:24px;border:1px solid #e7e1d7;box-shadow:0 12px 28px rgba(0,0,0,.06)}.form-field,.preferences-form{display:flex;flex-direction:column}.form-field{gap:8px;font-size:14px;color:#444}.form-field input,.form-field select,.form-field textarea{border:1px solid #d7d2c9;border-radius:10px;padding:10px 12px;font-size:15px;font-family:inherit;width:100%}.form-field textarea{resize:vertical}.field-help{margin:0;font-size:13px;color:#6b7280;line-height:1.45}.form-error{color:#b91c1c;font-weight:500;margin:0}.form-success{color:#166534;font-weight:500;margin:0}.customize-panel{margin-top:40px}.customize-panel-ai{margin-bottom:8px}.customize-brand-head{margin-bottom:12px}.customize-kicker{margin:0 0 6px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6b7280}.customize-brand-accent{width:124px;height:4px;border-radius:999px;background:linear-gradient(90deg,var(--ui-terracotta),var(--ui-herb));margin-bottom:10px}.customize-panel-ai h2{margin-top:0;margin-bottom:0;font-size:20px;font-weight:600}.customize-results{margin-top:24px;display:flex;flex-direction:column;gap:16px}.customize-panel-ai .customize-results{margin-top:16px}.customize-history-group{margin-top:4px}.customize-history-toggle,.section-toggle-button{width:100%;display:flex;align-items:center;justify-content:space-between;border:none;background:transparent;padding:0;margin:0;font:inherit;font-size:1.17em;font-weight:600;cursor:pointer;color:inherit;text-align:left}.customize-response{background:var(--ui-terracotta-soft);border:1px solid #ddd7ce;border-left:3px solid var(--ui-herb);border-radius:14px;padding:16px 18px}.customize-response-collapsed{cursor:pointer}.customize-response-pending{border-left-color:#7c6f64;background:#f6f1e8}.customize-response-pending .loading-state{margin:0;text-align:left}.customize-response header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.customize-response .tag{font-size:12px;font-weight:600;color:#475569;background:rgba(255,255,255,.55);border:1px solid #ddd7ce;padding:4px 8px;border-radius:999px}.customize-response .timestamp{font-size:12px;color:#7c6f64}.customize-collapsed-summary{margin:0;color:#7c6f64;font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-height:56px;word-break:break-word}.customize-json-preview{margin:10px 0 0;padding:10px 12px;border:1px solid #ddd7ce;border-radius:10px;background:rgba(255,255,255,.55);white-space:pre-wrap;word-break:break-word;max-height:340px;overflow:auto;font-size:13px}.customize-preview{border:1px solid #ddd7ce;border-radius:12px;background:rgba(255,255,255,.55);padding:12px;margin-bottom:12px}.customize-preview h4{margin:0 0 8px;font-size:14px}.customize-preview h5{margin:10px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:#6b7280}.customize-preview-meta{margin:0;font-size:13px;color:#6b7280}.customize-preview-list{margin:0;padding-left:18px}.customize-preview-section{margin-top:8px}.customize-preview-section ol{margin:4px 0 0;padding-left:18px}.structured-response{margin-top:8px}.customization-summary{font-weight:500;margin-bottom:16px}.modifications-group{margin-bottom:16px}.modifications-group h4{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#78716c;margin:0 0 8px}.ingredient-diff-list{list-style:none;padding:0;margin:0}.ingredient-diff{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.06);font-size:15px}.diff-original{text-decoration:line-through;color:#b91c1c}.diff-arrow{color:#78716c}.diff-new{font-weight:600;color:#15803d}.diff-removed{font-style:italic;color:#b91c1c}.diff-reason{font-size:13px;color:#78716c}.section-diff{margin-bottom:12px}.section-diff h5{font-size:15px;margin:0 0 6px;font-weight:600;color:#44403c}.step-diff{background:rgba(255,255,255,.6);border-radius:8px;padding:10px 12px;margin-bottom:8px;font-size:14px;line-height:1.5}.step-label{font-weight:600;color:#78716c}.step-before{text-decoration:line-through;color:#b91c1c;margin-bottom:4px}.step-after{color:#15803d;margin-bottom:4px}.step-reason{font-size:13px;color:#78716c;font-style:italic}.customization-notes{margin-top:8px;padding:10px 12px;background:#f4eee8;border:1px solid #e2d5c7;border-left:3px solid var(--ui-herb);border-radius:8px}.customization-notes h4{font-size:14px;font-weight:600;margin:0 0 4px;color:#5f6368}.customization-notes p{font-size:14px;margin:0}.customize-actions{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap}.customize-inline-form{margin-top:12px;padding:12px;border:1px solid #f2c79d;border-radius:10px;background:rgba(255,255,255,.6);display:grid;grid-gap:10px;gap:10px}.customize-inline-actions{display:flex;align-items:center;gap:12px}.recipe-variation-choice{display:flex;flex-wrap:wrap;gap:12px;font-size:14px}.recipe-variation-choice label{display:inline-flex;align-items:center;gap:6px}.customize-success{margin:10px 0 0;color:#166534;font-size:14px;font-weight:500}.scale-target-grid{display:flex;flex-wrap:wrap;gap:8px}.scale-target-button{border:1px solid #d7d2c9;background:#fff;border-radius:999px;padding:8px 12px;font:inherit;font-size:14px;cursor:pointer;color:#374151}.scale-target-button.is-selected{border-color:var(--ui-herb);color:var(--ui-herb);background:rgba(47,107,70,.08)}.customize-primary-button{background:var(--ui-terracotta);border:1px solid #8b462c;box-shadow:0 1px 0 rgba(0,0,0,.12)}.customize-primary-button:hover{background:#8f472e}.customize-primary-button:focus-visible{outline:2px solid var(--ui-herb);outline-offset:2px}.app-header{border-bottom:1px solid #e7e1d7;background:#ffffff}.app-header-inner{max-width:1040px;margin:0 auto;padding:18px 24px;justify-content:space-between;gap:16px}.app-header-inner,.app-logo{display:flex;align-items:center}.app-logo{gap:8px;font-weight:600;font-size:18px;color:#1f2937;text-decoration:none}.app-logo-icon{width:28px;height:28px;flex-shrink:0}.app-nav{display:flex;align-items:center;gap:16px}.app-nav-link{color:#374151;font-size:14px;font-weight:500}.user-email{font-size:14px;color:#4b5563}.ghost-button{background:transparent;border:1px solid #d1d5db;color:#374151;border-radius:999px;padding:8px 14px;font-weight:500;cursor:pointer}.ghost-button:hover{border-color:#9ca3af}.auth-page{display:flex;justify-content:center;align-items:flex-start}.auth-card{width:100%;max-width:460px;background:#ffffff;border-radius:18px;border:1px solid #e7e1d7;padding:28px;box-shadow:0 18px 30px rgba(0,0,0,.08)}.auth-form{display:flex;flex-direction:column;gap:16px;margin:24px 0 12px}.auth-footer{font-size:14px;color:#6b7280}.auth-footer a{font-weight:600}.auth-cta{display:flex;align-items:center;gap:12px;margin-top:16px}.loading-state{font-size:16px;color:#6b7280;text-align:center}@media (max-width:640px){.home-hub-grid{grid-template-columns:1fr}.app-header-inner{flex-direction:column;align-items:flex-start}.app-nav{flex-wrap:wrap;gap:10px 14px}.auth-card{padding:22px}.collection-form{flex-direction:column;align-items:stretch}}.ui-svg-icon{display:block;width:100%;height:100%}.ui-page-header{position:-webkit-sticky;position:sticky;top:0;z-index:var(--ui-z-sticky);display:flex;align-items:center;min-height:56px;padding:var(--ui-space-2) var(--ui-space-4);background:var(--ui-surface);border-bottom:1px solid var(--ui-border);overflow:hidden}.ui-page-header__start{display:flex;align-items:center;flex-shrink:0}.ui-page-header__title{font-size:14px;font-weight:600;min-width:0;max-width:none;flex:1 1;margin:0 10px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.variations-header .ui-page-header__title{max-width:none;flex:1 1;margin:0 12px}.ui-page-header__end{display:flex;align-items:center;gap:var(--ui-space-2);margin-left:auto;flex-shrink:0}.recipe-detail-header .ui-page-header__end{gap:6px}.recipe-header-divider{width:1px;height:20px;background:var(--ui-border);margin:0 2px}.ui-icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:8px;border:none;border-radius:var(--ui-radius-md);background:transparent;color:var(--ui-text);cursor:pointer;transition:background .15s}.recipe-detail-header .ui-icon-button{padding:7px}.ui-icon-button:hover{background:rgba(0,0,0,.06)}.ui-icon-button:focus-visible{outline:2px solid var(--ui-accent-secondary);outline-offset:-2px}.ui-icon-button:disabled{opacity:.4;cursor:not-allowed}.ui-icon-button--active-filter{color:var(--ui-herb);background:rgba(47,107,70,.1)}.recipe-delete-button{color:#6b7280}.recipe-delete-button:hover{color:#4b5563}.recipe-chip-bar{display:flex;flex-wrap:wrap;gap:6px;padding:var(--ui-space-3) var(--ui-space-4);border-bottom:1px solid var(--ui-border)}.recipe-chip-bar .chip-overflow{font-size:12px;color:var(--ui-muted);border:none;background:transparent;cursor:pointer;padding:3px 6px}.filter-indicator-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-space-2) var(--ui-space-4);font-size:13px;color:var(--ui-muted);border-bottom:1px solid var(--ui-border);background:var(--ui-surface)}.filter-indicator-bar button{border:none;background:transparent;color:var(--ui-accent-secondary);cursor:pointer;font-size:13px;font-family:inherit}.browse-indicator-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-space-2) var(--ui-space-4);border-bottom:1px solid var(--ui-border);color:var(--ui-muted);font-size:14px}.vault-decorators{position:-webkit-sticky;position:sticky;top:56px;z-index:calc(var(--ui-z-sticky) - 1);background:var(--ui-surface)}.recipe-detail-decorators{position:static}.variations-decorators{position:-webkit-sticky;position:sticky;top:56px;z-index:calc(var(--ui-z-sticky) - 1);background:var(--ui-surface)}.browse-indicator-bar button{border:none;background:transparent;color:var(--ui-accent-secondary);cursor:pointer;font-family:inherit}.browse-popover-backdrop{position:fixed;inset:0;border:none;background:transparent;z-index:calc(var(--ui-z-overlay) - 1)}.browse-popover{position:fixed;top:72px;right:24px;width:min(320px,calc(100vw - 48px));z-index:var(--ui-z-overlay);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);background:var(--ui-surface);box-shadow:0 16px 48px rgba(0,0,0,.15);padding:var(--ui-space-3);display:flex;flex-direction:column;gap:var(--ui-space-2)}.browse-popover h3{margin:0 0 var(--ui-space-1);font-size:15px;color:var(--ui-muted)}.browse-popover__item{border:1px solid var(--ui-border);background:#fff;border-radius:10px;padding:8px 10px;text-align:left;font:inherit;font-size:14px;color:var(--ui-text);cursor:pointer}.browse-popover__item.is-active{border-color:var(--ui-herb);color:var(--ui-herb);background:rgba(47,107,70,.08)}.search-overlay{position:fixed;inset:0;z-index:var(--ui-z-overlay);display:flex;align-items:flex-start;justify-content:center}.search-overlay__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.3)}.search-overlay__panel{position:relative;width:100%;height:100%;background:var(--ui-surface);display:flex;flex-direction:column;overflow-y:auto}.search-overlay__header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-space-4);border-bottom:1px solid var(--ui-border);flex-shrink:0}.search-overlay__header h2{margin:0;font-size:18px}.search-overlay__body{flex:1 1;padding:var(--ui-space-4);display:flex;flex-direction:column;gap:var(--ui-space-5);overflow-y:auto}.search-overlay__section h3{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ui-muted);margin:0 0 var(--ui-space-3)}.search-overlay__radio-group{display:flex;flex-direction:column;gap:var(--ui-space-2)}.search-overlay__radio-group label{display:inline-flex;align-items:center;gap:var(--ui-space-2);font-size:15px;cursor:pointer}.search-overlay__tag-chips{display:flex;flex-wrap:wrap;gap:8px}.chip--selected{background:#0f766e;color:#ffffff;border-color:#0f766e}.search-overlay__quick-create{display:flex;gap:var(--ui-space-2);margin-top:var(--ui-space-2)}.search-overlay__quick-create input{flex:1 1;border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);padding:8px 10px;font-size:14px;font-family:inherit}.search-overlay__footer{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-space-4);border-top:1px solid var(--ui-border);flex-shrink:0}@media (min-width:640px){.search-overlay__panel{width:480px;max-height:80vh;height:auto;margin-top:72px;border-radius:var(--ui-radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.15)}}.recipe-edit-body{padding:var(--ui-space-4) 0;display:flex;flex-direction:column;gap:var(--ui-space-3)}.recipe-edit-group-title{margin:0 0 2px;font-size:22px;color:#333}.recipe-edit-section h2{font-size:18px;margin:0 0 var(--ui-space-3)}.recipe-edit-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:var(--ui-space-3);gap:var(--ui-space-3);margin-bottom:var(--ui-space-3)}.recipe-edit-row label{display:flex;flex-direction:column;gap:var(--ui-space-1);font-size:13px;color:var(--ui-muted)}.recipe-edit-row input,.recipe-edit-row textarea{border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);padding:8px 10px;font-size:15px;font-family:inherit}.recipe-edit-ingredient-row{grid-template-columns:70px 70px 1fr 1fr 36px;grid-gap:var(--ui-space-2)}.recipe-edit-equipment-row,.recipe-edit-ingredient-row{display:grid;gap:var(--ui-space-2);align-items:center;margin-bottom:var(--ui-space-2)}.recipe-edit-equipment-row{grid-template-columns:1fr 160px 1fr 36px;grid-gap:var(--ui-space-2)}.recipe-edit-equipment-row input,.recipe-edit-ingredient-row input{border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);padding:8px 10px;font-size:15px;font-family:inherit}.recipe-edit-step-row{display:grid;grid-template-columns:28px 1fr 36px;grid-gap:var(--ui-space-2);gap:var(--ui-space-2);align-items:start;margin-bottom:var(--ui-space-2)}.recipe-edit-step-row .step-number{font-size:14px;font-weight:600;color:var(--ui-muted);padding-top:10px;text-align:center}.recipe-edit-step-row textarea{border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);padding:8px 10px;font-size:15px;font-family:inherit;resize:vertical;min-height:60px}.recipe-edit-subsection{margin-bottom:var(--ui-space-4)}.recipe-edit-subsection h3{font-size:15px;margin:0 0 var(--ui-space-2)}.recipe-edit-subsection .section-name-input{border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);padding:8px 10px;font-size:15px;font-family:inherit;width:100%;margin-bottom:var(--ui-space-3)}.recipe-edit-divider{border:none;border-top:1px solid var(--ui-border);margin:var(--ui-space-4) 0}.recipe-edit-actions{display:flex;gap:var(--ui-space-3);justify-content:flex-end;padding-top:var(--ui-space-4)}.remove-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--ui-radius-md);background:transparent;color:var(--ui-error);cursor:pointer;font-size:18px}.remove-button:hover{background:rgba(185,28,28,.08)}.add-button{border:1px dashed var(--ui-border);background:transparent;border-radius:var(--ui-radius-md);padding:8px 14px;font-size:14px;color:var(--ui-muted);cursor:pointer;font-family:inherit;width:100%;text-align:center}.add-button:hover{border-color:var(--ui-accent);color:var(--ui-accent)}.labels-manager-list{display:flex;flex-direction:column;gap:10px}@media (max-width:760px){.recipe-edit-equipment-row{grid-template-columns:1fr}}