:root{color:#302a24;font-synthesis:none;text-rendering:optimizelegibility;--ink:#302a24;--muted:#72685e;--paper:#fffdf8;--line:#dfd5c8;--accent:#9e482d;--accent-dark:#74331f;--accent-soft:#f2ded2;--olive:#667453;--shadow:0 14px 38px #4a301f17;--display-font:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;background:#f7f2e9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;width:100%}body,#root{width:100%;max-width:100%}body{min-width:320px;min-height:100vh;margin:0}button,a,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.app-shell{width:100%;max-width:100%;min-height:100vh}.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}.topbar{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf8eb;border-bottom:1px solid #cec2b4cc;grid-template-columns:1fr auto 1fr;align-items:center;min-height:72px;padding:0 max(5vw,1.25rem);display:grid;position:sticky;top:0}.brand{width:max-content;font-family:var(--display-font);letter-spacing:-.045em;align-items:baseline;gap:.08em;font-size:1.65rem;font-weight:500;text-decoration:none;display:inline-flex}.brand-dot{color:#b75436}.login-button{color:#66301f;background:var(--accent-soft);border:0;border-radius:.7rem;justify-self:end;padding:.65rem 1rem;font-weight:700}.session-actions{justify-self:end;align-items:center;gap:.5rem;display:flex}.profile-button,.logout-button{background:0 0;border:0;border-radius:.7rem}.profile-button{color:var(--ink);flex-direction:column;align-items:flex-end;padding:.45rem .65rem;font-weight:700;display:flex}.profile-button small{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;font-size:.65rem}.logout-button{color:var(--muted);padding:.55rem .65rem}.app-navigation{align-items:center;gap:.25rem;display:flex}.navigation-link{min-height:42px;color:var(--muted);border-radius:.7rem;align-items:center;gap:.45rem;padding:.55rem .8rem;font-size:.9rem;font-weight:650;text-decoration:none;display:flex}.navigation-link:hover,.navigation-link[data-active=true]{color:var(--accent-dark);background:#f4e8df}.navigation-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.05rem;height:1.05rem}.mobile-navigation{display:none}.page-content{width:90%;max-width:1180px;margin:0 auto;padding:clamp(2.7rem,6vw,5rem) 0 6rem}.eyebrow{color:var(--accent);letter-spacing:.13em;text-transform:uppercase;margin:0 0 .65rem;font-size:.72rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--display-font);font-weight:500}h1{letter-spacing:-.045em;margin-bottom:.8rem;font-size:clamp(2.7rem,6vw,5rem);line-height:.98}h2{letter-spacing:-.025em;margin-bottom:.65rem;font-size:clamp(1.55rem,3vw,2.1rem)}.page-description,.hero-description,.recipe-lead{color:var(--muted);font-size:1.05rem;line-height:1.65}.primary-button,.secondary-button{border-radius:.75rem;justify-content:center;align-items:center;gap:.45rem;min-height:44px;padding:.75rem 1.05rem;font-weight:700;text-decoration:none;display:inline-flex}.primary-button{border:1px solid var(--accent);color:#fff;background:var(--accent);box-shadow:0 .35rem 1rem #5a2b1b26}.primary-button:hover{background:var(--accent-dark)}.primary-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.58}.secondary-button{border:1px solid var(--line);color:var(--ink);background:var(--paper)}.button-link{width:max-content}.text-link,.back-link{color:var(--accent-dark);font-weight:700;text-decoration:none}.text-link:hover,.back-link:hover{text-decoration:underline}.hero-section{grid-template-columns:minmax(0,760px);align-items:end;padding:2.5rem 0 3.5rem;display:grid}.hero-section h1{max-width:720px}.hero-description{max-width:620px}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.7rem;display:flex}.content-section{border-top:1px solid var(--line);padding-top:3.5rem}.section-heading,.page-heading{justify-content:space-between;align-items:end;gap:2rem;display:flex}.section-heading{margin-bottom:1.5rem}.favorites-empty{border:1px solid var(--line);background:var(--paper);border-radius:1rem;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.3rem;display:flex}.favorites-empty p{color:var(--muted);margin:0;line-height:1.5}.page-heading-catalog{margin-bottom:2.2rem}.page-heading-catalog h1{margin-bottom:0}.create-button{min-height:40px;padding:.58rem .82rem;font-size:.82rem}.catalog-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.search-field{border:1px solid var(--line);background:var(--paper);border-radius:.8rem;flex:310px;align-items:center;gap:.7rem;min-height:48px;padding:0 .95rem;display:flex}.search-field>span[aria-hidden]{color:var(--muted);font-size:1.4rem}.search-field input{width:100%;color:var(--ink);background:0 0;border:0;outline:0}.search-field input::placeholder{color:#948a80}.category-filters{flex-wrap:wrap;gap:.45rem;display:flex}.filter-chip{border:1px solid var(--line);min-height:42px;color:var(--muted);background:0 0;border-radius:999px;align-items:center;gap:.4rem;padding:.55rem .8rem;font-weight:650;display:inline-flex}.filter-chip[aria-pressed=true]{color:var(--accent-dark);background:var(--accent-soft);border-color:#b79b8c}.favorite-filter>span{color:var(--accent);font-size:1.05rem;line-height:1}.category-dot{background:var(--olive);border-radius:999px;width:.55rem;height:.55rem;display:inline-block}.category-cooking{background:#bd784f}.category-leavened{background:#6d7c57}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.recipe-card{border:1px solid var(--line);background:var(--paper);border-radius:1.1rem;min-width:0;min-height:280px;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden;box-shadow:0 8px 24px #4a301f0a}.recipe-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.recipe-card-link{flex-direction:column;min-height:100%;padding:1.45rem;text-decoration:none;display:flex}.recipe-card-taxonomy{color:var(--muted);text-transform:uppercase;align-items:center;gap:.4rem;font-size:.75rem;font-weight:700;display:flex}.recipe-card h2{font-family:var(--display-font);margin:1.1rem 2.3rem .7rem 0;font-size:1.55rem;font-weight:500;line-height:1.1}.recipe-card p{color:var(--muted);margin-bottom:1rem;font-size:.93rem;line-height:1.55}.recipe-card-footer{border-top:1px solid #eee6dc;justify-content:space-between;align-items:end;gap:1rem;margin-top:auto;padding-top:1rem;display:flex}.fact-list{color:var(--muted);flex-wrap:wrap;gap:.8rem;margin:0;padding:0;font-size:.76rem;list-style:none;display:flex}.fact-list strong{color:var(--ink)}.open-arrow{color:var(--accent);font-size:1.35rem}.favorite-button{z-index:2;width:40px;height:40px;color:var(--accent);background:#fffdf8eb;border:0;border-radius:50%;place-items:center;font-size:1.3rem;line-height:1;display:grid;position:absolute;top:.85rem;right:.85rem}.favorite-button:hover{background:var(--accent-soft)}.favorite-button:disabled{cursor:wait;opacity:.55}.favorite-feedback{margin:0 0 1rem}.back-link{margin-bottom:2.4rem;display:inline-block}.recipe-detail-header{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:3rem;padding-bottom:2.5rem;display:grid}.recipe-detail-header h1{max-width:850px}.recipe-lead{max-width:760px}.recipe-byline{color:var(--muted);margin-bottom:0;font-size:.9rem;font-weight:600}.detail-actions{flex-direction:column;gap:.65rem;min-width:190px;display:flex}.recipe-facts{border-block:1px solid var(--line);flex-wrap:wrap;margin:0 0 1rem;padding:1.1rem 0;display:flex}.recipe-facts div{border-right:1px solid var(--line);min-width:145px;margin-right:1.5rem;padding:.35rem 1.5rem .35rem 0}.recipe-facts div:last-child{border:0}.recipe-facts dt{color:var(--muted);text-transform:uppercase;font-size:.73rem;font-weight:750}.recipe-facts dd{margin:.25rem 0 0;font-weight:700}.recipe-scaling{border:1px solid var(--line);background:var(--paper);border-radius:1rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem;margin-bottom:3rem;padding:1.15rem 1.25rem;display:grid}.recipe-scaling .eyebrow{margin-bottom:.25rem}.recipe-scaling h2{margin:0;font-size:1.25rem}.recipe-scaling p:last-child{color:var(--muted);margin:.3rem 0 0;font-size:.85rem}.portion-selector{grid-template-columns:42px minmax(72px,92px) 42px;align-items:center;gap:.4rem;display:grid}.portion-selector button,.portion-selector input{border:1px solid var(--line);min-height:42px;color:var(--ink);font:inherit;background:#fffdfa;border-radius:.7rem;font-weight:800}.portion-selector button{color:var(--accent-dark);font-size:1.2rem}.portion-selector button:disabled{cursor:default;opacity:.4}.portion-selector input{text-align:center;appearance:textfield;width:100%;padding:.5rem}.portion-selector input::-webkit-inner-spin-button{appearance:none;margin:0}.portion-selector input::-webkit-outer-spin-button{appearance:none;margin:0}.recipe-detail-layout{grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);align-items:start;gap:clamp(2rem,7vw,6rem);display:grid}.ingredients-panel{border:1px solid var(--line);background:var(--paper);border-radius:1.15rem;padding:1.6rem;position:sticky;top:100px}.ingredient-group+.ingredient-group{margin-top:1.6rem}.ingredient-group h3{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.55rem;font-size:.75rem}.ingredient-group ul{margin:0;padding:0;list-style:none}.ingredient-group li{border-bottom:1px solid #eee6dc;justify-content:space-between;gap:1rem;padding:.65rem 0;display:flex}.ingredient-group li:last-child{border-bottom:0}.ingredient-group small{color:var(--muted);margin-top:.2rem;display:block}.ingredient-group strong{color:var(--accent-dark);flex:none}.flour-summary{border-top:1px solid var(--line);gap:1rem;margin-top:1.35rem;padding-top:1.35rem;display:grid}.flour-summary-heading,.flour-phase-summary>div{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.flour-summary-heading h3{margin:0;font-size:1rem}.flour-summary-heading>span{color:var(--accent-dark);font-size:.75rem;font-weight:800}.flour-summary h4{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5rem;font-size:.68rem}.flour-summary ul{margin:0;padding:0;list-style:none}.flour-summary li{justify-content:space-between;gap:.8rem;padding:.38rem 0;font-size:.78rem;display:flex}.flour-summary li strong{color:var(--accent-dark);flex:none}.flour-phase-summary+.flour-phase-summary{border-top:1px solid #eee6dc;margin-top:.8rem;padding-top:.8rem}.flour-phase-summary>div{font-size:.82rem}.flour-phase-summary>div>span{color:var(--accent-dark);font-weight:800}.flour-phase-summary ul{border-left:2px solid var(--accent-soft);margin-top:.25rem;padding-left:.75rem}.method-panel>h2{margin-bottom:1.5rem}.method-list{margin:0;padding:0;list-style:none}.method-list>li{grid-template-columns:18px minmax(0,1fr);gap:1rem;padding-bottom:2rem;display:grid;position:relative}.method-list>li:not(:last-child):before{content:"";background:#cbbbad;width:1px;position:absolute;top:17px;bottom:0;left:5px}.method-marker{z-index:1;border:2px solid var(--accent);background:#f7f2e9;border-radius:50%;width:11px;height:11px;margin-top:.45rem}.method-list h3{margin-bottom:.55rem;font-size:1.05rem}.method-ingredients{background:#fffaf3;border:1px solid #eadfd3;border-radius:.75rem;margin:.2rem 0 .7rem;padding:.75rem .85rem}.method-ingredients>strong{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-bottom:.35rem;font-size:.68rem;display:block}.method-ingredients ul{margin:0;padding:0;list-style:none}.method-ingredients li{justify-content:space-between;gap:.75rem;padding:.28rem 0;font-size:.8rem;display:flex}.method-ingredients li>span{min-width:0}.method-ingredients li small{color:var(--muted);margin-top:.12rem;font-size:.68rem;line-height:1.35;display:block}.method-ingredients li>strong{color:var(--accent-dark);flex:none}.method-detail-group{margin:.2rem 0 .75rem}.method-detail-heading{justify-content:space-between;align-items:baseline;gap:1rem;font-size:.82rem;display:flex}.method-detail-heading>span{color:var(--accent-dark);font-weight:800}.method-detail-title{margin-bottom:.25rem;font-size:.82rem;display:block}.method-detail-description{color:var(--muted);margin:.25rem 0 .45rem;font-size:.78rem;line-height:1.5}.method-detail-group ul{border-left:2px solid var(--accent-soft);margin:0;padding:.2rem 0 .1rem .75rem;list-style:none}.method-detail-group li{color:var(--muted);padding:.28rem 0;font-size:.78rem;line-height:1.45}.method-detail-group li strong{color:var(--ink);font-weight:800}.water-addition ul{margin-top:.25rem}.water-addition li{color:var(--ink);justify-content:space-between;gap:.8rem;display:flex}.water-addition li strong{color:var(--accent-dark);flex:none}.muted-copy{color:var(--muted)}.account-only-page{max-width:850px}.account-only-card{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);border-radius:1.2rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.3rem;margin-top:2.5rem;padding:2rem;display:grid}.account-only-card h2{font-size:1.5rem}.account-only-card p{color:var(--muted);margin:0;line-height:1.55}.lock-mark{width:3rem;height:3rem;color:var(--accent);background:var(--accent-soft);border-radius:50%;place-items:center;font-size:1.5rem;display:grid}.empty-state{text-align:center;background:#fffdf99e;border:1px dashed #cfc2b3;border-radius:1.25rem;padding:clamp(2.5rem,7vw,5rem) 2rem}.empty-state h1{font-size:clamp(2rem,5vw,3rem)}.empty-state p{color:var(--muted);margin-bottom:0}.auth-dialog{border:1px solid var(--line);width:min(460px,100vw - 2rem);color:inherit;background:var(--paper);border-radius:1.2rem;padding:2rem;box-shadow:0 1.4rem 5rem #3523183d}.auth-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2f29237a}.auth-dialog h2{margin-bottom:.7rem}.auth-dialog>p:not(.eyebrow,.dialog-feedback){color:var(--muted);line-height:1.55}.icon-button{width:42px;height:42px;color:var(--muted);background:0 0;border:0;place-items:center;font-size:1.5rem;display:grid}.dialog-close{position:absolute;top:.55rem;right:.55rem}.dialog-actions{grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1.4rem;display:grid}.dialog-feedback{color:var(--accent-dark);margin:1rem 0 0;font-size:.86rem}.auth-form{gap:.9rem;margin-top:1.25rem;display:grid}.auth-form label{color:var(--muted);gap:.35rem;font-size:.78rem;font-weight:750;display:grid}.auth-form input,.auth-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;background:#fff;border-radius:.65rem;outline:0;padding:.72rem .8rem}.auth-form input:focus,.auth-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #9e482d1a}.auth-mode-button{width:100%;color:var(--accent-dark);background:0 0;border:0;padding:1rem 0 0;font-weight:700}.inline-error{color:#9b2f26;margin:.65rem 0 0;font-size:.85rem;line-height:1.4}.empty-state-action{margin-top:1.5rem}.structured-editor{gap:1.35rem;min-width:0;display:grid}.editor-heading{max-width:800px;margin-bottom:.9rem}.editor-heading .back-link{margin-bottom:2rem}.editor-heading h1{font-size:clamp(2.8rem,6vw,4.7rem)}.editor-metadata{border:1px solid var(--line);background:var(--paper);border-radius:1.2rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:1.35rem;display:grid;box-shadow:0 8px 24px #4a301f0a}.editor-field{min-width:0;color:var(--muted);align-content:start;gap:.38rem;font-size:.76rem;font-weight:750;display:grid}.editor-field-wide{grid-column:1/-1}.editor-field input,.editor-field select,.editor-field textarea,.structured-block input,.structured-block select,.structured-block textarea{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);resize:vertical;background:#fff;border-radius:.62rem;outline:0;padding:.7rem .75rem}.editor-field input:focus,.editor-field select:focus,.editor-field textarea:focus,.structured-block input:focus,.structured-block select:focus,.structured-block textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #9e482d1a}.editor-field input:disabled,.editor-field select:disabled{color:var(--muted);background:#f3eee7}.editor-block-stack,.editor-block-pair{gap:1rem;min-width:0;display:grid}.block-insert-control{z-index:3;justify-content:center;align-items:center;height:30px;margin-block:-.5rem;display:flex;position:relative}.block-insert-control:before{background:var(--line);content:"";height:1px;position:absolute;left:0;right:0}.block-insert-control button{width:34px;height:34px;color:var(--accent);background:#f7f2e9;border:1px solid #c9b7a7;border-radius:50%;place-items:center;font-size:1.25rem;line-height:1;display:grid;position:relative}.block-insert-control button:hover{border-color:var(--accent);background:var(--accent-soft)}.block-insert-menu{z-index:20;border:1px solid var(--line);background:var(--paper);border-radius:.8rem;min-width:max-content;padding:.38rem;display:flex;position:absolute;top:calc(100% + .45rem);left:50%;transform:translate(-50%);box-shadow:0 12px 30px #3523182e}.block-insert-menu button{width:auto;height:auto;color:var(--ink);white-space:nowrap;background:0 0;border:0;border-radius:.55rem;padding:.55rem .72rem;font-size:.75rem;font-weight:750;display:block}.block-insert-menu button:hover{color:var(--accent-dark);background:var(--accent-soft)}.structured-block{border:1px solid var(--line);background:var(--paper);border-radius:1.2rem;min-width:0;overflow:hidden;box-shadow:0 8px 24px #4a301f0a}.structured-block>header{border-bottom:1px solid var(--line);background:#fbf6ee;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.structured-block>header h2{letter-spacing:0;margin:0;font-family:inherit;font-size:1.02rem;font-weight:800}.structured-block>header span{color:var(--muted);margin-top:.18rem;font-size:.7rem;font-weight:650;display:block}.structured-block-body{gap:1.15rem;min-width:0;padding:1.25rem;display:grid}.ingredient-editor-group{border-top:1px solid #eee6dc;gap:.7rem;min-width:0;padding-top:1rem;display:grid}.ingredient-group-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.ingredient-group-heading input{max-width:340px;font-weight:750}.ingredient-editor-table-wrap{width:100%;min-width:0;max-width:100%;position:relative;overflow:visible}.ingredient-editor-table{border-collapse:collapse;width:100%;min-width:640px}.ingredient-editor-table th{color:var(--muted);letter-spacing:.06em;text-align:left;text-transform:uppercase;padding:0 .35rem .45rem;font-size:.68rem}.ingredient-editor-table td{vertical-align:middle;border-top:1px solid #eee6dc;padding:.35rem}.ingredient-editor-table td:first-child{width:52%}.ingredient-editor-table td:nth-child(2),.ingredient-editor-table td:nth-child(3){width:18%}.ingredient-editor-table td:last-child{white-space:nowrap;width:1%}.ingredient-note-row td{border-top:0;padding:.1rem .35rem .75rem}.ingredient-note-row input{width:100%}.ingredient-search{position:relative}.ingredient-search-results{z-index:30;border:1px solid var(--line);background:#fff;border-radius:.7rem;max-height:220px;padding:.3rem;display:grid;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow-y:auto;box-shadow:0 12px 28px #35231829}.ingredient-search-results button{color:var(--ink);text-align:left;background:0 0;border:0;border-radius:.5rem;padding:.6rem .65rem}.ingredient-search-results button:hover,.ingredient-search-results button.selected{color:var(--accent-dark);background:var(--accent-soft)}.ingredient-search-results>span{color:var(--muted);padding:.7rem;font-size:.78rem}.ingredient-line-actions{gap:.2rem;display:flex}.ingredient-row-icon{width:38px;height:38px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:1.08rem;display:grid}.ingredient-row-icon:hover,.ingredient-row-icon.active{color:var(--accent-dark);background:var(--accent-soft)}.ingredient-row-icon.danger-text{color:#9b2f26}.ingredient-portion-fields{border-top:1px solid #eee6dc;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;padding-top:1rem;display:grid}.ingredient-portion-fields>:first-child{grid-column:1/-1}.portion-calculation{min-height:42px;color:var(--muted);background:#f8f2ea;border-radius:.65rem;align-content:center;padding:.65rem .75rem;font-size:.78rem;line-height:1.45;display:grid}.portion-calculation strong{color:var(--ink);font-size:1rem}.portion-calculation small{margin-top:.15rem}.duration-control{grid-template-columns:minmax(0,1fr) auto;gap:.45rem;display:grid}.duration-control select{width:auto;min-width:92px}.block-add-button,.text-button{width:max-content;color:var(--accent-dark);background:0 0;border:0;padding:.35rem .2rem;font-size:.78rem;font-weight:750}.block-add-button:hover,.text-button:hover{text-decoration:underline}.danger-text{color:#9b2f26}.recipe-use-card{background:#fffcf7;border:1px solid #e8ded2;border-radius:.9rem;gap:1rem;padding:1rem;display:grid}.recipe-use-row{grid-template-columns:minmax(220px,1fr) minmax(130px,.35fr) auto;align-items:end;gap:.8rem;display:grid}.recipe-use-allocation{color:var(--muted);align-self:center;font-size:.75rem;font-weight:750}.flour-allocation-editor{background:#fffaf3;border:1px solid #eadfd3;border-radius:.85rem;gap:.85rem;padding:1rem;display:grid}.flour-allocation-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.flour-allocation-heading strong,.flour-allocation-heading span{display:block}.flour-allocation-heading div>span{color:var(--muted);margin-top:.2rem;font-size:.7rem;font-weight:650}.flour-allocation-heading>span{border-radius:999px;flex:none;padding:.3rem .5rem;font-size:.7rem;font-weight:800}.flour-total-valid{color:#4e654b;background:#edf4e9}.flour-total-invalid{color:#9b2f26;background:#fff0ec}.flour-allocation-row{border-top:1px solid #eee3d7;grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end;gap:.7rem;padding-top:.85rem;display:grid}.flour-total-message{margin:0}.step-editor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}.cooking-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.cooking-profile-card{background:#fffcf7;border:1px solid #e8ded2;border-radius:.85rem;gap:1rem;padding:1rem;display:grid}.cooking-profile-heading{gap:.2rem;display:grid}.cooking-profile-heading h3{margin:0;font-size:.96rem}.cooking-profile-heading span{color:var(--muted);font-size:.72rem;line-height:1.35}.cooking-profile-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.cooking-profile-settings>strong,.cooking-stage-fields>strong{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;grid-column:1/-1;font-size:.68rem}.cooking-stage-fields{border-top:1px solid #eee6dc;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;padding-top:.9rem;display:grid}.cooking-stage-fields-deck{grid-template-columns:repeat(3,minmax(0,1fr))}.cooking-profile-card .editor-field{min-width:0}.editor-add-blocks{flex-wrap:wrap;justify-content:center;gap:.7rem;padding:.55rem;display:flex}.editor-feedback{color:#8d2d24;background:#fff3ef;border:1px solid #deb9af;border-radius:.75rem;margin:0;padding:.85rem 1rem}.editor-save-bar{z-index:10;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf8eb;border:1px solid #cfc2b3d9;border-radius:1rem;justify-content:flex-end;gap:.7rem;padding:.8rem;display:flex;position:sticky;bottom:1rem;box-shadow:0 1rem 3rem #35231826}.settings-page{max-width:850px}.profile-card{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);border-radius:1.1rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1.5rem;display:grid}.profile-card h2,.profile-card p{margin:0}.profile-card p{color:var(--muted)}.profile-avatar{color:#fff;background:var(--accent);border-radius:50%;place-items:center;width:3.2rem;height:3.2rem;font-family:Georgia,serif;font-size:1.4rem;display:grid}.role-badge{color:var(--accent-dark);background:var(--accent-soft);border-radius:999px;padding:.45rem .7rem;font-size:.72rem;font-weight:800}.preferences-section{border-top:1px solid var(--line);margin-top:3rem;padding-top:2.5rem}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.25rem;display:grid}.settings-card{border:1px solid var(--line);background:var(--paper);border-radius:1rem;padding:1.35rem;box-shadow:0 8px 24px #4a301f0a}.settings-card h3{font-family:var(--display-font);margin-bottom:1.1rem;font-size:1.35rem;font-weight:500}.settings-field{color:var(--muted);gap:.45rem;margin-top:1rem;font-size:.78rem;font-weight:750;display:grid}.settings-field select,.settings-field input{border:1px solid var(--line);min-width:0;color:var(--ink);background:#fff;border-radius:.65rem;outline:0;padding:.7rem .75rem}.settings-field select:focus,.settings-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #9e482d1a}.conversion-control{color:var(--ink);grid-template-columns:auto minmax(70px,.45fr) auto;align-items:center;gap:.55rem;font-weight:600;display:grid}.conversion-control input{text-align:right;width:100%}.settings-help{color:var(--muted);margin:.8rem 0 0;font-size:.82rem;line-height:1.5}.check-choice-list{gap:.65rem;margin-top:1rem;display:grid}.check-choice{background:#fffcf7;border:1px solid #e8ded2;border-radius:.75rem;align-items:center;gap:.75rem;padding:.8rem;display:flex}.check-choice input{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.check-choice span{gap:.15rem;display:grid}.check-choice small{color:var(--muted)}.preferences-actions{align-items:center;gap:1rem;margin-top:1rem;display:flex}.settings-feedback{color:var(--accent-dark);margin:0;font-size:.85rem;font-weight:650}.admin-users{border-top:1px solid var(--line);margin-top:3rem;padding-top:2.5rem}.user-list{border:1px solid var(--line);background:var(--paper);border-radius:1rem;overflow:hidden}.user-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;display:flex}.user-row:last-child{border-bottom:0}.user-row div{gap:.2rem;display:grid}.user-row span{color:var(--muted);font-size:.82rem}@media (width<=920px){.desktop-navigation{display:none}.topbar{grid-template-columns:1fr auto}.mobile-navigation{z-index:20;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf8f5;display:block;position:fixed;bottom:0;left:0;right:0}.mobile-navigation .app-navigation{grid-template-columns:repeat(4,1fr);display:grid}.mobile-navigation .navigation-link{min-width:0;padding:.55rem .2rem max(.55rem, env(safe-area-inset-bottom));border-radius:0;flex-direction:column;gap:.15rem;font-size:.65rem}.mobile-navigation .navigation-link svg{width:1.2rem;height:1.2rem}.page-content{padding-bottom:7rem}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-section{min-height:auto}}@media (width<=640px){.topbar{min-height:64px}.brand{font-size:1.45rem}.page-content{width:calc(100% - 2rem);max-width:1180px;padding-top:2.25rem}input,select,textarea{font-size:16px}h1{font-size:clamp(2.45rem,13vw,3.8rem)}.hero-section{grid-template-columns:1fr;padding:1.1rem 0 2.5rem}.hero-section h1{font-size:clamp(2.55rem,12.5vw,3.35rem)}.hero-description{font-size:.96rem;line-height:1.55}.hero-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:1.3rem;display:grid}.hero-actions>*{text-align:center;width:100%;min-width:0;padding-inline:.55rem;font-size:.78rem}.page-heading,.section-heading{flex-direction:column;align-items:flex-start;gap:1rem}.page-heading-catalog{flex-direction:row;align-items:center;gap:.75rem}.page-heading-catalog .eyebrow{margin-bottom:.35rem}.page-heading-catalog h1{font-size:2.75rem}.create-button{flex:none;width:auto}.content-section{padding-top:2.25rem}.favorites-section .section-heading{flex-direction:row;align-items:center}.favorites-section .section-heading h2{margin:0;font-size:1.65rem}.favorites-section .text-link{border:1px solid var(--line);background:var(--paper);border-radius:999px;flex:none;padding:.5rem .7rem;font-size:.72rem}.favorites-empty{flex-direction:column;align-items:stretch}.favorites-empty .secondary-button{width:100%}.catalog-tools{align-items:stretch}.category-filters{flex-wrap:nowrap;padding-bottom:.2rem;overflow-x:auto}.filter-chip{flex:none}.recipe-grid{grid-template-columns:1fr;gap:.65rem}.recipe-card{border-radius:.9rem;min-height:0}.recipe-card-link{min-height:126px;padding:1rem 3.25rem 1rem 1rem}.recipe-card-taxonomy{font-size:.67rem}.recipe-card h2{margin:.6rem 0 .35rem;font-size:1.3rem}.recipe-card p{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:.15rem 0 .35rem;font-size:.82rem;line-height:1.45;display:-webkit-box;overflow:hidden}.recipe-card-footer{border-top:0;margin-top:auto;padding-top:.55rem}.fact-list{gap:.55rem;font-size:.68rem}.open-arrow{place-items:center;width:38px;height:38px;line-height:1;display:grid;position:absolute;bottom:.65rem;right:.55rem}.favorite-button{width:38px;height:38px;top:.65rem;right:.55rem}.recipe-detail-header{grid-template-columns:1fr;gap:1.3rem}.detail-actions{grid-template-columns:1fr 1fr;min-width:0;display:grid}.recipe-facts{grid-template-columns:repeat(2,1fr);display:grid}.recipe-facts div{border-right:1px solid var(--line);min-width:0;margin:0;padding:.6rem}.recipe-facts div:nth-child(2n){border-right:0}.recipe-scaling{grid-template-columns:1fr;gap:.9rem;padding:1rem}.portion-selector{grid-template-columns:44px minmax(0,1fr) 44px}.recipe-detail-layout{grid-template-columns:1fr}.ingredients-panel{position:static}.account-only-card{grid-template-columns:auto 1fr}.account-only-card .primary-button{grid-column:1/-1}.dialog-actions{grid-template-columns:1fr}.session-actions{gap:.15rem}.profile-button{max-width:120px}.profile-button span{text-overflow:ellipsis;white-space:nowrap;width:100%;overflow:hidden}.logout-button{display:none}.form-columns{grid-template-columns:1fr}.profile-card{grid-template-columns:auto 1fr}.role-badge{grid-column:1/-1;width:max-content}.settings-grid{grid-template-columns:1fr}.conversion-control{grid-template-columns:1fr minmax(72px,.5fr) auto}.preferences-actions{flex-direction:column;align-items:stretch}.preferences-actions .primary-button{width:100%}.user-row{flex-direction:column;align-items:stretch}.editor-metadata,.step-editor-grid,.cooking-profile-grid,.recipe-use-row{grid-template-columns:1fr}.structured-block>header{align-items:center}.structured-block-body{padding:1rem}.ingredient-editor-table{min-width:0;display:block}.ingredient-editor-table thead{display:none}.ingredient-editor-table tbody{display:grid}.ingredient-editor-table .ingredient-main-row{border-bottom:1px solid #eee6dc;grid-template-columns:minmax(120px,1fr) 70px 70px auto;gap:.45rem;padding:.65rem 0;display:grid}.ingredient-editor-table .ingredient-main-row:first-child{padding-top:0}.ingredient-editor-table .ingredient-main-row:last-child{border-bottom:0;padding-bottom:0}.ingredient-editor-table td{border-top:0;padding:0;width:auto!important}.ingredient-editor-table .ingredient-main-row td:last-child{grid-area:1/4}.ingredient-editor-table .ingredient-note-row{border-bottom:1px solid #eee6dc;padding:0 0 .65rem;display:block}.ingredient-editor-table .ingredient-note-row td{display:block}.ingredient-line-actions{gap:0}.ingredient-row-icon{width:34px;height:38px}.ingredient-portion-fields{grid-template-columns:1fr}.ingredient-portion-fields>:first-child{grid-column:auto}.block-insert-menu{grid-template-columns:repeat(2,minmax(0,1fr));width:min(300px,100vw - 2rem);min-width:0;display:grid}.block-insert-menu button{white-space:normal}.recipe-use-row{grid-template-columns:1fr 110px}.recipe-use-row .text-button{grid-column:1/-1}.flour-allocation-heading{flex-direction:column;align-items:stretch}.flour-allocation-heading>span{width:max-content}.flour-allocation-row{grid-template-columns:1fr 1fr}.flour-allocation-row .text-button{grid-column:1/-1}.cooking-profile-settings,.cooking-stage-fields,.cooking-stage-fields-deck{grid-template-columns:1fr}.editor-save-bar{position:static;bottom:auto}.editor-save-bar>*{flex:1}}
