:root{--color-bg:#fdfcfb;--color-card-bg:#fff;--color-text-main:#2d3436;--color-text-muted:#636e72;--color-accent:#e67e22;--color-accent-soft:#f39c12;--color-overlay:#000000b3;--shadow-sm:0 2px 8px #0000000d;--shadow-md:0 10px 25px #00000014;--shadow-lg:0 20px 40px #0000001f;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--transition-fast:.2s ease;--transition-main:.4s cubic-bezier(.175, .885, .32, 1.275);--transition-smooth:.5s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-text-main);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6}.header{background:var(--color-card-bg);box-shadow:var(--shadow-sm);z-index:100;padding:2rem 1rem 1rem;position:sticky;top:0}.header-content{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto 1.5rem;display:flex}.logo{color:var(--color-text-main);font-size:1.8rem;font-weight:800}.logo span{color:var(--color-accent)}.search-bar input{border-radius:var(--radius-lg);width:300px;transition:var(--transition-fast);border:1px solid #eee;outline:none;padding:.8rem 1.5rem;font-size:1rem}.search-bar input:focus{border-color:var(--color-accent);box-shadow:0 0 0 4px #e67e221a}.categories{gap:.8rem;max-width:1200px;margin:0 auto;padding-bottom:.5rem;display:flex;overflow-x:auto}.category-btn{border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:var(--transition-fast);white-space:nowrap;background:#f1f2f6;border:none;padding:.6rem 1.2rem;font-weight:600}.category-btn:hover{background:#e2e2e2}.category-btn.active{background:var(--color-accent);color:#fff}.recipe-card{background:var(--color-card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;transition:var(--transition-main);flex-direction:column;display:flex;position:relative;overflow:hidden}.recipe-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-8px)scale(1.02)}.card-image-wrapper{height:200px;position:relative;overflow:hidden}.card-image{object-fit:cover;width:100%;height:100%;transition:var(--transition-smooth)}.recipe-card:hover .card-image{transform:scale(1.1)}.fav-btn{cursor:pointer;width:36px;height:36px;box-shadow:var(--shadow-sm);transition:var(--transition-fast);background:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;display:flex;position:absolute;top:1rem;right:1rem}.fav-btn:hover{transform:scale(1.1)}.fav-btn.active{background:#fff0f0}.card-badge{border-radius:var(--radius-sm);color:var(--color-accent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6;padding:.4rem .8rem;font-size:.75rem;font-weight:700;position:absolute;top:1rem;left:1rem}.card-content{flex-direction:column;flex:1;padding:1.5rem;display:flex}.card-meta{color:var(--color-text-muted);justify-content:space-between;margin-bottom:.5rem;font-size:.85rem;display:flex}.card-title{color:var(--color-text-main);flex:1;margin-bottom:1.5rem;font-size:1.25rem;font-weight:700;line-height:1.3}.add-to-list-btn{border-radius:var(--radius-sm);width:100%;color:var(--color-text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border:1px solid #eee;padding:.8rem;font-weight:600}.add-to-list-btn:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.difficulty.легко{color:#27ae60}.difficulty.средне{color:#f39c12}.difficulty.сложно{color:#e74c3c}.recipe-grid-container{max-width:1200px;margin:2rem auto;padding:0 1rem}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;display:grid}.recipe-grid .recipe-card{animation:.5s ease-out both fadeInCard}@keyframes fadeInCard{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.load-more-container{justify-content:center;margin-top:3rem;padding-bottom:2rem;display:flex}.load-more-btn{padding:1rem 3rem;font-size:1.1rem}.no-results{text-align:center;color:var(--color-text-muted);grid-column:1/-1;padding:4rem;font-size:1.5rem}.focus-overlay{background:var(--color-bg);z-index:1000;animation:slideIn .5s var(--transition-smooth);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.focus-overlay.closing{animation:slideOut .4s var(--transition-smooth) forwards}@keyframes slideIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.focus-container{flex-direction:column;width:100%;max-width:800px;height:100vh;padding:2rem;display:flex;position:relative}.close-btn{color:var(--color-text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;font-size:2.5rem;position:absolute;top:1rem;right:1.5rem}.close-btn:hover{color:var(--color-accent);transform:rotate(90deg)}.focus-header{text-align:center;margin-bottom:3rem}.focus-category{color:var(--color-accent);text-transform:uppercase;letter-spacing:2px;font-size:.9rem;font-weight:700}.progress-bar-container{background:#eee;border-radius:3px;width:100%;height:6px;margin-top:1.5rem;overflow:hidden}.progress-bar{background:var(--color-accent);height:100%;transition:width .4s}.focus-content{flex:1;justify-content:center;align-items:center;display:flex}.step-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:center;background:#fff;width:100%;padding:3rem;animation:.4s both fadeInStep}@keyframes fadeInStep{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.step-number{color:var(--color-text-muted);margin-bottom:1.5rem;font-weight:600;display:block}.step-text{color:var(--color-text-main);font-size:1.8rem;font-weight:500;line-height:1.4}.focus-controls{justify-content:center;gap:1.5rem;padding:2rem 0;display:flex}.control-btn{border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);border:none;padding:1rem 3rem;font-size:1.1rem;font-weight:700}.control-btn.prev{color:var(--color-text-muted);background:#eee}.control-btn.next{background:var(--color-accent);color:#fff;box-shadow:0 4px 15px #e67e224d}.control-btn:disabled{opacity:.5;cursor:not-allowed}.control-btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px)}.focus-intro,.focus-steps{flex-direction:column;height:100%;animation:.5s both fadeInStep;display:flex}.recipe-meta-focus{color:var(--color-text-muted);justify-content:center;gap:1.5rem;margin-top:1rem;font-weight:500;display:flex}.focus-intro-content{flex-direction:column;flex:1;gap:2rem;padding:1rem;display:flex;overflow-y:auto}.focus-intro-content::-webkit-scrollbar{width:6px}.focus-intro-content::-webkit-scrollbar-track{background:0 0}.focus-intro-content::-webkit-scrollbar-thumb{background-color:#ddd;border-radius:10px}.focus-image-container{border-radius:var(--radius-lg);width:100%;max-height:350px;box-shadow:var(--shadow-md);flex-shrink:0;overflow:hidden}.focus-image{object-fit:cover;width:100%;height:100%;display:block}.focus-ingredients{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;padding:2rem}.focus-ingredients h3{color:var(--color-text-main);text-align:center;margin-bottom:1.5rem}.focus-ingredients ul{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;padding:0;list-style:none;display:grid}.focus-ingredients li{color:var(--color-text-main);opacity:0;padding-left:1.5rem;line-height:1.4;animation:.4s forwards fadeInStep;position:relative}.focus-ingredients li:first-child{animation-delay:.1s}.focus-ingredients li:nth-child(2){animation-delay:.2s}.focus-ingredients li:nth-child(3){animation-delay:.3s}.focus-ingredients li:nth-child(4){animation-delay:.4s}.focus-ingredients li:nth-child(5){animation-delay:.5s}.focus-ingredients li:nth-child(6){animation-delay:.6s}.focus-ingredients li:nth-child(n+7){animation-delay:.7s}.focus-ingredients li:before{content:"✓";color:var(--color-accent);font-weight:700;position:absolute;left:0}.start-cooking-btn{width:100%;max-width:300px;margin:0 auto;padding:1.2rem 2rem;font-size:1.2rem}.shopping-list-toggle{background:var(--color-accent);color:#fff;cursor:pointer;z-index:500;width:60px;height:60px;transition:var(--transition-main);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 4px 20px #e67e2266}.shopping-list-toggle:hover{transform:scale(1.1)rotate(-10deg)}.shopping-list-toggle .badge{color:#fff;background:#2d3436;border:2px solid #fff;border-radius:10px;padding:.2rem .5rem;font-size:.75rem;font-weight:700;position:absolute;top:-5px;right:-5px}.shopping-list-panel{z-index:1001;width:400px;height:100vh;transition:var(--transition-smooth);background:#fff;flex-direction:column;display:flex;position:fixed;top:0;right:-400px;box-shadow:-10px 0 30px #0000001a}.shopping-list-panel.open{right:0}.panel-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:2rem;display:flex}.panel-header h3{color:var(--color-text-main);font-size:1.5rem}.close-panel{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-size:2rem}.panel-content{flex:1;padding:2rem;overflow-y:auto}.empty-msg{text-align:center;color:var(--color-text-muted);margin-top:3rem}.shopping-items{list-style:none}.shopping-item{border-bottom:1px solid #f9f9f9;justify-content:space-between;align-items:center;padding:1rem 0;display:flex}.shopping-item label{cursor:pointer;flex:1;align-items:center;gap:1rem;font-size:1rem;display:flex}.shopping-item input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-accent)}.shopping-item input[type=checkbox]:checked+span{color:var(--color-text-muted);text-decoration:line-through}.remove-item{color:#ff7675;cursor:pointer;opacity:.5;background:0 0;border:none;font-size:1.2rem;transition:all .2s}.remove-item:hover{opacity:1}.panel-overlay{background:var(--color-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:.3s fadeIn;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (width<=500px){.shopping-list-panel{width:100%;right:-100%}}.chef-fab{background:var(--color-accent);color:#fff;width:60px;height:60px;box-shadow:var(--shadow-lg);cursor:pointer;transition:var(--transition-main);z-index:1000;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.8rem;display:flex;position:fixed;bottom:2rem;right:6.5rem}.chef-fab:hover{background:#d64022;transform:scale(1.1)}.chef-fab.hidden{display:none}.chef-window{border-radius:var(--radius-lg);width:350px;height:500px;box-shadow:var(--shadow-lg);z-index:1000;background:#fff;flex-direction:column;animation:.3s ease-out slideUp;display:flex;position:fixed;bottom:2rem;right:6.5rem;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chef-header{background:var(--color-accent);color:#fff;justify-content:space-between;align-items:center;padding:1rem;display:flex}.chef-header h3{margin:0;font-size:1.2rem;font-weight:600}.chef-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1}.chef-messages{background:#fdfdfd;flex-direction:column;flex:1;gap:1rem;padding:1rem;display:flex;overflow-y:auto}.chef-message{flex-direction:column;display:flex}.chef-message.user{align-items:flex-end}.chef-message.agent{align-items:flex-start}.msg-bubble{border-radius:var(--radius-md);word-wrap:break-word;max-width:80%;padding:.8rem 1rem;font-size:.95rem;line-height:1.4}.chef-message.user .msg-bubble{color:#333;background:#f1f3f5;border-bottom-right-radius:0}.chef-message.agent .msg-bubble{background:var(--color-accent);color:#fff;border-bottom-left-radius:0}.msg-bubble.typing{letter-spacing:2px;font-weight:700;animation:1s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.chef-input-area{background:#fff;border-top:1px solid #eee;gap:.5rem;padding:1rem;display:flex}.chef-input-area input{border-radius:var(--radius-sm);border:1px solid #ddd;outline:none;flex:1;padding:.8rem}.chef-input-area input:focus{border-color:var(--color-accent)}.chef-input-area button{background:var(--color-accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);border:none;padding:0 1rem;font-size:1.2rem}.chef-input-area button:hover{background:#d64022}
