:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--bg-color:#fdfbf7;--text-primary:#1c1b1a;--text-secondary:#53504d;--accent-color:#c25b4e;--accent-hover:#a64c41;--surface-color:#fff;--border-color:#e8e5df;--nutr-calories:#c25b4e;--nutr-protein:#10b981;--nutr-fat:#f59e0b;--nutr-carbs:#6366f1;--font-display:"Fraunces", serif;--font-body:"Inter", sans-serif;--space-xs:.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:8rem;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-full:9999px}[data-theme=dark]{--bg-color:#121212;--surface-color:#1a1a1a;--text-primary:#eaeaea;--text-secondary:#aaa;--border-color:#2a2a2a;--accent-color:#e57364;--accent-hover:#f08678;--nutr-calories:#e57364;--nutr-protein:#34d399;--nutr-fat:#fbbf24;--nutr-carbs:#818cf8}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-text-size-adjust:100%;background-color:var(--bg-color);width:100%;min-height:100%;color:var(--text-primary);overflow-x:hidden}body{font-family:var(--font-body);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-left:var(--safe-left);padding-right:var(--safe-right);line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);word-break:break-word;font-weight:500;line-height:1.2}button{font-family:var(--font-body);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none}input,textarea,select{font-family:var(--font-body);-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px;border-radius:4px}.container{box-sizing:border-box;width:100%;max-width:800px;margin:0 auto;padding:0 1.5rem}@media (width<=640px){.container{padding:0 1rem}}.fade-in{animation:.4s ease-out forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in-nav{animation:.4s ease-out forwards fadeInNav}@keyframes fadeInNav{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.modal-fade-in{animation:.25s cubic-bezier(.16,1,.3,1) forwards modalFadeIn}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:99999;box-sizing:border-box;background:#000000a6;justify-content:center;align-items:center;width:100vw;height:100dvh;padding:1rem;animation:.2s ease-out forwards overlayFadeIn;display:flex;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0;-webkit-backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(8px)}}.glass-card{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 4px 20px #00000008}.badge{border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);justify-content:center;align-items:center;padding:.25rem .65rem;font-size:.75rem;font-weight:600;line-height:1;display:inline-flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-wrapper{flex-direction:column;width:100%;min-height:100dvh;display:flex;position:relative;overflow-x:hidden}.header{padding:1.25rem var(--space-md);box-sizing:border-box;justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin:0 auto;display:flex}.logo{align-items:center;gap:var(--space-xs);font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.02em;font-size:1.4rem;font-weight:600;display:flex}.logo-button{align-items:center;gap:var(--space-xs);font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.02em;cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:1.4rem;font-weight:600;display:flex}.header-actions{align-items:center;gap:.75rem;display:flex}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-full);background:var(--surface-color);justify-content:center;align-items:center;gap:.4rem;min-height:40px;padding:.5rem 1.1rem;font-size:.9rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-secondary:hover:not(:disabled){border-color:var(--text-primary);background:#00000008}.btn-secondary:active:not(:disabled){transform:scale(.98)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--accent-color);color:#fff;border-radius:var(--radius-md);justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.65rem 1.25rem;font-size:.95rem;font-weight:600;transition:background-color .2s,transform .1s,box-shadow .2s;display:inline-flex}.btn-primary:hover:not(:disabled){background-color:var(--accent-hover);box-shadow:0 4px 14px #c25b4e59}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.main-content{width:100%;padding-top:1.25rem;padding-bottom:calc(5.5rem + var(--safe-bottom));box-sizing:border-box;flex-direction:column;flex:1;display:flex}.home-view{gap:var(--space-lg);box-sizing:border-box;flex-direction:column;width:100%;max-width:680px;margin:0 auto;display:flex}.hero{box-sizing:border-box;text-align:center;width:100%;max-width:680px;margin:0 auto}.hero-title{letter-spacing:-.03em;color:var(--text-primary);margin-bottom:.75rem;font-size:clamp(1.85rem,5.5vw,3.25rem);line-height:1.15}.hero-subtitle{color:var(--text-secondary);margin:0 auto var(--space-md) auto;max-width:580px;font-size:clamp(.95rem,2.5vw,1.125rem);line-height:1.5}.url-form{width:100%;position:relative}.input-group{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;align-items:center;width:100%;padding:.4rem .5rem;transition:border-color .25s,box-shadow .25s;display:flex}.input-group:focus-within{border-color:var(--accent-color);box-shadow:0 4px 20px #c25b4e1f}.input-icon{color:var(--text-secondary);flex-shrink:0;width:20px;height:20px;margin:0 .5rem}.input-group input{min-width:0;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:.5rem .25rem;font-size:.95rem}.input-group input::placeholder{color:#a3a09c}.hero-divider{text-align:center;color:var(--text-secondary);align-items:center;margin:1.5rem 0;display:flex}.hero-divider:before,.hero-divider:after{content:"";border-bottom:1px solid var(--border-color);flex:1}.hero-divider span{text-transform:uppercase;letter-spacing:.05em;padding:0 1rem;font-size:.85rem;font-weight:500}.btn-large{border-radius:var(--radius-md);justify-content:center;align-items:center;gap:.75rem;width:100%;padding:.85rem 1.25rem;font-size:1rem;display:flex}.progress-container{flex-direction:column;gap:.5rem;width:100%;margin-top:1rem;display:flex}.progress-bar{background-color:var(--border-color);border-radius:4px;height:6px;position:relative;overflow:hidden}.progress-bar-fill{background-color:var(--accent-color);border-radius:4px;width:30%;height:100%;animation:2s ease-in-out infinite loading-progress;position:absolute;top:0;left:0}.progress-text{color:var(--text-secondary);text-align:center;font-size:.85rem;font-weight:500;animation:1.5s infinite pulse-text}@keyframes loading-progress{0%{width:30%;left:-30%}50%{width:50%}to{width:30%;left:100%}}@keyframes pulse-text{0%,to{opacity:.6}50%{opacity:1}}.recent-recipes{width:100%}.section-title{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:.75rem;font-size:.85rem;font-weight:700}.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem;width:100%;display:grid}.recipe-card{border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;background:var(--surface-color);text-align:left;flex-direction:column;width:100%;height:100%;font-family:inherit;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.recipe-card:hover{border-color:var(--accent-color);transform:translateY(-3px);box-shadow:0 8px 24px #0000000f}.recipe-card:active{transform:scale(.99)}.recipe-card:focus-visible{outline:2px solid var(--accent-color);outline-offset:3px}.recipe-image{aspect-ratio:16/10;background-position:50%;background-size:cover;background-color:var(--border-color);flex-shrink:0;width:100%}.recipe-info{box-sizing:border-box;flex-direction:column;flex:1;justify-content:space-between;min-height:105px;padding:.9rem 1rem 1rem;display:flex}.recipe-info h4{font-family:var(--font-display);color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;min-height:2.7em;max-height:2.7em;margin-bottom:.5rem;font-size:1.1rem;line-height:1.35;display:-webkit-box;overflow:hidden}.recipe-card-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;min-height:1.5rem;margin-top:auto;display:flex}.recipe-time{color:var(--text-secondary);align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.recipe-tag-badge{background:var(--surface-color);color:var(--accent-color);border:1px solid var(--border-color);white-space:nowrap;text-overflow:ellipsis;border-radius:10px;max-width:140px;padding:.15rem .5rem;font-size:.72rem;font-weight:500;overflow:hidden}.tag-chip{box-sizing:border-box;vertical-align:middle;border-radius:16px;align-items:center;gap:.35rem;padding:.3rem .65rem;font-family:inherit;font-size:.82rem;line-height:1;transition:all .15s;display:inline-flex}.tag-chip-btn{cursor:pointer;color:inherit;font-family:inherit;font-size:inherit;vertical-align:middle;background:0 0;border:none;align-items:center;gap:.3rem;margin:0;padding:0;line-height:1;display:inline-flex}.tag-chip-delete{cursor:pointer;color:inherit;opacity:.65;vertical-align:middle;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;line-height:1;transition:opacity .15s,transform .15s;display:inline-flex}.tag-chip-delete:hover{opacity:1;transform:scale(1.15)}.tag-suggestion-btn{border:1px dashed var(--border-color);color:var(--text-secondary);cursor:pointer;vertical-align:middle;background:0 0;border-radius:14px;align-items:center;gap:.25rem;padding:.3rem .65rem;font-family:inherit;font-size:.78rem;line-height:1;transition:all .15s;display:inline-flex}.tag-suggestion-btn:hover{border-color:var(--accent-color);color:var(--accent-color);background:#ff6b6b14}.recipe-card-wrapper{width:100%;position:relative}.recipe-fav-btn{-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;z-index:5;background:#00000073;border:1px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background-color .2s,color .2s,box-shadow .2s;display:flex;position:absolute;top:.6rem;right:.6rem}.recipe-fav-btn:hover{color:#ff6b6b;background:#000000a6;transform:scale(1.15)}.recipe-fav-btn:active{transform:scale(.9)}.recipe-fav-btn.active{color:#ef4444;background:#ffffffeb;border-color:#ef444466;animation:.35s cubic-bezier(.175,.885,.32,1.275) heartPulse;box-shadow:0 4px 14px #ef444459}@keyframes heartPulse{0%{transform:scale(.85)}50%{transform:scale(1.25)}to{transform:scale(1)}}.fav-heart-icon{transition:transform .2s,fill .2s}.recipe-fav-btn.active .fav-heart-icon{filter:drop-shadow(0 2px 4px #ef44444d)}.btn-favorite-detail{border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-color);cursor:pointer;border-radius:20px;align-items:center;gap:.45rem;min-height:38px;padding:.45rem 1rem;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-favorite-detail:hover{color:#ef4444;border-color:#ef4444;transform:translateY(-1px)}.btn-favorite-detail.active{color:#ef4444;background:#ef44441f;border-color:#ef4444;font-weight:600}.recipes-view{width:100%}.page-title{letter-spacing:-.02em;color:var(--text-primary);font-size:clamp(1.8rem,4vw,2.75rem)}.empty-state{text-align:center;color:var(--text-secondary);background:var(--surface-color);border:1px dashed var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:3.5rem 1.25rem;display:flex}.empty-state h3{color:var(--text-primary);margin-bottom:.5rem;font-size:1.15rem}.recipe-detail-view{box-sizing:border-box;flex-direction:column;gap:1.25rem;width:100%;max-width:720px;margin:0 auto;display:flex}.btn-back{color:var(--text-secondary);align-self:flex-start;align-items:center;gap:.4rem;min-height:40px;padding:.25rem 0;font-size:.95rem;font-weight:500;transition:color .2s;display:inline-flex}.btn-back:hover{color:var(--text-primary)}.detail-header{flex-direction:column;gap:.75rem;display:flex}.detail-title{letter-spacing:-.02em;color:var(--text-primary);font-size:clamp(1.85rem,4.5vw,3rem);line-height:1.2}.detail-meta{color:var(--text-secondary);flex-wrap:wrap;gap:1.25rem;font-size:.95rem;font-weight:500;display:flex}.meta-item{align-items:center;gap:.4rem;display:inline-flex}.original-link-btn{color:var(--accent-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-color);align-self:flex-start;align-items:center;gap:.5rem;min-height:40px;padding:.5rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.original-link-btn:hover{border-color:var(--accent-color);background:#c25b4e0d}.detail-hero-container{border-radius:var(--radius-md);background-color:var(--surface-color);border:1px solid var(--border-color);cursor:pointer;justify-content:center;align-items:center;width:100%;max-height:480px;margin-bottom:1.5rem;transition:border-color .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 6px 25px #0000001a}.detail-hero-container:hover{border-color:var(--accent-color)}.detail-hero-backdrop{filter:blur(24px)opacity(.35);pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:-15px;transform:scale(1.15)}.detail-hero-image{object-fit:contain;z-index:1;border-radius:var(--radius-md);width:auto;max-width:100%;height:auto;max-height:480px;transition:transform .2s;display:block;position:relative}.detail-hero-container:hover .detail-hero-image{transform:scale(1.01)}.detail-content{flex-direction:column;gap:1.75rem;display:flex}.nutrition-section{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;padding:1.25rem}.nutrition-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.nutrition-header .section-title{text-transform:uppercase;letter-spacing:.5px;margin-bottom:0;font-size:1.1rem;font-weight:700}.nutrition-tabs{background:var(--bg-color);border-radius:var(--radius-sm);border:1px solid var(--border-color);gap:.2rem;padding:.2rem;display:inline-flex}.nutrition-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;min-height:32px;padding:.35rem .85rem;font-size:.85rem;font-weight:500;transition:all .2s}.nutrition-tab.active{background:var(--surface-color);color:var(--accent-color);font-weight:600;box-shadow:0 2px 6px #0000000f}.nutrition-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;width:100%;display:grid}@media (width<=600px){.nutrition-grid{grid-template-columns:repeat(2,1fr)}}.nutrition-item{background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);text-align:center;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;padding:.85rem .5rem;display:flex}.nutrition-value{margin-bottom:.2rem;font-size:1.35rem;font-weight:700;line-height:1.2}.nutrition-item:first-child .nutrition-value{color:var(--nutr-calories)}.nutrition-item:nth-child(2) .nutrition-value{color:var(--nutr-protein)}.nutrition-item:nth-child(3) .nutrition-value{color:var(--nutr-fat)}.nutrition-item:nth-child(4) .nutrition-value{color:var(--nutr-carbs)}.nutrition-label{color:var(--text-secondary);font-size:.78rem;font-weight:500}.ingredients-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.ingredient-item{color:var(--text-primary);border-bottom:1px solid var(--border-color);align-items:center;gap:.75rem;padding:.6rem 0;font-size:1rem;display:flex}.ingredient-dot{background-color:var(--accent-color);border-radius:50%;flex-shrink:0;width:6px;height:6px}.steps-list{flex-direction:column;gap:1.25rem;display:flex}.instruction-step{align-items:flex-start;gap:1rem;display:flex}.step-number{background-color:var(--text-primary);width:32px;height:32px;color:var(--surface-color);font-family:var(--font-display);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:600;display:flex}.step-content{flex-direction:column;flex:1;gap:.75rem;display:flex}.step-text{color:var(--text-primary);font-size:1rem;line-height:1.6}.step-image-container{border-radius:var(--radius-md);background-color:var(--surface-color);border:1px solid var(--border-color);cursor:pointer;justify-content:center;align-items:center;width:100%;max-height:480px;margin-top:.5rem;transition:border-color .2s;display:flex;position:relative;overflow:hidden}.step-image-container:hover{border-color:var(--accent-color)}.step-image-backdrop{filter:blur(24px)opacity(.35);pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:-15px;transform:scale(1.15)}.step-image{object-fit:contain;z-index:1;border-radius:var(--radius-md);width:auto;max-width:100%;height:auto;max-height:480px;transition:transform .2s;display:block;position:relative}.step-image-container:hover .step-image{transform:scale(1.01)}.lightbox-overlay{-webkit-backdrop-filter:blur(12px);z-index:100000;box-sizing:border-box;background:#000000e0;justify-content:center;align-items:center;width:100vw;height:100dvh;padding:1.5rem;animation:.2s ease-out forwards overlayFadeIn;display:flex;position:fixed;inset:0}.lightbox-content{flex-direction:column;justify-content:center;align-items:center;max-width:95vw;max-height:90vh;display:flex;position:relative}.lightbox-image{object-fit:contain;border-radius:var(--radius-md);max-width:100%;max-height:85vh;box-shadow:0 20px 50px #000000b3}.lightbox-close-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex;position:absolute;top:-2.75rem;right:0}.lightbox-close-btn:hover{background:#ffffff4d;transform:scale(1.08)}.recipe-actions{border-top:1px solid var(--border-color);grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;display:grid}@media (width<=640px){.recipe-actions{grid-template-columns:1fr 1fr}}.bottom-nav{bottom:calc(.75rem + var(--safe-bottom));-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg);z-index:1000;box-sizing:border-box;background-color:#ffffffe0;border:1px solid #e8e5dfe6;align-items:center;gap:.35rem;width:min(100% - 1.5rem,480px);padding:.35rem .5rem;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 32px #1c1b1a1f}[data-theme=dark] .bottom-nav{background-color:#1a1a1ae0;border-color:#323232e6;box-shadow:0 10px 32px #00000073}.bottom-nav-link{border-radius:var(--radius-md);color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.2rem;min-height:46px;padding:.45rem .25rem;font-weight:500;transition:all .2s;display:flex;position:relative}.bottom-nav-link span{white-space:nowrap;font-size:.72rem;line-height:1}.bottom-nav-link:hover{color:var(--text-primary);background:#00000008}.bottom-nav-link.active{background-color:var(--text-primary);color:var(--surface-color)}.settings-view{flex-direction:column;gap:1.5rem;width:100%;max-width:600px;margin:0 auto;display:flex}.settings-section{flex-direction:column;gap:.5rem;display:flex}.theme-toggle{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;overflow:hidden}.theme-btn{border:none;border-right:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;flex:1;justify-content:center;align-items:center;gap:.5rem;min-height:46px;padding:.85rem .5rem;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.theme-btn:last-child{border-right:none}.theme-btn:hover{color:var(--text-primary);background:#00000005}.theme-btn.active{background:var(--text-primary);color:var(--surface-color)}.settings-action-btn{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);cursor:pointer;box-sizing:border-box;justify-content:center;align-items:center;gap:.75rem;min-height:48px;padding:.85rem 1rem;font-size:.95rem;font-weight:500;transition:all .2s;display:flex}.settings-action-btn:hover{border-color:var(--text-primary);background:#00000005}.settings-action-btn:active{transform:scale(.99)}.settings-action-btn.danger{color:#dc2626}.settings-action-btn.danger:hover{background:#dc26260d;border-color:#dc2626}.create-recipe-view{box-sizing:border-box;flex-direction:column;gap:1.25rem;width:100%;max-width:640px;margin:0 auto;padding-bottom:2rem;display:flex}.form-group{flex-direction:column;gap:.4rem;width:100%;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:.75rem;width:100%;display:grid}.nutrition-grid-inputs{grid-template-columns:repeat(4,1fr);gap:.5rem;width:100%;display:grid}@media (width<=540px){.nutrition-grid-inputs{grid-template-columns:1fr 1fr}}.form-label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.form-input,.form-textarea{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-color);width:100%;color:var(--text-primary);box-sizing:border-box;padding:.65rem .85rem;font-family:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-textarea{resize:vertical;min-height:90px}.form-input:focus,.form-textarea:focus{border-color:var(--accent-color);outline:none;box-shadow:0 0 0 2px #c25b4e26}.image-upload-box{border:2px dashed var(--border-color);border-radius:var(--radius-md);min-height:140px;color:var(--text-secondary);cursor:pointer;box-sizing:border-box;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;transition:all .2s;display:flex}.image-upload-box.small{min-height:90px}.image-upload-box:hover{border-color:var(--accent-color);color:var(--accent-color);background:#c25b4e08}.form-section{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.dynamic-list{flex-direction:column;gap:.6rem;display:flex}.dynamic-item{align-items:center;gap:.5rem;width:100%;display:flex}.btn-icon{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:.4rem;transition:all .2s;display:inline-flex}.btn-icon:hover{color:var(--text-primary);background:#0000000d}.btn-icon.danger:hover{color:#dc2626;background:#dc26261a}.btn-add{color:var(--accent-color);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:.4rem;min-height:36px;padding:.4rem 0;font-size:.9rem;font-weight:600;display:inline-flex}.btn-add:hover{color:var(--accent-hover)}.form-step-card,.step-input-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);flex-direction:column;gap:.75rem;padding:1rem;transition:transform .15s,border-color .15s,box-shadow .15s,opacity .15s;display:flex}.step-input-card.is-dragging{opacity:.45;transform:scale(.99);border-style:dashed!important;border-color:var(--accent-color)!important}.step-input-card.drag-over{box-shadow:0 0 0 2px #c25b4e40,0 4px 12px #0000000f;border-color:var(--accent-color)!important}.step-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.step-header-left{align-items:center;gap:.4rem;display:flex}.step-drag-handle{color:var(--text-secondary);cursor:grab;border-radius:var(--radius-sm);touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;transition:all .15s;display:inline-flex}.step-drag-handle:hover{color:var(--accent-color);background:#c25b4e14}.step-drag-handle:active{cursor:grabbing}.step-header-actions{align-items:center;gap:.5rem;display:flex}.step-reorder-group{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#0000000a;align-items:center;gap:2px;padding:2px;display:inline-flex}[data-theme=dark] .step-reorder-group{background:#ffffff0d;border-color:#333}.step-reorder-btn{width:28px;height:28px;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.step-reorder-btn:hover:not(:disabled){background:var(--surface-color);color:var(--accent-color);box-shadow:0 1px 3px #0000001a}.step-reorder-btn:disabled{opacity:.25;cursor:not-allowed}.btn-save{border-radius:var(--radius-md);padding:.85rem 1.25rem;font-size:1rem}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.skeleton{border-radius:var(--radius-sm);background:#f6f7f8 linear-gradient(90deg,#f6f7f8 0%,#edeef1 20%,#f6f7f8 40% 100%) 0 0/1000px 100% no-repeat;animation:2s linear infinite shimmer}[data-theme=dark] .skeleton{background:#2a2a2a linear-gradient(90deg,#2a2a2a 0%,#333 20%,#2a2a2a 40% 100%)}.recipe-card.skeleton-card{pointer-events:none}.skeleton-text{width:80%;height:1rem;margin-bottom:.5rem}.skeleton-text.short{width:40%}.generation-progress-wrapper{justify-content:center;width:100%;display:flex}.generation-status-card{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-md);width:100%;max-width:500px;box-shadow:0 10px 30px #0000000d}.status-header{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs);color:var(--text-primary);display:flex}.spinner{color:var(--accent-color);animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.admin-stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;width:100%;margin-bottom:1.5rem;display:grid}@media (width<=480px){.admin-stats-grid{grid-template-columns:1fr 1fr;gap:.75rem}}@media (width<=768px){.header{padding:.75rem 1rem}.logo span{font-size:1.25rem}.main-content{padding-top:.75rem;padding-bottom:calc(5rem + var(--safe-bottom))}.hero-title{font-size:clamp(1.75rem,6vw,2.5rem)}.hero-subtitle{font-size:.95rem}.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.nutrition-grid{grid-template-columns:repeat(2,1fr)}.modal-fade-in{max-height:calc(100dvh - 2rem);overflow-y:auto;width:95%!important;padding:1.25rem!important}}@media (width<=520px){.recipes-grid,.form-row{grid-template-columns:1fr}.instruction-step{flex-direction:column;gap:.5rem}.step-number{align-self:flex-start}}.demo-tour-controller-wrapper{bottom:calc(72px + var(--safe-bottom,0px) + .85rem);z-index:99998;pointer-events:auto;width:min(100vw - 1.5rem,520px);margin-left:auto;margin-right:auto;animation:.3s cubic-bezier(.16,1,.3,1) forwards demoTourSlideUp;position:fixed;left:0;right:0}@keyframes demoTourSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.demo-tour-card{-webkit-backdrop-filter:blur(20px);color:#fff;box-sizing:border-box;background:#18181bf2;border:1px solid #e5736466;border-radius:20px;padding:1.15rem 1.25rem;position:relative;overflow:hidden;box-shadow:0 16px 40px #000000a6,0 0 24px #e5736433}@media (width<=600px){.demo-tour-controller-wrapper{bottom:calc(64px + var(--safe-bottom,0px) + .6rem);width:calc(100vw - 1rem)}.demo-tour-card{border-radius:16px;padding:1rem 1.1rem}}.chart-tooltip{-webkit-backdrop-filter:blur(14px);z-index:25;pointer-events:none;background:#141416f5;border:1px solid #ffffff29;border-radius:8px;width:max-content;max-width:calc(100% - 1.5rem);padding:.6rem .85rem;transition:left .12s cubic-bezier(.16,1,.3,1),opacity .15s;animation:.15s ease-out forwards chartTooltipFade;position:absolute;top:8px;transform:translate(-50%);box-shadow:0 12px 30px #000000d9}@keyframes chartTooltipFade{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.chart-tooltip-date{color:#9ca3af;margin-bottom:.35rem;font-size:.72rem}.chart-tooltip-row{justify-content:space-between;align-items:center;gap:1.2rem;display:flex}.chart-tooltip-label{color:#f3f4f6;align-items:center;gap:.5rem;font-size:.82rem;font-weight:500;display:flex}.chart-tooltip-dot{background:#141416;border:2px solid #3b82f6;border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.chart-tooltip-values{align-items:baseline;gap:.3rem;display:flex}.chart-tooltip-usd{color:#fff;font-size:.95rem;font-weight:700}.chart-tooltip-uah{color:#9ca3af;font-size:.7rem}.chart-tooltip-footer{color:#9ca3af;border-top:1px solid #ffffff14;justify-content:space-between;gap:1rem;margin-top:.35rem;padding-top:.3rem;font-size:.68rem;display:flex}@media (width<=600px){.chart-tooltip{box-sizing:border-box;padding:.5rem .65rem;top:6px;width:calc(100% - 1rem)!important;max-width:calc(100% - 1rem)!important;left:50%!important;transform:translate(-50%)!important}}
