:root{--red: #e63946;--red-light: #ff6b6b;--yellow: #f4a261;--yellow-light: #ffd166;--orange: #e76f51;--orange-light: #f4845f;--green: #2a9d8f;--green-light: #52b788;--blue: #457b9d;--blue-light: #a8dadc;--cream: #fef3e2;--brown: #8b5e3c;--brown-light: #c49a6c;--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-card: #1e1e1e;--bg-card-hover: #252525;--bg-input: #2a2a2a;--text-primary: #fafafa;--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .45);--border: rgba(255, 255, 255, .08);--shadow: 0 4px 24px rgba(0, 0, 0, .4);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Poppins", var(--font);--radius: 12px;--radius-lg: 20px;--radius-full: 100px;--transition: .2s cubic-bezier(.4, 0, .2, 1);color-scheme:dark}.app.light{--bg-primary: #f8f4ef;--bg-secondary: #ffffff;--bg-card: #ffffff;--bg-card-hover: #f0ebe5;--bg-input: #f0ebe5;--text-primary: #1a1a1a;--text-secondary: rgba(0, 0, 0, .65);--text-muted: rgba(0, 0, 0, .4);--border: rgba(0, 0, 0, .08);--shadow: 0 4px 24px rgba(0, 0, 0, .08);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;min-height:100dvh;font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;overflow-x:hidden}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-primary);transition:background var(--transition),color var(--transition)}.app-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.header-left{display:flex;align-items:center;gap:12px}.back-btn{background:none;border:none;font-size:24px;color:var(--text-primary);cursor:pointer;padding:4px 8px;border-radius:8px;transition:background var(--transition)}.back-btn:hover{background:var(--bg-card)}.brand{display:flex;align-items:center;gap:10px}.brand-icon{font-size:28px;animation:wiggle 2s ease-in-out infinite}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.brand-name{font-family:var(--font-display);font-size:18px;font-weight:700;background:linear-gradient(135deg,var(--red),var(--yellow),var(--orange));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.brand-tagline{font-size:11px;color:var(--text-muted);letter-spacing:.05em}.header-right{display:flex;align-items:center;gap:8px}.icon-btn{background:var(--bg-card);border:1px solid var(--border);font-size:18px;width:36px;height:36px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.icon-btn:hover{background:var(--bg-card-hover);transform:scale(1.05)}.app-main{flex:1;padding-bottom:80px;overflow-y:auto}.page{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-title{font-family:var(--font-display);font-size:22px;font-weight:700;padding:20px 16px 8px;letter-spacing:-.02em}.page-subtitle{padding:0 16px 16px;color:var(--text-secondary);font-size:14px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-around;padding:8px 0;padding-bottom:max(8px,env(safe-area-inset-bottom));background:var(--bg-secondary);border-top:1px solid var(--border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.nav-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;cursor:pointer;padding:6px 12px;border-radius:12px;transition:all var(--transition);position:relative}.nav-btn.active{color:var(--red)}.nav-btn.active:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:20px;height:3px;background:var(--red);border-radius:0 0 3px 3px}.nav-btn:hover{background:var(--bg-card)}.nav-icon{font-size:22px}.nav-label{font-size:10px;font-weight:600;color:var(--text-muted);letter-spacing:.02em}.nav-btn.active .nav-label{color:var(--red)}.hero{position:relative;padding:32px 16px 24px;overflow:hidden;background:linear-gradient(135deg,var(--red),var(--orange),var(--yellow));margin:0}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.hero-pattern{position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;background:repeating-conic-gradient(rgba(255,255,255,.03) 0% 25%,transparent 0% 50%);background-size:40px 40px;animation:patternMove 20s linear infinite}@keyframes patternMove{to{transform:translate(40px,40px)}}.hero-content{position:relative;z-index:1}.hero-title{font-family:var(--font-display);font-size:28px;font-weight:800;color:#fff;line-height:1.2;margin-bottom:8px;text-shadow:0 2px 8px rgba(0,0,0,.2)}.hero-subtitle{font-size:14px;color:#ffffffd9;margin-bottom:16px;line-height:1.5}.hero-search{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fffffff2;border-radius:var(--radius-full);cursor:pointer;box-shadow:0 4px 16px #00000026;transition:transform var(--transition),box-shadow var(--transition)}.hero-search:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0003}.search-icon{font-size:18px;opacity:.6}.search-placeholder{font-size:14px;color:#888}.section{padding:20px 16px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title{font-family:var(--font-display);font-size:18px;font-weight:700;margin-bottom:12px;letter-spacing:-.01em}.section-header .section-title{margin-bottom:0}.see-all{background:none;border:none;color:var(--red);font-size:13px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:8px;transition:background var(--transition)}.see-all:hover{background:#e639461a}.ingredient-tags-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.ingredient-tags-scroll::-webkit-scrollbar{display:none}.ingredient-tag{flex-shrink:0;padding:8px 16px;border-radius:var(--radius-full);border:1.5px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition);text-transform:capitalize}.ingredient-tag:hover{border-color:var(--yellow);background:#f4a2611a}.ingredient-tag.active{background:linear-gradient(135deg,var(--red),var(--orange));color:#fff;border-color:transparent;box-shadow:0 2px 8px #e639464d}.recipe-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.recipe-scroll::-webkit-scrollbar{display:none}.recipe-card-mini{flex-shrink:0;width:180px;border-radius:var(--radius);overflow:hidden;background:var(--bg-card);border:1px solid var(--border);cursor:pointer;transition:all var(--transition)}.recipe-card-mini:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.recipe-card-img{position:relative;height:130px;background-size:cover;background-position:center;background-color:var(--bg-card)}.recipe-card-overlay{position:absolute;bottom:0;left:0;right:0;padding:8px;background:linear-gradient(transparent,#000000b3)}.recipe-rating{font-size:12px;font-weight:600;color:#fff;display:flex;align-items:center;gap:3px}.recipe-price{font-size:12px;font-weight:600;color:var(--yellow-light)}.fav-btn{position:absolute;top:8px;right:8px;background:#00000080;border:none;border-radius:50%;width:32px;height:32px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.fav-btn:hover{transform:scale(1.1)}.fav-btn.active{background:#e63946cc;animation:heartPop .3s ease}@keyframes heartPop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.recipe-card-info{padding:10px 12px}.recipe-card-info h4{font-size:14px;font-weight:600;margin-bottom:4px;line-height:1.3}.recipe-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted)}.difficulty{padding:2px 6px;border-radius:4px;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.difficulty.easy{background:#2a9d8f26;color:var(--green)}.difficulty.medium{background:#f4a26126;color:var(--yellow)}.difficulty.hard{background:#e6394626;color:var(--red)}.recipe-tags{display:flex;gap:4px;margin-top:6px}.mini-tag{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--bg-input);color:var(--text-muted)}.regional-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.regional-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 12px;text-align:center;cursor:pointer;transition:all var(--transition)}.regional-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--yellow)}.regional-emoji{font-size:32px;margin-bottom:8px}.regional-card h4{font-size:14px;font-weight:700;margin-bottom:4px}.regional-card p{font-size:11px;color:var(--text-muted);line-height:1.3}.festival-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.festival-scroll::-webkit-scrollbar{display:none}.festival-card{flex-shrink:0;width:160px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:all var(--transition)}.festival-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.festival-icon{font-size:28px;margin-bottom:8px}.festival-card h4{font-size:14px;font-weight:700;margin-bottom:4px}.festival-card p{font-size:11px;color:var(--text-muted);margin-bottom:8px}.festival-dishes{font-size:10px;color:var(--yellow);font-weight:500}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick-action{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;color:var(--text-primary);transition:all var(--transition)}.quick-action:hover{background:var(--bg-card-hover);transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--yellow)}.quick-action span:first-child{font-size:20px}.search-bar{display:flex;align-items:center;gap:10px;margin:16px;padding:12px 16px;background:var(--bg-input);border-radius:var(--radius-full);border:1.5px solid var(--border);transition:border-color var(--transition)}.search-bar:focus-within{border-color:var(--red)}.search-input{flex:1;background:none;border:none;outline:none;font-size:15px;color:var(--text-primary);font-family:var(--font)}.search-input::placeholder{color:var(--text-muted)}.clear-btn{background:none;border:none;font-size:16px;color:var(--text-muted);cursor:pointer;padding:4px}.ingredient-selector{padding:0 16px 16px}.ingredient-selector h3{font-size:16px;font-weight:700;margin-bottom:4px}.hint{font-size:12px;color:var(--text-muted);margin-bottom:12px}.selected-ingredients{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;align-items:center}.selected-ing{display:flex;align-items:center;gap:4px;padding:6px 12px;background:linear-gradient(135deg,var(--red),var(--orange));color:#fff;border-radius:var(--radius-full);font-size:12px;font-weight:500;cursor:pointer;transition:opacity var(--transition);text-transform:capitalize}.selected-ing:hover{opacity:.8}.clear-all{background:none;border:1px solid var(--border);color:var(--text-muted);font-size:11px;padding:4px 10px;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition)}.clear-all:hover{border-color:var(--red);color:var(--red)}.ingredient-grid{display:flex;flex-wrap:wrap;gap:6px}.ing-chip{padding:6px 12px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition);text-transform:capitalize}.ing-chip:hover{border-color:var(--yellow);background:#f4a2611a}.ing-chip.active{background:linear-gradient(135deg,var(--red),var(--orange));color:#fff;border-color:transparent}.match-hint{font-size:12px;color:var(--green);margin-bottom:12px;font-weight:500}.recipe-list{display:flex;flex-direction:column;gap:12px}.recipe-list-item{display:flex;gap:12px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all var(--transition)}.recipe-list-item:hover{background:var(--bg-card-hover);transform:translate(4px);box-shadow:var(--shadow-sm)}.recipe-list-img{width:90px;height:90px;border-radius:10px;background-size:cover;background-position:center;flex-shrink:0;background-color:var(--bg-input)}.recipe-list-info{flex:1;min-width:0}.recipe-list-info h4{font-size:15px;font-weight:600;margin-bottom:4px}.recipe-list-desc{font-size:12px;color:var(--text-muted);margin-bottom:6px;line-height:1.4}.recipe-match{font-size:11px;color:var(--green);font-weight:600;margin-top:4px}.filters{padding:0 16px 8px;display:flex;flex-direction:column;gap:10px}.filter-row{display:flex;align-items:center;gap:8px}.filter-label{font-size:12px;font-weight:600;color:var(--text-muted);flex-shrink:0;min-width:70px}.filter-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.filter-chips::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0;padding:6px 12px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition);white-space:nowrap}.filter-chip:hover{border-color:var(--yellow)}.filter-chip.active{background:var(--red);color:#fff;border-color:var(--red)}.recipe-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:0 16px 16px}.recipe-card{border-radius:var(--radius);overflow:hidden;background:var(--bg-card);border:1px solid var(--border);cursor:pointer;transition:all var(--transition)}.recipe-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.recipe-card .recipe-card-img{height:140px}.recipe-hero{position:relative;height:280px;background-size:cover;background-position:center;background-color:var(--bg-card)}.recipe-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent 30%,#000000d9);display:flex;align-items:flex-end}.recipe-hero-content{padding:20px 16px;width:100%}.recipe-region-badge{display:inline-block;padding:4px 10px;background:#fff3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-full);font-size:11px;font-weight:600;color:#fff;margin-bottom:8px}.recipe-hero-content h2{font-family:var(--font-display);font-size:28px;font-weight:800;color:#fff;margin-bottom:4px;text-shadow:0 2px 8px rgba(0,0,0,.3)}.filipino-name{font-size:14px;color:#ffffffb3;font-style:italic;margin-bottom:8px}.recipe-hero-stats{display:flex;gap:16px;font-size:13px;color:#ffffffd9}.recipe-quick-info{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border-bottom:1px solid var(--border)}.info-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 8px;background:var(--bg-secondary)}.info-icon{font-size:18px}.info-label{font-size:10px;color:var(--text-muted);font-weight:500}.info-value{font-size:13px;font-weight:700;color:var(--text-primary)}.recipe-section{padding:16px;border-bottom:1px solid var(--border)}.recipe-section h3{font-size:16px;font-weight:700;margin-bottom:12px}.recipe-description{font-size:14px;line-height:1.6;color:var(--text-secondary)}.recipe-description.filipino{font-style:italic;margin-top:8px;color:var(--text-muted)}.recipe-tags-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.recipe-tag{display:flex;align-items:center;gap:4px;padding:4px 10px;background:var(--bg-input);border-radius:var(--radius-full);font-size:11px;color:var(--text-secondary);text-transform:capitalize}.difficulty-badge{padding:4px 12px;border-radius:var(--radius-full);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.difficulty-badge.easy{background:#2a9d8f26;color:var(--green)}.difficulty-badge.medium{background:#f4a26126;color:var(--yellow)}.difficulty-badge.hard{background:#e6394626;color:var(--red)}.recipe-actions{display:flex;gap:8px;padding:16px;border-bottom:1px solid var(--border)}.action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);font-size:12px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all var(--transition)}.action-btn:hover{border-color:var(--red);background:#e639460d}.action-btn.active{background:#e639461a;border-color:var(--red);color:var(--red)}.substitutes-section{background:#2a9d8f0d}.substitute-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-card);border-radius:10px;margin-bottom:8px;border:1px solid var(--border)}.sub-missing{font-size:13px;color:var(--red);font-weight:500;text-decoration:line-through;min-width:100px}.sub-arrow{color:var(--green);font-weight:700}.sub-replacement{font-size:13px;color:var(--green);font-weight:600}.ingredients-list{list-style:none}.ingredient-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px;text-transform:capitalize}.ing-check{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--green);color:#fff;border-radius:6px;font-size:12px;flex-shrink:0}.ing-check.dim{background:var(--bg-input);color:var(--text-muted)}.optional-title{font-size:13px;color:var(--text-muted);margin-top:12px;margin-bottom:4px}.ingredients-list.optional .ingredient-item{color:var(--text-muted);font-style:italic}.steps-list{display:flex;flex-direction:column;gap:4px}.step-item{display:flex;gap:12px;padding:12px;border-radius:12px;transition:all var(--transition)}.step-item.active{background:#e6394614;border:1px solid rgba(230,57,70,.2)}.step-item.done{opacity:.5}.step-number{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-input);border-radius:50%;font-size:14px;font-weight:700;color:var(--text-secondary);flex-shrink:0;cursor:pointer;transition:all var(--transition)}.step-item.active .step-number{background:var(--red);color:#fff}.step-item.done .step-number{background:var(--green);color:#fff}.step-content p{font-size:14px;line-height:1.6;color:var(--text-secondary)}.next-step-btn{margin-top:8px;padding:6px 14px;background:var(--red);color:#fff;border:none;border-radius:var(--radius-full);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition)}.next-step-btn:hover{background:var(--red-light);transform:translate(2px)}.assistant-controls{display:flex;gap:10px}.assistant-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);font-size:13px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all var(--transition)}.assistant-btn:hover{border-color:var(--red)}.assistant-btn.active{background:linear-gradient(135deg,var(--red),var(--orange));color:#fff;border-color:transparent}.assistant-btn.large{padding:16px 24px;font-size:15px}.voice-indicator{margin-top:16px;text-align:center}.voice-wave{display:flex;align-items:center;justify-content:center;gap:4px;height:40px;margin-bottom:8px}.voice-wave span{width:4px;height:20px;background:var(--red);border-radius:2px;animation:wave 1s ease-in-out infinite}.voice-wave span:nth-child(2){animation-delay:.1s}.voice-wave span:nth-child(3){animation-delay:.2s}.voice-wave span:nth-child(4){animation-delay:.3s}.voice-wave span:nth-child(5){animation-delay:.4s}@keyframes wave{0%,to{height:8px;opacity:.5}50%{height:32px;opacity:1}}.voice-indicator p{font-size:12px;color:var(--text-muted)}.nutrition-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.nutrition-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:var(--bg-card);border-radius:10px;border:1px solid var(--border)}.nutrition-value{font-size:16px;font-weight:700;color:var(--yellow)}.nutrition-label{font-size:10px;color:var(--text-muted);font-weight:500}.tips-list{list-style:none;display:flex;flex-direction:column;gap:10px}.tip-item{display:flex;gap:10px;padding:12px;background:#f4a26114;border-radius:10px;border-left:3px solid var(--yellow)}.tip-icon{font-size:16px;flex-shrink:0}.tip-item span:last-child{font-size:13px;line-height:1.5;color:var(--text-secondary)}.video-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;background:var(--bg-card);border-radius:var(--radius);border:2px dashed var(--border);text-align:center}.video-play-btn{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--red);color:#fff;border-radius:50%;font-size:24px;margin-bottom:12px;cursor:pointer;transition:transform var(--transition)}.video-play-btn:hover{transform:scale(1.1)}.video-placeholder p{font-size:14px;color:var(--text-secondary);font-weight:500}.video-hint{font-size:11px!important;color:var(--text-muted)!important;margin-top:4px}.festival-section{background:#f4a2610d}.festival-text{font-size:14px;color:var(--yellow);font-weight:600}.region-tabs{display:flex;gap:8px;padding:0 16px 16px}.region-tab{flex:1;padding:12px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);font-size:14px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all var(--transition);text-align:center}.region-tab:hover{border-color:var(--yellow)}.region-tab.active{background:linear-gradient(135deg,var(--red),var(--orange));color:#fff;border-color:transparent}.region-info{padding:0 16px 16px}.region-info h3{font-size:20px;font-weight:700;margin-bottom:6px}.region-info p{font-size:13px;color:var(--text-secondary);margin-bottom:12px;line-height:1.5}.region-highlights{display:flex;flex-wrap:wrap;gap:6px}.highlight-tag{padding:6px 12px;background:#f4a2611a;border:1px solid rgba(244,162,97,.2);border-radius:var(--radius-full);font-size:12px;color:var(--yellow);font-weight:500}.scanner-visual{padding:16px;display:flex;justify-content:center}.scanner-frame{position:relative;width:280px;height:280px;background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;display:flex;align-items:center;justify-content:center}.scanner-corners span{position:absolute;width:30px;height:30px;border:3px solid var(--red)}.corner.tl{top:8px;left:8px;border-right:none;border-bottom:none;border-radius:4px 0 0}.corner.tr{top:8px;right:8px;border-left:none;border-bottom:none;border-radius:0 4px 0 0}.corner.bl{bottom:8px;left:8px;border-right:none;border-top:none;border-radius:0 0 0 4px}.corner.br{bottom:8px;right:8px;border-left:none;border-top:none;border-radius:0 0 4px}.scanner-line{position:absolute;top:0;left:16px;right:16px;height:2px;background:var(--red);animation:scanLine 2s ease-in-out infinite;box-shadow:0 0 8px var(--red)}@keyframes scanLine{0%{top:16px}50%{top:calc(100% - 16px)}to{top:16px}}.scanner-content{text-align:center}.scanner-icon{font-size:48px;display:block;margin-bottom:8px}.scanner-content p{font-size:13px;color:var(--text-muted)}.scanner-input-section{padding:0 16px 16px}.scanner-input-section h3{font-size:15px;font-weight:600;margin-bottom:10px}.scanner-input-row{display:flex;gap:8px}.scanner-input{flex:1;padding:12px 16px;background:var(--bg-input);border:1.5px solid var(--border);border-radius:var(--radius);font-size:14px;color:var(--text-primary);font-family:var(--font);outline:none;transition:border-color var(--transition)}.scanner-input:focus{border-color:var(--red)}.scanner-input::placeholder{color:var(--text-muted)}.scan-btn{padding:12px 20px;background:linear-gradient(135deg,var(--red),var(--orange));color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:transform var(--transition)}.scan-btn:hover{transform:scale(1.02)}.scanned-results{padding:0 16px 16px}.scanned-results h3{font-size:15px;font-weight:600;margin-bottom:10px}.scanned-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.scanned-tag{display:flex;align-items:center;gap:4px;padding:8px 14px;background:#2a9d8f26;border:1px solid rgba(42,157,143,.3);border-radius:var(--radius-full);font-size:13px;color:var(--green);font-weight:500;cursor:pointer;transition:all var(--transition);text-transform:capitalize}.scanned-tag:hover{background:#2a9d8f40}.find-recipes-btn{width:100%;padding:14px;background:linear-gradient(135deg,var(--green),var(--green-light));color:#fff;border:none;border-radius:var(--radius);font-size:15px;font-weight:700;cursor:pointer;transition:transform var(--transition)}.find-recipes-btn:hover{transform:scale(1.01)}.scanner-ai-info{padding:0 16px 16px}.scanner-ai-info h3{font-size:15px;font-weight:600;margin-bottom:8px}.scanner-ai-info p{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-bottom:12px}.ai-categories{display:flex;gap:8px;flex-wrap:wrap}.ai-cat{padding:8px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);font-size:12px;font-weight:500}.shopping-stats{display:flex;align-items:center;justify-content:space-between;padding:0 16px 12px;font-size:13px;color:var(--text-secondary)}.clear-list-btn{background:none;border:1px solid var(--border);color:var(--red);font-size:12px;padding:4px 10px;border-radius:var(--radius-full);cursor:pointer}.clear-list-btn:hover{background:#e639461a}.shopping-group{padding:0 16px 16px}.shopping-category{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.shopping-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-card);border-radius:10px;margin-bottom:6px;cursor:pointer;transition:all var(--transition);border:1px solid var(--border)}.shopping-item:hover{background:var(--bg-card-hover)}.shopping-item.checked{opacity:.5}.shopping-item.checked .shopping-item-name{text-decoration:line-through}.shopping-check{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-input);border-radius:6px;font-size:14px;flex-shrink:0;transition:all var(--transition)}.shopping-item.checked .shopping-check{background:var(--green);color:#fff}.shopping-item-info{flex:1;display:flex;align-items:center;justify-content:space-between}.shopping-item-name{font-size:14px;font-weight:500;text-transform:capitalize}.shopping-item-price{font-size:12px;color:var(--yellow);font-weight:600}.shopping-total{padding:16px;text-align:center}.shopping-total h3{font-size:15px;font-weight:600;margin-bottom:4px}.total-hint{font-size:12px;color:var(--text-muted)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 32px;text-align:center}.empty-icon{font-size:56px;margin-bottom:16px;opacity:.8}.empty-state h3{font-size:18px;font-weight:700;margin-bottom:8px}.empty-state p{font-size:14px;color:var(--text-muted);margin-bottom:20px;line-height:1.5}.cta-btn{padding:12px 28px;background:linear-gradient(135deg,var(--red),var(--orange));color:#fff;border:none;border-radius:var(--radius-full);font-size:14px;font-weight:600;cursor:pointer;transition:transform var(--transition)}.cta-btn:hover{transform:scale(1.02)}.new-post-btn{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px;padding:14px;background:linear-gradient(135deg,var(--red),var(--orange));color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:transform var(--transition)}.new-post-btn:hover{transform:scale(1.01)}.new-post-form{margin:16px;padding:16px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border)}.post-textarea{width:100%;min-height:80px;padding:12px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;font-size:14px;color:var(--text-primary);font-family:var(--font);resize:vertical;outline:none;margin-bottom:12px}.post-textarea:focus{border-color:var(--red)}.post-textarea::placeholder{color:var(--text-muted)}.post-actions{display:flex;gap:8px;justify-content:flex-end}.post-btn{padding:8px 20px;border-radius:var(--radius-full);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition)}.post-btn.secondary{background:var(--bg-input);border:1px solid var(--border);color:var(--text-secondary)}.post-btn.primary{background:var(--red);border:none;color:#fff}.post-btn.primary:hover{background:var(--red-light)}.community-feed{padding:0 16px 16px;display:flex;flex-direction:column;gap:16px}.community-post{background:var(--bg-card);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.post-header{display:flex;align-items:center;gap:10px;padding:12px 16px}.post-avatar{font-size:28px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-input);border-radius:50%}.post-user-info{flex:1}.post-username{font-size:14px;font-weight:600;display:block}.post-time{font-size:11px;color:var(--text-muted)}.post-recipe-tag{padding:4px 10px;background:#f4a2611a;border-radius:var(--radius-full);font-size:11px;color:var(--yellow);font-weight:500}.post-image{height:220px;background-size:cover;background-position:center;background-color:var(--bg-input)}.post-content{padding:12px 16px}.post-caption{font-size:13px;line-height:1.5;color:var(--text-secondary);margin-bottom:10px}.post-actions-row{display:flex;gap:4px}.post-action-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:none;border:1px solid var(--border);border-radius:var(--radius-full);font-size:12px;color:var(--text-muted);cursor:pointer;transition:all var(--transition)}.post-action-btn:hover{border-color:var(--red);color:var(--red)}.post-action-btn.liked{color:var(--red);border-color:#e639464d;background:#e639460d}.assistant-intro{padding:0 16px 16px}.assistant-intro p{font-size:14px;color:var(--text-secondary);line-height:1.6}.assistant-section{padding:16px;border-bottom:1px solid var(--border)}.assistant-section h3{font-size:16px;font-weight:700;margin-bottom:8px}.assistant-section p{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-bottom:12px}.recipe-mini-list{display:flex;flex-direction:column;gap:6px}.recipe-mini-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all var(--transition)}.recipe-mini-item:hover{background:var(--bg-card-hover);transform:translate(4px)}.mini-name{font-size:14px;font-weight:500}.mini-subs,.mini-cal{font-size:12px;color:var(--green);font-weight:600}.timer-presets{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.timer-preset{padding:8px 16px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-full);font-size:13px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all var(--transition)}.timer-preset:hover{border-color:var(--yellow);background:#f4a2611a}.timer-display{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border)}.timer-time{font-family:Courier New,monospace;font-size:48px;font-weight:700;color:var(--red);letter-spacing:2px}.timer-label{font-size:13px;color:var(--text-muted)}.timer-controls{display:flex;gap:8px}.timer-btn{padding:8px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;cursor:pointer;transition:all var(--transition)}.timer-btn:hover{border-color:var(--red)}.timer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000b3;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn .2s ease}.timer-overlay-content{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:32px;text-align:center;min-width:280px;border:1px solid var(--border);box-shadow:var(--shadow)}.timer-overlay-content h3{font-size:16px;margin-bottom:16px;color:var(--text-secondary)}.timer-big-time{font-family:Courier New,monospace;font-size:64px;font-weight:700;color:var(--red);margin-bottom:20px;letter-spacing:4px}.timer-overlay-controls{display:flex;gap:10px;justify-content:center}.festivals-grid{padding:0 16px 16px;display:flex;flex-direction:column;gap:12px}.festival-detail-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:all var(--transition)}.festival-detail-card:hover{border-color:var(--yellow)}.festival-detail-card.expanded{border-color:var(--yellow);background:#f4a2610d}.festival-header{display:flex;align-items:center;gap:12px}.festival-big-icon{font-size:32px}.festival-header h3{font-size:16px;font-weight:700}.festival-header p{font-size:12px;color:var(--text-muted)}.festival-body{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.festival-body h4{font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:8px}.festival-dish-list{display:flex;flex-wrap:wrap;gap:6px}.festival-dish-tag{padding:6px 12px;background:#f4a2611a;border-radius:var(--radius-full);font-size:12px;color:var(--yellow);font-weight:500}@media(min-width:640px){.recipe-grid{grid-template-columns:repeat(3,1fr)}.hero-title{font-size:36px}.recipe-card-mini{width:200px}.regional-cards{grid-template-columns:repeat(3,1fr)}.nutrition-grid{grid-template-columns:repeat(5,1fr)}.app-main{max-width:768px;margin:0 auto;width:100%}}@media(min-width:1024px){.recipe-grid{grid-template-columns:repeat(4,1fr)}.app-main{max-width:960px}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:#e639464d;color:var(--text-primary)}
