@import"https://fonts.googleapis.com/css2?family=Do+Hyeon&family=Noto+Sans+KR:wght@300;400;500;600;700&display=swap";:root{--color-bg-primary: #121212;--color-bg-secondary: #1E1E1E;--color-bg-tertiary: #2C2C2C;--color-bg-elevated: #333333;--color-accent-primary: #ff5722;--color-accent-secondary: #ff6b35;--color-accent-hover: #ff7849;--color-accent-pressed: #e64a19;--color-teal-primary: #2d5f4f;--color-teal-secondary: #3a7360;--color-teal-tertiary: #4a8874;--color-text-primary: #ffffff;--color-text-secondary: #b0b0b0;--color-text-tertiary: #808080;--color-text-muted: #666666;--color-card-bg: rgba(255, 255, 255, .05);--color-card-bg-hover: rgba(255, 255, 255, .08);--color-card-border: rgba(255, 255, 255, .1);--color-card-border-hover: rgba(255, 107, 53, .5);--overlay-dark: rgba(0, 0, 0, .7);--overlay-darker: rgba(0, 0, 0, .85);--glass-bg: rgba(26, 26, 26, .8);--glass-border: 1px solid rgba(255, 255, 255, .1);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .7);--shadow-glow: 0 0 20px rgba(255, 87, 34, .3);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 999px;--transition: all .3s cubic-bezier(.4, 0, .2, 1);--transition-fast: all .15s cubic-bezier(.4, 0, .2, 1);--transition-slow: all .5s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:Do Hyeon,Noto Sans KR,sans-serif;color:var(--color-text-primary);letter-spacing:-.01em;line-height:1.2;font-weight:700}h1{font-size:48px}h2{font-size:36px}h3{font-size:24px}button{font-family:Noto Sans KR,sans-serif;cursor:pointer;border:none;background:none}input,textarea,select{font-family:Noto Sans KR,sans-serif;background:var(--color-bg-tertiary);border:1px solid var(--color-card-border);color:var(--color-text-primary);border-radius:var(--radius-md);padding:12px 16px;font-size:14px;width:100%;transition:var(--transition)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-accent-primary);background:var(--color-bg-elevated)}input::placeholder,textarea::placeholder{color:var(--color-text-tertiary)}label{color:var(--color-text-primary);font-weight:500}p,span{color:var(--color-text-primary)}.container{max-width:100%;margin:0 auto;min-height:100vh;background:var(--color-bg-primary);position:relative;overflow-x:hidden;padding-bottom:80px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;border-radius:var(--radius-full);font-weight:600;font-size:1rem;transition:var(--transition);gap:8px;letter-spacing:-.01em;border:none}.btn-primary{background:var(--color-accent-primary);color:#fff;box-shadow:var(--shadow-md),var(--shadow-glow)}.btn-primary:hover{background:var(--color-accent-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg),var(--shadow-glow)}.btn-primary:active{background:var(--color-accent-pressed);transform:translateY(0)}.btn-secondary{background:var(--color-bg-tertiary);border:1px solid var(--color-card-border);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.btn-secondary:hover{border-color:var(--color-accent-primary);background:var(--color-bg-elevated);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-outline{background:transparent;border:2px solid var(--color-accent-primary);color:var(--color-accent-primary)}.btn-outline:hover{background:var(--color-accent-primary);color:#fff;transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{color:var(--color-text-primary);background:#ffffff0d}.btn.disabled,.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.hero{position:relative;height:600px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff;background-image:url(https://images.unsplash.com/photo-1523987355523-c7b5b0dd90a7?ixlib=rb-4.0.3&auto=format&fit=crop&w=1000&q=80);background-size:cover;background-position:center;overflow:hidden}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#0009,#000c 50%,#000000e6);z-index:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.hero-text{position:relative;z-index:10;margin-top:auto;margin-bottom:80px;text-shadow:0 2px 4px rgba(0,0,0,.3);padding-top:100px}.hero-text h1{font-size:2.5rem;line-height:1.2;margin-bottom:16px;color:#fff}.hero-text .highlight{color:var(--color-accent-secondary);font-style:normal;font-weight:700;text-shadow:0 0 20px rgba(255,107,53,.5)}.hero-text p{font-size:1rem;opacity:.9;font-weight:300;margin-bottom:32px}.hero-actions{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;max-width:800px;margin:0 auto}@media(max-width:768px){.hero-actions{flex-direction:column;width:100%;padding:0 24px}.hero-search-box{width:100%;max-width:100%}}.hero-search-box{flex:1;min-width:320px;max-width:480px;background:#1a1a1ab3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-full);padding:16px 24px;display:flex;align-items:center;gap:16px;border:1px solid var(--color-card-border);box-shadow:var(--shadow-lg);transition:var(--transition)}.hero-search-box:hover{background:#2a2a2acc;border-color:var(--color-accent-primary);transform:translateY(-2px);box-shadow:var(--shadow-xl),var(--shadow-glow)}.search-icon{font-size:1.25rem;flex-shrink:0}.keyword-roller{flex:1;height:24px;position:relative;overflow:hidden}.keyword-item{position:absolute;width:100%;white-space:nowrap;color:#fff;font-size:.9375rem;font-weight:500;opacity:0;transform:translateY(20px);transition:all .5s ease}.keyword-item.active{opacity:1;transform:translateY(0)}.hero-btn{padding:12px 24px;border-radius:var(--radius-full);font-weight:600;font-size:.9375rem;border:none;cursor:pointer;transition:var(--transition)}.hero-btn-primary{background:var(--color-accent-primary);color:#fff;box-shadow:var(--shadow-md),var(--shadow-glow)}.hero-btn-primary:hover{background:var(--color-accent-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg),var(--shadow-glow)}.hero-btn-secondary{background:#1a1a1a99;color:#fff;border:1px solid var(--color-card-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-btn-secondary:hover{background:#2a2a2acc;border-color:var(--color-accent-primary);transform:translateY(-2px)}.scroll-indicator{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:.8;animation:bounce 2s infinite}.scroll-indicator span{font-size:.75rem;text-transform:uppercase;letter-spacing:2px}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%)}40%{transform:translate(-50%,-10px)}60%{transform:translate(-50%,-5px)}}.community-ticker-container{position:absolute;top:0;left:0;right:0;height:48px;background:#ffffff26;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;display:flex;align-items:center;color:#fff;font-size:.875rem;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.2)}.ticker-label{padding:0 20px;font-weight:700;color:#c8e6c9;white-space:nowrap;z-index:2;background:#4a85614d;height:100%;display:flex;align-items:center;box-shadow:4px 0 8px #2d5f3f26}.ticker-ranking{flex:1;display:flex;align-items:center;padding:0 20px;position:relative;height:100%;overflow:hidden}.ranking-item{position:absolute;display:flex;align-items:center;gap:8px;white-space:nowrap;opacity:0;transform:translateY(10px);transition:all .5s ease;pointer-events:none}.ranking-item.active{opacity:1;transform:translateY(0);pointer-events:auto}.ranking-number{font-weight:700;font-size:1rem;color:#c8e6c9;min-width:24px;text-align:center}.ranking-title{font-size:.875rem;color:#fff;opacity:.95}.trip-planner{max-width:800px;margin:0 auto;padding:60px 24px}.trip-section{margin-bottom:48px}.trip-section h3{font-size:1.25rem;margin-bottom:20px;color:var(--color-primary);display:flex;align-items:center;gap:8px}.trip-options{display:flex;gap:16px;flex-wrap:wrap}.trip-option{flex:1;min-width:140px;padding:20px;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:var(--transition);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.trip-option:hover{border-color:var(--color-primary-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.trip-option.selected{border-color:var(--color-primary);background:#f0fdf4;box-shadow:0 0 0 2px var(--color-primary)}.trip-option-label{font-size:1rem;font-weight:600;color:var(--color-text)}.trip-option-time{font-size:.875rem;color:var(--color-text-secondary);margin-top:6px}.trip-submit{width:100%;margin-top:32px;padding:16px;font-size:1.125rem}.trip-submit.disabled{opacity:.5;cursor:not-allowed;background:var(--color-text-secondary);box-shadow:none}.meal-timeline{max-width:800px;margin:0 auto;padding:0}.timeline-title{font-size:2rem;margin-bottom:8px;font-weight:700;text-align:center}.timeline-subtitle{font-size:1rem;color:var(--color-text-secondary);margin-bottom:48px;text-align:center}.timeline-container{position:relative;padding-left:20px}.timeline-item{position:relative;padding-bottom:48px;padding-left:40px}.timeline-item:last-child{padding-bottom:0}.timeline-line{position:absolute;left:11px;top:40px;bottom:0;width:2px;background:var(--color-border)}.timeline-marker{position:absolute;left:0;top:0;width:24px;height:24px;background:var(--color-surface);border:2px solid var(--color-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:2}.timeline-icon{font-size:12px}.timeline-content{background:var(--color-surface);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-md);border:1px solid var(--color-border);transition:var(--transition)}.timeline-content:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.timeline-meal-label{font-size:1.125rem;color:var(--color-primary);margin-bottom:16px;font-weight:600}.filter-bar-container{background:var(--color-bg-primary);padding:20px 0;margin-top:20px;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #0000001a}.filter-bar{max-width:1400px;margin:0 auto;padding:20px 24px;display:flex;flex-wrap:wrap;gap:16px;align-items:center}.filter-group{display:flex;align-items:center;gap:12px}.filter-label{font-size:.9375rem;font-weight:600;color:var(--color-text-secondary)}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-btn{padding:8px 16px;border:1px solid var(--color-card-border);border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition)}.filter-btn:hover{border-color:var(--color-accent-primary);color:var(--color-text-primary)}.filter-btn.active{border-color:var(--color-accent-primary);background:var(--color-accent-primary);color:#fff}.filter-advanced-toggle{margin-left:auto;padding:8px 16px;border:1px solid var(--color-card-border);border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition)}.filter-advanced-toggle:hover{border-color:var(--color-text);color:var(--color-text)}.filter-advanced{max-width:1400px;margin:0 auto;padding:24px 40px 32px;border-top:1px solid var(--color-card-border);background:var(--color-bg-secondary);display:flex;flex-direction:column;gap:24px}.filter-group-advanced{display:flex;flex-direction:column;gap:12px}.filter-label-advanced{font-size:.875rem;font-weight:600;color:var(--color-text);text-transform:uppercase;letter-spacing:.05em}.filter-chips{display:flex;flex-wrap:wrap;gap:10px}.filter-chip{padding:8px 16px;border:1px solid var(--color-card-border);border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition)}.filter-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.filter-chip.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.meal-grid-container{max-width:1400px;margin:0 auto;padding:60px 24px}.meal-count{font-size:1.125rem;color:var(--color-text-secondary);margin-bottom:32px;font-weight:500}.meal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:32px}.meal-card{background:var(--color-card-bg);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);transition:var(--transition);border:1px solid var(--color-card-border)}.meal-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-xl);border-color:var(--color-card-border-hover);background:var(--color-card-bg-hover)}.meal-card img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.meal-card:hover img{transform:scale(1.05)}.modal-overlay{position:fixed;inset:0;background:var(--overlay-darker);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;display:flex;justify-content:center;align-items:center;padding:20px;animation:fadeIn .4s ease-out}.modal-content{background:var(--color-bg-secondary);border:1px solid var(--color-card-border);border-radius:var(--radius-xl);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .5s cubic-bezier(.2,.8,.2,1)}.modal-header{padding:24px 32px;border-bottom:1px solid var(--color-card-border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--color-bg-secondary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10}.modal-header h2{font-size:1.25rem;margin:0}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-secondary);padding:4px;border-radius:50%;transition:var(--transition)}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.modal-body{padding:24px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:24px;border-top:1px solid var(--color-card-border);position:sticky;bottom:0;background:var(--color-bg-primary);z-index:10}.wizard-modal{max-width:600px}.wizard-section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--color-border)}.wizard-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.wizard-question{font-size:1.125rem;font-weight:700;color:var(--color-text);margin:0 0 16px;display:flex;align-items:center;gap:8px}.required-badge{font-size:.75rem;padding:2px 8px;border-radius:12px;background:var(--color-accent-primary);color:#fff;font-weight:700}.wizard-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.wizard-option{border:2px solid var(--color-card-border);border-radius:var(--radius-md);padding:16px;background:var(--color-card-bg);cursor:pointer;transition:var(--transition);text-align:left;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}.wizard-option:hover{border-color:var(--color-primary-light);background:#fafafa;transform:translateY(-2px)}.wizard-option.selected{border-color:var(--color-primary);background:#e8f5e9;box-shadow:0 4px 12px #2d5f3f26}.wizard-option.selected:after{content:"✓";position:absolute;top:8px;right:8px;width:20px;height:20px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}.option-label{font-size:1rem;font-weight:700;color:var(--color-text-primary)}.wizard-option.selected .option-label{color:var(--color-accent-primary)}.option-desc{font-size:.8125rem;color:var(--color-text-secondary);line-height:1.4}.wizard-hint{margin-top:12px;font-size:.8125rem;color:var(--color-text-light);font-style:italic}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(min-width:768px){.container{max-width:100%;box-shadow:none}.hero{height:600px}.hero-text h1{font-size:3.5rem}}.community-modal{max-width:600px}.community-feed{display:flex;flex-direction:column;gap:24px}.empty-feed{text-align:center;padding:60px 0;color:var(--color-text-secondary)}.empty-feed .hint{font-size:.875rem;color:var(--color-primary);margin-top:8px}.community-post{border:1px solid var(--color-card-border);border-radius:var(--radius-lg);padding:24px;background:var(--color-card-bg);transition:var(--transition);box-shadow:var(--shadow-sm)}.community-post:hover{border-color:#7cb34233;box-shadow:var(--shadow-md);transform:translateY(-2px)}.post-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.post-author{display:flex;align-items:center;gap:8px}.author-emoji{font-size:1.25rem;background:#f3f4f6;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}.author-name{font-weight:600;color:var(--color-text);font-size:.9375rem}.author-badge{background:var(--color-primary);color:#fff;font-size:.75rem;padding:2px 6px;border-radius:4px;font-weight:500}.post-time{font-size:.8125rem;color:var(--color-text-light)}.post-title{font-size:1.125rem;font-weight:700;color:var(--color-text);margin-bottom:12px}.post-meals{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.post-meal-tag{font-size:.8125rem;padding:4px 10px;background:var(--color-bg-elevated);color:var(--color-text-secondary);border:1px solid var(--color-card-border);border-radius:100px;font-weight:500}.post-description{font-size:.9375rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:16px;white-space:pre-wrap}.post-footer{display:flex;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--color-border)}.post-like-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:100px;border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition)}.post-like-btn:hover{background:#fef2f2;border-color:#fca5a5;color:#ef4444}.post-like-btn.liked{background:#fef2f2;border-color:#ef4444;color:#ef4444}.recommendation-form-modal{max-width:600px}.selected-meals-preview{display:flex;flex-wrap:wrap;gap:8px}.preview-meal-tag{display:inline-flex;align-items:center;padding:6px 12px;background:var(--color-primary);color:#fff;border-radius:100px;font-size:.875rem;font-weight:500}.meal-selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px;max-height:300px;overflow-y:auto;padding:4px}.meal-selection-item{position:relative;border:1px solid var(--color-card-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-card-bg);cursor:pointer;transition:var(--transition);aspect-ratio:1;display:flex;flex-direction:column}.meal-selection-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary-light)}.meal-selection-item.selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.meal-selection-item img{width:100%;height:70%;object-fit:cover}.meal-selection-title{height:30%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:var(--color-text);text-align:center;padding:4px;background:#fafafa}.selection-check{position:absolute;top:4px;right:4px;width:20px;height:20px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;z-index:2}.emoji-select{padding:12px;border:1px solid var(--color-card-border);border-radius:var(--radius-md);font-size:1.25rem;background:var(--color-bg-tertiary);cursor:pointer;color:var(--color-text-primary)}.post-delete-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:100px;border:1px solid transparent;background:transparent;color:var(--color-text-light);font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition)}.post-delete-btn:hover{background:#fef2f2;color:#ef4444}.meal-plan-modal{max-width:700px}.plan-summary{display:flex;gap:16px;padding:0;background:var(--color-surface-warm);border-radius:var(--radius-md);margin-bottom:24px}.summary-item{flex:1;display:flex;flex-direction:column;gap:4px}.summary-label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.summary-value{font-size:1.125rem;font-weight:700;color:var(--color-primary)}.timeline-day{margin-bottom:32px}.timeline-day:last-child{margin-bottom:0}.day-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.day-badge{background:var(--color-primary);color:#fff;padding:4px 12px;border-radius:100px;font-size:.8125rem;font-weight:600}.day-name{font-size:1.125rem;font-weight:600;color:var(--color-text)}.day-meals{position:relative;padding-left:30px;padding-top:16px}.timeline-meal{position:relative;margin-bottom:24px}.timeline-meal:last-child .time-line{display:none}.meal-time-marker{position:absolute;left:-30px;top:8px}.time-dot{width:12px;height:12px;background:var(--color-primary);border:2px solid white;border-radius:50%;box-shadow:0 0 0 2px var(--color-primary)}.time-line{position:absolute;left:5px;top:12px;width:2px;height:60px;background:var(--color-border)}.meal-content{background:var(--color-card-bg);border-radius:var(--radius-md);border:1px solid var(--color-card-border);overflow:hidden}.meal-time-label{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--color-surface-warm);border-bottom:1px solid var(--color-border)}.meal-icon{font-size:1.125rem}.meal-type{font-weight:600;color:var(--color-text)}.meal-time{margin-left:auto;font-size:.875rem;color:var(--color-text-secondary)}.meal-card-timeline{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--color-card-bg);border-radius:var(--radius-md);border:1px solid var(--color-card-border)}.timeline-meal-image{width:100%;aspect-ratio:1 / 1;border-radius:var(--radius-md);overflow:hidden;max-width:300px}.timeline-meal-image img{width:100%;height:100%;object-fit:cover}.timeline-meal-info{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.timeline-meal-title{font-size:1rem;font-weight:600;color:var(--color-text)}.timeline-meal-meta{font-size:.875rem;color:var(--color-text-secondary)}.timeline-meal-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.btn-timeline-buy{flex:1;padding:12px 16px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%;display:flex;align-items:center;justify-content:center;gap:6px}.meal-emoji{font-size:1.5rem;margin-right:8px}.meal-title{font-size:1rem;font-weight:600;color:var(--color-text)}.saved-plans-modal{max-width:900px}.saved-plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.saved-plan-card{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:var(--radius-lg);padding:20px;transition:var(--transition)}.saved-plan-card:hover{box-shadow:var(--shadow-md);border-color:#7cb3424d;transform:translateY(-2px)}.plan-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.plan-name{font-size:1.125rem;font-weight:700;color:var(--color-text);margin:0;flex:1}.plan-delete-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;opacity:.5;transition:var(--transition);padding:4px}.plan-delete-btn:hover{opacity:1;transform:scale(1.1)}.plan-edit-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;opacity:.5;transition:var(--transition);padding:4px}.plan-edit-btn:hover{opacity:1;transform:scale(1.1)}.plan-name-input{flex:1;padding:8px 12px;font-size:1.125rem;font-weight:700;color:var(--color-text);background:var(--color-bg-tertiary);border:2px solid var(--color-primary);border-radius:var(--radius-sm);outline:none}.plan-name-input:focus{border-color:var(--color-primary-dark)}.plan-meta{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.plan-date{font-size:.875rem;color:var(--color-text-secondary)}.plan-details{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.plan-detail-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--color-bg-tertiary);border-radius:var(--radius-sm)}.detail-label{font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.detail-value{font-size:.875rem;color:var(--color-text);font-weight:600}.plan-expand-btn{width:100%;padding:10px;border:1px solid var(--color-card-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition)}.plan-expand-btn:hover{background:var(--color-card-bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.plan-meals{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border);animation:slideDown .3s ease-out}.plan-day{margin-bottom:16px}.plan-day:last-child{margin-bottom:0}.day-title{font-size:1rem;font-weight:600;color:var(--color-primary);margin:0 0 8px}.plan-meal-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);margin-bottom:6px}.plan-meal-item:last-child{margin-bottom:0}.plan-meal-item .meal-time{font-size:.875rem;color:var(--color-text-secondary);font-weight:500;margin-left:0;min-width:50px;flex-shrink:0}.plan-meal-item .meal-image-small{width:40px;height:40px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;box-shadow:var(--shadow-sm)}.plan-meal-item .meal-image-small img{width:100%;height:100%;object-fit:cover}.plan-meal-item .meal-name{flex:1;font-size:.875rem;color:var(--color-text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.saved-plans-grid{grid-template-columns:1fr}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--color-bg-secondary);border-top:1px solid var(--color-card-border);display:flex;justify-content:space-around;align-items:center;padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:999;box-shadow:0 -2px 16px #0006}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;background:transparent;border:none;cursor:pointer;transition:var(--transition);color:var(--color-text-tertiary)}.bottom-nav-item:hover{color:var(--color-text-secondary)}.bottom-nav-item.active{color:var(--color-accent-primary)}.bottom-nav-icon{font-size:24px;line-height:1}.bottom-nav-label{font-size:11px;font-weight:500;letter-spacing:-.02em}.tab-content{min-height:calc(100vh - 80px);padding-bottom:80px}.container{padding-bottom:100px!important}.saved-plans-tabs{display:flex;gap:8px;padding:16px 24px 0;border-bottom:1px solid var(--color-card-border)}.saved-plans-tabs .tab-button{flex:1;padding:12px 24px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-weight:600;font-size:15px;cursor:pointer;transition:var(--transition)}.saved-plans-tabs .tab-button:hover{color:var(--color-text-primary)}.saved-plans-tabs .tab-button.active{color:var(--color-accent-primary);border-bottom-color:var(--color-accent-primary)}.shopping-list{padding:20px 0}.shopping-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.shopping-title{font-size:20px;font-weight:700;color:var(--color-text-primary)}.shopping-date-range{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--color-bg-tertiary);border-radius:var(--radius-md);font-size:14px;color:var(--color-text-secondary)}.date-icon{font-size:16px}.shopping-category{margin-bottom:32px}.category-title{font-size:16px;font-weight:600;color:var(--color-text-primary);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--color-card-border)}.shopping-items{display:flex;flex-direction:column;gap:8px}.shopping-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:var(--radius-md);transition:var(--transition)}.shopping-item:hover{background:var(--color-card-bg-hover)}.shopping-item.checked{opacity:.5}.shopping-item.checked .item-name{text-decoration:line-through}.item-checkbox{display:flex;align-items:center;cursor:pointer;position:relative}.item-checkbox input[type=checkbox]{position:absolute;opacity:0;cursor:pointer}.checkbox-custom{width:20px;height:20px;border:2px solid var(--color-card-border);border-radius:4px;background:var(--color-bg-tertiary);transition:var(--transition);display:flex;align-items:center;justify-content:center}.item-checkbox input:checked+.checkbox-custom{background:var(--color-accent-primary);border-color:var(--color-accent-primary)}.item-checkbox input:checked+.checkbox-custom:after{content:"✓";color:#fff;font-size:14px;font-weight:700}.item-details{flex:1;display:flex;gap:8px;align-items:baseline}.item-name{font-size:15px;color:var(--color-text-primary);font-weight:500}.item-amount{font-size:13px;color:var(--color-text-secondary)}.item-delete{background:transparent;border:none;cursor:pointer;font-size:18px;opacity:.6;transition:var(--transition);padding:4px}.item-delete:hover{opacity:1}.btn-add-item{width:100%;padding:14px;background:var(--color-bg-tertiary);border:1px dashed var(--color-accent-primary);border-radius:var(--radius-md);color:var(--color-accent-primary);font-weight:600;cursor:pointer;transition:var(--transition);margin-top:16px}.btn-add-item:hover{background:var(--color-card-bg-hover)}.add-item-form{background:var(--color-bg-tertiary);padding:20px;border-radius:var(--radius-md);margin-top:16px;border:1px solid var(--color-card-border)}.form-select,.form-input{width:100%;padding:12px 16px;background:var(--color-bg-primary);border:1px solid var(--color-card-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:14px;margin-bottom:12px;transition:var(--transition)}.form-select:focus,.form-input:focus{outline:none;border-color:var(--color-accent-primary)}.form-actions{display:flex;gap:8px;margin-top:16px}.form-actions .btn{flex:1}.recipe-detail-overlay{background:#000000f2;z-index:1001}.recipe-detail-content{background:var(--color-teal-primary);width:100%;max-width:600px;height:100vh;overflow-y:auto;position:relative;animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.recipe-detail-header{height:300px;position:relative}.recipe-header-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.4),transparent);padding:20px;display:flex;justify-content:space-between}.recipe-close{background:#00000080;border:none;color:#fff;font-size:24px;width:40px;height:40px;border-radius:50%;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.recipe-actions{display:flex;gap:12px}.recipe-action-btn{background:#00000080;border:none;color:#fff;font-size:20px;width:40px;height:40px;border-radius:50%;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.recipe-meta-section{background:var(--color-teal-secondary);padding:24px;border-radius:24px 24px 0 0;margin-top:-24px;position:relative}.recipe-title{font-size:24px;font-weight:700;color:#fff;margin-bottom:20px}.recipe-meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.meta-item{display:flex;align-items:center;gap:8px}.meta-icon{font-size:24px}.meta-text{flex:1}.meta-label{font-size:11px;color:#ffffffb3;margin-bottom:2px}.meta-value{font-size:14px;font-weight:600;color:#fff}.recipe-tabs{display:flex;background:var(--color-teal-secondary);border-bottom:1px solid rgba(255,255,255,.1);padding:0 24px}.recipe-tab{flex:1;padding:16px 12px;background:transparent;border:none;border-bottom:2px solid transparent;color:#fff9;font-weight:600;font-size:14px;cursor:pointer;transition:var(--transition)}.recipe-tab.active{color:#fff;border-bottom-color:var(--color-accent-primary)}.recipe-tab-content{background:var(--color-teal-secondary);padding:24px;min-height:400px}.ingredients-section .ingredient-category{margin-bottom:32px}.ingredients-section h3{font-size:16px;font-weight:600;color:#fff;margin-bottom:16px}.ingredient-item{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffff0d;border-radius:var(--radius-md);margin-bottom:8px}.ingredient-checkbox{display:flex;align-items:center;cursor:pointer;position:relative}.ingredient-checkbox input{position:absolute;opacity:0}.checkbox-round{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:50%;background:transparent;transition:var(--transition)}.ingredient-checkbox input:checked+.checkbox-round{background:var(--color-accent-primary);border-color:var(--color-accent-primary)}.ingredient-name{flex:1;color:#fff;font-weight:500}.ingredient-amount{color:#ffffffb3;font-size:14px}.cooking-section{display:flex;flex-direction:column;gap:20px}.cooking-step{display:flex;gap:16px}.step-number{width:32px;height:32px;background:var(--color-accent-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;flex-shrink:0}.step-text{flex:1;color:#fff;line-height:1.6;padding-top:4px}.storage-section{color:#fff;line-height:1.8}.reviews-section{display:flex;flex-direction:column;gap:24px}.reviews-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.reviews-header h3{font-size:18px;color:#fff;font-weight:700}.average-rating{display:flex;align-items:center;gap:8px}.rating-number{font-size:24px;font-weight:700;color:var(--color-accent-primary)}.rating-stars{color:var(--color-accent-primary);font-size:16px}.review-item{background:#ffffff0d;padding:16px;border-radius:var(--radius-md)}.review-header{display:flex;justify-content:space-between;margin-bottom:12px}.review-author{display:flex;gap:12px}.author-avatar{width:40px;height:40px;background:#ffffff1a;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px}.author-info{display:flex;flex-direction:column;gap:4px}.author-name{color:#fff;font-weight:600;font-size:14px}.review-stars{color:var(--color-accent-primary);font-size:12px}.review-date{color:#fff9;font-size:12px}.review-text{color:#ffffffe6;line-height:1.6;font-size:14px}.fab-container{position:fixed;bottom:90px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px}.fab-button{width:56px;height:56px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.fab-primary{background:var(--color-accent-primary);color:#fff}.fab-secondary{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-card-border)}.fab-button:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 8px 16px #0006}.fab-button:active{transform:scale(.95)}.fab-icon{font-size:24px;line-height:1}.fab-label{position:absolute;right:70px;background:var(--color-bg-elevated);color:var(--color-text-primary);padding:6px 12px;border-radius:8px;font-size:.875rem;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px #0003;opacity:0;transform:translate(10px);transition:all .2s ease;pointer-events:none}.fab-button:hover .fab-label{opacity:1;transform:translate(0)}.favorites-container{padding:20px 20px 100px}.favorites-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 4px 12px;border-bottom:2px solid var(--color-accent-primary)}.favorites-header h2{font-size:20px;margin:0}.favorites-count{color:var(--color-text-secondary);font-size:14px}.favorites-list{display:flex;flex-direction:column;gap:16px}.favorite-item{display:flex;align-items:center;background:var(--color-bg-secondary);padding:12px;border-radius:12px;gap:16px;transition:transform .2s ease}.favorite-item:active{transform:scale(.98);background:var(--color-bg-tertiary)}.favorite-thumbnail{width:80px;height:80px;border-radius:8px;overflow:hidden;flex-shrink:0}.favorite-thumbnail img{width:100%;height:100%;object-fit:cover}.favorite-info{flex:1;display:flex;flex-direction:column;gap:6px}.favorite-info h3{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0}.favorite-tags{display:flex;flex-wrap:wrap;gap:6px}.favorite-tags span{font-size:12px;color:var(--color-text-secondary)}.favorite-delete-btn{background:none;border:none;font-size:18px;cursor:pointer;padding:8px;opacity:.6;transition:opacity .2s}.favorite-delete-btn:hover{opacity:1}.fab-button-extended{display:flex;align-items:center;gap:8px;padding:14px 24px;border-radius:28px;border:none;font-size:16px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #0000004d;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}.fab-button-extended.fab-primary{background:var(--color-accent-primary);color:#fff}.fab-button-extended.fab-secondary{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-card-border)}.fab-button-extended:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 8px 16px #0006}.fab-button-extended:active{transform:scale(.95)}.fab-icon-extended{font-size:20px;line-height:1}.fab-label-extended{font-size:15px;line-height:1}.meal-detail-modal{max-width:600px;max-height:90vh;overflow-y:auto;padding:0;display:flex;flex-direction:column}.meal-detail-header{position:relative;width:100%;flex-shrink:0}.meal-detail-image{width:100%;height:300px;object-fit:cover}.meal-detail-close{position:absolute;top:16px;right:16px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;border:none;width:40px;height:40px;border-radius:50%;font-size:28px;display:flex;align-items:center;justify-content:center;cursor:pointer}.meal-detail-body{padding:24px 24px 100px;flex:1;overflow-y:auto}.meal-detail-title{font-size:24px;font-weight:700;margin-bottom:12px;color:var(--color-text-primary)}.meal-detail-description{color:var(--color-text-secondary);margin-bottom:20px;line-height:1.6}.meal-detail-info-icons{display:flex;gap:20px;margin-bottom:32px;padding:20px;background:var(--color-bg-secondary);border-radius:var(--radius-md)}.info-icon-item{flex:1;text-align:center}.info-icon{font-size:32px;margin-bottom:8px}.info-label{font-size:13px;color:var(--color-text-secondary);font-weight:500}.meal-detail-section{margin-bottom:32px}.section-title{font-size:18px;font-weight:600;margin-bottom:16px;color:var(--color-text-primary)}.ingredient-list{display:flex;flex-direction:column;gap:12px}.ingredient-item{display:flex;align-items:center;padding:12px 16px;background:var(--color-bg-secondary);border-radius:var(--radius-sm)}.ingredient-icon{margin-right:12px;color:var(--color-accent-primary)}.ingredient-name{flex:1;font-weight:500;color:var(--color-text-primary)}.ingredient-amount{color:var(--color-text-secondary);font-size:14px}.review-list{display:flex;flex-direction:column;gap:16px}.review-item{padding:20px;background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-card-border);transition:all .2s ease}.review-item:hover{border-color:#fff3;transform:translateY(-2px)}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.review-author{display:flex;align-items:center;gap:8px}.author-emoji{font-size:24px}.author-name{font-weight:600;color:var(--color-text-primary)}.review-date{font-size:13px;color:var(--color-text-secondary)}.review-rating{display:flex;align-items:center;gap:8px;margin-bottom:12px}.rating-number{font-size:14px;font-weight:600;color:var(--color-accent-primary)}.review-comment{color:var(--color-text-secondary);line-height:1.6;margin:0}.no-detail-info{text-align:center;padding:60px 20px;color:var(--color-text-secondary)}.meal-detail-footer{display:flex;gap:12px;padding:20px 24px;border-top:1px solid var(--color-card-border);background:var(--color-bg-primary);position:sticky;bottom:0;flex-shrink:0}.btn-timeline-buy.btn-outline{background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--color-text-primary)}.btn-timeline-buy.btn-outline:hover{background:#ffffff0d;border-color:#ffffff4d;transform:translateY(-2px)}.scroll-to-top{position:fixed;left:20px;bottom:90px;width:56px;height:56px;border-radius:50%;background:var(--color-bg-elevated);border:2px solid var(--color-card-border);color:var(--color-text-primary);font-size:24px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #0000004d;transition:all .3s ease;z-index:9998;display:flex;align-items:center;justify-content:center}.scroll-to-top:hover{background:var(--color-accent-primary);color:#fff;transform:translateY(-4px);box-shadow:0 6px 16px #ff572266}.scroll-to-top:active{transform:translateY(-2px)}.filter-btn.reset-btn{background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-card-border)}.filter-btn.reset-btn:hover{background:var(--color-accent-primary);color:#fff;border-color:var(--color-accent-primary)}.btn-regenerate-meal{background:transparent;border:none;font-size:20px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s ease;opacity:.6}.btn-regenerate-meal:hover{opacity:1;background:#ff57221a;transform:rotate(180deg)}.btn-regenerate-day{background:var(--color-bg-secondary);border:1px solid var(--color-card-border);color:var(--color-text-primary);padding:6px 12px;border-radius:var(--radius-sm);font-size:.875rem;cursor:pointer;transition:all .2s ease}.btn-regenerate-day:hover{background:var(--color-accent-primary);color:#fff;border-color:var(--color-accent-primary);transform:translateY(-2px)}.btn-secondary{background:var(--color-bg-secondary);border:1px solid var(--color-card-border);color:var(--color-text-primary);padding:12px 24px;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:var(--color-accent-secondary);color:#fff;border-color:var(--color-accent-secondary)}.btn-write-review{background:var(--color-accent-primary);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-write-review:hover{background:var(--color-accent-secondary);transform:translateY(-2px)}.review-form{background:var(--color-bg-secondary);padding:20px;border-radius:var(--radius-md);margin-bottom:24px;border:1px solid var(--color-card-border)}.form-row{margin-bottom:16px}.form-row label{display:block;margin-bottom:8px;font-weight:600;color:var(--color-text-primary)}.form-input{width:100%;padding:10px 12px;border:1px solid var(--color-card-border);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:.875rem}.form-input:focus{outline:none;border-color:var(--color-accent-primary)}.form-textarea{width:100%;min-height:80px;padding:10px 12px;border:1px solid var(--color-card-border);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:.875rem;resize:vertical;font-family:inherit}.form-textarea:focus{outline:none;border-color:var(--color-accent-primary)}.rating-input{display:flex;gap:4px}.rating-input .star{font-size:24px;cursor:pointer;opacity:.3;transition:opacity .2s ease}.rating-input .star.active{opacity:1}.rating-input .star:hover{opacity:.8}.emoji-picker{display:flex;gap:8px;flex-wrap:wrap}.emoji-option{font-size:24px;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:all .2s ease;opacity:.5}.emoji-option.active{opacity:1;background:#ff572233}.emoji-option:hover{opacity:1;transform:scale(1.2)}.empty-reviews{text-align:center;padding:40px 20px;color:var(--color-text-secondary)}.empty-reviews p{margin-bottom:16px;font-size:.875rem}.home-sections{padding:0 0 80px}.meal-section{margin-bottom:48px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 20px}.section-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin:0}.section-see-all{background:none;border:none;color:var(--color-accent-primary);font-size:.875rem;font-weight:600;cursor:pointer;transition:color .2s ease}.section-see-all:hover{color:var(--color-accent-secondary)}.horizontal-scroll{display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;margin:0 20px 16px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.horizontal-scroll::-webkit-scrollbar{display:none}.meal-card-horizontal{flex:0 0 280px;display:flex;background:var(--color-bg-elevated);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .2s ease;scroll-snap-align:start}.meal-card-horizontal:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000004d}.meal-card-image-horizontal{width:120px;height:120px;flex-shrink:0;overflow:hidden}.meal-card-image-horizontal img{width:100%;height:100%;object-fit:cover}.meal-card-info-horizontal{flex:1;padding:12px;display:flex;flex-direction:column;justify-content:space-between}.meal-card-title-horizontal{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 8px;line-height:1.3}.meal-card-meta{display:flex;gap:12px;font-size:.75rem;color:var(--color-text-secondary)}.meta-item{display:flex;align-items:center;gap:4px}.list-view{display:flex;flex-direction:column;gap:12px;padding:0 20px}.meal-card-list{display:flex;align-items:center;gap:16px;background:var(--color-bg-elevated);padding:12px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.meal-card-list:hover{background:var(--color-bg-tertiary);transform:translate(4px)}.meal-thumbnail-list{width:60px;height:60px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.meal-info-list{flex:1;min-width:0}.meal-title-list{font-size:.9375rem;font-weight:600;color:var(--color-text-primary);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-meta-list{display:flex;gap:12px;font-size:.75rem;color:var(--color-text-secondary)}.arrow-icon{font-size:1.25rem;color:var(--color-text-secondary);flex-shrink:0}.grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;padding:0 20px}.meal-card-grid{background:var(--color-bg-elevated);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:all .2s ease}.meal-card-grid:hover{transform:translateY(-4px);box-shadow:0 6px 16px #00000040}.meal-card-grid img{width:100%;height:120px;object-fit:cover}.meal-card-grid h3{font-size:.875rem;font-weight:600;color:var(--color-text-primary);margin:12px 12px 8px;line-height:1.3}.meal-card-grid .meal-card-footer{display:flex;justify-content:space-between;padding:0 12px 12px;font-size:.75rem;color:var(--color-text-secondary)}.wizard-chips{display:flex;flex-wrap:wrap;gap:12px}.wizard-chip{padding:10px 20px;background:var(--color-bg-secondary);border:2px solid var(--color-card-border);border-radius:24px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;color:var(--color-text-primary)}.wizard-chip:hover{border-color:var(--color-accent-primary);transform:translateY(-2px)}.wizard-chip.selected{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}.spicy-slider{margin-top:16px}.wizard-range{width:100%;height:8px;border-radius:4px;background:linear-gradient(to right,#4caf50,#ffeb3b,#ff9800,#f44336);outline:none;-webkit-appearance:none}.wizard-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;cursor:pointer;border:2px solid var(--color-accent-primary);box-shadow:0 2px 8px #0003}.wizard-range::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;cursor:pointer;border:2px solid var(--color-accent-primary);box-shadow:0 2px 8px #0003}.spicy-label{text-align:center;margin-top:16px;font-size:1.125rem;font-weight:600;color:var(--color-text-primary)}.spicy-level{color:var(--color-text-secondary);font-size:.875rem;font-weight:400;margin-left:8px}.filter-advanced-toggle{background:var(--color-accent-primary);color:#fff;border:none;padding:10px 20px;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease}.filter-advanced-toggle:hover{background:var(--color-accent-secondary);transform:translateY(-2px)}.rankings-container{padding-bottom:80px;animation:fadeIn .3s ease}.rankings-header{padding:24px 20px;background:var(--color-bg-primary);position:sticky;top:0;z-index:10}.rankings-header h1{font-size:1.5rem;margin-bottom:4px;color:var(--color-text-primary)}.rankings-subtitle{color:var(--color-text-secondary);font-size:.9rem}.season-info-card{margin-top:16px;padding:14px 16px;background:var(--color-card-bg);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:16px}.season-info-item{flex:1}.season-info-right{text-align:right}.season-info-divider{width:1px;height:32px;background:var(--color-card-border);opacity:.5}.season-info-label{font-size:.75rem;color:var(--color-text-secondary);margin-bottom:4px;font-weight:500}.season-info-value{font-size:1rem;font-weight:700;color:var(--color-accent-primary)}.rankings-list{padding:0 20px}.rankings-list .ranking-item{position:relative;display:flex;align-items:center;padding:14px 12px;margin-bottom:12px;background:var(--color-card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:all .3s ease;border:1px solid var(--color-card-border);opacity:1;pointer-events:auto;overflow:hidden}.rankings-list .ranking-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}.rankings-list .ranking-badge{width:36px;font-size:1.1rem;font-weight:700;color:var(--color-accent-primary);text-align:center;margin-right:10px;flex-shrink:0}.rankings-list .ranking-image{width:70px;height:70px;border-radius:var(--radius-md);overflow:hidden;margin-right:12px;flex-shrink:0;box-shadow:var(--shadow-sm)}.rankings-list .ranking-image img{width:100%;height:100%;object-fit:cover}.rankings-list .ranking-info{flex:1;min-width:0;overflow:hidden}.rankings-list .ranking-title{font-size:.9375rem;font-weight:700;margin-bottom:6px;color:var(--color-text-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rankings-list .ranking-meta{display:flex;gap:8px;font-size:.75rem;color:var(--color-text-secondary);margin-bottom:5px;flex-wrap:wrap}.rankings-list .ranking-meta span{display:inline-flex;align-items:center;gap:2px;white-space:nowrap}.rankings-list .ranking-stats{font-size:.75rem;color:var(--color-accent-primary);font-weight:600}.rankings-list .click-count{display:inline-flex;align-items:center;gap:4px}.rankings-list .ranking-arrow{color:var(--color-text-tertiary);font-size:1.2rem;margin-left:12px;flex-shrink:0}.rankings-list .ranking-item-top{background:linear-gradient(135deg,#ffc10726,#ff98001a);border:1px solid rgba(255,193,7,.3)}.rankings-list .ranking-item-top:hover{background:linear-gradient(135deg,#ffc10733,#ff980026);border-color:#ffc10780}.rankings-list .ranking-badge-top{font-size:2rem}.rankings-list .rank-change{position:absolute;top:8px;left:52px;font-size:.7rem;padding:3px 8px;border-radius:12px;font-weight:700;white-space:nowrap}.rankings-list .rank-change-up{background:#00b894e6;color:#fff}.rankings-list .rank-change-down{background:#d63031e6;color:#fff}.rankings-list .rank-change-new{background:#6c5ce7e6;color:#fff}.rankings-list .rank-change-same{background:#636e72b3;color:#ffffffe6}.rankings-list .achievement-badges{display:flex;gap:4px;margin-bottom:8px;flex-wrap:wrap}.rankings-list .achievement-badge{font-size:.7rem;padding:3px 7px;border-radius:8px;background:#ff7675d9;color:#fff;font-weight:700;white-space:nowrap}.rankings-list .click-count{font-weight:700;color:var(--color-accent-primary);font-size:.8125rem}.empty-rankings{text-align:center;padding:60px 20px;color:var(--color-text-secondary)}
