@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fbf7f5;--surface:#fff;--surface-2:#f4ebe9;--ink:#33272e;--ink-soft:#7a6a72;--line:#e8dcd9;--rosi:#d9577c;--rosi-soft:#f7dde5;--herb:#5e8c61;--herb-soft:#e2eee3;--amber:#dd9a3e;--amber-soft:#f8ecd8;--danger:#c04545;--radius:16px;--radius-sm:10px;--shadow:0 2px 10px #33272e12;--font:"Nunito Variable", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif}[data-theme=dark]{--bg:#211a20;--surface:#2c232b;--surface-2:#382d36;--ink:#f2e8ed;--ink-soft:#b09aa5;--line:#453741;--rosi:#ee7fa0;--rosi-soft:#4a2c38;--herb:#7fb183;--herb-soft:#2c3b2e;--amber:#e5ad5c;--amber-soft:#443622;--shadow:0 2px 10px #0000004d}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3{letter-spacing:-.015em;margin:0 0 .5rem;line-height:1.2}h1{font-size:1.7rem;font-weight:800}h2{font-size:1.25rem;font-weight:700}h3{font-size:1.05rem;font-weight:700}p{margin:0 0 .75rem}a{color:var(--rosi);text-decoration:none}button{font:inherit}:focus-visible{outline:3px solid var(--rosi);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.shell{flex-direction:column;min-height:100%;display:flex}.shell-main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:1.25rem 1.25rem 6rem}.tabbar{padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);z-index:20;justify-content:center;gap:.25rem;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{border-radius:var(--radius-sm);min-width:72px;color:var(--ink-soft);flex-direction:column;align-items:center;gap:.1rem;padding:.45rem .9rem;font-size:.72rem;font-weight:600;display:flex}.tabbar a svg{width:24px;height:24px}.tabbar a.active{color:var(--rosi);background:var(--rosi-soft)}.hero-media{aspect-ratio:16/9;border-radius:var(--radius);width:min(100%,570px);margin-inline:auto;overflow:hidden}.hero-media img,.hero-media video{object-fit:cover;object-position:center;width:100%;height:100%}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.btn{cursor:pointer;background:var(--surface-2);color:var(--ink);border:none;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.65rem 1.3rem;font-weight:700;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--rosi);color:#fff}.btn-ghost{border:1.5px solid var(--line);background:0 0}.btn-big{min-height:60px;padding:1rem 2rem;font-size:1.15rem}.chip{background:var(--surface-2);color:var(--ink-soft);border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .7rem;font-size:.8rem;font-weight:600;display:inline-flex}.chip-herb{background:var(--herb-soft);color:var(--herb)}.chip-button{cursor:pointer;text-align:left;border:0;min-height:40px}.chip-button:hover{filter:brightness(.98)}.chip--used{background:var(--surface-2);color:var(--ink-soft)}.chip--used .chip-text{text-decoration:line-through}.chip-rosi{background:var(--rosi-soft);color:var(--rosi)}.chip-amber{background:var(--amber-soft);color:var(--amber)}.ingredient-substitute{color:var(--ink-soft);margin-top:.2rem;font-size:.85rem;display:block}input:where(:not([type])),input[type=text],input[type=number],input[type=url],input[type=password],input[type=search],select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius-sm);width:100%;padding:.6rem .8rem}label.field{margin-bottom:1rem;font-size:.9rem;font-weight:600;display:block}label.field>span{color:var(--ink-soft);margin-bottom:.3rem;display:block}.media-view{max-width:100%;height:auto;display:block}.editor-error-summary{border-color:var(--danger)}.editor-error-summary a{color:var(--danger);text-decoration:underline}.row{align-items:center;gap:.75rem;display:flex}.row-wrap{flex-wrap:wrap}.editor-appliance-equipment{min-width:7rem}.spread{justify-content:space-between}.muted{color:var(--ink-soft)}.small{font-size:.85rem}.stack>*+*{margin-top:.9rem}.catalog-list{margin:0;padding-left:0;list-style:none}.catalog-list-item{padding:.4rem 0}.catalog-row{align-items:center;gap:.65rem;display:inline-flex}.catalog-thumbnail{border:1px solid var(--line);border-radius:var(--radius-sm);flex:0 0 2rem;width:2rem;height:2rem;display:inline-flex;overflow:hidden}.catalog-thumbnail--ingredient{flex-basis:48px;width:48px;height:48px}.catalog-thumbnail-placeholder{background:var(--surface-2)}.catalog-thumbnail img,.catalog-thumbnail video{object-fit:cover;width:100%;height:100%}.remote-recipe-row-content{align-items:center;gap:.75rem;min-width:0;display:flex}.remote-recipe-row-thumb{border:1px solid var(--line);border-radius:var(--radius-sm);object-fit:cover;flex:0 0 56px;width:56px;height:56px}.equipment-card-strip{gap:.75rem;padding:.1rem 0 .25rem;display:flex;overflow-x:auto}.equipment-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;flex:none;width:120px;display:flex;overflow:hidden}.catalog-thumbnail--equipment{border:0;border-bottom:1px solid var(--line);border-radius:0;flex-basis:64px;width:100%;height:64px}.equipment-card-label{min-height:2.4em;padding:.45rem .55rem .55rem;font-size:.8rem;font-weight:600;line-height:1.3}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.recipe-card{color:inherit;padding:0;display:block;overflow:hidden}.recipe-card .cover{background:linear-gradient(135deg, var(--rosi-soft), var(--surface-2));justify-content:center;align-items:center;height:130px;display:flex;overflow:hidden}.recipe-card .cover img{object-fit:cover;width:100%;height:100%}.recipe-card .body{padding:.8rem 1rem 1rem}.remote-recipe-card-action{margin-top:.8rem}.remote-recipe-card-action .btn{width:100%}.library-heading h1,.dish-section-heading h2,.dish-section-heading p{margin:0}.library-switch{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:.25rem;padding:.25rem;display:grid}.library-switch button{min-height:44px;color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:.55rem;padding:.55rem 1rem;font-weight:800;display:flex;overflow:hidden}.library-switch button>span:first-child{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}@media (width<=430px){.library-switch{gap:.15rem;padding:.2rem}.library-switch button{gap:.3rem;padding:.55rem .15rem;font-size:.78rem}.library-count{display:none}}@media (width<=345px){.library-switch button{font-size:.68rem}}.library-switch button.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.library-count{background:var(--surface-2);min-width:1.55rem;color:var(--ink-soft);font-variant-numeric:tabular-nums;border-radius:999px;padding:.05rem .4rem;font-size:.75rem}.library-intro{max-width:42rem;margin-bottom:0}.library-empty{text-align:center;justify-items:center;gap:.8rem;padding:2.5rem 1.5rem;display:grid}.library-empty-mark{background:var(--rosi-soft);width:3.5rem;height:3.5rem;color:var(--rosi);border-radius:50%;place-items:center;font-size:2.2rem;display:grid}.dish-card .cover{position:relative}.dish-card-count{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#33272ec7;border:1px solid #ffffff73;border-radius:999px;padding:.3rem .65rem;font-size:.75rem;position:absolute;bottom:.65rem;right:.65rem}.dish-card-description{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 .7rem;font-size:.88rem;display:-webkit-box;overflow:hidden}.dish-placeholder{background:radial-gradient(circle at 72% 22%, #ffffffa6 0 4%, transparent 5%), linear-gradient(145deg, var(--rosi-soft), var(--amber-soft));place-items:center;width:100%;height:100%;min-height:90px;display:grid;position:relative;overflow:hidden}.dish-placeholder-plate{border:.55rem solid #ffffffb8;border-radius:50%;width:4.6rem;height:4.6rem;box-shadow:inset 0 0 0 2px #33272e14,0 8px 20px #33272e1f}.dish-placeholder-sprig{color:var(--herb);font-size:1.1rem;position:absolute;top:calc(50% - .85rem)}.cookbook-header{grid-template-columns:180px minmax(0,1fr);align-items:start;gap:1.2rem;display:grid}.cookbook-header-cover{aspect-ratio:4/3;border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.cookbook-header-cover .media-view{object-fit:cover;width:100%;height:100%}.cookbook-header-body h1,.cookbook-header-body p{margin:0}.cookbook-inline-edit input,.cookbook-inline-edit textarea{flex:1;min-width:0}.cookbook-chapter{margin:.6rem 0 0;font-size:1.05rem}.cookbook-entry{grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.7rem;display:grid}.cookbook-entry.is-missing{opacity:.65;border-style:dashed}.cookbook-entry-thumb{border-radius:var(--radius-sm);width:64px;height:64px;display:block;overflow:hidden}.cookbook-entry-thumb .media-view{object-fit:cover;width:100%;height:100%}.cookbook-entry-thumb .dish-placeholder{min-height:64px}.cookbook-entry-thumb .dish-placeholder-plate{border-width:.35rem;width:2.4rem;height:2.4rem}.cookbook-entry-thumb .dish-placeholder-sprig{display:none}.cookbook-entry-title{color:inherit;overflow-wrap:anywhere;font-weight:800}.cookbook-entry-note,.cookbook-entry-body p{margin:.2rem 0 0}.cookbook-entry-actions{gap:.35rem}.cookbook-picker-list{gap:.4rem;max-height:18rem;margin-top:.6rem;padding:.15rem;display:grid;overflow-y:auto}.cookbook-picker-option{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-height:48px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;grid-template-columns:1.8rem minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.4rem .6rem;display:grid}.cookbook-picker-option:hover{border-color:var(--rosi);background:var(--rosi-soft)}.cookbook-picker-option[aria-pressed=true]{border-color:var(--herb)}.cookbook-picker-check{color:var(--rosi);text-align:center;font-size:1.2rem}.cookbook-picker-option[aria-pressed=true] .cookbook-picker-check{color:var(--herb)}.cookbook-picker-name{overflow-wrap:anywhere;font-weight:800}.cookbook-picker-create{margin-top:.6rem}.cookbook-picker-create input{flex:1;min-width:0}.cookbook-picker-new{margin-top:.6rem;padding-inline:0}.cookbook-picker-added{color:var(--herb);margin:.7rem 0 0;font-weight:700}.cookbook-shelf{overscroll-behavior-x:contain;scroll-snap-type:x proximity;gap:1rem;max-width:100%;padding-bottom:.35rem;display:flex;overflow-x:auto}.cookbook-shelf>*{scroll-snap-align:start;flex:0 0 210px;width:210px}.cookbook-shelf-all{min-height:44px;color:var(--rosi);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-weight:700;display:flex}.cookbook-shelf-all-mark{background:var(--rosi-soft);border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;font-size:1.6rem;display:grid}.cookbook-shelf-prompt{min-height:44px;color:inherit;align-items:center;gap:.75rem;padding:.7rem 1rem;display:flex}.cookbook-shelf-prompt-mark{background:var(--rosi-soft);width:2rem;height:2rem;color:var(--rosi);border-radius:50%;flex:none;place-items:center;font-size:1.1rem;display:grid}.cookbook-shelf-prompt-text{min-width:0}.cookbook-shelf-prompt-arrow{color:var(--rosi);margin-left:auto;font-weight:700}.dish-editor-heading p{max-width:42rem}.dish-back-link{min-height:44px;color:var(--ink-soft);align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.dish-photo-editor{grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);align-items:center;gap:1.2rem;display:grid}.dish-photo-copy .btn{margin:.35rem .35rem 0 0}.dish-photo-preview{aspect-ratio:16/10;border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.dish-photo-preview .media-view{object-fit:cover;width:100%;height:100%}.dish-inline-error,.dish-danger-text{color:var(--danger)}.dish-inline-error{margin-top:.75rem;font-size:.88rem;font-weight:700}.dish-section-heading{align-items:flex-start}.dish-selected-empty{color:var(--ink-soft);text-align:center;border-style:dashed}.dish-variant-editor-card{grid-template-columns:170px minmax(0,1fr);gap:1rem;padding:0;display:grid;overflow:hidden}.dish-variant-editor-cover{background:var(--surface-2);min-height:100%}.dish-variant-editor-cover .media-view{object-fit:cover;width:100%;height:100%}.dish-variant-editor-fields{min-width:0;padding:1rem 1rem 1rem 0}.dish-variant-label{margin:.8rem 0}.dish-field-label,.dish-block{display:block}.dish-diet-options{margin-top:.35rem}.dish-diet-selected{box-shadow:inset 0 0 0 1px var(--herb)}.dish-reorder-actions{gap:.35rem}.dish-icon-button{width:44px;padding:0}.dish-remove-variant{color:var(--danger);margin-top:.9rem}.dish-picker-results{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.55rem;max-height:22rem;padding:.15rem;display:grid;overflow-y:auto}.dish-picker-option{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-height:58px;color:var(--ink);text-align:left;cursor:pointer;grid-template-columns:52px minmax(0,1fr) 34px;align-items:center;gap:.65rem;padding:.25rem;display:grid}.dish-picker-option:hover{border-color:var(--rosi);background:var(--rosi-soft)}.dish-picker-thumb{border-radius:8px;width:52px;height:52px;display:block;overflow:hidden}.dish-picker-thumb .media-view{object-fit:cover;width:100%;height:100%}.dish-picker-thumb .dish-placeholder{min-height:52px}.dish-picker-thumb .dish-placeholder-plate{border-width:.3rem;width:2rem;height:2rem}.dish-picker-thumb .dish-placeholder-sprig{display:none}.dish-picker-name{overflow-wrap:anywhere;font-weight:800}.dish-picker-add{color:var(--rosi);text-align:center;font-size:1.4rem}.dish-editor-actions{gap:.75rem;display:flex}.dish-editor-actions .btn-primary{flex:1}.dish-editor .editor-error-summary strong{color:var(--danger)}.dish-editor .editor-error-summary ul{margin:.4rem 0 0;padding-left:1.2rem}.dish-detail-header{gap:1rem;display:grid}.dish-detail-hero{aspect-ratio:16/9;border-radius:calc(var(--radius) + 4px);background:var(--surface-2);min-height:280px;box-shadow:var(--shadow);position:relative;overflow:hidden}.dish-detail-hero-media,.dish-detail-hero-media .media-view{width:100%;height:100%}.dish-detail-hero-media .media-view{object-fit:cover}.dish-detail-hero-shade{pointer-events:none;background:linear-gradient(#0000 32%,#1c1218c7 100%);position:absolute;inset:0}.dish-detail-title{color:#fff;text-shadow:0 2px 16px #00000059;position:absolute;bottom:1.25rem;left:1.35rem;right:8.5rem}.dish-detail-title h1{margin:.2rem 0 0;font-size:clamp(2rem,5vw,3.4rem);line-height:1}.dish-detail-kicker{letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:900}.dish-variant-cue{align-items:center;padding-left:1rem;display:flex;position:absolute;bottom:1rem;right:1rem}.dish-variant-cue-image,.dish-variant-cue-plus{background:var(--surface-2);border:3px solid #fff;border-radius:50%;place-items:center;width:52px;height:52px;margin-left:-.9rem;display:grid;overflow:hidden;box-shadow:0 4px 16px #00000040}.dish-variant-cue-image .media-view{object-fit:cover;width:100%;height:100%}.dish-variant-cue-image .dish-placeholder{min-height:52px}.dish-variant-cue-image .dish-placeholder-plate,.dish-variant-cue-image .dish-placeholder-sprig{display:none}.dish-variant-cue-plus{z-index:2;background:var(--rosi);color:#fff;font-weight:900}.dish-detail-summary{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.dish-detail-summary p{max-width:42rem;margin:0;font-size:1.05rem}.dish-detail-summary .btn{flex:none}.dish-variant-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;display:grid}.dish-variant-card{flex-direction:column;min-width:0;padding:0;display:flex;overflow:hidden}.dish-variant-cover{aspect-ratio:16/9;background:var(--surface-2)}.dish-variant-cover .media-view{object-fit:cover;width:100%;height:100%}.dish-variant-body{flex-direction:column;flex:1;align-items:flex-start;padding:1rem;display:flex}.dish-variant-label-text{color:var(--rosi);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.3rem;font-size:.75rem;font-weight:900}.dish-variant-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.dish-variant-diets,.dish-variant-meta{margin-top:.2rem}.dish-variant-meta{color:var(--ink-soft);font-weight:700}.dish-view-recipe{align-self:stretch;margin-top:auto}.dish-missing-recipe{border-radius:var(--radius-sm);background:var(--surface-2);gap:.15rem;margin-top:auto;padding:.75rem;display:grid}.home-next-badge{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-height:44px;color:inherit;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.35rem .7rem;padding:.5rem .8rem;display:grid}.home-next-badge .badge-emoji{width:2.1rem;height:2.1rem;font-size:1.25rem}.home-next-badge-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.home-next-badge-bar{grid-column:1/-1}.home-recent-row{min-height:44px;padding:.6rem .9rem}.home-recent>*+*{margin-top:.5rem}.achievements-header{align-items:flex-start}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.badge-card{align-items:flex-start;gap:.85rem;min-height:132px;display:flex}.badge-card h2,.new-badge-row h2{margin-bottom:.25rem}.badge-card p,.new-badge-row p{margin:0}.badge-card.locked{filter:grayscale();opacity:.55}.badge-emoji{background:var(--rosi-soft);border-radius:999px;flex:none;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:1.7rem;line-height:1;display:inline-flex}.new-badges{text-align:left;margin-bottom:1rem;animation:.35s ease-out badge-pop}.new-badge-list{gap:.75rem;max-height:min(42vh,320px);margin-top:.85rem;display:grid;overflow:auto}.new-badge-row{align-items:flex-start;gap:.75rem;display:flex}@keyframes badge-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.cook-shell{width:100%;max-width:800px;margin:0 auto;padding:1rem 1.25rem 2rem}.step-focus{font-size:1.25rem}.step-focus .step-text{font-size:1.35rem;line-height:1.55}.cook-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.cook-primary-actions{z-index:1;background:var(--surface);padding-top:1rem;position:sticky;bottom:0;box-shadow:0 -.65rem .8rem -.7rem #33272e38}.cook-icon-group{flex:none;align-self:center;gap:.75rem;display:flex}.cook-icon-btn{flex:none;align-self:center;width:60px;height:60px;min-height:60px;padding:0;font-size:1.5rem}.cook-done-check{font-size:1.3em;line-height:1}.confirm-dialog{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:min(100% - 2rem,28rem);color:var(--ink);box-shadow:var(--shadow);padding:1.25rem}.confirm-dialog::backdrop{background:#33272e7a}.confirm-dialog-actions{justify-content:flex-end;margin-top:1rem}.step-status-banner{border-radius:var(--radius-sm);background:var(--herb-soft);color:var(--herb);justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.6rem .75rem;font-weight:700;display:flex}.step-blocked-hint{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-soft);padding:.6rem .75rem;font-size:.95rem}.step-callout,.step-checkpoint{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);gap:.2rem;margin:.75rem 0;padding:.7rem .8rem;font-size:.95rem;display:grid}.step-callout-label,.step-checkpoint>span:first-child{color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:800}.step-callout-warning{background:var(--amber-soft);color:var(--ink)}.step-callout-warning .step-callout-label{color:var(--amber)}.step-callout-dont{background:color-mix(in srgb, var(--danger) 13%, var(--surface));color:var(--ink)}.step-callout-dont .step-callout-label{color:var(--danger)}.step-checkpoint{border-left:4px solid var(--rosi);background:var(--rosi-soft)}.step-checkpoint>span:first-child{color:var(--rosi)}.wave{border-left:3px solid var(--line);margin-bottom:1.25rem;padding-left:1rem}.wave-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:.4rem;font-size:.75rem;font-weight:700}.step-row{border-radius:var(--radius-sm);width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.6rem;padding:.55rem .6rem;font-size:1rem;display:flex}.step-row:hover{background:var(--surface-2)}.step-row .dot{border:2px solid var(--line);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.8rem;display:flex}.step-row.done .dot{background:var(--herb);border-color:var(--herb)}.step-row.ready .dot{border-color:var(--rosi)}.step-row.done{color:var(--ink-soft);text-decoration:line-through}.progressbar{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.progressbar>div{background:var(--rosi);border-radius:999px;height:100%;transition:width .3s}.timer-dock{z-index:30;flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex;position:sticky;top:.5rem}.timer-pill{font-variant-numeric:tabular-nums;cursor:pointer;background:var(--amber-soft);color:var(--amber);box-shadow:var(--shadow);border:none;border-radius:999px;padding:.5rem 1rem;font-weight:700}.timer-pill.done{background:var(--rosi);color:#fff;animation:1s infinite pulse}.timer-pill-mini{background:var(--amber-soft);color:var(--amber);font-variant-numeric:tabular-nums;border-radius:999px;flex-shrink:0;padding:.15rem .55rem;font-size:.75rem;font-weight:700}@keyframes pulse{50%{transform:scale(1.06)}}.flow{scroll-snap-type:y mandatory;border-radius:var(--radius);scrollbar-width:none;height:74vh;overflow-y:auto}.flow-card{scroll-snap-align:start;scroll-snap-stop:always;border-radius:var(--radius);background:linear-gradient(160deg, var(--rosi-soft), var(--surface-2));height:100%;position:relative;overflow:hidden}.flow-media{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.flow-media img,.flow-media video{object-fit:cover;width:100%;height:100%}.flow-overlay{background:linear-gradient(transparent, #0000000a 15%, var(--bg) 55%);flex-direction:column;gap:.6rem;padding:3.5rem 1.25rem 1.25rem;display:flex;position:absolute;inset:auto 0 0}.flow-text{margin:0;font-size:1.2rem;line-height:1.5}@keyframes rosi-roll{0%{transform:translate(0)rotate(0)}to{transform:translate(calc(-1*min(70vw,640px)))rotate(-1080deg)}}.rosi-rolling{animation:1.6s ease-in-out rosi-roll}.rosi-button{position:relative}.rosi-rolling-holly{position:absolute;top:.4rem;right:.35rem}.rosi-rolling-message{visibility:hidden;margin:0}.rosi-rolling-message.is-visible{visibility:visible}.rosi-rolling-announcement{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.onboarding{text-align:center;max-width:480px;margin:0 auto;padding:2.5rem 1.5rem}.onboarding form{text-align:left}.onboarding-steps{color:var(--ink-soft);justify-content:center;gap:.45rem;margin-bottom:1.25rem;font-size:.78rem;font-weight:800;display:flex}.onboarding-steps span{background:var(--surface-2);border-radius:999px;padding:.3rem .65rem}.onboarding-steps .is-active{background:var(--rosi-soft);color:var(--rosi)}.onboarding-steps .is-complete{background:var(--herb-soft);color:var(--herb)}.onboarding-field-label{color:var(--ink-soft);margin-bottom:.45rem;font-size:.9rem;font-weight:600;display:block}.onboarding-next{width:100%;margin-top:1.5rem}.onboarding-actions{gap:.75rem;margin-top:1.5rem;display:flex}.onboarding-actions .btn{flex:1}.onboarding-actions .onboarding-next{margin-top:0}.onboarding-back{min-height:44px;color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;margin-bottom:.5rem;padding:0;font-weight:800;display:inline-flex}.choice-row{gap:.75rem;display:flex}.choice-row .btn{flex:1}.btn.selected{background:var(--rosi);color:#fff}.starter-onboarding{width:min(100%,980px);margin:0 auto;padding:1.5rem 1.25rem 3rem}.starter-selector{gap:1rem;display:grid}.starter-header{max-width:44rem}.starter-header h1{margin:.2rem 0 .45rem;font-size:clamp(1.8rem,4vw,2.65rem)}.starter-header p{color:var(--ink-soft);margin:0}.starter-eyebrow{color:var(--rosi);letter-spacing:.09em;text-transform:uppercase;font-size:.75rem;font-weight:900}.starter-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;padding-bottom:.75rem;display:flex}.starter-toolbar .btn{min-height:40px;padding:.45rem .8rem}.starter-shelf{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:.35rem 0 1.2rem;display:grid;position:relative}.starter-shelf:after{background:linear-gradient(180deg, var(--line), var(--surface-2));content:"";border-radius:999px;height:.45rem;position:absolute;bottom:.4rem;left:-.4rem;right:-.4rem;box-shadow:0 5px 10px #33272e14}.starter-card{border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;color:var(--ink);box-shadow:var(--shadow);font:inherit;text-align:left;cursor:pointer;flex-direction:column;padding:0;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.starter-card:hover:not(:disabled){border-color:var(--rosi)}.starter-card.is-selected{z-index:1;border-color:var(--herb);transform:translateY(-5px);box-shadow:0 8px 22px #5e8c612e}.starter-card.is-imported{cursor:default;opacity:.72}.starter-card-cover{aspect-ratio:16/10;background:var(--surface-2);width:100%;display:block;position:relative;overflow:hidden}.starter-card-cover .media-view{object-fit:cover;width:100%;height:100%}.starter-card-check{color:#fff;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#33272e7a;border:2px solid #ffffffe6;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:900;display:grid;position:absolute;top:.65rem;right:.65rem}.is-selected .starter-card-check{background:var(--herb)}.is-imported .starter-card-check{background:var(--rosi)}.starter-card-body{flex-direction:column;flex:1;gap:.45rem;padding:.85rem;display:flex}.starter-card-body>strong{font-size:1rem;line-height:1.25}.starter-card-description{color:var(--ink-soft);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.82rem;line-height:1.4;display:-webkit-box;overflow:hidden}.starter-card-meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:auto;font-size:.78rem;font-weight:700;display:flex}.starter-action-shelf{z-index:12;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem .9rem;display:flex;position:sticky;bottom:5.2rem;box-shadow:0 8px 28px #33272e29}.starter-onboarding .starter-action-shelf{bottom:.75rem}.starter-action-shelf>div:first-child{display:grid}.starter-error{border-color:var(--danger);color:var(--danger);font-size:.88rem;font-weight:700}.recipe-library-empty p{max-width:34rem;margin:0}.library-no-results{justify-items:start}.registry-settings-list{margin-bottom:1rem}.registry-settings-row{border-top:1px solid var(--line);gap:1rem;padding-top:.75rem}.registry-settings-row.is-built-in{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:.85rem}.registry-chip{margin-left:.35rem}.registry-built-in-copy{max-width:34rem;margin:.35rem 0 0}.registry-settings-actions{flex:none;gap:.4rem}.planner-header,.planner-title-row,.planner-week-controls,.planner-day-heading,.planner-option,.planner-shopping-items label{align-items:center;display:flex}.planner-header{flex-direction:column;align-items:stretch;gap:1rem}.planner-title-row,.planner-week-controls,.planner-day-heading{justify-content:space-between;gap:.75rem}.planner-description{margin:0}.planner-mode{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);flex:none;padding:.2rem;display:inline-flex}.planner-mode button{min-height:38px;color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:.35rem .8rem;font-weight:700}.planner-mode button.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.planner-week-controls{flex-wrap:wrap}.planner-week-label{text-align:center;flex:9rem;display:grid}.planner-icon-button{width:44px;padding:0;font-size:1.5rem}.planner-apply-template{margin-left:auto}.planner-days{gap:.8rem;display:grid}.planner-day{padding:.9rem}.planner-day h2{margin-bottom:.15rem}.planner-add-button{flex:none;padding-inline:.85rem}.planner-options{gap:.45rem;margin-top:.8rem;display:grid}.planner-option{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-height:44px;overflow:hidden}.planner-option.is-selected{border-color:var(--rosi);background:var(--rosi-soft)}.planner-option-select{min-width:0;min-height:44px;color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:.65rem;padding:.45rem .65rem;font-weight:700;display:flex}.planner-option-select>span:nth-child(2){overflow-wrap:anywhere}.planner-option-indicator{border:2px solid var(--ink-soft);border-radius:50%;flex:0 0 16px;width:16px;height:16px}.is-selected .planner-option-indicator{border-color:var(--rosi);box-shadow:inset 0 0 0 3px var(--rosi-soft), inset 0 0 0 7px var(--rosi)}.planner-option-status{color:var(--rosi);margin-left:auto;font-size:.78rem}.planner-recipe-link,.planner-remove-option{border-left:1px solid var(--line);color:var(--ink-soft);background:0 0;flex:0 0 38px;align-self:stretch;place-items:center;font-size:1.1rem;display:grid}.planner-remove-option{cursor:pointer;border-top:0;border-bottom:0;border-right:0}.planner-picker{border-top:1px solid var(--line);gap:.55rem;margin-top:.75rem;padding-top:.75rem;display:grid}.planner-picker-results{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.planner-picker-results .btn{text-align:left;min-height:40px;padding:.45rem .75rem}.planner-shopping-items{margin:0;padding:0;list-style:none}.planner-shopping-items li{align-items:center;gap:.4rem;display:flex}.planner-shopping-items label{cursor:pointer;flex:1;gap:.6rem;min-width:0;padding:.45rem 0}.planner-shopping-items input{width:auto}.planner-shopping-items label>span{flex:1}.planner-shopping-items .chip{margin-left:.4rem}.planner-shopping-items .is-checked{color:var(--ink-soft);text-decoration:line-through}.planner-shopping-items .is-pantry{color:var(--ink-soft);opacity:.75}.planner-pantry-button{flex:0 0 36px;width:36px;min-height:36px;padding:0}@media (width<=640px){.shell-main{padding:1rem 1rem 6rem}.cook-primary-actions{padding-bottom:calc(.75rem + env(safe-area-inset-bottom))}h1{font-size:1.45rem}.planner-title-row{flex-direction:column;align-items:flex-start}.planner-mode{width:100%}.planner-mode button{flex:1}.planner-week-controls{grid-template-columns:44px minmax(0,1fr) 44px;display:grid}.planner-apply-template{grid-column:1/-1;width:100%;margin-left:0}.planner-add-button span{display:none}.planner-add-button{width:44px;padding:0;font-size:1.25rem}.planner-option-status{font-size:.7rem}.library-heading{align-items:flex-start}.library-heading .btn{padding-inline:.9rem}.dish-photo-editor,.dish-variant-editor-card,.cookbook-header{grid-template-columns:1fr}.cookbook-entry{grid-template-columns:56px minmax(0,1fr)}.cookbook-entry-actions{flex-wrap:wrap;grid-column:1/-1}.dish-photo-preview{grid-row:1}.dish-variant-editor-cover{aspect-ratio:16/8}.dish-variant-editor-fields{padding:0 1rem 1rem}.dish-editor-actions{flex-direction:column}.dish-detail-hero{aspect-ratio:4/5;min-height:310px}.dish-detail-title{bottom:5.4rem;left:1rem;right:1rem}.dish-variant-cue{bottom:1rem;left:1.8rem;right:auto}.dish-detail-summary{flex-direction:column;align-items:stretch}.dish-variant-grid{grid-template-columns:minmax(0,1fr)}.starter-onboarding{padding:1rem 1rem 2rem}.starter-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.starter-card-description{-webkit-line-clamp:2}.starter-toolbar{flex-direction:column;align-items:flex-start}.starter-action-shelf{flex-direction:column;align-items:stretch}.starter-action-shelf .row,.starter-action-shelf .btn{width:100%}.starter-action-shelf .btn{flex:1}.registry-settings-row{flex-direction:column;align-items:stretch}.registry-settings-actions .btn{flex:1}}@media (width<=410px){.starter-shelf{grid-template-columns:minmax(0,1fr)}}.ingredient-editor-list{gap:.65rem;display:grid}.ingredient-editor{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);grid-template-columns:minmax(0,1fr) 64px 76px 44px 44px;min-width:0;display:grid;overflow:hidden}.ingredient-editor-column-headings{color:var(--ink-soft);text-transform:uppercase;grid-template-columns:minmax(0,1fr) 64px 76px 44px 44px;padding:0 1px;font-size:.78rem;font-weight:800;display:grid}.ingredient-editor-name,.ingredient-editor-amount,.ingredient-editor-unit{border:0;border-right:1px solid var(--line);background:0 0;border-radius:0;min-width:0;min-height:44px;padding-inline:.45rem}.ingredient-editor-amount{appearance:textfield}.ingredient-editor-amount::-webkit-outer-spin-button{appearance:none;margin:0}.ingredient-editor-amount::-webkit-inner-spin-button{appearance:none;margin:0}.ingredient-editor-details{display:contents}.ingredient-editor-toggle{border:0;border-right:1px solid var(--line);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:0;place-items:center;padding:0;list-style:none;display:grid}.ingredient-editor-toggle::-webkit-details-marker{display:none}.ingredient-editor>.ingredient-editor-toggle{grid-area:1/4}.ingredient-editor>.ingredient-editor-remove{grid-area:1/5}.ingredient-editor-remove{border-radius:0;min-width:44px;min-height:44px;padding:0}.ingredient-editor-collapse-summary{border-top:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;grid-column:1/-1;margin:0;padding:.35rem .75rem;overflow:hidden}.ingredient-editor-details[open]~.ingredient-editor-collapse-summary{display:none}.ingredient-editor-details-panel{border-top:1px solid var(--line);grid-column:1/-1;padding:.8rem}.ingredient-editor-optional{justify-content:center;align-items:center;min-height:44px;padding:.35rem .75rem;display:inline-flex}.ingredient-editor-optional.selected{border-color:var(--rosi);background:var(--rosi-soft);color:var(--rosi)}.ingredient-editor-substitutes{border-top:1px solid var(--line);margin-top:.9rem;padding-top:.75rem}.ingredient-substitute-row{grid-template-columns:minmax(0,1fr) 68px 84px 44px;align-items:end;gap:.4rem;display:grid}.ingredient-substitute-row input,.ingredient-substitute-row select{min-width:0;min-height:44px}.step-flow{min-width:0}.step-flow-heading{color:var(--ink-soft);letter-spacing:.06em;margin:0 0 .45rem;font-size:.78rem;font-weight:800}.step-flow-strip{gap:.55rem;margin:0;padding:0 0 .25rem;list-style:none;display:flex;overflow-x:auto}.step-flow-wave{flex:none;align-items:center;gap:.55rem;display:flex}.step-flow-connector{color:var(--rosi);font-weight:800}.step-flow-wave-steps{gap:.35rem;display:grid}.step-flow-badge{box-sizing:border-box;border:1px solid var(--line);background:var(--surface-2);width:44px;height:44px;min-height:44px;color:var(--ink);font:inherit;border-radius:4px;place-items:center;padding:0;font-size:.8rem;font-weight:800;display:grid}.step-flow-badge.is-active{border-color:var(--rosi);background:var(--rosi-soft);color:var(--rosi)}.editor-step-card{padding:0;overflow:hidden}.editor-step-heading{padding:.45rem}.editor-step-toggle{width:100%;min-height:56px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.7rem;align-items:center;gap:.65rem;padding:.6rem .7rem;font-weight:700;display:flex}.editor-step-toggle:hover{background:var(--surface)}.editor-step-toggle-collapsed{align-items:stretch;gap:.45rem;display:grid}.editor-step-header-row{align-items:center;gap:.65rem;display:flex}.editor-step-number{background:var(--rosi-soft);width:32px;height:32px;color:var(--rosi);border-radius:999px;flex:0 0 32px;place-items:center;display:grid}.editor-step-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.editor-step-summary{flex-wrap:wrap;gap:.35rem;padding-left:2.65rem;display:flex}.editor-step-remove{flex:0 0 44px;width:44px;padding:0}.editor-step-body{flex-direction:column;padding:0 1rem 1rem;display:flex}.editor-step-body>*{order:0}.editor-step-title-field{order:1!important}.editor-step-instruction{order:2!important}.editor-step-ingredients{order:3!important}.editor-step-minutes{order:4!important}.editor-step-depends{order:5!important}.editor-step-more-toggle{align-self:flex-start;order:6!important}.editor-step-more-content{order:7!important}.editor-step-chip{min-height:44px;padding:0;overflow:hidden}.editor-step-chip-body,.editor-step-chip-remove{min-height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0}.editor-step-chip-body{text-align:left;padding:.55rem .15rem .55rem .8rem}.editor-step-chip-remove{width:44px;padding:0;font-size:1.15rem}.editor-step-add-chip{border:1.5px dashed var(--line);background:0 0;min-height:44px;padding:.55rem .8rem}.editor-step-picker{border-top:1px solid var(--line);margin-top:.6rem;padding-top:.6rem}.editor-step-picker .chip-button{min-height:44px;padding:.55rem .8rem}.editor-step-portion{margin-top:.6rem}.editor-step-optional.selected{border-color:var(--rosi);background:var(--rosi-soft);color:var(--rosi)}
