:root{--primary:#ff6b6b;--primary-dark:#ee5a5a;--primary-light:#ffe5e5;--secondary:#4ecdc4;--secondary-dark:#3dbdb5;--secondary-light:#e8f9f8;--accent:#ffd93d;--accent-dark:#ffc300;--success:#6bcf7f;--warning:#ffb84d;--danger:#ff6b6b;--error:#ff6b6b;--text-primary:#2d3436;--text-secondary:#636e72;--text-light:#b2bec3;--bg-white:#fff;--bg-light:#f8f9fa;--bg-gray:#e9ecef;--border:#dfe6e9;--shadow:#2d34361a;--shadow-hover:#2d343626;--gradient-primary:linear-gradient(135deg, #ff6b6b 0%, #ff8e8e 100%);--gradient-secondary:linear-gradient(135deg, #4ecdc4 0%, #6be3db 100%);--gradient-accent:linear-gradient(135deg, #ffd93d 0%, #ffe66d 100%);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:32px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--toolbar-bg-rgb:255, 255, 255;--card-bg-rgb:255, 255, 255;--shadow-sm:0 2px 4px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001f;--shadow-xl:0 12px 32px #00000026}@media (prefers-color-scheme:dark){:root{--primary:#ff7b7b;--primary-dark:#ff6b6b;--primary-light:#ff6b6b26;--secondary:#5ed8cf;--secondary-dark:#4ecdc4;--secondary-light:#4ecdc41f;--accent:#ffd93d;--accent-dark:#ffc300;--text-primary:#eaeaf0;--text-secondary:#9a9ab0;--text-light:#5c5c72;--bg-white:#1c1c2e;--bg-light:#242438;--bg-gray:#2e2e44;--border:#3a3a52;--shadow:#0006;--shadow-hover:#00000080;--gradient-primary:linear-gradient(135deg, #ff6b6b 0%, #ff8e8e 100%);--gradient-secondary:linear-gradient(135deg, #4ecdc4 0%, #6be3db 100%);--toolbar-bg-rgb:28, 28, 46;--card-bg-rgb:28, 28, 46;--shadow-sm:0 2px 4px #0003;--shadow-md:0 4px 12px #00000040;--shadow-lg:0 8px 24px #0000004d;--shadow-xl:0 12px 32px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}[data-theme=dark]{--primary:#ff7b7b;--primary-dark:#ff6b6b;--primary-light:#ff6b6b26;--secondary:#5ed8cf;--secondary-dark:#4ecdc4;--secondary-light:#4ecdc41f;--text-primary:#eaeaf0;--text-secondary:#9a9ab0;--text-light:#5c5c72;--bg-white:#1c1c2e;--bg-light:#242438;--bg-gray:#2e2e44;--border:#3a3a52;--shadow:#0006;--shadow-hover:#00000080;--toolbar-bg-rgb:28, 28, 46;--card-bg-rgb:28, 28, 46;--shadow-sm:0 2px 4px #0003;--shadow-md:0 4px 12px #00000040;--shadow-lg:0 8px 24px #0000004d;--shadow-xl:0 12px 32px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-size-md);color:var(--text-primary);background-color:var(--bg-light);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-md);line-height:1.2}h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-md);line-height:1.3}h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-sm);line-height:1.4}p{margin-bottom:var(--spacing-sm);line-height:1.6}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-dark)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-light)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}*{transition:background-color .2s,color .2s,border-color .2s,transform .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.fade-in{animation:.3s fadeIn}.slide-in{animation:.3s slideIn}.container{max-width:1200px;padding:0 var(--spacing-md);margin:0 auto}button{font-family:var(--font-family);cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);border:none;outline:none}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{font-family:var(--font-family);font-size:var(--font-size-md);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);outline:none;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}img{max-width:100%;height:auto;display:block}.card{background:var(--bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:box-shadow .3s,transform .3s;overflow:hidden}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}@media (width<=768px){:root{--font-size-3xl:28px;--font-size-2xl:22px;--font-size-xl:18px}.container{padding:0 var(--spacing-sm)}}.spinner{border:4px solid var(--bg-gray);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.recipe-card{background:var(--bg-white);transform-origin:50%;border-radius:14px;text-decoration:none;transition:all .4s cubic-bezier(.4,0,.2,1);display:block;position:relative;overflow:hidden;box-shadow:0 4px 12px #00000014,0 1px 4px #0000000a}.recipe-card:hover{transform:translateY(-4px)scale(1.01);box-shadow:0 20px 40px #00000026,0 8px 16px #0000001a}.recipe-card:active{transform:translateY(-2px)scale(1.005)}.recipe-image-container{background:linear-gradient(135deg, var(--bg-light) 0%, var(--bg-gray) 100%);width:100%;height:160px;position:relative;overflow:hidden}.recipe-image-container:before{content:"";z-index:1;opacity:.8;background:linear-gradient(#0000 0%,#00000008 50%,#0003 100%);transition:opacity .4s;position:absolute;inset:0}.recipe-card:hover .recipe-image-container:before{opacity:1}.recipe-image{object-fit:cover;filter:brightness(.95)contrast(1.05);width:100%;height:100%;transition:transform .6s cubic-bezier(.4,0,.2,1)}.recipe-card:hover .recipe-image{filter:brightness()contrast(1.1);transform:scale(1.1)}.favorite-btn{background:rgba(var(--card-bg-rgb), .95);-webkit-backdrop-filter:blur(12px);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;z-index:10;box-shadow:var(--shadow-md);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:10px;right:10px}.favorite-btn:hover{background:var(--bg-white);box-shadow:var(--shadow-lg);transform:scale(1.15)}.favorite-btn:active{transform:scale(1.05)}.favorite-btn.active{color:var(--primary);background:var(--primary-light);animation:.5s cubic-bezier(.4,0,.2,1) heartPulse}@keyframes heartPulse{0%,to{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(1.1)}75%{transform:scale(1.25)}}.recipe-content{background:var(--bg-white);padding:12px}.recipe-title{color:var(--text-primary);letter-spacing:-.3px;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 6px;font-size:16px;font-weight:700;line-height:1.3;transition:color .3s;display:-webkit-box;overflow:hidden}.recipe-card:hover .recipe-title{color:var(--primary)}.recipe-card .recipe-description{color:var(--text-secondary);-webkit-line-clamp:2;letter-spacing:.1px;-webkit-box-orient:vertical;margin:0 0 8px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.recipe-meta{gap:8px;margin-bottom:8px;display:flex}.meta-item{color:var(--text-secondary);background:var(--bg-light);border-radius:8px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-weight:600;transition:all .3s;display:flex}.recipe-card:hover .meta-item{background:var(--secondary-light);color:var(--secondary-dark)}.meta-item svg{color:var(--secondary);filter:drop-shadow(0 1px 2px #0000001a);font-size:14px}.recipe-footer{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.nutrition-info{background:var(--bg-light);border-radius:10px;align-items:center;gap:6px;padding:6px 10px;transition:all .3s;display:flex}.recipe-card:hover .nutrition-info{transform:scale(1.05);box-shadow:0 4px 12px #ffb44d4d}.flame-icon{color:var(--warning);filter:drop-shadow(0 2px 4px #ffb44d4d);font-size:16px;animation:2s ease-in-out infinite flicker}@keyframes flicker{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}.calories{color:var(--text-primary);letter-spacing:-.2px;font-size:13px;font-weight:700}.price{color:var(--success);background:var(--secondary-light);border-radius:10px;padding:6px 10px;font-size:13px;font-weight:700;transition:all .3s}.recipe-card:hover .price{transform:scale(1.05);box-shadow:inset 0 1px 3px #4ecdc44d,0 4px 12px #4ecdc433}.macro-bar{background:var(--bg-gray);border-radius:4px;height:4px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}.macro-bar:after{content:"";background:linear-gradient(90deg,#ffffff80,#0000);border-radius:4px 4px 0 0;height:2px;position:absolute;top:0;left:0;right:0}.macro-segment{transition:all .4s cubic-bezier(.4,0,.2,1);position:relative}.recipe-card:hover .macro-segment{filter:brightness(1.1)}.macro-segment.protein{background:linear-gradient(135deg,#6bcf7f 0%,#4caf50 100%);box-shadow:inset 0 -1px 2px #4caf504d}.macro-segment.fats{background:linear-gradient(135deg,#ffb84d 0%,#ff9800 100%);box-shadow:inset 0 -1px 2px #ff98004d}.macro-segment.carbs{background:linear-gradient(135deg,#4ecdc4 0%,#00bcd4 100%);box-shadow:inset 0 -1px 2px #00bcd44d}.recipe-card.loading{pointer-events:none}.recipe-card.loading .recipe-image-container{background:linear-gradient(90deg, var(--bg-light) 25%, var(--bg-gray) 50%, var(--bg-light) 75%);background-size:200% 100%;animation:1.5s infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=768px){.recipe-image-container{height:140px}.recipe-title{font-size:15px}.recipe-card .recipe-description{font-size:12px}.favorite-btn{width:36px;height:36px;font-size:18px}}.filters-modal-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:flex-end;padding-bottom:70px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.filters-modal-content{background:var(--bg-white);border-radius:24px 24px 0 0;flex-direction:column;width:100%;max-width:600px;max-height:85vh;animation:.3s cubic-bezier(.4,0,.2,1) slideUp;display:flex}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.filters-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px;display:flex}.filters-modal-header h2{margin:0;font-size:22px;font-weight:700}.filters-modal-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:4px;font-size:28px;transition:color .2s}.filters-modal-close:hover{color:var(--text-primary)}.filters-modal-body{flex:1;padding:20px;overflow-y:auto}.filter-group{margin-bottom:28px}.filter-group:last-child{margin-bottom:0}.filter-group h3{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:12px;font-size:16px;font-weight:600;display:flex}.filter-group h3 svg{color:var(--primary);font-size:20px}.filter-options{flex-wrap:wrap;gap:10px;display:flex}.filter-option{background:var(--bg-light);border-radius:var(--radius-md);min-width:140px;color:var(--text-secondary);cursor:pointer;border:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:500;transition:all .2s;display:flex;position:relative}.filter-option:hover{background:var(--secondary-light);border-color:var(--secondary);color:var(--secondary-dark)}.filter-option.active{background:var(--secondary);border-color:var(--secondary);color:#fff;font-weight:600}.option-icon{font-size:18px}.filter-option .check-icon{font-size:18px;position:absolute;right:8px}.filters-modal-footer{border-top:1px solid var(--border);background:var(--bg-light);gap:12px;padding:20px;display:flex}.reset-btn{background:var(--bg-white);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;flex:1;padding:14px;font-size:16px;font-weight:600;transition:all .2s}.reset-btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}.apply-btn{background:var(--primary);border-radius:var(--radius-md);color:#fff;cursor:pointer;border:none;flex:2;padding:14px;font-size:16px;font-weight:600;transition:all .2s}.apply-btn:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #ff6b6b4d}@media (width<=768px){.filter-option{min-width:100px}.filters-modal-content{max-height:90vh}}.home-page{background:linear-gradient(180deg, var(--bg-light) 0%, var(--bg-white) 100%);min-height:100vh;padding-bottom:60px}.home-header{color:#fff;text-align:center;background:linear-gradient(135deg,#ff6b6b 0%,#ff8e8e 50%,#ffa07a 100%);max-height:80px;padding:16px 16px 12px;transition:max-height .3s,padding .3s,opacity .3s;position:relative;overflow:hidden;box-shadow:0 10px 40px #ff6b6b4d,0 2px 8px #ff6b6b33}.home-page.scrolled .home-header{opacity:0;max-height:0;box-shadow:none;padding:0 16px}.home-header:before{content:"";background:radial-gradient(circle,#ffffff26 0%,#0000 70%);border-radius:50%;width:300px;height:300px;animation:6s ease-in-out infinite float;position:absolute;top:-50%;right:-10%}.home-header:after{content:"";background:radial-gradient(circle,#ffffff1a 0%,#0000 70%);border-radius:50%;width:200px;height:200px;animation:8s ease-in-out infinite reverse float;position:absolute;bottom:-30%;left:-5%}@keyframes float{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-20px)scale(1.05)}}.app-title{color:#fff;letter-spacing:-.5px;text-shadow:0 2px 20px #00000026;z-index:1;margin:0 0 4px;font-size:22px;font-weight:800;animation:.6s slideDown;position:relative}.app-subtitle{opacity:.9;letter-spacing:.3px;z-index:1;margin:0;font-size:14px;font-weight:500;animation:.8s slideDown;position:relative}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.toolbar{z-index:100;background:rgba(var(--toolbar-bg-rgb,255, 255, 255), .97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 8px var(--shadow);padding:6px 12px;position:sticky;top:0}.toolbar-actions{gap:6px;display:flex}.toolbar-btn{background:var(--bg-light);color:var(--text-secondary);cursor:pointer;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:13px;font-weight:600;transition:all .2s;display:flex;position:relative}.toolbar-btn svg{flex-shrink:0;font-size:18px}.toolbar-btn:active{transform:scale(.96)}.toolbar-btn:first-child{color:var(--primary)}.toolbar-btn.random{color:#fff;background:linear-gradient(135deg,#4ecdc4,#3dbdb5)}.toolbar-btn.filter{color:var(--primary)}.toolbar-btn .filters-badge{background:var(--accent);color:var(--text-primary);text-align:center;border-radius:8px;min-width:16px;padding:1px 5px;font-size:10px;font-weight:700;position:absolute;top:-2px;right:-2px;box-shadow:0 1px 3px #0003}.search-expanded{background:var(--bg-light);border:2px solid var(--primary);border-radius:10px;align-items:center;gap:8px;padding:6px 12px;animation:.2s searchSlideIn;display:flex}@keyframes searchSlideIn{0%{opacity:0;transform:scaleX(.8)}to{opacity:1;transform:scaleX(1)}}.search-expanded-icon{color:var(--primary);flex-shrink:0;font-size:18px}.search-expanded-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:15px;font-weight:500}.search-expanded-input::placeholder{color:var(--text-light);font-weight:400}.search-close-btn{background:var(--bg-gray);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;transition:all .15s;display:flex}.search-close-btn:active{background:var(--primary-light);color:var(--primary)}.categories-section{background:var(--bg-white);margin-bottom:2px;padding:6px 12px}.category-tabs{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.category-tabs::-webkit-scrollbar{display:none}.category-tab{background:var(--bg-light);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border:none;border-radius:12px;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.category-icon{align-items:center;font-size:14px;display:flex}.category-label{font-size:12px}.category-tab:before{content:"";background:var(--secondary);height:3px;transition:transform .3s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.category-tab:hover{background:var(--secondary-light);color:var(--secondary-dark);transform:translateY(-2px)}.category-tab:hover .category-icon{transform:scale(1.1)}.category-tab.active{background:var(--secondary);color:#fff;box-shadow:0 6px 20px #4ecdc44d,inset 0 1px #ffffff4d}.category-tab.active:before{transform:scaleX(1)}@media (width<=768px){.category-tab{padding:6px 10px}.category-icon{font-size:13px}.category-label{font-size:11px}}.results-section{padding:12px 16px;animation:.6s fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.results-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.results-header h2{letter-spacing:-.5px;background:linear-gradient(135deg, var(--text-primary), var(--primary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:18px;font-weight:800}.results-count{color:var(--text-secondary);background:var(--bg-gray);letter-spacing:.3px;border-radius:16px;padding:4px 10px;font-size:12px;font-weight:700;box-shadow:inset 0 1px 3px #0000001a}.recipes-grid>*{animation:.6s backwards cardAppear}.recipes-grid>:first-child{animation-delay:50ms}.recipes-grid>:nth-child(2){animation-delay:.1s}.recipes-grid>:nth-child(3){animation-delay:.15s}.recipes-grid>:nth-child(4){animation-delay:.2s}.recipes-grid>:nth-child(5){animation-delay:.25s}.recipes-grid>:nth-child(6){animation-delay:.3s}@keyframes cardAppear{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.empty-state{text-align:center;padding:80px 20px;animation:.6s fadeIn}.empty-icon{filter:drop-shadow(0 4px 12px #0000001a);margin-bottom:24px;font-size:80px;animation:2s ease-in-out infinite bounce}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.empty-state h3{color:var(--text-primary);margin:0 0 12px;font-size:22px;font-weight:700}.empty-state p{color:var(--text-secondary);max-width:400px;margin:0 auto;font-size:16px;line-height:1.6}@media (width<=768px){.recipes-grid{grid-template-columns:1fr;gap:12px}.app-title{font-size:20px}.home-header{max-height:70px;padding:12px 16px 10px}}@media (width>=769px) and (width<=1024px){.recipes-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1025px){.recipes-grid{grid-template-columns:repeat(3,1fr)}}html{scroll-behavior:smooth}.loading-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:80px 20px;display:flex}.loader{border:4px solid var(--bg-gray);border-top-color:var(--primary);border-radius:50%;width:50px;height:50px;margin-bottom:20px;animation:.8s linear infinite spin}.loading-state p{color:var(--text-secondary);font-size:16px;font-weight:500}.error-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:80px 20px;display:flex}.error-icon{margin-bottom:20px;font-size:64px;animation:.5s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-state h3{color:var(--text-primary);margin-bottom:12px;font-size:24px;font-weight:700}.error-state p{color:var(--text-secondary);max-width:400px;margin-bottom:24px;font-size:16px}.retry-btn{background:var(--gradient-primary);color:#fff;cursor:pointer;border:none;border-radius:12px;padding:14px 32px;font-size:16px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #ff6b6b4d}.retry-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff6b6b66}.retry-btn:active{transform:translateY(0)}.load-more-trigger{justify-content:center;align-items:center;height:60px;display:flex}.loading-more{justify-content:center;padding:16px;display:flex}.loader.small{border-width:3px;width:28px;height:28px;margin-bottom:0}.share-overlay{z-index:1000;background:#00000080;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.share-modal{background:var(--bg-white,#fff);border-radius:20px 20px 0 0;width:100%;max-height:60vh;padding:8px 20px 24px;transition:max-height .3s;animation:.3s slideUp;overflow-y:auto}.share-modal.expanded{max-height:85vh}.share-handle{background:var(--border,#e0e0e0);border-radius:2px;width:40px;height:4px;margin:0 auto 12px}.share-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.share-header h3{color:var(--text-primary,#1a1a2e);margin:0;font-size:18px;font-weight:600}.share-close{background:var(--bg-light,#f5f5f5);width:32px;height:32px;color:var(--text-secondary,#666);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex}.share-preview{background:var(--bg-light,#f5f5f5);border-radius:12px;align-items:center;gap:12px;margin-bottom:20px;padding:12px;display:flex}.share-preview-img{object-fit:cover;border-radius:10px;flex-shrink:0;width:56px;height:56px}.share-preview-info{min-width:0}.share-preview-title{color:var(--text-primary,#1a1a2e);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.share-preview-desc{color:var(--text-secondary,#666);margin-top:2px;font-size:13px}.share-actions{justify-content:center;gap:32px;padding:8px 0 4px;display:flex}.share-action-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:8px;padding:0;display:flex}.share-action-btn span{color:var(--text-secondary,#666);font-size:12px;font-weight:500}.share-action-icon{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;transition:transform .2s;display:flex}.share-action-icon:active{transform:scale(.9)}.share-action-icon.feed{background:linear-gradient(135deg,#667eea,#764ba2)}.share-action-icon.friend{background:linear-gradient(135deg,#f093fb,#f5576c)}.share-action-icon.link{background:linear-gradient(135deg,#4facfe,#00f2fe)}.share-action-icon.link.copied{background:linear-gradient(135deg,#43e97b,#38f9d7)}.share-friends{border-top:1px solid var(--border,#e0e0e0);margin-top:20px;padding-top:16px;animation:.2s fadeIn}.share-friends-title{color:var(--text-secondary,#666);margin-bottom:12px;font-size:14px;font-weight:600}.share-friends-list{flex-direction:column;gap:4px;display:flex}.share-friend-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:background .15s;display:flex}.share-friend-item:hover{background:var(--bg-light,#f5f5f5)}.share-friend-item.sending{opacity:.6}.share-friend-photo{object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px}.share-friend-name{color:var(--text-primary,#1a1a2e);flex:1;font-size:15px;font-weight:500}.share-friend-send{color:#667eea;font-size:18px}.share-friend-status{color:var(--text-secondary,#666);font-size:13px}.recipe-page{background:var(--bg-light);min-height:100vh;padding-bottom:60px}.recipe-header{z-index:100;justify-content:space-between;padding:12px 16px;display:flex;position:absolute;top:0;left:0;right:0}.back-btn,.recipe-header .favorite-btn{background:rgba(var(--card-bg-rgb), .95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:38px;height:38px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-md);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:all .2s;display:flex}.back-btn:hover,.recipe-header .favorite-btn:hover{transform:scale(1.1)}.recipe-header .favorite-btn.active{color:var(--primary)}.recipe-hero{width:100%;height:240px;position:relative;overflow:hidden}.hero-image{object-fit:cover;width:100%;height:100%}.recipe-info{background:var(--bg-white);border-radius:20px 20px 0 0;margin:-20px 0 8px;padding:16px;position:relative}.title-row{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.recipe-title{font-size:22px;font-weight:var(--font-weight-bold);color:var(--text-primary);flex:1;margin:0 0 8px}.share-btn{background:var(--bg-light);width:38px;height:38px;color:var(--secondary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;transition:all .2s;display:flex}.share-btn:hover{background:var(--secondary);color:#fff}.recipe-page .recipe-description{color:var(--text-secondary);-webkit-line-clamp:unset;-webkit-box-orient:unset;margin-bottom:14px;font-size:14px;line-height:1.5;display:block;overflow:visible}.info-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px;display:grid}.info-item{background:var(--bg-light);border-radius:var(--radius-md);align-items:center;gap:8px;padding:8px;display:flex}.info-icon{color:var(--secondary);font-size:22px}.info-icon.flame{color:var(--warning)}.info-label{color:var(--text-secondary);font-size:11px}.info-value{font-size:14px;font-weight:var(--font-weight-semibold);color:var(--text-primary)}.nutrition-panel{background:var(--bg-light);border-radius:var(--radius-md);grid-template-columns:repeat(3,1fr);gap:10px;padding:12px;display:grid}.nutrition-item{text-align:center}.nutrition-label{color:var(--text-secondary);margin-bottom:2px;font-size:11px}.nutrition-value{font-size:15px;font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:6px}.nutrition-bar{background:var(--bg-gray);border-radius:3px;height:5px;overflow:hidden}.bar{border-radius:3px;height:100%;transition:width .3s}.bar.protein{background:linear-gradient(90deg,#6bcf7f,#4caf50)}.bar.fats{background:linear-gradient(90deg,#ffb84d,#ff9800)}.bar.carbs{background:linear-gradient(90deg,#4ecdc4,#00bcd4)}.tabs{background:var(--bg-white);z-index:50;box-shadow:var(--shadow-sm);gap:4px;padding:0 16px 10px;display:flex;position:sticky;top:0}.tab{background:var(--bg-light);color:var(--text-secondary);font-size:13px;font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;border:none;flex:1;padding:10px 12px;transition:all .2s}.tab.active{background:var(--primary);color:#fff}.tab-content{padding:12px}.servings-selector{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:12px 16px;display:flex;box-shadow:0 4px 12px #667eea4d}.servings-selector span{font-weight:var(--font-weight-bold);color:#fff;font-size:14px}.servings-buttons{gap:8px;display:flex}.serving-btn{color:#fff;min-width:38px;height:38px;font-weight:var(--font-weight-bold);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:2px solid #fff6;border-radius:10px;padding:0 10px;font-size:14px;transition:all .2s}.serving-btn:hover{background:#ffffff4d;transform:translateY(-2px)}.serving-btn.active{color:#667eea;background:#fff;border-color:#fff;box-shadow:0 4px 8px #00000026}.ingredients-list{background:var(--bg-white);box-shadow:var(--shadow-sm);border:1px solid var(--border);border-radius:12px;max-width:100%;overflow:hidden}.ingredient-item{border-bottom:1px solid var(--bg-light);cursor:pointer;align-items:center;gap:10px;min-height:44px;padding:10px 12px;transition:all .2s;display:flex;overflow:hidden}.ingredient-item:hover{background:var(--bg-light)}.ingredient-item:last-child{border-bottom:none}.ingredient-item.checked{background:linear-gradient(90deg,#667eea14 0%,#764ba214 100%)}.ingredient-item.checked .ingredient-name{color:var(--text-light);text-decoration:line-through}.ingredient-item .check-icon{width:22px;min-width:22px;height:22px;color:var(--border);flex-shrink:0;font-size:22px;transition:color .2s;position:static}.ingredient-item .check-icon.checked{color:#667eea}.ingredient-name{min-width:0;color:var(--text-primary);text-overflow:ellipsis;flex:1;font-size:14px;line-height:1.4;overflow:hidden}.ingredient-quantity{font-size:12px;font-weight:var(--font-weight-bold);color:var(--secondary);text-align:right;white-space:nowrap;flex-shrink:0;padding-left:4px}.steps-tab{flex-direction:column;gap:12px;display:flex}.step-item{background:var(--bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all .3s;overflow:hidden}.step-item.completed{background:var(--secondary-light);border-left:4px solid var(--secondary)}.step-header{cursor:pointer;align-items:center;gap:10px;padding:12px;display:flex}.step-number{background:var(--primary);color:#fff;width:32px;height:32px;font-weight:var(--font-weight-bold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:flex}.step-item.completed .step-number{background:var(--secondary)}.step-check{color:var(--secondary);margin-left:auto;font-size:22px}.step-content{padding:0 12px 12px}.step-instruction{color:var(--text-primary);margin-bottom:8px;font-size:14px;line-height:1.5}.step-timer{background:var(--accent-dark);color:#fff;border-radius:var(--radius-sm);font-size:13px;font-weight:var(--font-weight-medium);align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.tips-tab{flex-direction:column;gap:10px;display:flex}.tip-item{background:var(--bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);gap:10px;padding:12px;display:flex}.tip-icon{flex-shrink:0;font-size:20px}.tip-text{color:var(--text-primary);margin:0;font-size:14px;line-height:1.5}@media (width<=768px){.recipe-hero{height:200px}.recipe-title{font-size:20px}.info-grid{grid-template-columns:1fr 1fr;gap:8px}}.loading-page{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:40px;display:flex}.error-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:40px;display:flex}.error-page button{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:12px;margin-top:20px;padding:12px 28px;font-size:15px}.favorites-page{background:var(--bg-light);min-height:100vh;padding-bottom:60px}.favorites-header{background:var(--gradient-primary);color:#fff;text-align:center;padding:32px 20px 24px;box-shadow:0 4px 12px #ff6b6b33}.page-title{font-size:28px;font-weight:var(--font-weight-bold);color:#fff;margin:0 0 8px}.page-subtitle{opacity:.95;margin:0;font-size:15px}.favorites-content{padding:20px}.empty-favorites{text-align:center;padding:80px 20px}.empty-icon{margin-bottom:24px;font-size:80px;animation:2s ease-in-out infinite pulse}.empty-favorites h2{color:var(--text-primary);margin:0 0 12px;font-size:22px}.empty-favorites p{color:var(--text-secondary);max-width:400px;margin:0 auto;font-size:16px;line-height:1.6}.favorites-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}@media (width<=768px){.favorites-grid{grid-template-columns:1fr}.page-title{font-size:24px}.empty-icon{font-size:64px}.empty-favorites h2{font-size:20px}.empty-favorites p{font-size:15px}}@media (width>=769px) and (width<=1024px){.favorites-grid{grid-template-columns:repeat(2,1fr)}}.search-page{background:var(--bg-light);min-height:100vh}.search-header{background:var(--bg-white);box-shadow:var(--shadow-sm);z-index:10;padding:20px;position:sticky;top:0}.search-input-container{background:var(--bg-light);border-radius:12px;align-items:center;padding:0 16px;display:flex;position:relative}.search-icon{color:var(--text-secondary);margin-right:12px;font-size:20px}.search-input{background:0 0;border:none;outline:none;flex:1;padding:14px 0;font-size:16px}.clear-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;align-items:center;padding:8px;font-size:24px;display:flex}.search-content{padding:20px}.recent-searches{margin-top:20px}.recent-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.recent-header h3{font-size:18px}.recent-header button{color:var(--primary);cursor:pointer;background:0 0;border:none;font-size:14px}.recent-list{flex-direction:column;gap:8px;display:flex}.recent-item{background:var(--bg-white);cursor:pointer;text-align:left;border:none;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;transition:background .2s;display:flex}.recent-item:hover{background:var(--bg-light)}.recent-item svg{color:var(--text-secondary);font-size:18px}.empty-state{text-align:center;color:var(--text-secondary);padding:60px 20px}.empty-icon{opacity:.3;margin-bottom:20px;font-size:64px}.empty-state h3{color:var(--text-primary);margin-bottom:8px}.search-results{margin-top:20px}.results-header{margin-bottom:20px}.results-header h3{font-size:18px}.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.no-results{text-align:center;background:var(--bg-white);border-radius:16px;padding:60px 20px}.no-results h3{margin-bottom:8px}.no-results p{color:var(--text-secondary)}.loading{justify-content:center;padding:60px 20px;display:flex}@media (width<=768px){.recipes-grid{grid-template-columns:1fr}}.planner-week-tabs{scrollbar-width:none;-ms-overflow-style:none;gap:6px;margin-bottom:16px;padding-bottom:4px;display:flex;overflow-x:auto}.planner-week-tabs::-webkit-scrollbar{display:none}.planner-day-tab{background:var(--bg-white);border:2px solid var(--border);cursor:pointer;border-radius:14px;flex-direction:column;flex-shrink:0;align-items:center;gap:2px;min-width:52px;padding:10px 12px 16px;transition:all .2s;display:flex;position:relative}.planner-day-tab:hover{border-color:var(--primary)}.planner-day-tab.today{border-color:var(--secondary)}.planner-day-tab.active{background:var(--gradient-primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #ff6b6b4d}.planner-day-short{font-size:13px;font-weight:700;line-height:1}.planner-day-name{opacity:.7;font-size:10px;line-height:1}.planner-day-dots{gap:3px;display:flex;position:absolute;bottom:5px}.planner-day-dot{background:var(--border);border-radius:50%;width:5px;height:5px;transition:background .2s}.planner-day-dot.filled{background:var(--secondary)}.planner-day-tab.active .planner-day-dot{background:#fff6}.planner-day-tab.active .planner-day-dot.filled{background:#fff}.planner-meal-section{margin-bottom:12px}.planner-meal-label{align-items:center;gap:6px;margin-bottom:8px;font-size:16px;font-weight:600;display:flex}.planner-meal-empty{text-align:center;border:2px dashed var(--border);background:linear-gradient(135deg, var(--bg-light), var(--bg-white));cursor:pointer;border-radius:16px;padding:24px 16px;transition:all .2s}.planner-meal-empty:hover,.planner-meal-empty:active{border-color:var(--primary);background:var(--primary-light)}.planner-meal-empty-icon{margin-bottom:4px;font-size:28px}.planner-meal-empty-hint{color:var(--text-light);margin-bottom:8px;font-size:13px}.planner-add-btn{background:var(--gradient-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:inline-flex;box-shadow:0 4px 12px #ff6b6b4d}.planner-add-btn:hover{transform:scale(1.1)}.planner-meal-card{background:var(--bg-white);box-shadow:var(--shadow-sm);border-radius:16px;align-items:center;gap:12px;padding:10px;display:flex;position:relative}.planner-meal-img{object-fit:cover;cursor:pointer;border-radius:12px;flex-shrink:0;width:72px;height:72px}.planner-meal-info{flex:1;min-width:0}.planner-meal-title{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px;font-size:14px;font-weight:600;overflow:hidden}.planner-meal-title:hover{color:var(--primary)}.planner-meal-meta{color:var(--text-secondary);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.planner-meal-meta span{align-items:center;gap:3px;display:flex}.planner-meal-price{color:var(--success);font-weight:600}.planner-remove-btn{color:var(--text-light);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:8px;font-size:18px;transition:color .2s}.planner-remove-btn:hover{color:var(--error)}@media (width<=400px){.planner-meal-img{width:60px;height:60px}}.planner-rings{background:var(--bg-white);box-shadow:var(--shadow-sm);border-radius:16px;justify-content:space-around;margin-bottom:12px;padding:16px 8px;display:flex;position:relative}.planner-ring{flex-direction:column;align-items:center;gap:2px;display:flex;position:relative}.planner-ring-svg{width:52px;height:52px;transform:rotate(-90deg)}.planner-ring-track{fill:none;stroke:var(--bg-gray);stroke-width:4px}.planner-ring-progress{fill:none;stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.4,0,.2,1)}.planner-ring-progress.calories{stroke:var(--primary)}.planner-ring-progress.protein{stroke:var(--success)}.planner-ring-progress.fats{stroke:var(--warning)}.planner-ring-progress.carbs{stroke:var(--secondary)}.planner-ring-value{color:var(--text-primary);margin-top:4px;font-size:13px;font-weight:700}.planner-ring-label{color:var(--text-secondary);font-size:11px;line-height:1}.planner-ring-goal{color:var(--text-light);font-size:10px;line-height:1}.planner-rings-edit{cursor:pointer;opacity:.6;background:0 0;border:none;padding:4px;font-size:16px;transition:opacity .2s;position:absolute;top:6px;right:6px}.planner-rings-edit:hover{opacity:1}@media (width<=360px){.planner-ring-svg{width:44px;height:44px}.planner-ring-value{font-size:12px}}.planner-day-bar{background:var(--bg-white);box-shadow:var(--shadow-sm);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:10px 16px;display:flex}.planner-day-cost{color:var(--text-primary);font-size:20px;font-weight:700}.planner-cost-currency{color:var(--text-secondary);margin-left:2px;font-size:14px;font-weight:500}.planner-cost-empty{color:var(--text-light);font-size:16px}.planner-day-actions{gap:8px;display:flex}.planner-action-btn{background:var(--bg-light);border:1px solid var(--border);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;font-size:18px;transition:all .2s;display:flex}.planner-action-btn:hover:not(:disabled){background:var(--bg-gray);color:var(--text-primary)}.planner-action-btn.danger:hover:not(:disabled){background:var(--primary-light);color:var(--primary);border-color:var(--primary)}.planner-action-btn:disabled{opacity:.3;cursor:not-allowed}.planner-copy-wrapper{position:relative}.planner-copy-backdrop{z-index:99;position:fixed;inset:0}.planner-copy-menu{background:var(--bg-white);box-shadow:var(--shadow-lg);z-index:100;border:1px solid var(--border);border-radius:12px;min-width:180px;margin-top:6px;animation:.15s fadeIn;position:absolute;top:100%;right:0;overflow:hidden}.planner-copy-title{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;padding:10px 14px 6px;font-size:12px;font-weight:600}.planner-copy-option{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:10px 14px;font-size:14px;transition:background .15s;display:block}.planner-copy-option:hover{background:var(--bg-light)}.planner-modal-overlay{z-index:1100;animation:.2s fadeIn;position:fixed;inset:0}.planner-modal{background:var(--bg-white);z-index:1101;flex-direction:column;animation:.3s slideUp;display:flex;position:fixed;inset:0;overflow:hidden}.planner-modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.planner-modal-header h2{text-transform:capitalize;margin:0;font-size:17px;font-weight:700}.planner-modal-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:4px;font-size:26px;line-height:1}.planner-modal-search{background:var(--bg-light);flex-shrink:0;gap:8px;padding:10px 16px;display:flex}.planner-search-bar{background:var(--bg-white);border:2px solid var(--border);border-radius:12px;flex:1;align-items:center;gap:8px;padding:8px 12px;transition:border-color .2s;display:flex}.planner-search-bar:focus-within{border-color:var(--primary)}.planner-search-icon{color:var(--text-light);flex-shrink:0;font-size:18px}.planner-search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:15px}.planner-search-input::placeholder{color:var(--text-light)}.planner-fav-toggle{background:var(--bg-white);border:2px solid var(--border);width:42px;height:42px;color:var(--text-secondary);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;transition:all .2s;display:flex}.planner-fav-toggle.active{background:var(--primary);border-color:var(--primary);color:#fff}.planner-modal-categories{scrollbar-width:none;-ms-overflow-style:none;border-bottom:1px solid var(--border);flex-shrink:0;gap:6px;padding:8px 16px;display:flex;overflow-x:auto}.planner-modal-categories::-webkit-scrollbar{display:none}.planner-cat-tab{background:var(--bg-light);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:20px;flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:500;transition:all .2s}.planner-cat-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.planner-modal-body{padding:10px 16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.planner-modal-list{flex-direction:column;gap:8px;display:flex}.planner-modal-empty{text-align:center;color:var(--text-secondary);padding:40px 20px}.planner-modal-empty p{color:var(--text-primary);margin-bottom:4px;font-size:16px;font-weight:600}.planner-modal-empty small{color:var(--text-secondary);font-size:13px}.planner-recipe-option{background:var(--bg-light);cursor:pointer;border:2px solid #0000;border-radius:12px;gap:12px;padding:10px;transition:all .15s;display:flex;position:relative}.planner-recipe-option:active{transform:scale(.98)}.planner-recipe-option.recommended{border-color:var(--secondary-light);background:var(--secondary-light)}.planner-recipe-option img{object-fit:cover;border-radius:10px;flex-shrink:0;width:60px;height:60px}.planner-recipe-option-info{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.planner-recipe-option-info h4{text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:14px;font-weight:600;overflow:hidden}.planner-recipe-option-meta{color:var(--text-secondary);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.planner-recipe-option-meta span{align-items:center;gap:3px;display:flex}.planner-recipe-price{color:var(--success);font-weight:600}.planner-recipe-fav-icon{color:var(--primary);font-size:16px;position:absolute;top:10px;right:10px}.goals-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.goals-modal{background:var(--bg-white);border-radius:20px;width:100%;max-width:400px;overflow:hidden}.goals-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.goals-header h2{margin:0;font-size:18px}.goals-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:24px}.goals-body{padding:16px 20px}.goals-presets{gap:8px;margin-bottom:20px;display:flex}.goals-preset-btn{background:var(--bg-light);border:2px solid var(--border);cursor:pointer;text-align:center;color:var(--text-primary);border-radius:12px;flex:1;padding:10px 8px;font-size:13px;font-weight:600;transition:all .2s}.goals-preset-btn span{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400;display:block}.goals-preset-btn:hover{border-color:var(--primary);background:var(--primary-light)}.goals-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.goals-field{flex-direction:column;gap:4px;display:flex}.goals-field label{color:var(--text-secondary);font-size:12px;font-weight:600}.goals-field input{border:2px solid var(--border);background:var(--bg-light);color:var(--text-primary);border-radius:10px;width:100%;padding:10px 12px;font-size:16px;font-weight:600}.goals-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.goals-footer{border-top:1px solid var(--border);padding:16px 20px}.goals-save-btn{background:var(--gradient-primary);color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;padding:14px;font-size:16px;font-weight:600;box-shadow:0 4px 12px #ff6b6b4d}.goals-save-btn:hover{opacity:.9}.planner-week-overview{background:var(--bg-white);box-shadow:var(--shadow-sm);border-radius:16px;margin-bottom:16px;padding:12px;overflow-x:auto}.planner-week-grid-header{grid-template-columns:60px repeat(7,1fr);gap:4px;margin-bottom:6px;display:grid}.planner-week-day-header{text-align:center;color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:6px 0;font-size:12px;font-weight:700;transition:background .15s}.planner-week-day-header:hover{background:var(--bg-light)}.planner-week-grid-row{grid-template-columns:60px repeat(7,1fr);gap:4px;margin-bottom:4px;display:grid}.planner-week-label-col{color:var(--text-light);align-items:center;padding-left:2px;font-size:11px;font-weight:600;display:flex}.planner-week-cell{aspect-ratio:1;background:var(--bg-light);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-height:36px;transition:all .15s;display:flex}.planner-week-cell:hover{background:var(--bg-gray)}.planner-week-cell.filled{background:var(--secondary-light)}.planner-week-mini-img{object-fit:cover;border-radius:6px;width:28px;height:28px}.planner-week-empty-dot{background:var(--border);border-radius:50%;width:8px;height:8px}.planner-week-grid-row.totals{border-top:1px solid var(--border);margin-top:4px;padding-top:6px}.planner-week-cell.total{color:var(--text-secondary);aspect-ratio:auto;background:0 0;min-height:24px;font-size:11px;font-weight:700}@media (width<=400px){.planner-week-grid-header,.planner-week-grid-row{grid-template-columns:50px repeat(7,1fr)}.planner-week-label-col{font-size:10px}}.shopping-overlay{z-index:1100;animation:.2s fadeIn;position:fixed;inset:0}.shopping-sheet{background:var(--bg-white);z-index:1101;flex-direction:column;animation:.3s slideUp;display:flex;position:fixed;inset:0;overflow:hidden}.shopping-handle{display:none}.shopping-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.shopping-header-left{align-items:center;gap:12px;display:flex}.shopping-header-icon{color:var(--primary);font-size:24px}.shopping-header h2{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.shopping-count{color:var(--text-secondary);font-size:13px}.shopping-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;align-items:center;padding:4px;font-size:26px;display:flex}.shopping-close:hover{color:var(--text-primary)}.shopping-mode-toggle{background:var(--bg-light);border-bottom:1px solid var(--border);gap:0;padding:10px 16px;display:flex}.shopping-mode-btn{border:2px solid var(--border);background:var(--bg-white);color:var(--text-secondary);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.shopping-mode-btn:first-child{border-right:1px solid var(--border);border-radius:10px 0 0 10px}.shopping-mode-btn:last-child{border-left:1px solid var(--border);border-radius:0 10px 10px 0}.shopping-mode-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.shopping-mode-btn svg{font-size:16px}.shopping-cost{background:var(--bg-light);color:var(--text-secondary);border-bottom:1px solid var(--border);padding:10px 20px;font-size:14px}.shopping-cost strong{color:var(--success);font-weight:700}.shopping-list{padding:12px 20px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.shopping-empty{text-align:center;color:var(--text-secondary);padding:40px 20px}.shopping-empty p{font-size:14px}.shopping-item{border-bottom:1px solid var(--border-light,var(--border));cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;align-items:center;gap:12px;padding:12px 0;transition:opacity .2s;display:flex}.shopping-item:last-child{border-bottom:none}.shopping-item.checked{opacity:.5}.shopping-item.checked .shopping-item-name{text-decoration:line-through}.shopping-checkbox{border:2px solid var(--border);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;transition:all .2s;display:flex}.shopping-checkbox.checked{background:var(--success);border-color:var(--success)}.shopping-item-name{color:var(--text-primary);flex:1;font-size:15px;font-weight:500}.shopping-item-amount{color:var(--text-secondary);white-space:nowrap;font-size:13px;font-weight:500}.planner-weekly-summary{margin-top:8px;padding:16px 20px}.planner-weekly-summary-title{color:var(--text-primary);margin:0 0 12px;font-size:16px;font-weight:700}.planner-weekly-summary-cards{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.planner-summary-card{background:var(--bg-light);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;display:flex}.planner-summary-icon{margin-bottom:4px;font-size:22px}.planner-summary-icon.calories{color:var(--primary)}.planner-summary-icon.cost{color:var(--success)}.planner-summary-icon.filled{color:var(--secondary)}.planner-summary-value{color:var(--text-primary);font-size:18px;font-weight:700}.planner-summary-label{color:var(--text-secondary);font-size:12px;font-weight:500}.planner-summary-sub{color:var(--text-light);font-size:11px}.planner-page{background:var(--bg-light);min-height:100vh;padding-bottom:100px}.planner-loading{min-height:60vh;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.planner-header{padding:16px 20px 8px}.planner-header-top{justify-content:space-between;align-items:center;display:flex}.planner-header-top h1{color:var(--text-primary);margin:0;font-size:24px;font-weight:700}.planner-header-actions{gap:6px;display:flex}.planner-view-btn{border:2px solid var(--border);background:var(--bg-white);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;font-size:18px;transition:all .2s;display:flex}.planner-view-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.planner-persons{background:var(--bg-white);border:1px solid var(--border);border-radius:12px;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;display:flex}.planner-persons-icon{color:var(--primary);font-size:18px}.planner-persons-label{color:var(--text-secondary);font-size:14px;font-weight:600}.planner-persons-btn{border:1.5px solid var(--border);background:var(--bg-light);width:30px;height:30px;color:var(--text-primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:16px;transition:all .15s;display:flex}.planner-persons-btn:active{transform:scale(.92)}.planner-persons-btn:disabled{opacity:.3;cursor:default}.planner-persons-value{color:var(--text-primary);text-align:center;min-width:24px;font-size:18px;font-weight:700}.planner-meals{flex-direction:column;gap:4px;padding:0 20px;display:flex}.planner-random-btn{background:var(--bg-white);border:2px dashed var(--border);color:var(--text-secondary);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:calc(100% - 40px);margin:16px 20px 0;padding:12px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.planner-random-btn:hover{border-color:var(--secondary);color:var(--secondary);background:var(--secondary-light,#4ecdc414)}.planner-random-btn svg{font-size:20px}.planner-shopping-btn{background:var(--gradient-primary,linear-gradient(135deg, var(--primary), var(--primary-dark,#e85d5d)));color:#fff;cursor:pointer;width:calc(100% - 40px);box-shadow:var(--shadow-sm);border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;margin:20px 20px 0;padding:14px;font-size:15px;font-weight:600;transition:all .2s;display:flex}.planner-shopping-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.planner-shopping-btn:active{transform:scale(.98)}.planner-shopping-btn svg{font-size:20px}.profile-page{background:var(--bg-light);min-height:100vh;padding:20px}.profile-loading{flex-direction:column;justify-content:center;align-items:center;min-height:60vh;display:flex}.profile-header{text-align:center;color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:20px;margin-bottom:20px;padding:40px 20px}.profile-avatar{border:4px solid #fff;border-radius:50%;width:100px;height:100px;margin:0 auto 16px;overflow:hidden;box-shadow:0 4px 12px #0003}.profile-avatar img{object-fit:cover;width:100%;height:100%}.avatar-placeholder{background:#ffffff4d;justify-content:center;align-items:center;width:100%;height:100%;font-size:36px;font-weight:700;display:flex}.profile-name{margin-bottom:8px;font-size:24px;font-weight:700}.profile-email{opacity:.9;font-size:14px}.profile-stats{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}.stat-card{background:var(--bg-white);text-align:center;box-shadow:var(--shadow-sm);border-radius:16px;padding:20px}.stat-value{color:var(--primary);margin-bottom:4px;font-size:28px;font-weight:700}.stat-label{color:var(--text-secondary);font-size:13px}.profile-menu{background:var(--bg-white);box-shadow:var(--shadow-sm);border-radius:16px;margin-bottom:20px;overflow:hidden}.menu-item{border-bottom:1px solid var(--bg-light);cursor:pointer;align-items:center;gap:16px;padding:16px 20px;transition:background .2s;display:flex}.menu-item:last-child{border-bottom:none}.menu-item:hover{background:var(--bg-light)}.menu-item span:first-child{font-size:24px}.menu-item span:nth-child(2){flex:1;font-weight:500}.menu-arrow{color:var(--text-secondary);font-size:24px}.profile-version{text-align:center;color:var(--text-secondary);padding:20px;font-size:14px}.feedback-overlay{z-index:1000;background:#00000080;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.feedback-modal{background:var(--bg-white);border-radius:20px 20px 0 0;width:100%;max-height:85vh;padding:24px 20px;animation:.3s slideUp;overflow-y:auto}.feedback-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.feedback-header h3{color:var(--text-primary);font-size:20px;font-weight:700}.feedback-close{background:var(--bg-light);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex}.feedback-types{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.feedback-type-btn{border:2px solid var(--bg-light);background:var(--bg-white);cursor:pointer;color:var(--text-secondary);border-radius:20px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s}.feedback-type-btn.active{border-color:var(--primary);color:var(--primary);background:#ff6b6b14}.feedback-textarea{border:2px solid var(--bg-light);resize:vertical;background:var(--bg-white);width:100%;min-height:120px;color:var(--text-primary);border-radius:12px;padding:14px 16px;font-family:inherit;font-size:15px;transition:border-color .2s}.feedback-textarea:focus{border-color:var(--primary);outline:none}.feedback-textarea::placeholder{color:var(--text-secondary)}.feedback-counter{text-align:right;color:var(--text-secondary);margin-top:4px;margin-bottom:12px;font-size:12px}.feedback-error{color:#e74c3c;text-align:center;margin-bottom:12px;font-size:14px}.feedback-submit{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:14px;font-size:16px;font-weight:600;transition:opacity .2s}.feedback-submit:disabled{opacity:.5;cursor:not-allowed}.feedback-submit:not(:disabled):active{opacity:.8}.feedback-success{text-align:center;padding:40px 20px}.feedback-success-icon{color:#fff;background:#2ecc71;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;font-size:32px;display:flex}.feedback-success p{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:600}.feedback-success-sub{color:var(--text-secondary)!important;font-size:14px!important;font-weight:400!important}.bottom-nav{background:var(--bg-white);padding:4px 0 calc(4px + env(safe-area-inset-bottom));box-shadow:0 -2px 10px var(--shadow);border-top:1px solid var(--border);z-index:1000;justify-content:space-around;align-items:center;height:52px;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:52px;padding:4px 8px;text-decoration:none;transition:all .2s;display:flex}.nav-item.active{color:var(--primary)}.nav-item:active{transform:scale(.95)}.nav-icon{font-size:20px}.nav-label{font-size:9px;font-weight:var(--font-weight-medium)}.nav-item.active .nav-icon{animation:.4s bounce}@media (width<=768px){.nav-label{font-size:9px}.nav-icon{font-size:20px}}.app{background-color:var(--bg-light);flex-direction:column;min-height:100vh;display:flex}.app-content{flex:1;margin-bottom:52px}.loading-screen{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-screen .loader{border:6px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:60px;height:60px;margin-bottom:20px;animation:1s linear infinite spin}.loading-screen p{font-size:18px;font-weight:500}
