@font-face{font-family:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8dd8a3188b79fd8f-s.a45bde5b.woff2)format("woff2");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:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c8f209abc35ee02-s.p.a4b9a15b.woff2)format("woff2");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}@font-face{font-family:DM Serif Display Fallback;src:local(Times New Roman);ascent-override:94.37%;descent-override:30.51%;line-gap-override:0.0%;size-adjust:109.78%}.dm_serif_display_509de86b-module__mFfy_G__className{font-family:DM Serif Display,DM Serif Display Fallback;font-style:normal;font-weight:400}.dm_serif_display_509de86b-module__mFfy_G__variable{--font-serif:"DM Serif Display","DM Serif Display Fallback"}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.woff2)format("woff2");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}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_fd091ad6-module__giF-bG__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_fd091ad6-module__giF-bG__variable{--font-sans:"Inter","Inter Fallback"}
:root{--bg:#fafaf8;--text:#2c2420;--text-secondary:#6b5e56;--text-muted:#9b8e85;--primary:#a07eb5;--primary-hover:#8e6ba3;--gold:#c4956a;--gold-hover:#b5845a;--border:#eeebe7;--card-bg:#fff;--radius:12px;--font-serif:"DM Serif Display",Georgia,serif;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--nav-height:72px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;font-size:16px;line-height:1.5}.app{min-height:100dvh;padding-top:var(--safe-top);flex-direction:column;display:flex}.tab-content{-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 16px);flex:1;overflow-y:auto}.tab-panel{display:none}.tab-panel.active{animation:.2s ease-out fadeIn;display:block}.bottom-nav{height:calc(var(--nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);z-index:100;background:#fafaf8d9;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{cursor:pointer;color:var(--text-muted);font-family:var(--font-sans);letter-spacing:.02em;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-height:44px;font-size:11px;font-weight:500;transition:color .2s;display:flex}.nav-item.active{color:var(--primary)}.nav-item svg{transition:transform .2s}.nav-item.active svg{transform:scale(1.08)}.scan-idle{min-height:calc(100dvh - var(--nav-height) - var(--safe-bottom) - var(--safe-top));flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;display:flex}.app-title{font-family:var(--font-serif);color:var(--text);margin-bottom:8px;font-size:36px;font-weight:400}.app-subtitle{color:var(--text-secondary);margin-bottom:48px;font-size:15px}.camera{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:320px;display:flex}.btn{border-radius:var(--radius);font-family:var(--font-sans);cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;width:100%;min-height:44px;padding:14px 28px;font-size:15px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{background:var(--border);color:var(--text-muted);cursor:default}.btn-secondary{border:1.5px solid var(--border);color:var(--text-secondary);background:0 0}.btn-secondary:hover{border-color:var(--text-muted)}.btn-share{background:var(--gold);color:#fff}.btn-share:hover{background:var(--gold-hover)}.btn-share:active{transform:scale(.98)}.btn-delete{color:#c45b5b;background:0 0;width:100%;padding:12px 24px;font-size:14px}.btn-delete:hover{background:#c45b5b0f}.btn-large{padding:18px 32px;font-size:16px}.btn svg{flex-shrink:0}.scan-preview{padding:0 0 24px}.preview-image{aspect-ratio:4/3;width:100%;overflow:hidden}.preview-image img{object-fit:cover;width:100%;height:100%}.preview-actions{flex-direction:column;gap:12px;padding:24px 24px 0;display:flex}.error-message{color:#c45b5b;text-align:center;padding:16px 24px 0;font-size:14px}.error-box{border-radius:var(--radius);background:#c45b5b0f;border:1.5px solid #c45b5b33;margin:0 24px;padding:14px 18px;animation:.3s ease-out fadeIn}.error-box-text{color:#9b3c3c;font-size:14px;line-height:1.5}.hints-highlight{background:#a07eb50a;animation:1.5s ease-in-out hintPulse;border-color:var(--primary)!important}@keyframes hintPulse{0%,to{box-shadow:0 0 #a07eb500}50%{box-shadow:0 0 0 4px #a07eb526}}.btn-options-toggle{width:100%;font-family:var(--font-sans);color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:14px;transition:color .15s;display:flex}.btn-options-toggle:hover{color:var(--text-secondary)}.preview-options{background:var(--card-bg);border:1.5px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:16px;animation:.15s ease-out fadeIn;display:flex}.scan-diet-chips{flex-wrap:wrap;gap:8px;display:flex}.scan-diet-label{width:100%;color:var(--text-muted);margin-bottom:2px;font-size:12px}.hints-field{margin-bottom:4px}.hints-input{border:1.5px solid var(--border);border-radius:var(--radius);width:100%;font-family:var(--font-sans);color:var(--text);background:var(--card-bg);resize:none;outline:none;padding:14px 16px;font-size:14px;line-height:1.5;transition:border-color .2s}.hints-input::placeholder{color:var(--text-muted)}.hints-input:focus{border-color:var(--primary)}.servings-row{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.servings-label{color:var(--text-secondary);font-size:15px}.stepper{border:1.5px solid var(--border);border-radius:var(--radius);align-items:center;gap:0;display:flex;overflow:hidden}.stepper-btn{width:44px;height:44px;color:var(--primary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:20px;font-weight:500;transition:background .15s;display:flex}.stepper-btn:active{background:#a07eb514}.stepper-btn:disabled{color:var(--border);cursor:default}.stepper-value{text-align:center;width:44px;color:var(--text);border-left:1.5px solid var(--border);border-right:1.5px solid var(--border);font-size:17px;font-weight:600;line-height:44px}.loading{min-height:calc(100dvh - var(--nav-height) - var(--safe-bottom) - var(--safe-top));flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;display:flex}.loading-shimmer{flex-direction:column;gap:16px;width:100%;max-width:340px;margin-bottom:32px;display:flex}.shimmer-line{background:linear-gradient(90deg,var(--border)25%,#f5f2ee 50%,var(--border)75%);background-size:200% 100%;border-radius:8px;height:16px;animation:1.5s infinite shimmer}.shimmer-wide{width:100%}.shimmer-medium{width:75%}.shimmer-narrow{width:50%}.loading-text{color:var(--text-muted);font-size:14px;animation:.3s ease-out fadeIn}.recipe-card{background:var(--card-bg)}.recipe-image{aspect-ratio:4/3;width:100%;overflow:hidden}.recipe-image img{object-fit:cover;width:100%;height:100%}.recipe-content{padding:28px 24px 32px}.recipe-name{font-family:var(--font-serif);color:var(--text);margin-bottom:8px;font-size:28px;font-weight:400;line-height:1.2}.recipe-description{color:var(--text-secondary);margin-bottom:16px;font-size:15px;line-height:1.5}.recipe-meta{color:var(--primary);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px;font-size:14px;font-weight:500;display:flex}.meta-dot{color:var(--text-muted)}.recipe-section{margin-bottom:28px}.recipe-section h3{font-family:var(--font-serif);color:var(--text);border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:8px;font-size:20px;font-weight:400}.ingredients-list{flex-direction:column;gap:10px;list-style:none;display:flex}.ingredients-list li{border-bottom:1px solid #eeebe780;gap:12px;padding:6px 0;font-size:15px;display:flex}.ingredients-list li:last-child{border-bottom:none}.ingredient-amount{color:var(--primary);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:72px;font-weight:600}.ingredient-item{color:var(--text)}.steps-list{counter-reset:steps;flex-direction:column;gap:20px;list-style:none;display:flex}.steps-list li{counter-increment:steps;color:var(--text);padding-left:40px;font-size:15px;line-height:1.6;position:relative}.steps-list li:before{content:counter(steps);background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:600;display:flex;position:absolute;top:1px;left:0}.nutrition-table{flex-direction:column;gap:0;font-size:14px;display:flex}.nutrition-header,.nutrition-row{grid-template-columns:1fr repeat(3,80px);align-items:center;gap:4px;padding:8px 0;display:grid}.nutrition-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding-bottom:10px;font-size:12px;font-weight:600}.nutrition-header span:not(:first-child),.nutrition-row span:not(:first-child){text-align:right}.nutrition-row{color:var(--text-secondary);border-bottom:1px solid #eeebe780}.nutrition-row:last-child{border-bottom:none}.nutrition-label{color:var(--text);font-weight:500}.nutrition-note{color:var(--text-muted);margin-top:12px;font-size:12px;font-style:italic}.edit-input{border:1.5px solid var(--border);width:100%;font-family:var(--font-sans);color:var(--text);background:var(--bg);border-radius:8px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .2s}.edit-input:focus{border-color:var(--primary)}.edit-name{font-family:var(--font-serif);margin-bottom:8px;padding:8px 12px;font-size:22px;font-weight:400}.edit-description{resize:none;margin-bottom:12px;font-size:14px;line-height:1.5}.edit-meta-input{flex:1;width:auto;min-width:0;padding:6px 8px;font-size:13px}.edit-servings-inline{flex:none;align-items:center;gap:4px;display:flex}.edit-servings-inline input{text-align:center;width:48px}.edit-servings-label{color:var(--text-muted);font-size:13px}.edit-ingredients{flex-direction:column;gap:8px;display:flex}.edit-ingredient-row{align-items:center;gap:8px;display:flex}.edit-amount{flex:0 0 80px;width:80px}.edit-item{flex:1}.edit-remove-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:6px;transition:color .2s,background .2s;display:flex}.edit-remove-btn:hover{color:#c45b5b;background:#c45b5b0f}.edit-add-btn{border:1.5px dashed var(--border);color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:8px;padding:10px;font-size:13px;font-weight:500;transition:all .2s}.edit-add-btn:hover{border-color:var(--primary);color:var(--primary)}.edit-steps{flex-direction:column;gap:10px;display:flex}.edit-step-row{align-items:flex-start;gap:8px;display:flex}.edit-step-num{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-top:8px;font-size:13px;font-weight:600;display:flex}.edit-step-text{resize:none;flex:1;line-height:1.5}.recipe-actions{flex-direction:column;gap:10px;padding-top:8px;display:flex}.recipes-tab{padding:24px 0}.recipes-header{justify-content:space-between;align-items:center;padding-right:24px;display:flex}.tab-title{font-family:var(--font-serif);color:var(--text);padding:0 24px 20px;font-size:28px;font-weight:400}.shopping-list-btn{border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin-bottom:20px;padding:10px;transition:all .2s;display:flex}.shopping-list-btn:hover{border-color:var(--primary);color:var(--primary)}.empty-state{flex-direction:column;justify-content:center;align-items:center;padding:80px 24px;display:flex}.empty-title{font-family:var(--font-serif);color:var(--text);margin-bottom:8px;font-size:20px}.empty-subtitle{color:var(--text-muted);font-size:14px}.recipe-list-filters{flex-direction:column;gap:12px;padding:0 24px 16px;display:flex}.search-field{align-items:center;display:flex;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:14px}.search-input{border:1.5px solid var(--border);border-radius:var(--radius);width:100%;font-family:var(--font-sans);color:var(--text);background:var(--card-bg);outline:none;padding:12px 40px;font-size:14px;transition:border-color .2s}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:var(--primary)}.search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:8px;display:flex;position:absolute;right:8px}.search-clear:hover{color:var(--text-secondary)}.category-chips{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;gap:6px;display:flex;overflow-x:auto}.category-chips::-webkit-scrollbar{display:none}.category-chip{border:1.5px solid var(--border);font-family:var(--font-sans);color:var(--text-muted);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:20px;outline:none;flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:500;transition:background-color .15s,color .15s,border-color .15s}.category-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.category-chip:not(.active):hover{border-color:var(--text-muted);color:var(--text-secondary)}.recipe-list-category{color:var(--primary);margin-right:6px;font-weight:500}.recipe-list-category:after{content:"·";color:var(--text-muted);margin-left:6px}.recipe-list{flex-direction:column;display:flex}.recipe-list-item-wrapper{position:relative;overflow:hidden}.recipe-list-item-wrapper+.recipe-list-item-wrapper{border-top:1px solid var(--border)}.recipe-list-delete-bg{color:#fff;background:#c45b5b;justify-content:center;align-items:center;width:100px;font-size:13px;font-weight:600;transition:opacity .1s;display:flex;position:absolute;top:0;bottom:0;right:0}.recipe-list-item{background:var(--bg);cursor:pointer;transition:transform .1s}.recipe-list-compact{align-items:center;gap:16px;min-height:80px;padding:16px 24px;display:flex}.recipe-thumb{border-radius:8px;flex-shrink:0;width:56px;height:56px;overflow:hidden}.recipe-thumb img{object-fit:cover;width:100%;height:100%}.recipe-list-info h3{font-family:var(--font-serif);color:var(--text);margin-bottom:2px;font-size:17px;font-weight:400}.recipe-list-info p{color:var(--text-muted);font-size:13px}.scan-result{padding-bottom:16px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in{animation:.4s ease-out fadeIn}.install-overlay{-webkit-backdrop-filter:blur(4px);z-index:200;padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 24px);background:#2c242066;justify-content:center;align-items:flex-end;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0}.install-card{background:var(--card-bg);text-align:center;border-radius:16px;width:100%;max-width:360px;margin:0 16px;padding:24px 24px 20px;position:relative;box-shadow:0 8px 32px #2c24201f}.install-text{color:var(--text);margin-bottom:16px;font-size:15px;line-height:1.6}.install-share-icon{vertical-align:middle;color:var(--primary);align-items:center;margin:0 2px;display:inline-flex}.install-dismiss{background:var(--primary);color:#fff;border-radius:var(--radius);font-family:var(--font-sans);cursor:pointer;border:none;width:100%;min-height:44px;padding:12px 24px;font-size:14px;font-weight:600}.install-arrow{animation:1.2s ease-in-out infinite bounceDown;position:absolute;bottom:-56px;left:50%;transform:translate(-50%)}.install-arrow--top{animation:1.2s ease-in-out infinite bounceUp;position:absolute;inset:-56px 20px auto auto;transform:none}@keyframes bounceDown{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(10px)}}@keyframes bounceUp{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.legal-links{align-items:center;gap:8px;margin-top:32px;display:flex}.legal-links button{color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:12px;transition:color .2s}.legal-links button:hover{color:var(--text-secondary)}.legal-sep{color:var(--border);font-size:12px}.legal-overlay{-webkit-backdrop-filter:blur(4px);z-index:300;background:#2c242066;align-items:stretch;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.legal-modal{background:var(--bg);flex-direction:column;width:100%;display:flex;overflow:hidden}.legal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px 0;display:flex}.legal-tabs{gap:0;display:flex}.legal-tab{font-family:var(--font-sans);color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 16px;font-size:14px;font-weight:500;transition:all .2s}.legal-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.legal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;transition:background .2s;display:flex}.legal-close:hover{background:#0000000a}.legal-content{-webkit-overflow-scrolling:touch;padding:24px 24px calc(var(--safe-bottom) + 24px);flex:1;overflow-y:auto}.legal-text h2{font-family:var(--font-serif);color:var(--text);margin-bottom:20px;font-size:24px;font-weight:400}.legal-text h3{font-family:var(--font-sans);color:var(--text);margin-top:24px;margin-bottom:8px;font-size:15px;font-weight:600}.legal-text h4{color:var(--text-secondary);margin-top:16px;margin-bottom:6px;font-size:14px;font-weight:600}.legal-text p{color:var(--text-secondary);margin-bottom:12px;font-size:14px;line-height:1.7}.legal-text a{color:var(--primary);text-decoration:none}.legal-text a:hover{text-decoration:underline}.legal-lang-note{background:var(--bg-secondary);color:var(--text-secondary);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.legal-date{margin-top:24px;font-style:italic;color:var(--text-muted)!important;font-size:13px!important}.btn-cooking{color:#fff;background:#2c8c6e}.btn-cooking:hover{background:#247a5e}.btn-cooking:active{transform:scale(.98)}.cooking-overlay{background:var(--bg);z-index:500;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);flex-direction:column;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.cooking-header{flex-shrink:0;align-items:center;gap:16px;padding:16px 20px 12px;display:flex}.cooking-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;transition:background .2s;display:flex}.cooking-close:hover{background:#0000000a}.cooking-progress{flex-direction:column;flex:1;gap:6px;display:flex}.cooking-step-label{color:var(--text-muted);letter-spacing:.02em;font-size:13px;font-weight:600}.cooking-progress-bar{background:var(--border);border-radius:2px;width:100%;height:4px;overflow:hidden}.cooking-progress-fill{background:var(--primary);border-radius:2px;height:100%;transition:width .3s}.cooking-body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:24px 32px;display:flex;overflow-y:auto}.cooking-step-text{color:var(--text);text-align:center;max-width:560px;font-size:22px;line-height:1.6}.cooking-timer-btn{background:var(--primary);color:#fff;border-radius:var(--radius);font-family:var(--font-sans);cursor:pointer;border:none;align-items:center;gap:10px;min-height:44px;margin-top:32px;padding:14px 28px;font-size:15px;font-weight:600;transition:background .2s;display:inline-flex}.cooking-timer-btn:hover{background:var(--primary-hover)}.cooking-timer-btn:active{transform:scale(.98)}.cooking-timer-active{flex-direction:column;align-items:center;gap:12px;margin-top:32px;display:flex}.cooking-timer-display{font-variant-numeric:tabular-nums;color:var(--primary);letter-spacing:2px;font-size:56px;font-weight:700}.cooking-timer-stop{border:1.5px solid var(--border);border-radius:var(--radius);font-family:var(--font-sans);color:var(--text-secondary);cursor:pointer;background:0 0;min-height:44px;padding:10px 24px;font-size:14px;font-weight:500;transition:all .2s}.cooking-timer-stop:hover{border-color:var(--text-muted)}.cooking-timer-done{color:#2c8c6e;flex-direction:column;align-items:center;gap:16px;margin-top:32px;font-size:28px;font-weight:700;animation:.3s ease-out fadeIn;display:flex}.cooking-nav{border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.cooking-nav-arrow{border:2px solid var(--border);background:var(--card-bg);width:56px;height:56px;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;outline:none;flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s,background-color .15s,border-color .15s;display:flex}.cooking-nav-arrow:not(:disabled):hover{border-color:var(--primary);color:var(--primary)}.cooking-nav-arrow:not(:disabled):active{transform:scale(.93)}.cooking-nav-arrow:disabled{opacity:.18;cursor:default}.cooking-nav-next-arrow:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}.cooking-nav-next-arrow:not(:disabled):hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.cooking-nav-next-arrow:not(:disabled):active{color:#fff}.cooking-nav-center{flex:1;justify-content:center;align-items:center;display:flex}.cooking-nav-hint{color:var(--text-muted);letter-spacing:.04em;font-size:12px}.cooking-nav-done-btn{color:#fff;font-family:var(--font-sans);cursor:pointer;background:#2c8c6e;border:none;border-radius:24px;padding:14px 28px;font-size:15px;font-weight:600;transition:background .2s}.cooking-nav-done-btn:hover{background:#247a5e}.cooking-finished{justify-content:center;align-items:center}.cooking-finished-content{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:40px 32px;animation:.4s ease-out fadeIn;display:flex}.cooking-finished-icon{color:#fff;background:#2c8c6e;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:36px;display:flex}.cooking-finished-title{font-family:var(--font-serif);color:var(--text);font-size:28px}.cooking-finished-subtitle{color:var(--text-secondary);font-size:16px}.cooking-finished-btn{min-width:160px;margin-top:8px}.edit-step-sort{flex-direction:column;flex-shrink:0;align-items:center;gap:2px;display:flex}.edit-sort-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:color .15s,background .15s;display:flex}.edit-sort-btn:not(:disabled):hover{color:var(--primary);background:#a07eb514}.edit-sort-btn:disabled{opacity:.2;cursor:default}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.login-card{text-align:center;width:100%;max-width:360px}.login-title{font-family:var(--font-serif);color:var(--text);margin-bottom:4px;font-size:32px;font-weight:400}.login-subtitle{color:var(--text-secondary);margin-bottom:32px;font-size:15px}.login-form{flex-direction:column;gap:12px;display:flex}.login-input{border:1.5px solid var(--border);border-radius:var(--radius);width:100%;font-family:var(--font-sans);color:var(--text);background:var(--card-bg);outline:none;padding:14px 16px;font-size:15px;transition:border-color .2s}.login-input::placeholder{color:var(--text-muted)}.login-input:focus{border-color:var(--primary)}.login-error{color:#9b3c3c;text-align:left;background:#c45b5b0f;border-radius:8px;padding:10px 14px;font-size:14px}.login-switch{color:var(--primary);font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;margin-top:20px;padding:8px;font-size:14px;font-weight:500}.login-forgot{color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:flex-end;margin-top:-8px;padding:0;font-size:13px;text-decoration:underline}.settings-screen{padding:24px 0}.settings-section{margin-bottom:28px;padding:0 24px}.settings-section-title{font-family:var(--font-serif);color:var(--text);border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:8px;font-size:18px;font-weight:400}.settings-group{flex-direction:column;gap:8px;display:flex}.settings-item{justify-content:space-between;align-items:center;padding:12px 0;display:flex}.settings-label{color:var(--text-secondary);font-size:14px}.settings-value{color:var(--text);font-size:14px;font-weight:500}.settings-hint{color:var(--text-secondary);margin-bottom:4px;font-size:14px;line-height:1.5}.settings-global-hint{color:var(--text-muted);background:var(--card-bg);border-radius:var(--radius);border-left:3px solid var(--primary-light);margin-bottom:24px;padding:10px 14px;font-size:13px;line-height:1.5}.settings-btn{border:1.5px solid var(--border);border-radius:var(--radius);width:100%;font-family:var(--font-sans);color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;min-height:44px;padding:14px 16px;font-size:14px;font-weight:500;transition:all .2s}.settings-btn:hover{border-color:var(--text-muted)}.settings-btn:disabled{opacity:.5;cursor:default}.settings-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;text-align:center;font-weight:600}.settings-btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.settings-btn-danger{color:#c45b5b;border-color:#c45b5b4d}.settings-btn-danger:hover{background:#c45b5b0a;border-color:#c45b5b}.settings-version{color:var(--text-muted);text-align:center;font-size:13px}.settings-credits{color:var(--text-muted);text-align:center;font-size:12px}.diet-options{flex-wrap:wrap;gap:8px;display:flex}.diet-chip{border:1.5px solid var(--border);font-family:var(--font-sans);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:20px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s}.diet-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.diet-chip:not(.active):hover{border-color:var(--text-muted);color:var(--text-secondary)}.shopping-overlay{background:var(--bg);z-index:500;padding-top:var(--safe-top);flex-direction:column;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.shopping-header{flex-shrink:0;align-items:center;gap:12px;padding:16px 20px 12px;display:flex}.shopping-title{font-family:var(--font-serif);color:var(--text);flex:1;font-size:20px;font-weight:400}.shopping-back{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;min-width:44px;min-height:44px;padding:8px;display:flex}.shopping-hint{color:var(--text-secondary);padding:0 20px 12px;font-size:14px}.shopping-recipe-list{-webkit-overflow-scrolling:touch;flex:1;padding:0 20px;overflow-y:auto}.shopping-recipe-item{cursor:pointer;text-align:left;width:100%;font-family:var(--font-sans);border:none;border-bottom:1px solid var(--border);background:0 0;align-items:center;gap:12px;padding:14px 0;display:flex}.shopping-check{border:2px solid var(--border);color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex}.shopping-recipe-item.selected .shopping-check{background:var(--primary);border-color:var(--primary)}.shopping-recipe-name{color:var(--text);flex:1;font-size:15px;font-weight:500}.shopping-recipe-meta{color:var(--text-muted);font-size:13px}.shopping-actions{padding:16px 20px calc(var(--safe-bottom) + 16px);border-top:1px solid var(--border);flex-shrink:0}.shopping-recipe-summary{color:var(--text-muted);padding:0 20px 12px;font-size:13px}.shopping-items{-webkit-overflow-scrolling:touch;flex:1;padding:0 20px;overflow-y:auto}.shopping-item{cursor:pointer;text-align:left;width:100%;font-family:var(--font-sans);background:0 0;border:none;border-bottom:1px solid #eeebe780;align-items:center;gap:12px;padding:12px 0;transition:opacity .2s;display:flex}.shopping-item.checked{opacity:.4}.shopping-item-check{border:2px solid var(--border);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s;display:flex}.shopping-item.checked .shopping-item-check{background:#2c8c6e;border-color:#2c8c6e}.shopping-item-name{color:var(--text);flex:1;font-size:15px}.shopping-item.checked .shopping-item-name{text-decoration:line-through}.shopping-item-amount{color:var(--primary);font-size:13px;font-weight:500}.shopping-footer{padding:16px 20px calc(var(--safe-bottom) + 16px);border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:10px;display:flex}.shopping-count{color:var(--text-muted);text-align:center;font-size:13px}.variation-wrapper{position:relative}.variation-menu{background:var(--card-bg);border:1.5px solid var(--border);border-radius:var(--radius);z-index:50;animation:.15s ease-out fadeIn;position:absolute;bottom:calc(100% + 8px);left:0;right:0;overflow:hidden;box-shadow:0 4px 16px #2c24201a}.variation-option{width:100%;font-family:var(--font-sans);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;padding:14px 16px;font-size:14px;transition:background .15s;display:block}.variation-option:not(:last-child){border-bottom:1px solid var(--border)}.variation-option:hover{background:#a07eb50f}.variation-option:active{background:#a07eb51f}@keyframes spin{to{transform:rotate(360deg)}}.btn-loading{cursor:default;gap:10px}.btn-spinner{border:2px solid #a07eb54d;border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}.recipe-expanded-view{padding:0}.recipe-close-btn{border:none;border-bottom:1px solid var(--border);width:100%;font-family:var(--font-sans);color:var(--primary);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:8px;padding:14px 16px;font-size:14px;font-weight:500;display:flex}.recipe-close-btn:active{background:#a07eb50f}
