@import"https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600;700&family=Bodoni+Moda:opsz,wght@6..96,400;6..96,600&display=swap";.sidebar{width:260px;background:var(--fp-white);border-right:1px solid var(--fp-border);display:flex;flex-direction:column;height:100vh;position:sticky;top:0}.logo{padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--fp-border);cursor:pointer}.logo-img{height:28px;width:auto}.nav-menu{flex:1;padding:var(--spacing-lg) var(--spacing-md)}.nav-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-md);margin-bottom:var(--spacing-xs);border-radius:var(--radius-md);cursor:pointer;font-size:.8125rem;font-weight:500;color:var(--fp-text-light);transition:all .2s ease}.nav-item:hover{background:var(--fp-bg);color:var(--fp-text)}.nav-item.active{background:#2f998d1a;color:var(--fp-teal)}.nav-item svg{flex-shrink:0}.upgrade-box{margin:var(--spacing-lg);padding:var(--spacing-lg);background:linear-gradient(135deg,#9fd6c94d,#cada2033);border-radius:var(--radius-lg);text-align:center;position:relative}.pro-badge{position:absolute;top:-8px;right:var(--spacing-md);background:var(--fp-lime);color:var(--fp-dark-teal);padding:2px 8px;border-radius:4px;font-size:.625rem;font-weight:700;letter-spacing:.5px}.upgrade-box h4{font-family:var(--font-body);font-size:.875rem;font-weight:600;color:var(--fp-teal);margin-bottom:2px}.upgrade-box p{font-size:1.125rem;font-weight:600;color:var(--fp-teal);margin-bottom:var(--spacing-md)}.upgrade-btn{padding:var(--spacing-sm) var(--spacing-lg);border:2px solid var(--fp-teal);background:var(--fp-white);color:var(--fp-teal);border-radius:20px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease}.upgrade-btn:hover{background:var(--fp-teal);color:var(--fp-white)}.header{display:flex;justify-content:flex-end;align-items:center;padding:var(--spacing-md) var(--spacing-xl);background:var(--fp-white);border-bottom:1px solid var(--fp-border);position:sticky;top:0;z-index:100}.user-info{display:flex;align-items:center;gap:var(--spacing-md)}.user-details{display:flex;flex-direction:column;align-items:flex-end}.user-name{font-size:.875rem;font-weight:500;color:var(--fp-text)}.user-tier{font-size:.6875rem;font-weight:600;color:var(--fp-teal);letter-spacing:.5px}.avatar{width:40px;height:40px;background:var(--fp-teal);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--fp-white);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s}.avatar:hover{background:var(--fp-dark-teal)}.avatar-img{width:40px;height:40px;border-radius:50%;object-fit:cover;cursor:pointer}.sign-out-btn{padding:6px 12px;background:transparent;border:1px solid var(--fp-border);border-radius:4px;font-size:.75rem;color:var(--fp-text-secondary);cursor:pointer;transition:all .2s}.sign-out-btn:hover{background:var(--fp-bg);border-color:var(--fp-text-secondary);color:var(--fp-text)}.home-page{max-width:1200px;margin:0 auto;padding:var(--spacing-xl)}.welcome-section{margin-bottom:var(--spacing-xl)}.welcome-section h1{font-family:var(--font-heading);font-size:2rem;font-weight:400;color:var(--fp-text);margin-bottom:var(--spacing-xs)}.welcome-section h1 span{font-weight:600;color:var(--fp-dark-teal)}.welcome-section p{color:var(--fp-text-muted);font-size:1rem}.hero-ctas{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.cta-card{position:relative;padding:var(--spacing-xl);border-radius:var(--radius-lg);cursor:pointer;transition:all .3s ease;border:none;text-align:left;overflow:hidden}.cta-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.cta-card.primary{background:linear-gradient(135deg,var(--fp-teal) 0%,var(--fp-dark-teal) 100%);color:#fff}.cta-card.secondary{background:var(--fp-white);border:2px solid var(--fp-border);color:var(--fp-text)}.cta-card.secondary:hover{border-color:var(--fp-teal)}.cta-content h3{font-family:var(--font-heading);font-size:1.25rem;font-weight:500;margin-bottom:var(--spacing-xs)}.cta-card.primary h3{color:#fff}.cta-content p{font-size:.875rem;opacity:.9}.cta-icon{position:absolute;right:var(--spacing-lg);top:50%;transform:translateY(-50%);opacity:.3}.cta-icon-emoji{position:absolute;right:var(--spacing-lg);top:50%;transform:translateY(-50%);font-size:2.5rem;opacity:.5}.section{margin-bottom:var(--spacing-xl)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.section-header h2{font-family:var(--font-heading);font-size:1.25rem;font-weight:500;color:var(--fp-dark-teal);display:flex;align-items:center;gap:var(--spacing-sm)}.live-badge{background:var(--fp-red);color:#fff;padding:2px 8px;border-radius:10px;font-family:var(--font-body);font-size:.625rem;font-weight:700;letter-spacing:.5px}.see-all{color:var(--fp-teal);font-size:.8125rem;font-weight:600;text-decoration:none;display:flex;align-items:center;gap:4px;transition:color .2s}.see-all:hover{color:var(--fp-dark-teal)}.trending-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md)}.trending-card{background:var(--fp-white);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-sm)}.trending-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.trending-images{display:flex;height:100px;position:relative}.trending-images img{width:50%;object-fit:cover}.trending-images .connector{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:32px;height:32px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;color:var(--fp-teal);box-shadow:var(--shadow-md)}.trending-content{padding:var(--spacing-md)}.trending-content h4{font-family:var(--font-body);font-size:.875rem;font-weight:600;color:var(--fp-text);margin-bottom:var(--spacing-xs)}.trending-meta{display:flex;justify-content:space-between;align-items:center}.trending-meta .context{font-size:.6875rem;color:var(--fp-text-muted)}.trend-badge{font-size:.6875rem;font-weight:600;padding:2px 8px;border-radius:10px}.trend-badge.hot{background:#d83f2a1a;color:var(--fp-red)}.trend-badge.rising{background:#2f998d1a;color:var(--fp-teal)}.trending-match{display:flex;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--fp-border)}.trending-match .match-label{font-size:.625rem;color:var(--fp-text-muted);text-transform:uppercase;letter-spacing:.5px}.trending-match .match-score{font-size:.75rem;font-weight:600;color:var(--fp-teal)}.featured-card{display:flex;background:var(--fp-white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.featured-image{width:45%;position:relative}.featured-image img{width:100%;height:100%;object-fit:cover;min-height:300px}.featured-overlay{position:absolute;bottom:0;left:0;right:0;padding:var(--spacing-lg);background:linear-gradient(transparent,#104859e6)}.featured-overlay .pairing-names{font-family:var(--font-heading);font-size:1.5rem;font-weight:500;color:#fff}.featured-content{flex:1;padding:var(--spacing-xl);display:flex;flex-direction:column}.featured-label{font-size:.6875rem;font-weight:700;color:var(--fp-teal);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--spacing-sm)}.featured-content h3{font-family:var(--font-heading);font-size:1.5rem;font-weight:500;color:var(--fp-dark-teal);margin-bottom:var(--spacing-md)}.featured-content p{font-size:.9375rem;line-height:1.6;color:var(--fp-text-light);margin-bottom:var(--spacing-lg)}.molecules{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.molecule-tag{padding:4px 12px;background:var(--fp-bg);border-radius:20px;font-size:.75rem;color:var(--fp-text-light)}.explore-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--fp-teal);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s;align-self:flex-start;margin-top:auto}.explore-btn:hover{background:var(--fp-dark-teal)}.seasonal-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--spacing-md)}.seasonal-card{background:var(--fp-white);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.seasonal-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.seasonal-card img{width:100%;height:80px;object-fit:cover}.seasonal-card .placeholder-image{width:100%;height:80px;display:flex;align-items:center;justify-content:center;background:var(--fp-bg);font-size:2rem}.seasonal-info{padding:var(--spacing-sm) var(--spacing-md);text-align:center}.seasonal-info .name{display:block;font-size:.8125rem;font-weight:600;color:var(--fp-text);margin-bottom:2px}.seasonal-info .note{display:block;font-size:.6875rem;color:var(--fp-text-muted)}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}.recipe-card{background:var(--fp-white);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.recipe-card img{width:100%;height:140px;object-fit:cover}.recipe-content{padding:var(--spacing-md)}.recipe-content h4{font-family:var(--font-body);font-size:.9375rem;font-weight:600;color:var(--fp-text);margin-bottom:4px}.recipe-content .chef{font-size:.75rem;color:var(--fp-text-muted)}.recipe-placeholder{width:100%;height:140px;background:var(--fp-bg);display:flex;align-items:center;justify-content:center;color:var(--fp-text-light)}.recipe-card.placeholder-card{opacity:.7}.loading-state{text-align:center;padding:var(--spacing-xl);color:var(--fp-text-muted)}@media(max-width:1024px){.trending-grid{grid-template-columns:repeat(2,1fr)}.seasonal-grid{grid-template-columns:repeat(3,1fr)}.recipe-grid{grid-template-columns:repeat(2,1fr)}.featured-card{flex-direction:column}.featured-image{width:100%}}@media(max-width:768px){.hero-ctas,.trending-grid{grid-template-columns:1fr}.seasonal-grid{grid-template-columns:repeat(2,1fr)}.recipe-grid{grid-template-columns:1fr}}.ingredient-card{position:relative;background:var(--fp-white);border:1px solid var(--fp-border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:all .2s ease}.ingredient-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.ingredient-card.selected{border:2px solid var(--fp-teal);box-shadow:0 0 0 3px #2f998d1a}.card-badges{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);display:flex;gap:4px;z-index:1}.card-badge{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.625rem;color:var(--fp-white);box-shadow:var(--shadow-sm)}.card-badge.trending{background:var(--fp-red)}.card-badge.seasonal{background:var(--fp-teal)}.card-image{width:100%;height:90px;object-fit:cover;background:var(--fp-bg)}.card-placeholder{width:100%;height:90px;display:flex;align-items:center;justify-content:center;background:var(--fp-bg);font-size:2rem}.card-info{padding:var(--spacing-sm) var(--spacing-md)}.card-info h4{font-family:var(--font-body);font-size:.8125rem;font-weight:600;color:var(--fp-text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-info small{font-size:.6875rem;color:var(--fp-text-muted)}.info-panel{width:340px;background:var(--fp-white);border-left:1px solid var(--fp-border);overflow-y:auto;flex-shrink:0}.info-panel.empty{display:flex;align-items:center;justify-content:center}.empty-panel{text-align:center;padding:var(--spacing-xl);color:var(--fp-text-muted)}.empty-panel .icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}.empty-panel h3{font-family:var(--font-heading);font-size:1.125rem;font-weight:500;color:var(--fp-text-light);margin-bottom:var(--spacing-sm)}.empty-panel p{font-size:.875rem;line-height:1.5}.hero-image{width:100%;height:200px;object-fit:cover}.hero-placeholder{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background:var(--fp-bg);font-size:4rem}.info-panel .content{padding:var(--spacing-lg)}.info-panel h2{font-family:var(--font-heading);font-size:1.5rem;font-weight:500;color:var(--fp-dark-teal);margin-bottom:var(--spacing-sm);letter-spacing:1px}.info-panel .description{font-size:.875rem;line-height:1.6;color:var(--fp-text-light);margin-bottom:var(--spacing-md)}.info-section{border-top:1px solid var(--fp-border);padding:var(--spacing-md) 0}.info-section-title{font-size:.6875rem;font-weight:700;color:var(--fp-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-sm);display:flex;align-items:center;gap:var(--spacing-sm)}.new-badge{background:var(--fp-lime);color:var(--fp-dark-teal);padding:1px 6px;border-radius:8px;font-size:.5625rem;font-weight:700}.season-chart{display:flex;gap:2px}.season-month{flex:1;text-align:center}.season-month .label{font-size:.625rem;color:var(--fp-text-muted);margin-bottom:4px}.season-month .bar{height:4px;background:var(--fp-border);border-radius:2px}.season-month .bar.active{background:var(--fp-teal)}.season-month .bar.current{background:var(--fp-red)}.season-status{margin-top:var(--spacing-sm);font-size:.75rem;font-weight:500}.season-status.in-season{color:var(--fp-teal)}.pairing-preview{display:flex;flex-direction:column;gap:var(--spacing-xs)}.pairing-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--fp-bg);border-radius:var(--radius-md);cursor:pointer;transition:background .2s}.pairing-item:hover{background:#2f998d1a}.pairing-item .rank{font-size:1rem}.pairing-item .name{flex:1;font-size:.8125rem;font-weight:500;color:var(--fp-text)}.pairing-item .score{font-size:.75rem;font-weight:600;color:var(--fp-teal)}.info-note{font-size:.6875rem;color:var(--fp-text-muted);margin-top:var(--spacing-sm)}.cuisine-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.cuisine-tag{padding:4px 10px;background:var(--fp-bg);border-radius:12px;font-size:.6875rem;color:var(--fp-text-light)}.panel-buttons{display:flex;gap:var(--spacing-sm)}.panel-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--fp-teal);background:var(--fp-white);color:var(--fp-teal);border-radius:var(--radius-md);font-family:var(--font-body);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s}.panel-btn:hover,.panel-btn.primary{background:var(--fp-teal);color:var(--fp-white)}.panel-btn.primary:hover{background:var(--fp-dark-teal)}.loading{font-size:.8125rem;color:var(--fp-text-muted);padding:var(--spacing-sm)}.inspire-page{display:flex;height:calc(100vh - 65px)}.inspire-content{flex:1;padding:var(--spacing-xl);overflow-y:auto}.inspire-content h1{font-family:var(--font-heading);font-size:1.75rem;font-weight:400;color:var(--fp-text);margin-bottom:var(--spacing-lg)}.search-bar{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.search-bar input{flex:1;padding:var(--spacing-md) var(--spacing-lg);border:1px solid var(--fp-border);border-radius:var(--radius-md);font-family:var(--font-body);font-size:.875rem;transition:all .2s}.search-bar input:focus{outline:none;border-color:var(--fp-teal);box-shadow:0 0 0 3px #2f998d1a}.search-bar button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:var(--fp-teal);color:var(--fp-white);border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.5px;cursor:pointer;transition:background .2s}.search-bar button:hover{background:var(--fp-dark-teal)}.quick-filters{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.filter-chip{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--fp-border);border-radius:20px;background:var(--fp-white);font-family:var(--font-body);font-size:.8125rem;color:var(--fp-text-light);cursor:pointer;transition:all .2s}.filter-chip:hover{border-color:var(--fp-teal);color:var(--fp-teal)}.filter-chip.active{background:var(--fp-teal);border-color:var(--fp-teal);color:var(--fp-white)}.filters-row{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:.6875rem;font-weight:600;color:var(--fp-text-muted);text-transform:uppercase;letter-spacing:.5px}.filter-group select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--fp-border);border-radius:var(--radius-md);font-family:var(--font-body);font-size:.8125rem;color:var(--fp-text);min-width:140px;cursor:pointer;transition:all .2s}.filter-group select:focus{outline:none;border-color:var(--fp-teal)}.filter-group select:disabled{background:var(--fp-bg);color:var(--fp-text-muted);cursor:not-allowed}.loading-state,.empty-state{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--fp-text-muted);font-size:.9375rem}.mode-toggle{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:4px;background:var(--fp-bg);border-radius:var(--radius-lg);width:fit-content}.mode-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);background:transparent;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--fp-text-light);cursor:pointer;transition:all .2s}.mode-btn:hover{color:var(--fp-text)}.mode-btn.active{background:var(--fp-white);color:var(--fp-teal);box-shadow:var(--shadow-sm)}.ingredient-reason{margin-top:var(--spacing-xs);padding:0 var(--spacing-sm);font-size:.75rem;color:var(--fp-text-muted);text-align:center;line-height:1.4}.loading-state{flex-direction:column;gap:var(--spacing-md)}@media(max-width:900px){.inspire-page{flex-direction:column}.ingredient-grid{grid-template-columns:repeat(2,1fr)}.mode-toggle{width:100%}.mode-btn{flex:1;justify-content:center}}.make-recipe-page{height:calc(100vh - 65px);overflow-y:auto}.make-recipe-content{padding:var(--spacing-xl);max-width:1200px;margin:0 auto}.make-recipe-content h1{font-family:var(--font-heading);font-size:1.75rem;font-weight:400;color:var(--fp-text);margin-bottom:var(--spacing-xs)}.make-recipe-content .subtitle{font-size:.9375rem;color:var(--fp-text-muted);margin-bottom:var(--spacing-xl)}.prompt-form{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.prompt-input{width:100%;padding:var(--spacing-lg);border:2px solid var(--fp-border);border-radius:var(--radius-lg);font-family:var(--font-body);font-size:1rem;line-height:1.6;resize:vertical;min-height:120px;transition:all .2s}.prompt-input:focus{outline:none;border-color:var(--fp-teal);box-shadow:0 0 0 4px #2f998d1a}.prompt-input::placeholder{color:var(--fp-text-muted)}.prompt-submit{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);align-self:flex-start;padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--fp-teal) 0%,var(--fp-dark-teal) 100%);color:var(--fp-white);border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.prompt-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.prompt-submit:disabled{opacity:.6;cursor:not-allowed}.spinning{animation:spin 1s linear infinite}.ai-response{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,#9fd6c933,#cada201a);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.ai-explanation{flex:1;min-width:200px;font-size:.9375rem;color:var(--fp-text);margin:0}.ai-tag{padding:4px 12px;background:var(--fp-white);border-radius:20px;font-size:.75rem;font-weight:500;color:var(--fp-text-light)}.ai-tag.seasonal{background:var(--fp-lime);color:var(--fp-dark-teal)}.ai-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}.dish-type-selector{display:flex;align-items:center;gap:var(--spacing-sm)}.dish-type-selector label{font-size:.75rem;font-weight:600;color:var(--fp-text-muted)}.dish-type-selector select{padding:6px 12px;border:1px solid var(--fp-teal);border-radius:20px;font-size:.8125rem;font-weight:500;color:var(--fp-text);background:var(--fp-white);cursor:pointer;min-width:160px;transition:all .2s}.dish-type-selector select:focus{outline:none;box-shadow:0 0 0 2px #2f998d33}.dish-type-selector.error select{border-color:var(--fp-red)}.dish-type-error{font-size:.6875rem;color:var(--fp-red);margin-left:var(--spacing-xs)}.results-actions{display:flex;gap:var(--spacing-sm)}.refresh-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--fp-teal);border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.8125rem;font-weight:500;color:var(--fp-white);cursor:pointer;transition:all .2s}.refresh-btn:hover:not(:disabled){background:var(--fp-dark-teal)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.selected-count{font-size:.875rem;font-weight:400;color:var(--fp-teal);margin-left:var(--spacing-sm)}.make-recipe-action{display:flex;justify-content:center;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--fp-border)}.make-recipe-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xxl);background:linear-gradient(135deg,var(--fp-teal) 0%,var(--fp-dark-teal) 100%);color:var(--fp-white);border:none;border-radius:var(--radius-lg);font-family:var(--font-body);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-md)}.make-recipe-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.ai-error{padding:var(--spacing-md) var(--spacing-lg);background:#d83f2a1a;border:1px solid rgba(216,63,42,.3);border-radius:var(--radius-md);color:var(--fp-red);font-size:.875rem;margin-bottom:var(--spacing-lg)}.ai-results-section{margin-top:var(--spacing-lg)}.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.results-header h3{font-family:var(--font-heading);font-size:1.25rem;font-weight:400;color:var(--fp-text);margin:0}.clear-btn{padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--fp-border);border-radius:var(--radius-md);font-family:var(--font-body);font-size:.8125rem;color:var(--fp-text-light);cursor:pointer;transition:all .2s}.clear-btn:hover{border-color:var(--fp-teal);color:var(--fp-teal)}.ingredient-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md)}.ai-ingredient-card{display:flex;flex-direction:column}.ingredient-card-wrapper{position:relative}.info-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ffffffe6;border:1px solid var(--fp-border);border-radius:50%;cursor:pointer;transition:all .2s;z-index:2}.info-btn:hover{background:var(--fp-teal);border-color:var(--fp-teal);color:var(--fp-white)}.ingredient-meta{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:var(--spacing-xs);padding:0 var(--spacing-sm)}.match-score{display:flex;align-items:center;gap:4px;font-size:.75rem;font-weight:600;color:var(--fp-teal)}.match-dot{width:8px;height:8px;border-radius:50%;background:var(--fp-teal)}.ingredient-reason{font-size:.7rem;color:var(--fp-text-muted);text-align:center;line-height:1.3;margin:0}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);min-height:200px;color:var(--fp-text-muted);font-size:.9375rem}.loading-state p{margin:0}.empty-prompt-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--spacing-xxl) var(--spacing-xl);color:var(--fp-text-muted)}.empty-prompt-state svg{margin-bottom:var(--spacing-md);opacity:.5}.empty-prompt-state h3{font-family:var(--font-heading);font-size:1.25rem;font-weight:400;color:var(--fp-text);margin-bottom:var(--spacing-sm)}.empty-prompt-state p{max-width:400px;font-size:.9375rem;line-height:1.6}.info-panel.empty{display:flex;align-items:center;justify-content:center;background:var(--fp-bg)}.empty-panel{text-align:center;padding:var(--spacing-xl)}.empty-panel .icon{font-size:3rem;margin-bottom:var(--spacing-md);color:var(--fp-teal);opacity:.5}.empty-panel h3{font-family:var(--font-heading);font-size:1.125rem;margin-bottom:var(--spacing-sm)}.empty-panel p{font-size:.875rem;color:var(--fp-text-muted);line-height:1.5}.info-popup-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.info-popup{background:var(--fp-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:500px;width:100%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.info-popup-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--fp-border)}.info-popup-header h3{font-family:var(--font-heading);font-size:1.125rem;font-weight:500;color:var(--fp-text);margin:0}.close-popup-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--fp-text-light);cursor:pointer;transition:all .2s}.close-popup-btn:hover{background:var(--fp-bg);color:var(--fp-text)}.info-popup-content{flex:1;overflow-y:auto;padding:var(--spacing-md)}@media(max-width:1200px){.ingredient-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.make-recipe-page{flex-direction:column}.ingredient-grid{grid-template-columns:repeat(2,1fr)}}.pairing-board{position:relative;height:100%;background:#f5f7f7}.board-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;padding:8px 16px;background:transparent;z-index:20;pointer-events:none}.board-header>*{pointer-events:auto}.board-header .back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;color:#333;cursor:pointer;border-radius:4px}.board-header .back-btn:hover{background:#f0f0f0}.board-header .header-logo{height:24px}.board-header .ingredients-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.header-spacer{flex:1}.board-layout{display:flex;height:calc(100% - 80px);overflow:hidden}.board-layout.full-width{width:100%}.canvas-container{flex:1;position:relative;overflow:hidden;display:flex;align-items:stretch}.canvas-container.expanded{width:100%}.add-ingredient-btn{position:absolute;top:20px;left:20px;width:52px;height:52px;border-radius:50%;background:var(--fp-teal);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000026;z-index:10;transition:transform .2s,box-shadow .2s}.add-ingredient-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #0003;background:var(--fp-dark-teal)}.canvas{width:100%;height:100%;position:relative;background-image:radial-gradient(circle,#c8d6d4 1.5px,transparent 1.5px);background-size:22px 22px;background-color:#e6edeb;transition:transform .3s ease;transform-origin:center center}.tree-svg{position:absolute;left:0;top:0;width:100%;height:100%}.connection-line{stroke:#333;stroke-width:2;fill:none}.connector-dot-teal{fill:var(--fp-teal);stroke:#fff;stroke-width:2}.connector-dot-gray{fill:#999;stroke:#fff;stroke-width:2}.connector-dot-best{fill:#00a86b;stroke:#fff;stroke-width:2}.connector-dot-good{fill:#7cb342;stroke:#fff;stroke-width:2}.connector-dot-match{fill:#ffc107;stroke:#fff;stroke-width:2}.node-circle-bg{fill:#fff;stroke:#d0d0d0;stroke-width:3;filter:drop-shadow(0 3px 6px rgba(0,0,0,.12))}.node-circle-bg.main{stroke:silver;stroke-width:4}.node-placeholder-text{fill:#999;font-weight:600;font-family:inherit}.node-label-text{font-size:11px;font-weight:700;fill:#333;letter-spacing:.5px;font-family:inherit;text-transform:uppercase}.zoom-controls{position:absolute;bottom:20px;right:20px;display:flex;flex-direction:column;gap:4px;z-index:10}.zoom-controls button{width:32px;height:32px;border-radius:4px;background:#fff;border:1px solid #ddd;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#666;transition:all .2s}.zoom-controls button:hover{background:#f5f5f5;border-color:#bbb}.board-sidebar{width:300px;background:#fff;border-left:1px solid #e0e0e0;padding:24px;display:flex;flex-direction:column;overflow-y:auto}.pairing-title{font-size:16px;font-weight:400;color:#333;margin-bottom:32px;line-height:1.5}.ingredients-section,.preparation-section{margin-bottom:28px}.ingredients-section h3,.preparation-section h3{font-size:15px;font-weight:400;color:#333;margin-bottom:16px}.ingredients-list{display:flex;flex-direction:column}.ingredient-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f0f0f0}.ingredient-row:last-child{border-bottom:none}.ingredient-name{font-size:14px;color:#333}.ingredient-amount,.placeholder-text{font-size:14px;color:#999}.sidebar-actions{margin-top:auto;display:flex;flex-direction:column;gap:10px}.btn-save{width:100%;padding:14px 20px;background:var(--fp-teal);color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.btn-save:hover{background:var(--fp-dark-teal)}.btn-create{width:100%;padding:14px 20px;background:#fff;color:var(--fp-teal);border:2px solid var(--fp-teal);border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-create:hover{background:var(--fp-teal);color:#fff}.add-panel-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:stretch;justify-content:flex-end;z-index:100}.add-panel{width:85%;max-width:1400px;background:#fff;display:flex;flex-direction:column;position:relative;box-shadow:-4px 0 20px #00000026}.add-panel .close-btn{position:absolute;top:12px;right:20px;width:44px;height:44px;background:none;border:none;font-size:36px;font-weight:300;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.add-panel .close-btn:hover{color:#333}.add-panel>h2{font-size:24px;font-weight:400;color:#333;padding:12px 32px 12px 200px;margin:0;flex-shrink:0}.tree-preview{position:absolute;left:0;top:50px;bottom:0;width:180px;background:#fafafa;border-right:1px solid #e8e8e8;padding:20px 12px;overflow-y:auto}.preview-main{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.preview-main img{width:90px;height:90px;border-radius:50%;object-fit:cover;border:3px solid #ddd;margin-bottom:8px}.preview-main span{font-size:10px;font-weight:600;color:#333;text-align:center;text-transform:uppercase}.preview-placeholder{width:90px;height:90px;border-radius:50%;background:#e8e8e8;display:flex;align-items:center;justify-content:center;font-size:28px;color:#999;margin-bottom:8px}.preview-item{display:flex;align-items:center;gap:8px;padding:6px 0;margin-left:20px;position:relative}.preview-item:before{content:"";position:absolute;left:-10px;top:-6px;bottom:50%;width:1px;background:#555}.preview-item:after{content:"";position:absolute;left:-10px;top:50%;width:6px;height:1px;background:#555}.preview-item input[type=checkbox]{accent-color:var(--fp-teal);width:14px;height:14px}.preview-item span{font-size:11px;font-weight:600;color:#333}.match-legend.sidebar-legend{margin-top:20px;padding-top:16px;border-top:1px solid #e0e0e0;display:flex;flex-direction:column;gap:8px}.match-legend .legend-title{font-size:11px;font-weight:600;color:#666;text-transform:uppercase;margin-bottom:4px}.canvas-container .match-legend{position:absolute;bottom:20px;left:20px;display:flex;flex-direction:column;gap:6px;background:#fff;padding:12px;border-radius:8px;box-shadow:0 1px 4px #0000001a}.legend-item{display:flex;align-items:center;gap:8px}.legend-item .match-indicator{width:20px;height:20px}.legend-item .match-indicator .indicator-dot{width:6px;height:6px}.legend-item strong{font-size:10px;font-weight:600;color:#333}.legend-item small{display:none}.sidebar-legend .legend-item span:not(.match-indicator){font-size:11px;color:#666}.match-indicator{width:28px;height:28px;border-radius:50%;border:2px solid #444;display:flex;align-items:center;justify-content:center;flex-shrink:0}.match-indicator .indicator-dot{width:10px;height:10px;border-radius:50%}.match-indicator.best{background:var(--fp-teal);border-color:var(--fp-teal)}.match-indicator.best .indicator-dot{background:#fff}.match-indicator.good{background:#fff;border-color:#444}.match-indicator.good .indicator-dot{background:var(--fp-teal)}.match-indicator.match{background:#fff;border-color:#444}.match-indicator.match .indicator-dot{background:transparent;border:2px solid var(--fp-teal)}.add-panel .all-filters-row{display:flex;align-items:center;gap:16px;padding:8px 16px;background:#f8f8f8;border-bottom:1px solid #eee;margin-left:180px}.add-panel .quick-filters{display:flex;gap:6px;padding:0;flex-wrap:nowrap}.add-panel .filter-chip{padding:6px 14px;font-size:12px;font-weight:500;border:1px solid #ddd;border-radius:16px;background:#fff;color:#666;cursor:pointer;transition:all .15s}.add-panel .filter-chip:hover{border-color:var(--fp-teal);color:var(--fp-teal)}.add-panel .filter-chip.active{background:var(--fp-teal);border-color:var(--fp-teal);color:#fff}.add-panel .filters-row{display:flex;align-items:center;gap:10px;flex:1}.add-panel .filter-group{display:flex;align-items:center;gap:4px}.add-panel .filter-group label{font-size:10px;font-weight:600;color:#666;text-transform:uppercase;white-space:nowrap}.add-panel .filter-group select{padding:5px 8px;font-size:12px;border:1px solid #ddd;border-radius:4px;background:#fff;color:#333;cursor:pointer;transition:border-color .15s;min-width:100px}.add-panel .filter-group select:hover{border-color:#aaa}.add-panel .filter-group select:focus{outline:none;border-color:var(--fp-teal)}.add-panel .filter-group select:disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.matches-content{flex:1;margin-left:180px;padding:16px;overflow-y:auto;background:#fafafa}.matches-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0}@media(max-width:1000px){.matches-grid{grid-template-columns:repeat(3,1fr)}}.match-card{display:flex;flex-direction:column;align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:8px;cursor:pointer;transition:all .15s;position:relative;height:140px;box-sizing:border-box}.match-card:hover{border-color:var(--fp-teal);box-shadow:0 2px 8px #00000014}.match-image{width:80px;height:80px;border-radius:50%;overflow:hidden;flex-shrink:0;background:#f5f5f5;margin-bottom:6px}.match-image img{width:100%;height:100%;object-fit:cover}.match-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:24px;color:#aaa;background:#eee}.match-info{text-align:center;width:100%;min-width:0}.match-name{display:block;font-size:11px;font-weight:500;color:#333;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.match-category{display:block;font-size:9px;color:#999}.match-card .match-indicator{position:absolute;top:6px;right:6px;width:22px;height:22px}.match-card .match-indicator .indicator-dot{width:8px;height:8px}.loading{display:flex;align-items:center;justify-content:center;padding:60px;color:#666;font-size:14px}.board-bottom-bar{position:absolute;bottom:0;left:0;right:0;height:80px;background:#fff;border-top:1px solid #e0e0e0;display:flex;align-items:center;justify-content:flex-end;padding:0 24px;z-index:20}.ingredients-chips{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:8px 0}.ingredient-chip{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#f5f5f5;border-radius:20px;font-size:13px;font-weight:500;color:#333;white-space:nowrap}.ingredient-chip.main{background:var(--fp-teal);color:#fff}.ingredient-chip .remove-chip{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;background:#0000001a;border:none;border-radius:50%;cursor:pointer;color:inherit;transition:background .2s}.ingredient-chip .remove-chip:hover{background:#0003}.add-chip{display:flex;align-items:center;gap:4px;padding:8px 14px;background:#fff;border:2px dashed #ccc;border-radius:20px;font-size:13px;font-weight:500;color:#666;cursor:pointer;transition:all .2s}.add-chip:hover{border-color:var(--fp-teal);color:var(--fp-teal)}.bottom-actions{display:flex;align-items:center;gap:12px;margin-left:24px}.btn-save-pairing,.btn-make-recipe,.btn-new-pairing{display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-save-pairing{background:#fff;border:2px solid #ddd;color:#333}.btn-save-pairing:hover{border-color:var(--fp-teal);color:var(--fp-teal)}.btn-make-recipe{background:var(--fp-teal);border:none;color:#fff}.btn-make-recipe:hover:not(:disabled){background:var(--fp-dark-teal)}.btn-make-recipe:disabled{background:#ccc;cursor:not-allowed}.btn-new-pairing{background:#fff;border:2px solid #ddd;color:#333}.btn-new-pairing:hover{border-color:#999;background:#f5f5f5}.dish-type-page{display:flex;flex-direction:column;height:100%;background:var(--fp-bg);padding-bottom:80px}.dish-type-header{padding:24px 32px;border-bottom:1px solid var(--fp-border);background:var(--fp-white)}.back-button{display:inline-flex;align-items:center;gap:8px;background:none;border:none;color:var(--fp-text-light);font-size:14px;cursor:pointer;padding:8px 0;margin-bottom:16px;transition:color .2s}.header-content{display:flex;align-items:center;gap:16px}.header-icon{width:56px;height:56px;border-radius:12px;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));display:flex;align-items:center;justify-content:center;color:#fff}.header-text h1{font-size:28px;font-weight:600;color:var(--fp-text);margin:0}.header-text .subtitle{font-size:15px;color:var(--fp-text-light);margin:4px 0 0}.header-text .subtitle strong{color:var(--fp-text)}.search-container{position:relative;padding:20px 32px;background:var(--fp-white)}.search-icon{position:absolute;left:48px;top:50%;transform:translateY(-50%);color:var(--fp-text-light)}.search-input{width:100%;padding:14px 14px 14px 48px;border:1px solid var(--fp-border);border-radius:12px;font-size:15px;background:var(--fp-bg);color:var(--fp-text);transition:border-color .2s,box-shadow .2s}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #8b5cf61a}.search-input::placeholder{color:var(--fp-text-light)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--fp-text-light)}.loading-spinner{width:40px;height:40px;border:3px solid var(--fp-border);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.error-message{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;margin:20px 32px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444}.error-message button{padding:6px 12px;background:#ef4444;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px}.categories-container,.search-results{flex:1;overflow-y:auto;padding:24px 32px}.category-section{margin-bottom:28px}.category-title{font-size:13px;font-weight:600;color:var(--fp-text-light);text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px}.dish-type-chips{display:flex;flex-wrap:wrap;gap:10px}.dish-type-chip{display:inline-flex;flex-direction:column;align-items:flex-start;padding:12px 18px;background:var(--fp-white);border:1px solid var(--fp-border);border-radius:10px;font-size:14px;font-weight:500;color:var(--fp-text);cursor:pointer;transition:all .2s}.dish-type-chip:hover{border-color:var(--primary-color);background:#8b5cf60d}.dish-type-chip.selected{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));border-color:var(--primary-color);color:#fff}.dish-type-chip .chip-category{font-size:11px;font-weight:400;color:var(--fp-text-light);margin-top:2px}.dish-type-chip.selected .chip-category{color:#fffc}.no-results{color:var(--fp-text-light);font-style:italic;padding:20px 0}.bottom-bar{position:fixed;bottom:0;left:240px;right:0;display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:var(--fp-white);border-top:1px solid var(--fp-border);z-index:100}.selection-info{display:flex;align-items:center;gap:8px}.selected-label{font-size:14px;color:var(--fp-text-light)}.selected-dish{font-size:16px;font-weight:600;color:var(--fp-text)}.hint-text{font-size:14px;color:var(--fp-text-light)}.continue-button{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.continue-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.continue-button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1024px){.bottom-bar{left:0}}:root{--balance-ok: #22c55e;--balance-medium: #f59e0b;--balance-low: #f59e0b;--balance-high: #ef4444}.balance-panel{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--bg-secondary);border-radius:12px;min-height:0;overflow-y:auto;overflow-x:hidden}.balance-panel.expanded{gap:16px}.balance-panel.empty,.balance-panel.loading,.balance-panel.error{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;color:var(--text-secondary);padding:32px;min-height:200px}.balance-panel.empty svg,.balance-panel.loading svg,.balance-panel.error svg{opacity:.5}.balance-panel.error{color:var(--balance-high)}.loading-spinner{width:32px;height:32px;border:3px solid var(--bg-tertiary);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.balance-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.balance-title{display:flex;align-items:center;gap:8px}.balance-title h3{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.balance-header-actions{display:flex;align-items:center;gap:8px}.dish-type-label{font-size:11px;color:var(--text-secondary);background:var(--bg-tertiary);padding:3px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.expand-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-color);background:var(--bg-primary);border-radius:6px;cursor:pointer;color:var(--text-secondary);transition:all .2s}.expand-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.score-section{display:flex;flex-direction:column;align-items:center;padding:8px 0}.score-section.expanded{flex-direction:row;justify-content:space-around;align-items:center;padding:16px 0}.score-gauge{position:relative;width:100px;height:100px}.score-section.expanded .score-gauge{width:120px;height:120px}.score-gauge svg{width:100%;height:100%}.score-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.score-number{display:block;font-size:24px;font-weight:700;color:var(--text-primary);line-height:1}.score-section.expanded .score-number{font-size:28px}.score-label{display:block;font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.quick-stats{display:flex;gap:24px}.quick-stat{display:flex;flex-direction:column;align-items:center;text-align:center}.quick-stat .stat-value{font-size:20px;font-weight:600;color:var(--text-primary)}.quick-stat .stat-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase}.balance-section{border:1px solid var(--border-color);border-radius:10px;background:var(--bg-primary)}.section-header{display:flex;align-items:center;gap:10px;width:100%;padding:14px 16px;background:transparent;border:none;cursor:pointer;font-size:14px;font-weight:600;color:var(--text-primary);text-align:left;transition:background .15s ease}.section-header:hover{background:var(--bg-tertiary)}.section-header>span:first-of-type{flex:1;font-weight:600;letter-spacing:-.01em}.section-header svg:first-child{color:var(--primary);flex-shrink:0}.section-header svg:last-child{color:var(--text-tertiary);flex-shrink:0;transition:transform .2s ease}.section-score{font-size:13px;font-weight:600;color:var(--text-primary);background:var(--bg-tertiary);padding:4px 10px;border-radius:6px}.section-content{padding:16px;border-top:1px solid var(--border-color);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.status-icon{flex-shrink:0}.status-icon.ok{color:var(--balance-ok)}.status-icon.low{color:var(--balance-low)}.status-icon.high{color:var(--balance-high)}.section-header .status-icon{margin-left:auto}.taste-radar{display:flex;flex-direction:column;align-items:center;gap:8px}.taste-radar svg{max-width:100%;height:auto}.taste-radar.expanded svg{max-width:none}.radar-label{font-size:10px;font-weight:500}.taste-radar.expanded .radar-label{font-size:11px}.radar-legend{display:flex;gap:16px;font-size:11px;color:var(--text-secondary)}.legend-item{display:flex;align-items:center;gap:6px}.legend-line{width:16px;height:3px;border-radius:2px}.legend-line.current{background:var(--primary)}.legend-line.ideal{background:var(--balance-ok);border:1px dashed var(--balance-ok)}.taste-gaps{display:flex;flex-direction:column;gap:4px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color)}.gap-item{display:flex;align-items:center;gap:8px;font-size:12px;padding:4px 0}.gap-dimension{flex:1;text-transform:capitalize}.gap-delta{font-weight:600;font-size:11px}.texture-group{margin-bottom:10px}.texture-group:last-child{margin-bottom:0}.texture-label{display:block;font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.texture-label.missing{color:var(--balance-high)}.texture-label.optional,.texture-label.warning{color:var(--balance-medium)}.texture-chips{display:flex;flex-wrap:wrap;gap:4px}.texture-chip{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;font-size:11px;border-radius:4px;text-transform:capitalize}.texture-chip.present{background:#22c55e26;color:var(--balance-ok)}.texture-chip.missing{background:#ef444426;color:var(--balance-high)}.texture-chip.optional,.texture-chip.warning{background:#f59e0b26;color:var(--balance-medium)}.components-list{display:flex;flex-direction:column;gap:10px}.component-bar{display:flex;flex-direction:column;gap:3px}.component-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:500;text-transform:capitalize}.component-name{color:var(--text-primary)}.component-track{position:relative;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.target-range{position:absolute;top:0;height:100%;background:#22c55e33;border-left:2px solid var(--balance-ok);border-right:2px solid var(--balance-ok)}.current-bar{position:absolute;top:0;left:0;height:100%;border-radius:3px;transition:width .3s ease}.component-values{display:flex;justify-content:space-between;font-size:10px;color:var(--text-secondary)}.current-value{font-weight:600;color:var(--text-primary)}.intensity-grid{display:flex;flex-direction:column;gap:8px}.intensity-item{display:grid;grid-template-columns:60px 1fr 50px;align-items:center;gap:8px}.intensity-label{font-size:11px;text-transform:capitalize;color:var(--text-secondary)}.intensity-bar{position:relative;height:5px;background:var(--bg-tertiary);border-radius:3px;overflow:visible}.intensity-fill{height:100%;border-radius:3px;transition:width .3s ease}.intensity-target{position:absolute;top:-2px;width:2px;height:9px;background:var(--text-secondary);border-radius:1px;transform:translate(-50%)}.intensity-values{font-size:10px;color:var(--text-secondary);text-align:right}.suggestions-list{display:flex;flex-direction:column;gap:8px}.suggestion-card{padding:10px;border-radius:6px;background:var(--bg-tertiary);border-left:3px solid transparent}.suggestion-card.priority-high{border-left-color:var(--balance-high)}.suggestion-card.priority-medium{border-left-color:var(--balance-medium)}.suggestion-card.priority-low{border-left-color:var(--balance-ok)}.suggestion-header{display:flex;gap:6px;margin-bottom:6px}.priority-badge{font-size:9px;text-transform:uppercase;letter-spacing:.5px;padding:2px 5px;border-radius:3px;color:#fff;font-weight:600}.category-badge{font-size:9px;text-transform:uppercase;letter-spacing:.5px;padding:2px 5px;border-radius:3px;background:var(--bg-secondary);color:var(--text-secondary)}.suggestion-text{font-size:12px;color:var(--text-primary);margin:0 0 6px;line-height:1.4}.suggestion-ingredients{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.try-label{font-size:10px;color:var(--text-secondary)}.ingredient-chip{display:inline-flex;align-items:center;gap:3px;padding:3px 6px;font-size:11px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;color:var(--text-primary);transition:all .2s ease}.ingredient-chip:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.ingredient-chip svg{opacity:.7}.ingredient-chip:hover svg{opacity:1}.balance-panel::-webkit-scrollbar{width:5px}.balance-panel::-webkit-scrollbar-track{background:transparent}.balance-panel::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}.balance-panel::-webkit-scrollbar-thumb:hover{background:var(--border-color)}.balance-panel.expanded .section-content{padding:20px}.balance-panel.expanded .section-content.suggestions-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.balance-panel.expanded .taste-content{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.balance-panel.expanded .taste-radar{grid-column:1}.balance-panel.expanded .taste-gaps{grid-column:2;margin-top:0;padding-top:0;border-top:none}.balance-panel.expanded .components-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.balance-panel.expanded .intensity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.balance-panel.expanded .intensity-item{display:flex;flex-direction:column;align-items:center;gap:8px}.balance-panel.expanded .intensity-label{text-align:center;font-weight:500;font-size:13px}.balance-panel.expanded .intensity-bar{width:100%;height:8px}.balance-panel.expanded .intensity-values{text-align:center;font-size:12px}.recipe-editor-page{display:flex;flex-direction:column;height:100%;background:var(--fp-bg)}.editor-header{display:flex;align-items:center;gap:24px;padding:16px 24px;background:var(--fp-white);border-bottom:1px solid var(--fp-border)}.back-button{display:inline-flex;align-items:center;gap:8px;background:none;border:none;color:var(--fp-text-light);font-size:14px;cursor:pointer;padding:8px 12px;border-radius:6px;transition:all .2s}.back-button:hover{background:var(--fp-bg);color:var(--fp-text)}.header-info{flex:1;display:flex;align-items:center;gap:12px}.recipe-title-input{font-size:24px;font-weight:600;border:none;background:transparent;color:var(--fp-text);padding:8px;min-width:300px;border-bottom:2px solid transparent;transition:border-color .2s}.recipe-title-input:focus{outline:none;border-bottom-color:var(--fp-teal)}.dish-type-badge{background:var(--fp-light-teal);color:var(--fp-dark-teal);padding:4px 12px;border-radius:16px;font-size:12px;font-weight:500;text-transform:uppercase}.servings-control{display:flex;align-items:center;gap:8px;background:var(--fp-bg);padding:8px 16px;border-radius:8px}.servings-control label{font-size:14px;color:var(--fp-text-light)}.servings-control button{width:28px;height:28px;border-radius:50%;border:1px solid var(--fp-border);background:var(--fp-white);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}.servings-control button:hover{background:var(--fp-teal);color:#fff;border-color:var(--fp-teal)}.servings-control>span{font-weight:600;min-width:24px;text-align:center}.editor-main{flex:1;display:flex;position:relative;overflow:hidden}.recipe-content{flex:1;padding:24px;overflow-y:auto;transition:margin-right .3s ease}.recipe-content.panel-open{margin-right:320px}.allergens-bar{display:flex;gap:8px;margin-bottom:16px;padding:8px 12px;background:var(--fp-white);border-radius:8px;box-shadow:var(--shadow-sm)}.allergen-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:#fff;cursor:help}.recipe-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.ingredients-section{background:var(--fp-white);border-radius:12px;padding:24px;box-shadow:var(--shadow-sm)}.ingredients-section h2{font-size:18px;font-weight:600;margin-bottom:16px;color:var(--fp-dark-teal)}.ingredients-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.ingredient-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--fp-bg);border-radius:8px;transition:all .2s}.ingredient-row:hover{background:var(--fp-light-teal)}.ingredient-info{display:flex;align-items:center;gap:12px;flex:1}.ingredient-image{width:36px;height:36px;border-radius:50%;object-fit:cover}.ingredient-name{font-size:14px;font-weight:500}.ingredient-controls{display:flex;align-items:center;gap:8px}.quantity-input{width:60px;padding:6px 8px;border:1px solid var(--fp-border);border-radius:6px;font-size:14px;text-align:right}.unit-select{padding:6px 8px;border:1px solid var(--fp-border);border-radius:6px;font-size:14px;background:var(--fp-white);cursor:pointer}.remove-btn{padding:6px;border:none;background:transparent;color:var(--fp-text-muted);cursor:pointer;border-radius:4px;transition:all .2s}.remove-btn:hover{background:#fee;color:#e74c3c}.add-ingredient{position:relative}.search-wrapper{display:flex;align-items:center;gap:8px;padding:10px 12px;border:2px dashed var(--fp-border);border-radius:8px;transition:border-color .2s}.search-wrapper:focus-within{border-color:var(--fp-teal)}.add-icon{color:var(--fp-text-muted)}.add-ingredient-input{flex:1;border:none;background:transparent;font-size:14px;outline:none}.search-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--fp-white);border-radius:8px;box-shadow:var(--shadow-md);margin-top:4px;z-index:100;max-height:240px;overflow-y:auto}.search-result-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:none;background:none;cursor:pointer;text-align:left;transition:background .2s}.search-result-item:hover{background:var(--fp-bg)}.search-result-item img{width:32px;height:32px;border-radius:50%;object-fit:cover}.search-loading{padding:16px;text-align:center;color:var(--fp-text-muted)}.method-section{background:var(--fp-white);border-radius:12px;padding:24px;box-shadow:var(--shadow-sm)}.method-section h2{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;margin-bottom:16px;color:var(--fp-dark-teal)}.method-textarea{width:100%;min-height:500px;padding:16px;border:1px solid var(--fp-border);border-radius:8px;font-size:14px;line-height:1.8;resize:vertical;font-family:inherit}.method-textarea:focus{outline:none;border-color:var(--fp-teal)}.editor-footer{padding:24px;display:flex;justify-content:center;gap:16px}.save-admin-btn{display:flex;align-items:center;gap:8px;padding:14px 24px;background:#fff;color:#667eea;border:2px solid #667eea;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.save-admin-btn:hover:not(:disabled){background:#667eea;color:#fff}.save-admin-btn:disabled{border-color:var(--fp-gray);color:var(--fp-gray);cursor:not-allowed}.generate-btn{display:flex;align-items:center;gap:8px;padding:14px 32px;background:var(--fp-teal);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.generate-btn:hover:not(:disabled){background:var(--fp-dark-teal);transform:translateY(-2px);box-shadow:var(--shadow-md)}.generate-btn:disabled{background:var(--fp-gray);cursor:not-allowed}.panel-icons{position:fixed;right:0;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;padding:8px;background:var(--fp-white);border-radius:8px 0 0 8px;box-shadow:-2px 0 8px #0000001a;z-index:100}.panel-icon-btn{width:44px;height:44px;border:none;background:transparent;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--fp-text-light);transition:all .2s}.panel-icon-btn:hover{background:var(--fp-bg);color:var(--fp-teal)}.panel-icon-btn.active{background:var(--fp-teal);color:#fff}.panel-icon-btn.balance-btn{background:linear-gradient(135deg,var(--fp-light-teal),var(--fp-bg));border:2px solid var(--fp-teal)}.panel-icon-btn.balance-btn.active{background:var(--fp-teal);border-color:var(--fp-dark-teal)}.panel-icon-divider{height:1px;width:32px;background:var(--fp-border);margin:4px auto}.side-panel{position:fixed;right:0;top:0;bottom:0;width:320px;background:var(--fp-white);box-shadow:-4px 0 12px #0000001a;overflow-y:auto;z-index:90;animation:slideIn .3s ease}.side-panel.balance-panel-container{width:380px;padding:48px 16px 16px;background:var(--fp-bg);overflow:hidden;display:flex;flex-direction:column;transition:width .3s ease}.side-panel.balance-panel-container.expanded{width:600px}.side-panel.balance-panel-container .balance-panel{background:var(--fp-white);--bg-primary: var(--fp-white);--bg-secondary: var(--fp-bg);--bg-tertiary: #e8f4f4;--border-color: var(--fp-border);--text-primary: var(--fp-text);--text-secondary: var(--fp-text-light);--primary: var(--fp-teal);flex:1;overflow-y:auto;max-height:calc(100vh - 80px)}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.close-panel{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:var(--fp-bg);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--fp-text-light);transition:all .2s}.close-panel:hover{background:var(--fp-border);color:var(--fp-text)}.panel-content{padding:24px}.panel-content h3{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;margin-bottom:20px;color:var(--fp-dark-teal)}.panel-empty{color:var(--fp-text-muted);font-style:italic;text-align:center;padding:24px}.taste-bars{display:flex;flex-direction:column;gap:12px}.taste-label{width:60px;font-size:12px;text-transform:capitalize;color:var(--fp-text-light)}.taste-bar-container{flex:1;height:8px;background:var(--fp-bg);border-radius:4px;overflow:hidden}.taste-bar-fill{height:100%;background:linear-gradient(90deg,var(--fp-teal),var(--fp-lime));border-radius:4px;transition:width .3s ease}.taste-value{width:32px;font-size:12px;font-weight:600;text-align:right;color:var(--fp-text)}.texture-dots{display:flex;flex-direction:column;gap:12px}.texture-label{width:60px;font-size:12px;text-transform:capitalize;color:var(--fp-text-light)}.texture-dots-container{display:flex;gap:4px}.texture-dot{width:12px;height:12px;border-radius:50%;background:var(--fp-bg);border:1px solid var(--fp-border);transition:all .2s}.texture-dot.filled{background:var(--fp-teal);border-color:var(--fp-teal)}.cost-info{display:flex;flex-direction:column;gap:12px}.cost-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--fp-border)}.cost-row:last-child{border-bottom:none}.cost-row span:first-child{font-size:14px;color:var(--fp-text-light)}.cost-value{font-weight:600;color:var(--fp-text)}.cost-row.highlight{background:var(--fp-light-teal);margin:0 -12px;padding:12px;border-radius:8px;border-bottom:none}.cost-row.total{background:var(--fp-dark-teal);color:#fff;margin:8px -12px 0;padding:12px;border-radius:8px;border-bottom:none}.cost-row.total span,.cost-row.total .cost-value{color:#fff}.drink-options{display:flex;flex-direction:column;gap:8px}.drink-option{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--fp-bg);border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left}.drink-option:hover{border-color:var(--fp-teal)}.drink-option.selected{background:var(--fp-light-teal);border-color:var(--fp-teal)}.drink-info{display:flex;flex-direction:column;gap:2px}.drink-name{font-weight:600;font-size:14px}.drink-type{font-size:12px;color:var(--fp-text-muted)}.drink-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.match-score{background:var(--fp-teal);color:#fff;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}.drink-cost{font-size:12px;color:var(--fp-text-light)}.nutrition-table{display:flex;flex-direction:column;gap:8px}.nutrition-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--fp-border);font-size:14px}.nutrition-row span:first-child{color:var(--fp-text-light)}.nutrition-row span:last-child{font-weight:600}.nutrition-note{font-size:11px;color:var(--fp-text-muted);font-style:italic;margin-top:8px;text-align:center}.panel-note.data-source{font-size:10px;color:var(--fp-teal);text-align:right;margin-top:12px;padding-top:8px;border-top:1px solid var(--fp-border)}.texture-tags{display:flex;flex-direction:column;gap:12px}.texture-tag{display:flex;flex-direction:column;gap:4px}.texture-name{font-weight:600;font-size:14px;text-transform:capitalize;color:var(--fp-text)}.texture-count{font-size:11px;color:var(--fp-text-muted)}.texture-bar{height:6px;background:var(--fp-border);border-radius:3px;overflow:hidden}.texture-bar-fill{height:100%;background:var(--fp-teal);border-radius:3px;transition:width .3s ease}.trigeminal-section{margin-top:16px;padding-top:12px;border-top:1px dashed var(--fp-border)}.trigeminal-section h4{font-size:12px;font-weight:600;color:var(--fp-text-light);margin-bottom:8px}.trigeminal-tags{display:flex;flex-wrap:wrap;gap:6px}.trigeminal-tag{display:inline-block;padding:4px 10px;background:var(--fp-bg-alt);border:1px solid var(--fp-border);border-radius:12px;font-size:11px;color:var(--fp-text);text-transform:capitalize}.aroma-bars{display:flex;flex-direction:column;gap:10px}.aroma-bar-row{display:flex;align-items:center;gap:10px}.aroma-label{width:72px;font-size:11px;text-transform:capitalize;color:var(--fp-text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aroma-bar-container{flex:1;height:8px;background:var(--fp-bg);border-radius:4px;overflow:hidden}.aroma-bar-fill{height:100%;background:linear-gradient(90deg,#e91e63,#ff9800);border-radius:4px;transition:width .3s ease}.aroma-value{width:28px;font-size:11px;font-weight:600;text-align:right;color:var(--fp-text)}.composition-summary{margin-top:20px;padding:16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;border:1px solid var(--fp-border)}.composition-summary h3{font-size:14px;font-weight:600;color:var(--fp-text);margin-bottom:12px;display:flex;align-items:center;gap:8px}.composition-bars{display:flex;flex-direction:column;gap:8px}.composition-bar-row{display:flex;align-items:center;gap:8px}.composition-label{width:70px;font-size:12px;font-weight:500;text-transform:capitalize;color:var(--fp-text-secondary)}.composition-bar-container{flex:1;height:8px;background:#0000001a;border-radius:4px;overflow:hidden}.composition-bar-fill{height:100%;background:linear-gradient(90deg,var(--fp-teal),#00d4aa);border-radius:4px;transition:width .3s ease}.composition-value{width:45px;font-size:11px;font-weight:600;text-align:right;color:var(--fp-teal)}.composition-note{margin-top:12px;font-size:11px;color:var(--fp-text-muted)}.composition-note .notes{color:var(--fp-text-secondary)}@media(max-width:900px){.recipe-columns{grid-template-columns:1fr}.recipe-content.panel-open{margin-right:0}.side-panel{width:100%}}.final-sheet-page{display:flex;flex-direction:column;min-height:100%;background:var(--fp-bg)}.sheet-header{display:flex;justify-content:space-between;align-items:center;padding:20px 32px;background:var(--fp-white);border-bottom:1px solid var(--fp-border)}.back-button{display:inline-flex;align-items:center;gap:8px;background:none;border:none;color:var(--fp-text-light);font-size:14px;cursor:pointer;padding:8px 0;transition:color .2s}.back-button:hover{color:var(--fp-text)}.header-actions{display:flex;gap:12px}.action-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--fp-bg);border:1px solid var(--fp-border);border-radius:8px;font-size:14px;color:var(--fp-text);cursor:pointer;transition:all .2s}.action-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.action-btn:disabled{opacity:.7;cursor:not-allowed}.action-btn.save-btn{background:var(--fp-teal);border-color:var(--fp-teal);color:#fff}.action-btn.save-btn:hover:not(:disabled){background:var(--fp-dark-teal);border-color:var(--fp-dark-teal)}.action-btn.save-btn.saved{background:#27ae60;border-color:#27ae60}.action-btn.save-btn .spinner{animation:spin 1s linear infinite}.action-btn.admin-btn{background:#8b5cf6;border-color:#8b5cf6;color:#fff}.action-btn.admin-btn:hover:not(:disabled){background:#7c3aed;border-color:#7c3aed}.action-btn.admin-btn.saved{background:#27ae60;border-color:#27ae60}.action-btn.admin-btn .spinner{animation:spin 1s linear infinite}.sheet-content{flex:1;padding:32px 32px 100px;overflow-y:auto}.sheet-main{max-width:1000px;margin:0 auto;background:var(--fp-white);border-radius:16px;border:1px solid var(--fp-border);padding:40px;box-shadow:0 4px 20px #00000014}.title-section{text-align:center;margin-bottom:32px}.recipe-title{font-size:36px;font-weight:700;color:var(--fp-text);margin:0}.recipe-subtitle{font-size:18px;color:var(--fp-text-light);margin:8px 0 0}.recipe-meta{display:flex;justify-content:center;gap:16px;margin-top:16px}.servings{font-size:14px;color:var(--fp-text-light)}.dish-type-tag{padding:4px 12px;background:#8b5cf61a;color:var(--primary-color);border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase}.image-section{margin-bottom:32px}.image-container{position:relative}.recipe-image{width:100%;max-height:400px;object-fit:cover;border-radius:12px}.regenerate-btn{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:#ffffffe6;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--fp-text);box-shadow:0 2px 8px #00000026;transition:all .2s}.regenerate-btn:hover{background:#fff;transform:rotate(90deg);color:var(--fp-teal)}.image-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;background:linear-gradient(135deg,#667eea1a,#764ba21a);border-radius:12px;color:var(--fp-text-light)}.image-loading .spinner{animation:spin 1s linear infinite;color:var(--fp-teal)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.image-loading p{font-size:18px;font-weight:600;margin:16px 0 4px;color:var(--fp-text)}.image-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;background:linear-gradient(135deg,#8b5cf61a,#8b5cf60d);border-radius:12px;border:2px dashed var(--fp-border);color:var(--fp-text-light)}.image-placeholder p{font-size:18px;font-weight:600;margin:12px 0 4px;color:var(--fp-text)}.image-hint{font-size:13px;margin-bottom:16px}.generate-image-btn,.retry-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--fp-teal);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.generate-image-btn:hover,.retry-btn:hover{background:var(--fp-dark-teal);transform:translateY(-1px)}.two-column-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:32px}.recipe-column h2,.drink-column h2{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:var(--fp-text);margin:0 0 16px;padding-bottom:12px;border-bottom:2px solid var(--primary-color)}.ingredients-list{list-style:none;padding:0;margin:0 0 24px}.ingredient-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--fp-border)}.ingredient-item:last-child{border-bottom:none}.ingredient-name{font-size:15px;color:var(--fp-text)}.ingredient-amount{font-size:14px;color:var(--fp-text-light);display:flex;gap:12px}.ingredient-cost{color:var(--primary-color);font-weight:500}.method-content{font-size:15px;line-height:1.7;color:var(--fp-text-light)}.method-content p{margin:0 0 12px}.drink-card{background:var(--fp-bg);padding:20px;border-radius:12px}.drink-name{font-size:20px;font-weight:600;color:var(--fp-text);margin:0}.drink-type{font-size:14px;color:var(--fp-text-light);margin:4px 0 12px}.drink-notes{font-size:14px;color:var(--primary-color);font-style:italic;margin:0 0 16px}.drink-card h4{font-size:13px;font-weight:600;color:var(--fp-text-light);text-transform:uppercase;letter-spacing:.03em;margin:16px 0 8px}.drink-ingredients{list-style:none;padding:0;margin:0}.drink-ingredients li{font-size:14px;color:var(--fp-text);padding:4px 0}.drink-method{font-size:14px;line-height:1.6;color:var(--fp-text-light);margin:0}.drink-meta{display:flex;justify-content:space-between;margin-top:16px;padding-top:16px;border-top:1px solid var(--fp-border)}.match-score{font-size:14px;font-weight:600;color:var(--primary-color)}.drink-cost{font-size:14px;font-weight:600;color:var(--fp-text)}.why-section{margin-bottom:32px;padding:24px;background:linear-gradient(135deg,#8b5cf614,#8b5cf608);border-radius:12px}.why-section h2{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:var(--fp-text);margin:0 0 16px}.why-content{font-size:15px;line-height:1.7;color:var(--fp-text-light)}.why-content p{margin:0 0 12px}.why-content p:last-child{margin-bottom:0}.profiles-section{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px}.profile-card{background:var(--fp-bg);padding:20px;border-radius:12px}.profile-card h3{font-size:14px;font-weight:600;color:var(--fp-text);margin:0 0 16px}.taste-bars{display:flex;flex-direction:column;gap:10px}.taste-bar-row{display:flex;align-items:center;gap:12px}.taste-label{width:60px;font-size:13px;color:var(--fp-text-light);text-transform:capitalize}.taste-bar-container{flex:1;height:8px;background:var(--fp-white);border-radius:4px;overflow:hidden}.taste-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--primary-hover));border-radius:4px}.taste-value{width:32px;font-size:13px;font-weight:500;color:var(--fp-text);text-align:right}.texture-display{display:flex;flex-direction:column;gap:12px}.texture-row{display:flex;align-items:center;gap:12px}.texture-label{width:60px;font-size:13px;color:var(--fp-text-light);text-transform:capitalize}.texture-dots{display:flex;gap:4px}.texture-dot{width:14px;height:14px;border-radius:50%;background:var(--fp-white);border:2px solid var(--fp-border)}.texture-dot.filled{background:var(--primary-color);border-color:var(--primary-color)}.info-section{display:grid;grid-template-columns:1fr 1fr;gap:24px}.cost-card,.allergens-card{background:var(--fp-bg);padding:20px;border-radius:12px}.cost-card h3,.allergens-card h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--fp-text);margin:0 0 16px}.cost-rows{display:flex;flex-direction:column;gap:8px}.cost-row{display:flex;justify-content:space-between;font-size:14px;color:var(--fp-text-light)}.cost-row.total{padding-top:12px;margin-top:4px;border-top:1px solid var(--fp-border);font-weight:600;color:var(--primary-color)}.allergen-badges{display:flex;flex-wrap:wrap;gap:8px}.allergen-badge{padding:6px 12px;background:#f59e0b1a;color:#f59e0b;border-radius:12px;font-size:13px;font-weight:500;text-transform:capitalize}.no-allergens{font-size:14px;color:var(--fp-text-light);margin:0}.sheet-footer{position:fixed;bottom:0;left:240px;right:0;display:flex;justify-content:center;gap:16px;padding:16px 32px;background:var(--fp-white);border-top:1px solid var(--fp-border);z-index:100}.btn-secondary{padding:12px 24px;background:var(--fp-bg);border:1px solid var(--fp-border);border-radius:10px;font-size:15px;font-weight:500;color:var(--fp-text);cursor:pointer;transition:all .2s}.btn-secondary:hover{border-color:var(--primary-color);color:var(--primary-color)}.btn-primary{padding:12px 24px;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));border:none;border-radius:10px;font-size:15px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}@media(max-width:900px){.two-column-layout,.profiles-section,.info-section{grid-template-columns:1fr}}@media(max-width:1024px){.sheet-footer{left:0}}@media print{.no-print{display:none!important}.final-sheet-page{background:#fff}.sheet-header{border-bottom:1px solid #ddd}.sheet-content{padding:20px}.sheet-main{box-shadow:none;border:none;max-width:100%}.sheet-footer{display:none}}.saved-recipes-page{padding:var(--spacing-xl);max-width:1400px;margin:0 auto;height:calc(100vh - 65px);overflow-y:auto}.page-header{margin-bottom:var(--spacing-xl)}.page-header h1{font-family:var(--font-heading);font-size:1.75rem;font-weight:400;color:var(--fp-text);margin:0 0 var(--spacing-xs) 0}.page-header .subtitle{font-size:.9375rem;color:var(--fp-text-muted);margin:0}.controls-bar{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;min-width:200px;max-width:400px;padding:var(--spacing-sm) var(--spacing-md);background:var(--fp-white);border:1px solid var(--fp-border);border-radius:var(--radius-md)}.search-box input{flex:1;border:none;background:transparent;font-size:.9375rem;color:var(--fp-text)}.search-box input:focus{outline:none}.search-box input::placeholder{color:var(--fp-text-muted)}.search-box svg{color:var(--fp-text-muted)}.clear-search{background:none;border:none;padding:4px;cursor:pointer;color:var(--fp-text-muted)}.clear-search:hover{color:var(--fp-text)}.view-controls{display:flex;background:var(--fp-white);border:1px solid var(--fp-border);border-radius:var(--radius-md);overflow:hidden}.view-btn{padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;font-size:.875rem;color:var(--fp-text-light);cursor:pointer;transition:all .2s}.view-btn:not(:last-child){border-right:1px solid var(--fp-border)}.view-btn:hover{background:var(--fp-bg)}.view-btn.active{background:var(--fp-teal);color:var(--fp-white)}.create-folder-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--fp-white);border:1px solid var(--fp-teal);border-radius:var(--radius-md);font-size:.875rem;color:var(--fp-teal);cursor:pointer;transition:all .2s}.create-folder-btn:hover{background:var(--fp-teal);color:var(--fp-white)}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xxl);text-align:center;color:var(--fp-text-muted)}.empty-state h3{font-family:var(--font-heading);font-size:1.25rem;color:var(--fp-text);margin-bottom:var(--spacing-sm)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}.recipe-card{position:relative;background:var(--fp-white);border:1px solid var(--fp-border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .2s}.recipe-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.recipe-card-image{height:160px;background:var(--fp-bg);overflow:hidden}.recipe-card-image img{width:100%;height:100%;object-fit:cover}.recipe-card-image .image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--fp-teal) 0%,var(--fp-dark-teal) 100%);color:var(--fp-white);font-size:3rem;font-weight:300}.recipe-card-content{padding:var(--spacing-md)}.recipe-card-title{font-family:var(--font-heading);font-size:1rem;font-weight:500;color:var(--fp-text);margin:0 0 var(--spacing-xs) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-card-subtitle{font-size:.8125rem;color:var(--fp-text-muted);margin:0 0 var(--spacing-sm) 0}.recipe-card-meta{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.meta-item{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--fp-text-light)}.dish-type-badge{display:inline-block;padding:2px 8px;background:var(--fp-bg);border-radius:12px;font-size:.6875rem;color:var(--fp-text-light)}.recipe-card-actions{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm)}.action-menu-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffffe6;border:none;border-radius:50%;cursor:pointer;color:var(--fp-text-light);transition:all .2s}.action-menu-btn:hover{background:var(--fp-white);color:var(--fp-text)}.action-menu{position:absolute;top:100%;right:0;margin-top:4px;background:var(--fp-white);border:1px solid var(--fp-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:160px;z-index:10}.action-menu button{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;font-size:.875rem;color:var(--fp-text);cursor:pointer;transition:background .2s}.action-menu button:hover{background:var(--fp-bg)}.action-menu button.danger{color:var(--fp-red)}.grouped-recipes{display:flex;flex-direction:column;gap:var(--spacing-md)}.recipe-group{background:var(--fp-white);border:1px solid var(--fp-border);border-radius:var(--radius-lg);overflow:hidden}.group-header{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-md) var(--spacing-lg);background:transparent;border:none;font-size:1rem;font-weight:500;color:var(--fp-text);cursor:pointer;transition:background .2s}.group-header:hover{background:var(--fp-bg)}.group-name{flex:1;text-align:left}.group-count{padding:2px 8px;background:var(--fp-bg);border-radius:12px;font-size:.75rem;font-weight:400;color:var(--fp-text-muted)}.folder-actions{display:flex;gap:4px;margin-left:var(--spacing-sm)}.icon-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--fp-text-light);cursor:pointer;transition:all .2s}.icon-btn:hover{background:var(--fp-bg);color:var(--fp-text)}.icon-btn.danger:hover{background:#d83f2a1a;color:var(--fp-red)}.recipe-group .recipe-grid{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-lg)}.empty-folder{padding:var(--spacing-lg);text-align:center;color:var(--fp-text-muted);font-size:.875rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.modal{background:var(--fp-white);border-radius:var(--radius-lg);padding:var(--spacing-xl);min-width:320px;max-width:400px;box-shadow:var(--shadow-lg)}.modal h3{font-family:var(--font-heading);font-size:1.125rem;font-weight:500;color:var(--fp-text);margin:0 0 var(--spacing-lg) 0}.modal input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--fp-border);border-radius:var(--radius-md);font-size:.9375rem;margin-bottom:var(--spacing-lg)}.modal input:focus{outline:none;border-color:var(--fp-teal)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.btn-secondary{padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--fp-border);border-radius:var(--radius-md);font-size:.875rem;color:var(--fp-text);cursor:pointer;transition:all .2s}.btn-secondary:hover{border-color:var(--fp-text-light)}.btn-primary{padding:var(--spacing-sm) var(--spacing-md);background:var(--fp-teal);border:none;border-radius:var(--radius-md);font-size:.875rem;color:var(--fp-white);cursor:pointer;transition:all .2s}.folder-list{display:flex;flex-direction:column;gap:var(--spacing-xs);max-height:300px;overflow-y:auto;margin-bottom:var(--spacing-lg)}.folder-option{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--fp-border);border-radius:var(--radius-md);font-size:.875rem;color:var(--fp-text);cursor:pointer;transition:all .2s}.folder-option:hover,.folder-option.current{background:var(--fp-bg);border-color:var(--fp-teal)}.current-badge{margin-left:auto;padding:2px 6px;background:var(--fp-teal);border-radius:8px;font-size:.6875rem;color:var(--fp-white)}@media(max-width:768px){.controls-bar{flex-direction:column;align-items:stretch}.search-box{max-width:none}.view-controls{align-self:flex-start}.recipe-grid{grid-template-columns:1fr}}.shared-recipes-page{padding:32px;max-width:1200px;margin:0 auto}.page-header{margin-bottom:32px}.page-header h1{font-size:28px;font-weight:600;color:var(--fp-text);margin:0 0 8px}.page-header p{color:var(--fp-text-light);margin:0}.search-bar{display:flex;align-items:center;gap:12px;background:var(--fp-white);border:1px solid var(--fp-border);border-radius:8px;padding:12px 16px;margin-bottom:32px}.search-bar input{flex:1;border:none;outline:none;font-size:14px;color:var(--fp-text)}.search-bar svg{color:var(--fp-text-light)}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 32px;text-align:center;color:var(--fp-text-light)}.empty-state h3{margin:16px 0 8px;color:var(--fp-text)}.empty-state p{margin:0}.recipe-section{margin-bottom:40px}.recipe-section h2{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:var(--fp-text);margin:0 0 20px}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.recipe-card{background:var(--fp-white);border:1px solid var(--fp-border);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .2s}.recipe-card:hover{border-color:var(--fp-teal);box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.recipe-image{position:relative;height:180px;background:var(--fp-bg);overflow:hidden}.recipe-image img{width:100%;height:100%;object-fit:cover}.recipe-image.placeholder{display:flex;align-items:center;justify-content:center;color:var(--fp-text-light)}.featured-badge{position:absolute;top:12px;right:12px;background:var(--fp-teal);color:#fff;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:500}.recipe-info{padding:16px}.recipe-info h3{font-size:16px;font-weight:600;color:var(--fp-text);margin:0 0 4px;line-height:1.3}.recipe-info .subtitle{font-size:13px;color:var(--fp-text-light);margin:0 0 12px}.recipe-meta{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--fp-text-light)}.recipe-meta span{display:flex;align-items:center;gap:4px}.recipe-meta .dish-type{background:var(--fp-bg);padding:2px 8px;border-radius:4px}.recipe-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:32px}.recipe-modal{background:var(--fp-white);border-radius:16px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.close-btn{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:#00000080;color:#fff;border-radius:50%;font-size:20px;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#000000b3}.modal-image{width:100%;height:300px;overflow:hidden}.modal-image img{width:100%;height:100%;object-fit:cover}.modal-content{padding:24px}.modal-content h2{font-size:24px;font-weight:600;color:var(--fp-text);margin:0 0 8px}.modal-subtitle{color:var(--fp-text-light);margin:0 0 16px}.modal-meta{display:flex;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--fp-border);margin-bottom:20px}.modal-meta span{display:flex;align-items:center;gap:6px;color:var(--fp-text-light);font-size:14px}.modal-section{margin-bottom:24px}.modal-section h3{font-size:16px;font-weight:600;color:var(--fp-text);margin:0 0 12px}.ingredients-list{list-style:none;padding:0;margin:0}.ingredients-list li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--fp-border)}.ingredients-list li:last-child{border-bottom:none}.ing-name{color:var(--fp-text)}.ing-amount{color:var(--fp-text-light);font-size:14px}.method-content p{margin:0 0 12px;line-height:1.6;color:var(--fp-text)}.blog-link{display:inline-flex;align-items:center;gap:8px;color:var(--fp-teal);text-decoration:none;font-weight:500;padding:12px 0}.blog-link:hover{text-decoration:underline}.account-page{display:flex;gap:60px;padding:40px;max-width:1000px}.account-sidebar{flex-shrink:0;width:240px}.account-sidebar-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 8px;padding-bottom:12px;border-bottom:2px solid var(--text-primary);letter-spacing:.5px}.account-nav{display:flex;flex-direction:column;gap:0}.account-nav-item{display:block;width:100%;padding:16px 0;background:none;border:none;text-align:left;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:color .2s;letter-spacing:.3px}.account-nav-item:hover{color:var(--text-primary)}.account-nav-item.active{color:var(--primary)}.account-content{flex:1;max-width:500px}.account-title{font-size:28px;font-weight:400;color:var(--text-primary);margin:0 0 24px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}.account-section{margin-top:24px}.section-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 20px}.form-field{margin-bottom:12px}.form-field input,.form-field select{width:100%;padding:14px 16px;font-size:15px;border:none;background:#f5f5f0;border-radius:4px;color:var(--text-primary);transition:background .2s}.form-field input::placeholder{color:var(--text-secondary)}.form-field input:focus,.form-field select:focus{outline:none;background:#eeeeea}.form-field input:disabled{background:#e8e8e4;color:var(--text-secondary);cursor:not-allowed}.form-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px;cursor:pointer}.save-btn{margin-top:24px;padding:14px 32px;font-size:14px;font-weight:600;color:#fff;background:var(--primary);border:none;border-radius:6px;cursor:pointer;transition:background .2s}.save-btn:hover{background:var(--primary-dark)}.empty-state{color:var(--text-secondary);font-size:15px;padding:40px 0}.subscription-card{padding:24px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.subscription-card.current{border-color:var(--primary)}.subscription-badge{display:inline-block;padding:4px 10px;font-size:10px;font-weight:600;color:#fff;background:var(--primary);border-radius:4px;margin-bottom:12px;letter-spacing:.5px}.subscription-card h3{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--text-primary)}.subscription-card p{margin:0;font-size:14px;color:var(--text-secondary)}.subscription-info{margin-top:24px;font-size:14px;color:var(--text-secondary)}.admin-sidebar{width:260px;min-width:260px;background:linear-gradient(180deg,#1a1a2e,#16162a);display:flex;flex-direction:column;padding:24px 16px;height:100vh;position:sticky;top:0}.admin-logo{padding:0 12px 24px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:24px}.admin-logo-img{height:24px;width:auto;margin-bottom:16px;display:block}.admin-title{display:block;font-size:20px;font-weight:700;color:#fff;letter-spacing:-.5px}.admin-subtitle{display:block;font-size:12px;color:#ffffff80;margin-top:4px}.admin-nav{flex:1;display:flex;flex-direction:column;gap:4px}.admin-nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;color:#ffffffb3;cursor:pointer;transition:all .2s ease;font-size:14px}.admin-nav-item:hover{background:#ffffff14;color:#fff}.admin-nav-item.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:500}.admin-nav-item svg{flex-shrink:0}.admin-back{display:flex;align-items:center;gap:12px;padding:24px 16px 12px;border-radius:8px;color:#ffffff80;cursor:pointer;transition:all .2s ease;font-size:14px;border-top:1px solid rgba(255,255,255,.1);margin-top:16px}.admin-back:hover{color:#fff}.admin-app{display:flex;height:100vh;background:#f5f7fa;overflow:hidden}.admin-main{flex:1;overflow-y:auto;height:100vh}.admin-content{padding:32px 32px 100px;max-width:1400px;margin:0 auto;min-height:min-content}.admin-page{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.admin-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-page-header h1{font-size:28px;font-weight:700;color:#1a1a2e;margin:0}.admin-page-header p{color:#666;margin:4px 0 0;font-size:14px}.admin-filters{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap}.admin-search{flex:1;min-width:200px;max-width:400px;position:relative}.admin-search input{width:100%;padding:12px 16px 12px 44px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;background:#fff;transition:all .2s ease}.admin-search input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.admin-search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#999}.admin-select{padding:12px 16px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;background:#fff;min-width:160px;cursor:pointer}.admin-select:focus{outline:none;border-color:#667eea}.admin-table-container{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.admin-table{width:100%;border-collapse:collapse}.admin-table th{background:#f8f9fa;padding:14px 16px;text-align:left;font-size:12px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e0e0e0}.admin-table td{padding:16px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#333}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover{background:#f8f9fa}.admin-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.admin-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.admin-btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.admin-btn-secondary{background:#fff;border:1px solid #e0e0e0;color:#333}.admin-btn-secondary:hover{background:#f5f5f5}.admin-btn-icon{padding:8px;background:transparent;color:#666}.admin-btn-icon:hover{background:#f0f0f0;color:#333}.admin-toggle{position:relative;width:48px;height:26px;background:#e0e0e0;border-radius:13px;cursor:pointer;transition:background .2s ease}.admin-toggle.active{background:#667eea}.admin-toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 3px #0003}.admin-toggle.active:after{transform:translate(22px)}.admin-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.admin-badge-success{background:#e8f5e9;color:#2e7d32}.admin-badge-warning{background:#fff3e0;color:#f57c00}.admin-badge-info{background:#e3f2fd;color:#1976d2}.admin-badge-neutral{background:#f5f5f5;color:#666}.admin-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.admin-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a;transition:all .2s ease}.admin-card:hover{box-shadow:0 4px 12px #0000001a}.admin-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.admin-card-title{font-size:16px;font-weight:600;color:#1a1a2e;margin:0}.admin-card-subtitle{font-size:13px;color:#666;margin:4px 0 0}.admin-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.admin-modal{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.admin-modal-header{padding:20px 24px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.admin-modal-header h2{margin:0;font-size:20px;font-weight:600;color:#1a1a2e}.admin-modal-body{padding:24px}.admin-modal-footer{padding:16px 24px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;gap:12px}.admin-form-group{margin-bottom:20px}.admin-form-group label{display:block;font-size:13px;font-weight:500;color:#333;margin-bottom:6px}.admin-form-group input,.admin-form-group textarea,.admin-form-group select{width:100%;padding:12px 14px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;transition:all .2s ease}.admin-form-group input:focus,.admin-form-group textarea:focus,.admin-form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.admin-form-group textarea{min-height:100px;resize:vertical}.admin-form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.admin-loading{display:flex;align-items:center;justify-content:center;padding:60px;color:#666}.admin-loading-spinner{width:32px;height:32px;border:3px solid #e0e0e0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin-right:12px}.spin{animation:spin 1s linear infinite}.admin-empty{text-align:center;padding:60px 20px;color:#666}.admin-empty svg{color:#ccc;margin-bottom:16px}.admin-empty h3{margin:0 0 8px;color:#333}.admin-empty p{margin:0;font-size:14px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e);padding:20px}.login-card{background:#fff;border-radius:16px;padding:48px;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 60px #0000004d}.login-logo{margin-bottom:32px}.logo-text{display:block;font-size:24px;font-weight:700;color:#1a1a2e;letter-spacing:2px}.logo-sub{display:block;font-size:14px;font-weight:500;color:#666;letter-spacing:4px;margin-top:4px}.login-card h1{font-size:24px;color:#1a1a2e;margin:0 0 12px;font-weight:600}.login-card p{color:#666;margin:0 0 24px;font-size:14px;line-height:1.5}.login-error{background:#fee2e2;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.google-signin-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 24px;background:#fff;border:2px solid #e5e7eb;border-radius:8px;font-size:16px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s}.google-signin-btn:hover:not(:disabled){background:#f9fafb;border-color:#d1d5db}.google-signin-btn:disabled{opacity:.6;cursor:not-allowed}.google-icon{flex-shrink:0}.back-btn{display:block;width:100%;padding:12px 24px;margin-top:12px;background:transparent;border:none;font-size:14px;color:#6b7280;cursor:pointer;transition:color .2s}.back-btn:hover{color:#374151}.divider{display:flex;align-items:center;margin:20px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.divider span{padding:0 12px;color:#9ca3af;font-size:14px}.email-form{display:flex;flex-direction:column;gap:12px}.login-input{width:100%;padding:12px 16px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s;box-sizing:border-box}.login-input:focus{border-color:#3b82f6}.email-signin-btn{width:100%;padding:12px 24px;background:#1a1a2e;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.email-signin-btn:hover:not(:disabled){background:#2d2d44}.email-signin-btn:disabled{opacity:.6;cursor:not-allowed}.toggle-mode-btn{margin-top:16px;background:none;border:none;color:#3b82f6;font-size:14px;cursor:pointer}.toggle-mode-btn:hover{text-decoration:underline}.login-note{margin-top:24px;font-size:12px;color:#9ca3af}:root{--fp-dark-teal: #104859;--fp-teal: #2F998D;--fp-light-teal: #9FD6C9;--fp-lime: #CADA20;--fp-gray: #717D83;--fp-bg: #fafafa;--fp-white: #ffffff;--fp-border: #e0e0e0;--fp-text: #333333;--fp-text-light: #666666;--fp-text-muted: #999999;--fp-red: #D83F2A;--fp-orange: #EC890D;--fp-blue: #4892C8;--fp-green: #57A81A;--font-body: "Open Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-heading: "Bodoni Moda", Georgia, serif;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 12px rgba(0,0,0,.1);--shadow-lg: 0 8px 24px rgba(0,0,0,.12)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background:var(--fp-bg);color:var(--fp-text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--fp-bg)}::-webkit-scrollbar-thumb{background:var(--fp-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--fp-gray)}.app{display:flex;min-height:100vh}.main-content{flex:1;display:flex;flex-direction:column;min-width:0}.page-content{flex:1;overflow-y:auto;background:var(--fp-bg)}.placeholder-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;padding:var(--spacing-xl)}.placeholder-page h1{font-family:var(--font-heading);font-size:2rem;color:var(--fp-dark-teal);margin-bottom:var(--spacing-md)}.placeholder-page p{color:var(--fp-text-muted);font-size:1rem}.surprise-page{background:linear-gradient(135deg,var(--fp-light-teal) 0%,var(--fp-bg) 100%)}.surprise-content{text-align:center}.surprise-icon{font-size:4rem;display:block;margin-bottom:var(--spacing-lg)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:var(--fp-teal);color:var(--fp-white);border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{background:var(--fp-dark-teal)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:transparent;color:var(--fp-teal);border:2px solid var(--fp-teal);border-radius:var(--radius-md);font-family:var(--font-body);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:var(--fp-teal);color:var(--fp-white)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--fp-bg);gap:var(--spacing-md)}.loading-spinner{width:40px;height:40px;border:3px solid var(--fp-border);border-top-color:var(--fp-teal);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen p{color:var(--fp-text-secondary);font-size:.875rem}
