:root{--white: #FFFFFF;--snow: #F8FAFC;--cloud: #F1F5F9;--mist: #E2E8F0;--stone: #64748B;--graphite: #0F172A;--primary: #8B5CF6;--primary-light: #A78BFA;--primary-soft: rgba(139, 92, 246, .12);--primary-medium: rgba(139, 92, 246, .24);--success: #10B981;--success-soft: rgba(16, 185, 129, .12);--warning: #F59E0B;--warning-soft: rgba(245, 158, 11, .12);--energy: #EC4899;--energy-soft: rgba(236, 72, 153, .12);--gradient-primary: linear-gradient(135deg, #8B5CF6 0%, #EC4899 100%);--gradient-success: linear-gradient(135deg, #10B981 0%, #34D399 100%);--gradient-warm: linear-gradient(135deg, #F59E0B 0%, #EC4899 100%);--font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--shadow-subtle: 0 2px 8px rgba(139, 92, 246, .08);--shadow-soft: 0 4px 24px rgba(139, 92, 246, .12);--shadow-medium: 0 8px 32px rgba(139, 92, 246, .16);--shadow-glow: 0 0 40px rgba(139, 92, 246, .3);--max-width: 420px;--nav-height: 72px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font);background:var(--snow);color:var(--graphite);line-height:1.5;letter-spacing:-.01em;min-height:100vh;min-height:100dvh}#root{min-height:100vh;min-height:100dvh}.app-layout{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;max-width:var(--max-width);margin:0 auto;background:var(--white)}.main-content{flex:1;padding:var(--space-5);padding-bottom:calc(var(--nav-height) + var(--space-6))}.bottom-nav{position:fixed;bottom:var(--space-4);left:50%;transform:translate(-50%);width:calc(100% - var(--space-4) * 2);max-width:500px;height:64px;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-medium);display:flex;justify-content:space-evenly;align-items:center;z-index:100;padding:0 var(--space-2);margin-bottom:env(safe-area-inset-bottom,0)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-1);color:var(--stone);text-decoration:none;font-size:11px;font-weight:500;letter-spacing:.02em;transition:all .3s var(--bounce);border-radius:var(--radius-md);min-width:0}.nav-item:hover{color:var(--primary);transform:translateY(-2px)}.nav-item:active{transform:scale(.9)}.nav-item.active{color:var(--primary);background:var(--primary-soft)}.nav-icon{width:24px;height:24px;stroke-width:1.5;transition:transform .3s var(--bounce)}.nav-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.nav-activity-dot{position:absolute;top:-2px;right:-4px;width:10px;height:10px;background:var(--primary);border-radius:50%;border:2px solid var(--white)}.nav-item.active .nav-activity-dot{border-color:var(--primary-soft)}.nav-item:hover .nav-icon{transform:scale(1.15)}.nav-item.active .nav-icon{animation:popIn .4s var(--bounce)}.dashboard{display:flex;flex-direction:column;gap:var(--space-6);padding-top:env(safe-area-inset-top,0)}.dashboard-header{text-align:center;padding-top:var(--space-4)}.dashboard-hero{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--cloud);gap:var(--space-4)}.hero-greeting{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0}.hero-icon{font-size:36px;flex-shrink:0}.hero-text{min-width:0}.hero-text .greeting{font-size:20px;font-weight:700;letter-spacing:-.02em;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-text .motivation{font-size:13px;color:var(--stone);margin-top:2px;font-weight:500}.hero-progress{flex-shrink:0}.hero-ring{position:relative;width:70px;height:70px}.hero-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.hero-ring-bg{fill:none;stroke:var(--mist);stroke-width:8}.hero-ring-fill{fill:none;stroke:var(--primary);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .6s ease-out}.hero-ring-fill.complete{filter:drop-shadow(0 0 6px rgba(16,185,129,.5))}.hero-ring-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.hero-ring-value{font-size:16px;font-weight:700;color:var(--graphite)}.daily-progress{display:flex;flex-direction:column;align-items:center;padding:var(--space-6) 0;animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.progress-ring-container{position:relative;display:flex;align-items:center;justify-content:center}.progress-ring{transform:rotate(-90deg);filter:drop-shadow(0 8px 24px rgba(139,92,246,.25))}.progress-ring-bg{fill:none;stroke:var(--cloud);stroke-width:10}.progress-ring-fill{fill:none;stroke:url(#progressGradient);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.34,1.56,.64,1)}.progress-ring-fill.complete{stroke:url(#successGradient);filter:drop-shadow(0 0 20px rgba(16,185,129,.5));animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{filter:drop-shadow(0 0 20px rgba(16,185,129,.5))}50%{filter:drop-shadow(0 0 30px rgba(16,185,129,.8))}}.progress-center{position:absolute;display:flex;flex-direction:column;align-items:center}.progress-current{font-size:48px;font-weight:700;letter-spacing:-.04em;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.progress-divider{font-size:14px;color:var(--stone);font-weight:500}.progress-stats{display:flex;gap:var(--space-7);margin-top:var(--space-5)}.stat{display:flex;flex-direction:column;align-items:center;padding:var(--space-3) var(--space-4);background:var(--primary-soft);border-radius:var(--radius-md);transition:all .3s var(--bounce);animation:popIn .5s var(--bounce) backwards}.stat:first-child{animation-delay:.1s}.stat:last-child{animation-delay:.2s}.stat:hover{transform:translateY(-2px) scale(1.05);background:var(--primary-medium)}.stat-value{font-size:20px;font-weight:600;color:var(--primary)}.stat-label{font-size:12px;color:var(--stone);margin-top:var(--space-1);text-transform:uppercase;letter-spacing:.05em}.goal-achieved{background:var(--gradient-success);color:#fff;padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-size:14px;font-weight:600;margin-top:var(--space-4);animation:celebrate .6s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 16px #10b9814d}@keyframes celebrate{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.overall-progress{display:flex;flex-direction:column;align-items:center;padding:var(--space-4) 0}.overall-progress-ring{position:relative;display:flex;align-items:center;justify-content:center}.overall-progress-ring svg{transform:rotate(-90deg)}.overall-progress-bg{fill:none;stroke:var(--mist)}.overall-progress-fill{fill:none;stroke-linecap:round;transition:stroke-dashoffset .8s ease-out}.overall-progress-fill.complete{filter:drop-shadow(0 0 8px rgba(16,185,129,.5))}.overall-progress-center{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center}.overall-progress-value{font-size:32px;font-weight:700;color:var(--ink);line-height:1}.overall-progress-label{font-size:13px;color:var(--stone);font-weight:500;margin-top:var(--space-1)}.overall-progress-stats{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-top:var(--space-3)}.overall-progress-hit{font-size:14px;color:var(--stone);font-weight:500}.overall-progress-badge{background:var(--gradient-success);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:12px;font-weight:600;animation:celebrate .6s cubic-bezier(.34,1.56,.64,1)}.macro-progress-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);padding:var(--space-4) 0}.macro-progress-grid.single-macro{grid-template-columns:1fr;max-width:200px;margin:0 auto}.macro-progress-grid.three-macros{grid-template-columns:repeat(2,1fr)}.macro-progress-grid.three-macros .macro-ring:first-child{grid-column:1 / -1;justify-self:center}.macro-ring{display:flex;flex-direction:column;align-items:center;padding:var(--space-3);background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--cloud);transition:all .2s ease}.macro-ring:active{transform:scale(.98)}.macro-ring-container{position:relative;display:flex;align-items:center;justify-content:center}.macro-ring-svg{transform:rotate(-90deg)}.macro-ring-bg{fill:none;stroke:var(--mist)}.macro-ring-fill{fill:none;stroke-linecap:round;transition:stroke-dashoffset .6s ease-out}.macro-ring-fill.complete{filter:drop-shadow(0 0 6px rgba(16,185,129,.4))}.macro-ring-center{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center}.macro-ring-value{font-size:20px;font-weight:700;color:var(--ink);line-height:1}.macro-ring-unit{font-size:11px;color:var(--stone);font-weight:500}.macro-ring-label{font-size:13px;font-weight:600;color:var(--ink);margin-top:var(--space-2)}.macro-ring-goal{font-size:11px;color:var(--stone)}.single-macro-progress{display:flex;justify-content:center;padding:var(--space-4) 0}.single-macro-progress .macro-ring{max-width:200px}.macro-bars{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2) 0}.macro-bar{background:var(--white);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);border:1px solid var(--cloud)}.macro-bar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.macro-bar-label{font-size:14px;font-weight:600;color:var(--graphite)}.macro-bar-values{font-size:14px}.macro-bar-current{font-weight:700}.macro-bar-separator{color:var(--stone);margin:0 2px}.macro-bar-goal{color:var(--stone);font-weight:500}.macro-bar-track{height:8px;background:var(--cloud);border-radius:var(--radius-full);overflow:hidden}.macro-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .5s cubic-bezier(.34,1.56,.64,1)}.macro-bar-fill.complete{box-shadow:0 0 8px currentColor}.quick-actions{display:flex;gap:var(--space-3)}.action-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-5);background:var(--white);border:2px solid var(--mist);border-radius:var(--radius-lg);cursor:pointer;transition:all .3s var(--bounce);transform-origin:center}.action-btn:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-medium)}.action-btn.camera-btn:hover{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 8px 24px #8b5cf633}.action-btn.describe-btn:hover{border-color:var(--success);background:var(--success-soft);box-shadow:0 8px 24px #10b98133}.action-btn.manual-btn:hover{border-color:var(--energy);background:var(--energy-soft);box-shadow:0 8px 24px #ec489933}.action-btn:active{transform:scale(.92);animation:bounce .5s var(--bounce)}.action-btn .action-icon{transition:transform .3s var(--bounce)}.action-btn:hover .action-icon{transform:scale(1.15)}.action-icon{width:32px;height:32px;stroke-width:2}.camera-btn .action-icon{color:var(--primary)}.manual-btn .action-icon{color:var(--energy)}.action-btn span{font-size:14px;font-weight:600;color:var(--graphite)}.entries-section{background:var(--white)}.entries-section h2{font-size:13px;font-weight:600;color:var(--stone);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-4)}.entries-list{list-style:none}.entry-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) 0;border-bottom:1px solid var(--cloud);animation:slideInRight .5s var(--bounce) backwards;transition:all .25s var(--smooth)}.entry-item:nth-child(1){animation-delay:0ms}.entry-item:nth-child(2){animation-delay:50ms}.entry-item:nth-child(3){animation-delay:.1s}.entry-item:nth-child(4){animation-delay:.15s}.entry-item:nth-child(5){animation-delay:.2s}.entry-item:nth-child(6){animation-delay:.25s}.entry-item:nth-child(7){animation-delay:.3s}.entry-item:nth-child(8){animation-delay:.35s}.entry-item:hover{background:var(--snow);padding-left:var(--space-3);padding-right:var(--space-3);margin-left:calc(-1 * var(--space-3));margin-right:calc(-1 * var(--space-3));border-radius:var(--radius-sm)}.entry-item:last-child{border-bottom:none}.entry-info{display:flex;flex-direction:column;gap:2px}.entry-name{font-size:16px;font-weight:500;color:var(--graphite);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.entry-time{display:flex;align-items:center;gap:var(--space-1);font-size:13px;color:var(--stone)}.entry-actions{display:flex;align-items:center;gap:var(--space-3)}.entry-value{font-size:18px;font-weight:600;color:var(--primary)}.delete-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--stone);transition:all .25s var(--bounce);opacity:.5;transform-origin:center}.delete-btn:hover{opacity:1;background:#ef44441a;color:#ef4444;transform:scale(1.1)}.delete-btn:active{transform:scale(.85);animation:bounce .4s var(--bounce)}.delete-btn svg{width:18px;height:18px;transition:transform .2s var(--bounce)}.delete-btn:hover svg{transform:rotate(-10deg)}.empty-state{text-align:center;padding:var(--space-7) var(--space-5)}.empty-state p{color:var(--stone);font-size:15px;line-height:1.6}.empty-state p:first-of-type{margin-bottom:var(--space-2)}.empty-icon{width:48px;height:48px;color:var(--mist);margin-bottom:var(--space-4);stroke-width:1}.camera-modal{position:fixed;inset:0;background:var(--snow);z-index:1000;display:flex;flex-direction:column;animation:fadeIn .3s ease}.camera-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);background:var(--white);border-bottom:1px solid var(--cloud)}.camera-modal-header h1{font-size:20px;font-weight:600;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.camera-close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--cloud);border:none;border-radius:50%;cursor:pointer;color:var(--stone);transition:all .25s var(--bounce)}.camera-close-btn:hover{background:var(--mist);color:var(--graphite);transform:rotate(90deg)}.camera-close-btn svg{width:18px;height:18px}.camera-modal-content{flex:1;display:flex;flex-direction:column;align-items:center;padding:var(--space-5);overflow-y:auto}.camera-subtitle{font-size:14px;color:var(--stone);margin-bottom:var(--space-5);text-align:center}.camera-preview-container{width:100%;max-width:400px;aspect-ratio:4/3;background:var(--graphite);border-radius:var(--radius-lg);overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:var(--shadow-medium)}.camera-preview-container video,.camera-preview-container img{width:100%;height:100%;object-fit:cover}.camera-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-5);text-align:center;color:var(--white)}.camera-placeholder-icon{font-size:48px;margin-bottom:var(--space-4)}.camera-placeholder-text{font-size:14px;color:#ffffffb3;margin:0}.camera-analyzing-overlay{position:absolute;inset:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4)}.camera-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.2);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.camera-analyzing-text{color:var(--white);font-size:16px;font-weight:500;margin:0}.camera-controls{display:flex;gap:var(--space-3);align-items:center;justify-content:center;margin-top:var(--space-5);flex-wrap:wrap}.camera-btn{padding:var(--space-3) var(--space-5);font-size:15px;font-weight:600;border-radius:var(--radius-md);cursor:pointer;transition:all .25s var(--bounce);display:flex;align-items:center;gap:var(--space-2)}.camera-btn-primary{background:var(--gradient-primary);color:var(--white);border:none;box-shadow:0 4px 12px #8b5cf640}.camera-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf659}.camera-btn-secondary{background:var(--white);color:var(--primary);border:2px solid var(--primary-soft)}.camera-btn-secondary:hover{background:var(--primary-soft);border-color:var(--primary)}.camera-capture-btn{width:72px;height:72px;background:var(--white);border:4px solid var(--primary);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 4px 16px #8b5cf64d}.camera-capture-btn:hover{transform:scale(1.05);box-shadow:0 6px 24px #8b5cf666}.camera-capture-btn:active{transform:scale(.95)}.camera-capture-btn-inner{width:56px;height:56px;background:var(--gradient-primary);border-radius:50%}.camera-icon-btn{width:44px;height:44px;background:var(--white);border:2px solid var(--mist);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;transition:all .2s ease}.camera-icon-btn:hover{background:var(--cloud);border-color:var(--primary)}.camera-error-card{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center;border:1px solid var(--energy-soft);margin-top:var(--space-4);max-width:400px;width:100%}.camera-error-icon{font-size:48px;display:block;margin-bottom:var(--space-3)}.camera-error-title{font-size:18px;font-weight:600;color:var(--energy);margin:0 0 var(--space-2) 0}.camera-error-message{font-size:14px;color:var(--stone);margin:0}.camera-capture{display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px}.text-food-input{display:flex;flex-direction:column;gap:var(--space-4);width:100%;max-width:400px}.food-description-input{width:100%;padding:var(--space-4);font-size:16px;font-family:var(--font);border:2px solid var(--mist);border-radius:var(--radius-md);background:var(--white);resize:none;outline:none;transition:all .2s ease}.food-description-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.food-description-input::placeholder{color:var(--stone)}.text-food-analyzing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-8)}.text-food-icon{width:60px;height:60px;display:flex;align-items:center;justify-content:center;font-size:32px;background:#fff3;border-radius:var(--radius-md)}.entry-form-overlay{position:fixed;inset:0;background:#1d1d1f66;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;z-index:200;animation:fadeIn .2s ease}.entry-form{background:var(--white);width:100%;max-width:var(--max-width);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-5);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom));animation:slideUp .4s cubic-bezier(.4,0,.2,1)}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.form-header h2{font-size:20px;font-weight:600;letter-spacing:-.02em}.close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--cloud);border:none;cursor:pointer;color:var(--stone);border-radius:50%;transition:all .25s var(--bounce);transform-origin:center}.close-btn:hover{background:var(--mist);color:var(--graphite);transform:scale(1.1) rotate(90deg)}.close-btn:active{transform:scale(.85)}.close-btn svg{width:16px;height:16px;transition:transform .25s var(--bounce)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--stone);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.form-group label .required{color:var(--error);margin-left:2px}.form-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.form-label-row label{margin-bottom:0}.unknown-toggle{display:flex;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:500;color:var(--stone);background:var(--snow);border:1px solid var(--mist);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.unknown-toggle:hover{background:var(--cloud);color:var(--graphite)}.unknown-toggle.active{background:var(--warning-soft, #fef3c7);border-color:var(--warning, #f59e0b);color:var(--warning-dark, #b45309)}.unknown-toggle svg{flex-shrink:0}.unknown-placeholder{padding:var(--space-3) var(--space-4);font-size:14px;color:var(--stone);background:var(--snow);border:1.5px dashed var(--mist);border-radius:var(--radius-md);text-align:center;font-style:italic}.form-group.unknown label{color:var(--stone)!important;opacity:.7}.form-group input,.form-group select{width:100%;padding:var(--space-4);font-size:17px;font-family:var(--font);border:1.5px solid var(--mist);border-radius:var(--radius-md);background:var(--white);color:var(--graphite);transition:all .3s var(--bounce);-webkit-appearance:none}.form-group input:hover,.form-group select:hover{border-color:var(--stone)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft);transform:scale(1.01)}.form-group input::placeholder{color:var(--stone)}.quick-add{margin-bottom:var(--space-5)}.quick-add-label{font-size:13px;color:var(--stone);font-weight:500}.quick-add-buttons{display:flex;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap}.quick-add-btn{padding:var(--space-2) var(--space-3);font-size:14px;font-weight:500;font-family:var(--font);background:var(--primary-soft);color:var(--primary);border:none;border-radius:var(--radius-xl);cursor:pointer;transition:all .25s var(--bounce);transform-origin:center}.quick-add-btn:hover{background:var(--primary);color:var(--white);transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px #8b5cf640}.quick-add-btn:active{transform:scale(.9);animation:bounce .4s var(--bounce)}.form-error{background:var(--energy-soft);color:var(--energy);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:14px;margin-bottom:var(--space-4)}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-5)}.btn{flex:1;padding:var(--space-4);font-size:16px;font-weight:600;font-family:var(--font);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .25s var(--bounce);transform-origin:center}.btn-primary{background:var(--gradient-primary);color:var(--white);box-shadow:0 4px 12px #8b5cf640}.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 20px #8b5cf659}.btn-primary:active{transform:scale(.95);box-shadow:0 2px 8px #8b5cf633;animation:bounce .4s var(--bounce)}.btn-secondary{background:var(--cloud);color:var(--graphite);box-shadow:0 2px 8px #0000000d}.btn-secondary:hover{background:var(--mist);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.btn-secondary:active{transform:scale(.95);animation:bounce .4s var(--bounce)}.btn-large{padding:var(--space-4) var(--space-5)}.settings{display:flex;flex-direction:column;gap:var(--space-4)}.settings-header{padding-top:var(--space-3);text-align:center}.settings-header h1{font-size:28px;font-weight:600;letter-spacing:-.03em}.settings-section{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--cloud)}.settings-section h2{font-size:13px;font-weight:600;color:var(--stone);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-3)}.account-card{display:flex;flex-direction:column;gap:var(--space-4)}.user-info{display:flex;align-items:center;gap:var(--space-4)}.user-avatar{width:56px;height:56px;border-radius:50%;border:2px solid var(--cloud)}.user-details{flex:1;display:flex;flex-direction:column;gap:2px}.user-name{font-weight:600;font-size:17px;color:var(--graphite)}.user-email{font-size:14px;color:var(--stone)}.sign-in-prompt{text-align:center;padding:var(--space-4)}.sign-in-prompt p{color:var(--stone);margin-bottom:var(--space-4);font-size:15px}.goal-toggle{display:flex;background:var(--cloud);border-radius:var(--radius-sm);padding:3px;margin-bottom:var(--space-4)}.toggle-btn{flex:1;padding:var(--space-3);font-size:14px;font-weight:500;font-family:var(--font);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--stone);transition:all .3s var(--bounce);transform-origin:center}.toggle-btn:hover:not(.active){color:var(--graphite);background:#ffffff80}.toggle-btn:active{transform:scale(.95)}.toggle-btn.active{background:var(--white);color:var(--graphite);box-shadow:var(--shadow-subtle);animation:popIn .35s var(--bounce)}.calculated-goal,.manual-goal{margin-top:var(--space-4)}.calculated-result{background:var(--primary-soft);padding:var(--space-5);border-radius:var(--radius-md);text-align:center;margin-top:var(--space-4)}.formula{display:block;font-size:14px;color:var(--stone);margin-bottom:var(--space-2)}.result{font-size:24px;font-weight:600;color:var(--primary)}.hint{color:var(--stone);font-size:14px}.settings-actions{display:flex;flex-direction:column;gap:var(--space-3)}.settings-actions .btn{width:100%}.save-confirmation{text-align:center;color:var(--primary);font-size:14px;font-weight:500}.settings-info{border:none;background:transparent;padding:var(--space-4)}.info-card{font-size:14px;color:var(--stone);line-height:1.7}.info-card ul{margin:var(--space-3) 0;padding-left:var(--space-5)}.info-card li{margin-bottom:var(--space-2)}.section-hint{font-size:14px;color:var(--stone);margin-bottom:var(--space-4)}.macro-toggles{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.macro-toggle{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--mist);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;border:2px solid transparent}.macro-toggle input{display:none}.macro-toggle-check{width:24px;height:24px;border-radius:var(--radius-sm);border:2px solid var(--cloud);background:var(--white);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.macro-toggle-check svg{width:14px;height:14px;opacity:0;transform:scale(.5);transition:all .2s ease;color:var(--white)}.macro-toggle.enabled .macro-toggle-check{background:var(--macro-color, var(--primary));border-color:var(--macro-color, var(--primary))}.macro-toggle.enabled .macro-toggle-check svg{opacity:1;transform:scale(1)}.macro-toggle-label{font-size:14px;font-weight:500;color:var(--ink);flex:1}.macro-toggle-badge{font-size:10px;font-weight:600;color:var(--stone);background:var(--cloud);padding:2px 6px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em}.macro-toggle.locked{cursor:default}.macro-toggle:not(.locked):hover{border-color:var(--macro-color, var(--primary));background:var(--white)}.macro-toggle.enabled{border-color:var(--macro-color, var(--primary));background:var(--white)}.macro-goal-card{background:var(--mist);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-3);border-left:4px solid var(--macro-color, var(--primary))}.macro-goal-card:last-child{margin-bottom:0}.macro-goal-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.macro-goal-dot{width:10px;height:10px;border-radius:50%;background:var(--macro-color, var(--primary))}.macro-goal-header h3{font-size:15px;font-weight:600;color:var(--ink);margin:0}.macro-goal-card .goal-toggle{margin-bottom:var(--space-3)}.macro-goal-card .form-group{margin-bottom:0}.macro-goal-card .calculated-result{margin-top:var(--space-2)}.info-card strong{color:var(--graphite)}.disclaimer{font-size:13px;color:var(--stone);font-style:italic;margin-top:var(--space-3)}.today-page{display:flex;flex-direction:column;gap:var(--space-5)}.today-header{padding-top:var(--space-4);text-align:center}.today-header h1{font-size:28px;font-weight:600;letter-spacing:-.03em}.today-date{font-size:15px;color:var(--stone);margin-top:var(--space-2)}.today-tabs{display:flex;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-3)}.today-tab{padding:var(--space-2) var(--space-5);font-size:15px;font-weight:600;font-family:var(--font);color:var(--stone);background:var(--cloud);border:none;border-radius:var(--radius-full);cursor:pointer;transition:all .3s var(--bounce)}.today-tab:hover{color:var(--graphite);background:var(--mist)}.today-tab.active{color:var(--white);background:var(--gradient-primary);box-shadow:0 2px 8px #8b5cf64d}.today-page .entries-section{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--cloud)}.today-page .entry-time{display:flex;align-items:center;gap:var(--space-2)}.today-page .entry-source svg{width:14px;height:14px;color:var(--stone)}.history{display:flex;flex-direction:column;gap:var(--space-5)}.history-header{padding-top:var(--space-4);text-align:center}.history-header h1{font-size:28px;font-weight:600;letter-spacing:-.03em}.history-subtitle{font-size:15px;color:var(--stone);margin-top:var(--space-2)}.history-list{display:flex;flex-direction:column;gap:var(--space-3)}.day-card{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--cloud);transition:all .3s var(--bounce);animation:slideInRight .5s var(--bounce) backwards}.day-card:nth-child(1){animation-delay:0ms}.day-card:nth-child(2){animation-delay:80ms}.day-card:nth-child(3){animation-delay:.16s}.day-card:nth-child(4){animation-delay:.24s}.day-card:nth-child(5){animation-delay:.32s}.day-card:nth-child(6){animation-delay:.4s}.day-card:nth-child(7){animation-delay:.48s}.day-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);border-color:var(--mist)}.day-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--space-4) var(--space-5);background:none;border:none;cursor:pointer;text-align:left;font-family:var(--font);transition:background .2s var(--smooth)}.day-header:hover{background:var(--snow)}.day-header:active{background:var(--cloud)}.day-info{display:flex;flex-direction:column;gap:2px}.day-date{font-size:16px;font-weight:600;color:var(--graphite)}.day-count{font-size:13px;color:var(--stone)}.day-stats{display:flex;align-items:center;gap:var(--space-2)}.day-total{font-size:18px;font-weight:600}.day-total.success{color:var(--success)}.day-total.good{color:var(--primary)}.day-total.warning{color:var(--warning)}.day-total.low{color:var(--stone)}.day-goal{font-size:14px;color:var(--stone)}.day-macros{display:flex;gap:var(--space-2);flex-wrap:wrap}.day-macro{font-size:14px;font-weight:600}.entry-macros{display:flex;gap:var(--space-2);flex-wrap:wrap}.entry-macro{font-size:14px;font-weight:500}.expand-icon{width:20px;height:20px;color:var(--stone);transition:transform .3s ease}.expand-icon.expanded{transform:rotate(180deg)}.day-entries{list-style:none;padding:0 var(--space-5);border-top:1px solid var(--cloud)}.history-entry{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--cloud)}.history-entry:last-child{border-bottom:none}.entry-meta{display:flex;align-items:center;gap:var(--space-2);font-size:13px;color:var(--stone)}.entry-source svg{width:14px;height:14px;color:var(--stone)}.day-progress-bar{height:3px;background:var(--cloud)}.progress-fill{height:100%;transition:width .4s ease}.progress-fill.success{background:var(--gradient-success)}.progress-fill.good{background:var(--gradient-primary)}.progress-fill.warning{background:var(--gradient-warm)}.progress-fill.low{background:var(--mist)}.history-summary{display:flex;justify-content:center;gap:var(--space-4);padding:var(--space-4)}.summary-stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.summary-circle{width:72px;height:72px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--white);border:3px solid var(--mist);transition:all .2s ease}.summary-stat[data-color] .summary-circle{border-color:currentColor;background:color-mix(in srgb,currentColor 8%,white)}.summary-value{font-size:16px;font-weight:700;color:inherit;line-height:1.1;background:none;-webkit-background-clip:unset;-webkit-text-fill-color:unset;background-clip:unset}.summary-unit{font-size:10px;font-weight:500;color:inherit;opacity:.7}.summary-label{font-size:10px;color:var(--stone);text-transform:uppercase;letter-spacing:.05em;text-align:center;max-width:72px}.login-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--white)}.login-container{width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center;text-align:center}.login-header{margin-bottom:var(--space-7)}.app-logo{width:80px;height:80px;margin-bottom:var(--space-4)}.login-header h1{font-size:32px;font-weight:600;letter-spacing:-.03em;color:var(--graphite);margin-bottom:var(--space-3)}.login-header p{font-size:16px;color:var(--stone);line-height:1.5}.login-features{width:100%;display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-7)}.feature{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--snow);border-radius:var(--radius-md);font-size:15px;color:var(--graphite);transition:all .3s var(--bounce);animation:slideInRight .5s var(--bounce) backwards}.feature:nth-child(1){animation-delay:.1s}.feature:nth-child(2){animation-delay:.2s}.feature:nth-child(3){animation-delay:.3s}.feature:hover{transform:translate(4px);background:var(--primary-soft)}.feature-icon{font-size:24px;transition:transform .3s var(--bounce)}.feature:hover .feature-icon{transform:scale(1.2)}.google-sign-in-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;padding:var(--space-4) var(--space-5);background:var(--gradient-primary);border:none;border-radius:var(--radius-md);font-size:16px;font-weight:600;font-family:var(--font);color:var(--white);cursor:pointer;transition:all .3s var(--bounce);transform-origin:center;box-shadow:0 4px 16px #8b5cf64d}.google-sign-in-btn:hover{background:var(--gradient-primary);transform:translateY(-3px) scale(1.02);box-shadow:0 8px 24px #8b5cf666}.google-sign-in-btn:active{transform:scale(.95);animation:bounce .5s var(--bounce)}.google-sign-in-btn .google-icon{transition:transform .3s var(--bounce)}.google-sign-in-btn:hover .google-icon{transform:rotate(10deg) scale(1.1)}.google-icon{flex-shrink:0;width:20px;height:20px}.login-disclaimer{margin-top:var(--space-5);font-size:13px;color:var(--stone)}.loading-state{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--stone);font-size:15px}:root{--bounce: cubic-bezier(.34, 1.56, .64, 1);--bounce-soft: cubic-bezier(.34, 1.3, .64, 1);--smooth: cubic-bezier(.4, 0, .2, 1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(40px) scale(.95)}60%{opacity:1;transform:translate(-8px) scale(1.02)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes bounce{0%{transform:scale(1)}30%{transform:scale(.92)}50%{transform:scale(1.08)}70%{transform:scale(.98)}to{transform:scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.15)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes pulseScale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media(max-width:380px){.quick-actions{flex-direction:column}.progress-stats{gap:var(--space-5)}}@media(min-width:481px){.entry-form-overlay{align-items:center;padding:var(--space-5)}.entry-form{border-radius:var(--radius-xl);max-height:90vh;overflow-y:auto}}@media(display-mode:standalone){.bottom-nav{bottom:var(--space-4);padding-bottom:env(safe-area-inset-bottom,0)}}.page-loader{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--primary);font-size:16px;gap:var(--space-3)}.page-loader:before{content:"";width:24px;height:24px;border:3px solid var(--lavender);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-6);text-align:center;background:var(--snow)}.error-boundary h1{font-size:24px;color:var(--charcoal);margin-bottom:var(--space-3)}.error-boundary p{color:var(--slate);margin-bottom:var(--space-4);max-width:400px}.error-boundary button{background:var(--gradient-primary);color:var(--white);border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-weight:600;cursor:pointer}.skeleton{background:linear-gradient(90deg,var(--cloud) 0%,var(--mist) 20%,var(--snow) 40%,var(--snow) 60%,var(--mist) 80%,var(--cloud) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.8s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-title{height:32px;width:200px;margin-bottom:8px}.skeleton-date{height:20px;width:160px}.skeleton-progress{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px}.skeleton-circle{width:160px;height:160px;border-radius:50%}.skeleton-text{height:24px;width:120px}.skeleton-button{height:80px;flex:1;border-radius:16px}.skeleton-heading{height:24px;width:140px;margin-bottom:16px}.skeleton-entry{height:64px;width:100%;margin-bottom:12px;border-radius:12px}.frequent-foods-section{margin:24px 0}.frequent-foods-section h3{font-size:13px;font-weight:600;color:var(--stone);margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:8px}.frequent-foods-section h3:before{content:"⚡";font-size:14px}.frequent-foods{display:flex;gap:10px;flex-wrap:wrap}.frequent-food-btn{display:flex;align-items:center;gap:10px;padding:12px 18px;background:linear-gradient(135deg,var(--primary-soft) 0%,var(--white) 100%);border:1px solid var(--primary-light);border-radius:var(--radius-full);cursor:pointer;transition:all .3s var(--bounce);transform-origin:center;animation:slideInRight .4s var(--bounce) backwards;position:relative;overflow:hidden}.frequent-food-btn:nth-child(1){background:linear-gradient(135deg,rgba(139,92,246,.12) 0%,var(--white) 100%);border-color:#8b5cf64d;animation-delay:0ms}.frequent-food-btn:nth-child(2){background:linear-gradient(135deg,rgba(16,185,129,.12) 0%,var(--white) 100%);border-color:#10b9814d;animation-delay:50ms}.frequent-food-btn:nth-child(3){background:linear-gradient(135deg,rgba(245,158,11,.12) 0%,var(--white) 100%);border-color:#f59e0b4d;animation-delay:.1s}.frequent-food-btn:nth-child(1):hover{background:var(--primary);border-color:var(--primary)}.frequent-food-btn:nth-child(2):hover{background:#10b981;border-color:#10b981}.frequent-food-btn:nth-child(3):hover{background:#f59e0b;border-color:#f59e0b}.frequent-food-btn:hover{color:#fff;transform:translateY(-3px) scale(1.05);box-shadow:0 8px 20px #00000026}.frequent-food-btn:active{transform:scale(.95)}.frequent-food-btn .food-name{font-size:14px;font-weight:600;font-family:var(--font)}.frequent-food-btn .food-protein{font-size:12px;font-weight:600;font-family:var(--font);color:var(--primary);background:#8b5cf61a;padding:4px 10px;border-radius:var(--radius-full);transition:all .3s ease}.frequent-food-btn:nth-child(2) .food-protein{color:#10b981;background:#10b9811a}.frequent-food-btn:nth-child(3) .food-protein{color:#f59e0b;background:#f59e0b1a}.frequent-food-btn:hover .food-protein{background:#ffffff40;color:#fff}.streak-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-weight:600;font-size:14px;color:#fff;background:var(--gradient-warm);box-shadow:0 4px 12px #f59e0b4d;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.streak-badge:hover{transform:scale(1.05)}.streak-starter{background:linear-gradient(135deg,#9ca3af,#6b7280);box-shadow:0 4px 12px #6b72804d}.streak-common{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 12px #f59e0b66}.streak-rare{background:linear-gradient(135deg,#ec4899,#be185d);box-shadow:0 4px 12px #ec489966}.streak-epic{background:linear-gradient(135deg,#8b5cf6,#6d28d9);box-shadow:0 4px 12px #8b5cf666}.streak-legendary{background:linear-gradient(135deg,#fbbf24,#f59e0b,#ec4899);box-shadow:0 4px 16px #fbbf2480,0 0 20px #ec48994d;animation:legendary-shimmer 3s ease-in-out infinite}@keyframes legendary-shimmer{0%,to{box-shadow:0 4px 16px #fbbf2480,0 0 20px #ec48994d}50%{box-shadow:0 4px 20px #fbbf24b3,0 0 30px #ec489980}}.streak-flame{display:flex;align-items:center;justify-content:center}.flame-icon{width:18px;height:18px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.streak-count{font-size:16px;font-weight:700;letter-spacing:-.02em}.streak-label{font-size:12px;font-weight:500;opacity:.9;text-transform:lowercase}.streak-pulse{animation:streakBounce .6s cubic-bezier(.34,1.56,.64,1)}@keyframes streakBounce{0%{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(.95)}75%{transform:scale(1.1)}to{transform:scale(1)}}.achievement-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--white);border-radius:var(--radius-lg);border:2px solid var(--mist);transition:all .3s ease;cursor:pointer}.achievement-card:hover{border-color:var(--primary-light);box-shadow:var(--shadow-soft);transform:translateY(-2px)}.achievement-card.unlocked{border-color:var(--success);background:linear-gradient(135deg,#10b9810d,#34d3991a)}.achievement-card.unlocked:hover{border-color:var(--success);box-shadow:0 4px 16px #10b98133}.achievement-card.locked{opacity:.6;filter:grayscale(.5)}.achievement-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:28px;background:var(--gradient-primary);border-radius:var(--radius-md);flex-shrink:0}.achievement-card.unlocked .achievement-icon{background:var(--gradient-success);animation:achievementGlow 2s ease-in-out infinite}@keyframes achievementGlow{0%,to{box-shadow:0 0 #10b98100}50%{box-shadow:0 0 20px #10b98166}}.achievement-info{flex:1;min-width:0}.achievement-title{font-size:16px;font-weight:600;color:var(--graphite);margin-bottom:2px}.achievement-description{font-size:13px;color:var(--stone);line-height:1.4}.achievement-progress{margin-top:var(--space-2);height:4px;background:var(--mist);border-radius:var(--radius-full);overflow:hidden}.achievement-progress-fill{height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);transition:width .5s cubic-bezier(.34,1.56,.64,1)}.level-indicator{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-5);background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--cloud)}.level-header{display:flex;justify-content:space-between;align-items:center}.level-badge{display:flex;align-items:center;gap:var(--space-2)}.level-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--gradient-primary);border-radius:50%;color:#fff;font-size:14px;font-weight:700}.level-title{font-size:14px;font-weight:600;color:var(--graphite)}.level-xp-text{font-size:12px;color:var(--stone)}.level-xp-text span{color:var(--primary);font-weight:600}.level-progress-bar{height:8px;background:var(--cloud);border-radius:var(--radius-full);overflow:hidden;position:relative}.level-progress-fill{height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);transition:width .6s cubic-bezier(.34,1.56,.64,1);position:relative}.level-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:xpShimmer 2s ease-in-out infinite}@keyframes xpShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.level-milestones{display:flex;justify-content:space-between;margin-top:var(--space-1)}.level-milestone{font-size:10px;color:var(--stone);font-weight:500}.level-milestone.reached{color:var(--primary)}.confetti{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000;overflow:hidden}.confetti:before,.confetti:after{content:"";position:absolute;width:100%;height:100%;background-image:radial-gradient(circle,#8B5CF6 3px,transparent 3px),radial-gradient(circle,#EC4899 3px,transparent 3px),radial-gradient(circle,#F59E0B 3px,transparent 3px),radial-gradient(circle,#10B981 3px,transparent 3px),radial-gradient(circle,#3B82F6 3px,transparent 3px);background-size:10% 10%,13% 13%,11% 11%,12% 12%,9% 9%;background-position:0% 0%,25% 15%,50% 30%,75% 10%,90% 45%;animation:confettiFall 2s ease-out forwards;opacity:0}.confetti:after{background-position:10% 20%,35% 5%,60% 40%,85% 25%,15% 55%;animation-delay:.1s}@keyframes confettiFall{0%{opacity:1;transform:translateY(-100%) rotate(0)}to{opacity:0;transform:translateY(100vh) rotate(720deg)}}.xp-pop{position:fixed;pointer-events:none;font-size:18px;font-weight:700;color:var(--primary);text-shadow:0 2px 4px rgba(139,92,246,.3);animation:xpPopUp 1s ease-out forwards;z-index:500}@keyframes xpPopUp{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-30px) scale(1.2)}to{opacity:0;transform:translateY(-60px) scale(.8)}}.dashboard-header-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.header-top-row{display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex-wrap:wrap}.animate-slideInRight{animation:slideInRight .5s var(--bounce) backwards}.animate-bounce{animation:bounce .5s var(--bounce)}.animate-popIn{animation:popIn .4s var(--bounce) backwards}.animate-wiggle{animation:wiggle .5s var(--bounce)}.animate-pulse{animation:pulseScale 2s ease-in-out infinite}.hover-lift{transition:all .3s var(--bounce)}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-medium)}.hover-grow{transition:all .3s var(--bounce)}.hover-grow:hover{transform:scale(1.05)}.hover-glow{transition:all .3s var(--bounce)}.hover-glow:hover{box-shadow:var(--shadow-glow)}.interactive{transition:all .25s var(--bounce);cursor:pointer}.interactive:active{transform:scale(.95)}.food-chat{display:flex;flex-direction:column;height:100%;max-height:100vh;background:var(--white);border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden}.food-chat-header{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--gradient-primary);color:var(--white)}.food-chat-image{width:60px;height:60px;border-radius:var(--radius-md);object-fit:cover;border:2px solid rgba(255,255,255,.3)}.food-chat-summary h3{font-size:18px;font-weight:600;margin:0}.food-chat-value{font-size:14px;opacity:.9;margin:0}.food-name-row{display:flex;align-items:center;gap:var(--space-2)}.edit-name-btn{background:#fff3;border:none;border-radius:var(--radius-sm);padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.edit-name-btn:hover{background:#ffffff4d}.edit-name-btn svg{width:16px;height:16px;stroke:var(--white)}.food-name-input{font-size:18px;font-weight:600;background:#fff3;border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-sm);color:var(--white);padding:4px 8px;width:100%;outline:none}.food-name-input::placeholder{color:#fff9}.food-name-input:focus{background:#ffffff40;border-color:#fff9}.food-chat-messages{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);background:var(--snow);min-height:200px;max-height:300px}.chat-message{display:flex;animation:slideInUp .3s ease-out}.chat-message.user{justify-content:flex-end}.chat-message.assistant{justify-content:flex-start}.chat-bubble{max-width:85%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:14px;line-height:1.5}.chat-bubble p{margin:0}.chat-bubble p+p{margin-top:var(--space-2)}.chat-message.user .chat-bubble{background:var(--gradient-primary);color:var(--white);border-bottom-right-radius:var(--space-1)}.chat-message.assistant .chat-bubble{background:var(--white);color:var(--graphite);border:1px solid var(--mist);border-bottom-left-radius:var(--space-1)}.chat-bubble.typing{display:flex;align-items:center;gap:4px;padding:var(--space-3) var(--space-4)}.chat-bubble.typing span{width:8px;height:8px;background:var(--primary);border-radius:50%;animation:typingDot 1.4s infinite ease-in-out}.chat-bubble.typing span:nth-child(1){animation-delay:0s}.chat-bubble.typing span:nth-child(2){animation-delay:.2s}.chat-bubble.typing span:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.food-chat-quick-actions{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);overflow-x:auto;background:var(--snow);border-top:1px solid var(--mist)}.quick-action-btn{flex-shrink:0;padding:var(--space-2) var(--space-3);font-size:13px;font-weight:500;color:var(--primary);background:var(--white);border:1px solid var(--primary-soft);border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease;white-space:nowrap}.quick-action-btn:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary)}.quick-action-btn:disabled{opacity:.5;cursor:not-allowed}.food-chat-input{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--white);border-top:1px solid var(--mist)}.food-chat-input input{flex:1;padding:var(--space-3) var(--space-4);font-size:15px;font-family:var(--font);border:1px solid var(--mist);border-radius:var(--radius-full);background:var(--snow);outline:none;transition:all .2s ease}.food-chat-input input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.food-chat-input input::placeholder{color:var(--stone)}.send-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--gradient-primary);border:none;border-radius:50%;cursor:pointer;transition:all .2s ease}.send-btn svg{width:20px;height:20px;color:var(--white)}.send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #8b5cf64d}.send-btn:disabled{opacity:.5;cursor:not-allowed}.food-chat-actions{display:flex;gap:var(--space-3);padding:var(--space-4);background:var(--white);border-top:1px solid var(--mist)}.chat-cancel-btn{flex:1;padding:var(--space-3) var(--space-4);font-size:15px;font-weight:600;color:var(--stone);background:var(--cloud);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.chat-cancel-btn:hover{background:var(--mist)}.chat-confirm-btn{flex:2;padding:var(--space-3) var(--space-4);font-size:15px;font-weight:600;color:var(--white);background:var(--gradient-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #8b5cf640}.chat-confirm-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf659}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--badge-bronze: linear-gradient(135deg, #CD7F32 0%, #8B4513 100%);--badge-silver: linear-gradient(135deg, #C0C0C0 0%, #A8A8A8 50%, #E8E8E8 100%);--badge-gold: linear-gradient(135deg, #FFD700 0%, #FFA500 50%, #FFD700 100%);--badge-platinum: linear-gradient(135deg, #E5E4E2 0%, #B0C4DE 50%, #E5E4E2 100%);--badge-legendary: linear-gradient(135deg, #FF6B6B 0%, #FFD93D 25%, #6BCB77 50%, #4D96FF 75%, #9B59B6 100%);--badge-bronze-glow: 0 4px 16px rgba(205, 127, 50, .4);--badge-silver-glow: 0 4px 16px rgba(192, 192, 192, .5);--badge-gold-glow: 0 4px 20px rgba(255, 215, 0, .5);--badge-platinum-glow: 0 4px 20px rgba(176, 196, 222, .6);--badge-legendary-glow: 0 4px 24px rgba(155, 89, 182, .5), 0 0 40px rgba(255, 107, 107, .3)}.badge-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--white);border-radius:var(--radius-lg);border:2px solid var(--mist);transition:all .3s var(--bounce);cursor:pointer;overflow:hidden}.badge-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--mist);transition:all .3s ease}.badge-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-medium);border-color:var(--primary-light)}.badge-card:active{transform:scale(.98)}.badge-card--locked{filter:grayscale(1);opacity:.4;cursor:default}.badge-card--locked:before{background:var(--stone)}.badge-card--locked:hover{transform:none;box-shadow:none;border-color:var(--mist)}.badge-card--locked .badge-sprite{filter:grayscale(1) brightness(.3)}.badge-card--locked .badge-card-title{color:var(--stone)}.badge-card--locked:after{content:"🔒";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:24px;opacity:.8;filter:none}.badge-card--in-progress{border-color:var(--primary-light);background:linear-gradient(135deg,var(--white) 0%,var(--primary-soft) 100%)}.badge-card--in-progress:before{background:var(--gradient-primary)}.badge-card--in-progress .badge-sprite{filter:saturate(.6);animation:badgeGlow 2s ease-in-out infinite}.badge-card--in-progress:hover{box-shadow:0 8px 32px #8b5cf640}.badge-card--earned{border-color:var(--success);background:linear-gradient(135deg,var(--white) 0%,var(--success-soft) 100%)}.badge-card--earned:before{background:var(--gradient-success)}.badge-card--earned:after{content:"✓";position:absolute;top:var(--space-2);right:var(--space-2);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--success);color:var(--white);font-size:12px;font-weight:700;border-radius:50%;box-shadow:0 2px 8px #10b9814d}.badge-card--earned:hover{box-shadow:0 8px 32px #10b98140}.badge-card-title{font-size:13px;font-weight:600;color:var(--graphite);text-align:center;line-height:1.3;margin-top:var(--space-1)}.badge-card-description{font-size:11px;color:var(--stone);text-align:center;line-height:1.4}.badge-card-progress{width:100%;height:4px;background:var(--mist);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-2)}.badge-card-progress-fill{height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);transition:width .5s var(--bounce)}.badge-card[data-tier=bronze]:before{background:var(--badge-bronze)}.badge-card[data-tier=silver]:before{background:var(--badge-silver)}.badge-card[data-tier=gold]:before{background:var(--badge-gold)}.badge-card[data-tier=platinum]:before{background:var(--badge-platinum)}.badge-card[data-tier=legendary]:before{background:var(--badge-legendary);animation:badgeShine 3s linear infinite}.badge-card--earned[data-tier=bronze]{box-shadow:var(--badge-bronze-glow)}.badge-card--earned[data-tier=silver]{box-shadow:var(--badge-silver-glow)}.badge-card--earned[data-tier=gold]{box-shadow:var(--badge-gold-glow)}.badge-card--earned[data-tier=platinum]{box-shadow:var(--badge-platinum-glow)}.badge-card--earned[data-tier=legendary]{box-shadow:var(--badge-legendary-glow);animation:legendaryPulse 3s ease-in-out infinite}@keyframes legendaryPulse{0%,to{box-shadow:var(--badge-legendary-glow)}50%{box-shadow:0 4px 32px #9b59b6b3,0 0 60px #ff6b6b80}}.badge-sprite{width:64px;height:64px;display:flex;align-items:center;justify-content:center;font-size:40px;border-radius:var(--radius-md);background:var(--snow);transition:all .3s var(--bounce);image-rendering:pixelated;image-rendering:crisp-edges}.badge-sprite--locked{filter:grayscale(1) brightness(.3)}.badge-sprite img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges}.badge-unlock-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0f172ab3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;animation:fadeIn .3s ease;padding:var(--space-5)}.badge-unlock-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-6);background:var(--white);border-radius:var(--radius-xl);box-shadow:0 24px 64px #0000004d;max-width:320px;width:100%;animation:badgePop .6s var(--bounce);overflow:hidden}.badge-unlock-content:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:var(--gradient-success)}.badge-unlock-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.badge-unlock-confetti:before,.badge-unlock-confetti:after{content:"";position:absolute;width:100%;height:100%;background-image:radial-gradient(circle,#8B5CF6 4px,transparent 4px),radial-gradient(circle,#EC4899 4px,transparent 4px),radial-gradient(circle,#F59E0B 4px,transparent 4px),radial-gradient(circle,#10B981 4px,transparent 4px),radial-gradient(circle,#3B82F6 4px,transparent 4px);background-size:15% 15%,18% 18%,14% 14%,16% 16%,12% 12%;background-position:5% 10%,30% 20%,55% 5%,80% 15%,95% 30%;animation:confettiBurst 1.5s ease-out forwards;opacity:0}.badge-unlock-confetti:after{background-position:15% 25%,40% 8%,65% 30%,90% 5%,10% 40%;animation-delay:.15s}@keyframes confettiBurst{0%{opacity:1;transform:translateY(0) scale(.5)}50%{opacity:1}to{opacity:0;transform:translateY(200px) scale(1.2)}}.badge-unlock-title{font-size:14px;font-weight:600;color:var(--success);text-transform:uppercase;letter-spacing:.1em;margin-top:var(--space-2)}.badge-unlock-sprite{width:96px;height:96px;font-size:64px;display:flex;align-items:center;justify-content:center;background:var(--snow);border-radius:var(--radius-lg);box-shadow:0 8px 32px #8b5cf633;animation:badgeBounceIn .8s var(--bounce) .2s backwards}@keyframes badgeBounceIn{0%{opacity:0;transform:scale(0) rotate(-180deg)}60%{transform:scale(1.2) rotate(10deg)}80%{transform:scale(.9) rotate(-5deg)}to{opacity:1;transform:scale(1) rotate(0)}}.badge-unlock-name{font-size:22px;font-weight:700;color:var(--graphite);text-align:center;letter-spacing:-.02em}.badge-unlock-description{font-size:14px;color:var(--stone);text-align:center;line-height:1.5}.badge-unlock-tier{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--white)}.badge-unlock-tier[data-tier=bronze]{background:var(--badge-bronze)}.badge-unlock-tier[data-tier=silver]{background:var(--badge-silver);color:var(--graphite)}.badge-unlock-tier[data-tier=gold]{background:var(--badge-gold);color:var(--graphite)}.badge-unlock-tier[data-tier=platinum]{background:var(--badge-platinum);color:var(--graphite)}.badge-unlock-tier[data-tier=legendary]{background:var(--badge-legendary);animation:badgeShine 3s linear infinite}.badge-unlock-close{width:100%;padding:var(--space-4);font-size:16px;font-weight:600;font-family:var(--font);color:var(--white);background:var(--gradient-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .3s var(--bounce);box-shadow:0 4px 16px #8b5cf64d}.badge-unlock-close:hover{transform:translateY(-2px);box-shadow:0 6px 24px #8b5cf666}.badge-unlock-close:active{transform:scale(.98)}.badges-page{display:flex;flex-direction:column;gap:var(--space-5);padding-bottom:var(--space-6)}.badges-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-5);background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--cloud)}.badges-header h1{font-size:28px;font-weight:700;letter-spacing:-.03em;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.badges-stats{display:flex;justify-content:center;gap:var(--space-6);width:100%}.badges-stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.badges-stat-value{font-size:32px;font-weight:700;color:var(--primary)}.badges-stat-label{font-size:12px;color:var(--stone);text-transform:uppercase;letter-spacing:.05em}.badges-progress-ring{position:relative;width:100px;height:100px}.badges-progress-ring svg{transform:rotate(-90deg)}.badges-progress-bg{fill:none;stroke:var(--mist);stroke-width:8}.badges-progress-fill{fill:none;stroke:url(#badgeProgressGradient);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .8s var(--bounce)}.badges-progress-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.badges-progress-value{font-size:20px;font-weight:700;color:var(--graphite)}.badges-progress-label{font-size:10px;color:var(--stone);text-transform:uppercase}.badges-tabs{display:flex;gap:var(--space-2);padding:var(--space-2);background:var(--cloud);border-radius:var(--radius-lg);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.badges-tabs::-webkit-scrollbar{display:none}.badges-tab{flex-shrink:0;padding:var(--space-3) var(--space-4);font-size:14px;font-weight:500;font-family:var(--font);color:var(--stone);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .3s var(--bounce);white-space:nowrap}.badges-tab:hover{color:var(--graphite);background:#ffffff80}.badges-tab.active{color:var(--graphite);background:var(--white);box-shadow:var(--shadow-subtle)}.badges-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--space-2);margin-left:var(--space-2);font-size:11px;font-weight:600;color:var(--white);background:var(--primary);border-radius:var(--radius-full)}.badges-tab.active .badges-tab-count{background:var(--gradient-primary)}.badge-category-section{display:flex;flex-direction:column;gap:var(--space-4)}.badge-category-header{display:flex;align-items:center;justify-content:space-between}.badge-category-title{display:flex;align-items:center;gap:var(--space-2);font-size:16px;font-weight:600;color:var(--graphite)}.badge-category-icon{font-size:20px}.badge-category-count{font-size:13px;color:var(--stone);font-weight:500}.badge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}@media(min-width:400px){.badge-grid{grid-template-columns:repeat(3,1fr)}}.badge-progress-widget{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--cloud);transition:all .3s var(--bounce);cursor:pointer}.badge-progress-widget:hover{border-color:var(--primary-light);box-shadow:var(--shadow-soft);transform:translateY(-2px)}.badge-progress-widget:active{transform:scale(.98)}.badge-widget-left{display:flex;align-items:center;gap:var(--space-3)}.badge-widget-info{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:0}.badge-widget-label{font-size:11px;font-weight:500;color:var(--stone);text-transform:uppercase;letter-spacing:.05em}.badge-widget-name{font-size:14px;font-weight:600;color:var(--graphite);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-widget-progress{flex:1;height:6px;background:var(--mist);border-radius:var(--radius-full);overflow:hidden;min-width:60px}.badge-widget-progress-fill{height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);transition:width .5s var(--bounce)}.badge-widget-arrow{width:20px;height:20px;color:var(--stone);transition:transform .3s var(--bounce)}.badge-progress-widget:hover .badge-widget-arrow{transform:translate(4px);color:var(--primary)}.badge-mini{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--snow);border-radius:var(--radius-sm);flex-shrink:0;transition:transform .3s var(--bounce)}.badge-mini:hover{transform:scale(1.1)}.badge-mini--locked{filter:grayscale(1) brightness(.5)}.badge-mini img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges}.badge-recent-row{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-1);scrollbar-width:none;-ms-overflow-style:none}.badge-recent-row::-webkit-scrollbar{display:none}@keyframes badgePop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes badgeGlow{0%,to{box-shadow:0 0 #8b5cf600}50%{box-shadow:0 0 20px #8b5cf666,0 0 40px #8b5cf633}}@keyframes badgeShine{0%{background-position:200% center}to{background-position:-200% center}}.badge-card--earned[data-tier=legendary] .badge-sprite:after,.badge-unlock-tier[data-tier=legendary]:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.4) 40%,rgba(255,255,255,.6) 50%,rgba(255,255,255,.4) 60%,transparent 80%);background-size:200% 100%;animation:badgeShine 3s linear infinite;border-radius:inherit;pointer-events:none}@keyframes badgeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.badge-sprite--floating{animation:badgeFloat 3s ease-in-out infinite}@keyframes badgeShake{0%,to{transform:rotate(0)}10%,30%,50%,70%,90%{transform:rotate(-5deg)}20%,40%,60%,80%{transform:rotate(5deg)}}.badge-sprite--shake{animation:badgeShake .6s ease-in-out}.badge-sparkle{position:absolute;width:8px;height:8px;background:var(--white);border-radius:50%;pointer-events:none;animation:sparkle 1.5s ease-out forwards}@keyframes sparkle{0%{opacity:1;transform:scale(0) translate(0)}50%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5) translate(var(--sparkle-x, 20px),var(--sparkle-y, -20px))}}.badges-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-8);text-align:center}.badges-empty-icon{font-size:64px;opacity:.5}.badges-empty-title{font-size:18px;font-weight:600;color:var(--graphite)}.badges-empty-description{font-size:14px;color:var(--stone);line-height:1.5}.badge-toast{position:fixed;bottom:calc(var(--nav-height) + var(--space-6));left:50%;transform:translate(-50%) translateY(100px);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--white);border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000026;border:2px solid var(--success);z-index:900;animation:toastSlideIn .5s var(--bounce) forwards;cursor:pointer;transition:transform .3s var(--bounce)}.badge-toast:hover{transform:translate(-50%) scale(1.02)}@keyframes toastSlideIn{0%{transform:translate(-50%) translateY(100px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.badge-toast-icon{font-size:28px}.badge-toast-content{display:flex;flex-direction:column;gap:2px}.badge-toast-label{font-size:11px;font-weight:500;color:var(--success);text-transform:uppercase;letter-spacing:.05em}.badge-toast-name{font-size:14px;font-weight:600;color:var(--graphite)}.badge-unlock-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0f172ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:1000;opacity:0;transition:opacity .3s ease;padding:var(--space-5)}.badge-unlock-modal.visible{opacity:1}.confetti-particle{position:absolute;top:-20px;border-radius:3px;animation:confettiDrop 2.5s ease-out forwards;pointer-events:none}@keyframes confettiDrop{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}to{transform:translateY(100vh) rotate(720deg) scale(.5);opacity:0}}.badge-unlock-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-6);padding-top:var(--space-5);background:var(--white);border-radius:var(--radius-xl);box-shadow:0 24px 64px #0006,0 0 0 1px #ffffff1a inset;max-width:340px;width:100%;animation:modalSlideUp .5s var(--bounce);overflow:hidden}.badge-unlock-content.legendary{animation:modalSlideUp .5s var(--bounce),legendaryPulse 2s ease-in-out infinite .5s}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(40px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes legendaryPulse{0%,to{box-shadow:0 24px 64px #0006,0 0 40px #ff6b6b4d,0 0 80px #ffd70033}50%{box-shadow:0 24px 64px #0006,0 0 60px #ff6b6b80,0 0 120px #ffd7004d}}.badge-unlock-accent{position:absolute;top:0;left:0;right:0;height:6px}.badge-unlock-header{display:flex;align-items:center;gap:var(--space-2);animation:headerFadeIn .6s ease .2s backwards}@keyframes headerFadeIn{0%{opacity:0;transform:translateY(-10px)}}.badge-unlock-star{font-size:16px;color:#f59e0b;animation:starPulse .8s ease-in-out infinite alternate}.badge-unlock-star:first-child{animation-delay:0s}.badge-unlock-star:last-child{animation-delay:.4s}@keyframes starPulse{0%{transform:scale(1);opacity:.7}to{transform:scale(1.2);opacity:1}}.badge-unlock-achievement-text{font-size:13px;font-weight:700;color:var(--success);text-transform:uppercase;letter-spacing:.15em}.badge-unlock-sprite{position:relative;width:120px;height:120px;font-size:72px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--snow) 0%,var(--cloud) 100%);border-radius:24px;animation:spriteBounceIn .8s var(--bounce) .3s backwards;transition:box-shadow .3s ease}@keyframes spriteBounceIn{0%{opacity:0;transform:scale(0) rotate(-180deg)}50%{transform:scale(1.15) rotate(10deg)}70%{transform:scale(.95) rotate(-5deg)}to{opacity:1;transform:scale(1) rotate(0)}}.badge-unlock-emoji{animation:emojiPop .4s var(--bounce) .8s backwards}@keyframes emojiPop{0%{transform:scale(0)}}.sparkles{position:absolute;inset:-20px;pointer-events:none}.sparkle{position:absolute;width:8px;height:8px;background:gold;border-radius:50%;animation:sparkleAnim 1.5s ease-out infinite;animation-delay:calc(var(--i) * .15s)}.sparkle:nth-child(1){top:0;left:50%}.sparkle:nth-child(2){top:15%;right:15%}.sparkle:nth-child(3){top:50%;right:0}.sparkle:nth-child(4){bottom:15%;right:15%}.sparkle:nth-child(5){bottom:0;left:50%}.sparkle:nth-child(6){bottom:15%;left:15%}.sparkle:nth-child(7){top:50%;left:0}.sparkle:nth-child(8){top:15%;left:15%}@keyframes sparkleAnim{0%,to{transform:scale(0);opacity:0}50%{transform:scale(1);opacity:1}}.badge-unlock-name{font-size:24px;font-weight:800;color:var(--graphite);text-align:center;letter-spacing:-.02em;animation:textFadeUp .5s ease .5s backwards}.badge-unlock-description{font-size:15px;color:var(--stone);text-align:center;line-height:1.5;animation:textFadeUp .5s ease .6s backwards}@keyframes textFadeUp{0%{opacity:0;transform:translateY(10px)}}.badge-unlock-tier{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--white);animation:tierBadgePop .4s var(--bounce) .7s backwards;text-shadow:0 1px 2px rgba(0,0,0,.2)}.badge-unlock-tier.tier-bronze{color:var(--white)}.badge-unlock-tier.tier-silver,.badge-unlock-tier.tier-gold,.badge-unlock-tier.tier-platinum{color:var(--graphite)}.badge-unlock-tier.tier-legendary{position:relative;overflow:hidden}.badge-unlock-tier.tier-legendary:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.4) 40%,rgba(255,255,255,.6) 50%,rgba(255,255,255,.4) 60%,transparent 80%);background-size:200% 100%;animation:badgeShine 2s linear infinite}@keyframes tierBadgePop{0%{transform:scale(0)}}.badge-unlock-close{width:100%;padding:var(--space-4);margin-top:var(--space-2);font-size:16px;font-weight:700;font-family:var(--font);color:var(--white);background:var(--gradient-primary);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .3s var(--bounce);box-shadow:0 4px 20px #8b5cf666;animation:buttonFadeIn .5s ease .8s backwards}@keyframes buttonFadeIn{0%{opacity:0;transform:translateY(10px)}}.badge-unlock-close:hover{transform:translateY(-3px);box-shadow:0 8px 30px #8b5cf680}.badge-unlock-close:active{transform:scale(.98) translateY(0)}.settings-badges-section{margin-top:var(--space-4)}.badge-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:var(--space-3);margin-top:var(--space-4)}.badge-gallery-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-md);background:var(--snow);border:1px solid var(--cloud);transition:all .2s ease}.badge-gallery-item.earned{background:linear-gradient(145deg,var(--white) 0%,var(--snow) 100%);border-color:var(--primary-light);box-shadow:0 2px 8px #8b5cf61a}.badge-gallery-item.locked{opacity:.5}.badge-gallery-sprite{font-size:28px;line-height:1}.badge-gallery-item.locked .badge-gallery-sprite{filter:grayscale(1) brightness(.4)}.badge-gallery-name{font-size:9px;font-weight:600;color:var(--stone);text-align:center;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge-gallery-item.earned .badge-gallery-name{color:var(--graphite)}.badge-gallery-stats{display:flex;justify-content:center;gap:var(--space-4);padding:var(--space-3);background:var(--gradient-primary);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.badge-gallery-stat{display:flex;flex-direction:column;align-items:center;color:var(--white)}.badge-gallery-stat-value{font-size:24px;font-weight:800}.badge-gallery-stat-label{font-size:11px;font-weight:500;opacity:.9;text-transform:uppercase;letter-spacing:.05em}.badge-gallery-link{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3);color:var(--primary);font-weight:600;text-decoration:none;border-radius:var(--radius-md);background:#8b5cf614;transition:all .2s ease}.badge-gallery-link:hover{background:#8b5cf626}.badge-gallery-link svg{width:16px;height:16px}.badge-progress-widget{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--cloud);padding:var(--space-4);margin-top:var(--space-4)}.badge-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.badge-progress-title{font-size:16px;font-weight:700;color:var(--graphite);margin:0}.badge-progress-link{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--primary);text-decoration:none}.badge-progress-link:hover{text-decoration:underline}.badge-progress-stats-bar{display:flex;justify-content:space-around;padding:var(--space-3);background:var(--gradient-primary);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.badge-progress-stat{display:flex;flex-direction:column;align-items:center;color:var(--white)}.badge-progress-stat-value{font-size:20px;font-weight:800;line-height:1.2}.badge-progress-stat-label{font-size:10px;font-weight:500;opacity:.9;text-transform:uppercase;letter-spacing:.05em}.badge-mini-gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-2);margin-bottom:var(--space-3)}.badge-mini-item{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:var(--radius-md);background:var(--snow);border:1px solid var(--cloud);transition:all .2s ease}.badge-mini-item.earned{background:linear-gradient(145deg,var(--white) 0%,var(--snow) 100%);border-color:var(--primary-light);box-shadow:0 2px 8px var(--badge-glow, rgba(139, 92, 246, .15))}.badge-mini-item.locked{opacity:.4}.badge-mini-sprite{font-size:20px;line-height:1}.badge-mini-item.locked .badge-mini-sprite{filter:grayscale(1) brightness(.5)}.badge-progress-next{background:var(--snow);border-radius:var(--radius-md);padding:var(--space-3)}.badge-progress-next-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.badge-progress-next-label{font-size:11px;font-weight:600;color:var(--stone);text-transform:uppercase;letter-spacing:.05em}.badge-progress-next-name{font-size:13px;font-weight:700;color:var(--graphite)}.badge-progress-next-content{display:flex;align-items:center;gap:var(--space-3)}.badge-progress-next-sprite{font-size:32px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--white);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--badge-glow, rgba(139, 92, 246, .15));flex-shrink:0}.badge-progress-next-info{flex:1;min-width:0}.badge-progress-next-bar{height:8px;background:var(--cloud);border-radius:var(--radius-full);overflow:hidden;margin-bottom:4px}.badge-progress-next-fill{height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);transition:width .3s ease}.badge-progress-next-text{font-size:12px;font-weight:600;color:var(--stone)}.badges-page-all .badges-all-content{display:flex;flex-direction:column;gap:var(--space-4)}.badge-section{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--cloud);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.badge-section-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border:none;border-bottom:1px solid var(--mist);background:transparent;width:100%;cursor:pointer;font-family:var(--font);transition:opacity .2s ease}.badge-section-header:hover{opacity:.7}.badge-section-icon{font-size:18px}.badge-section-title{font-size:15px;font-weight:600;color:var(--graphite);flex:1;margin:0;text-align:left}.badge-section-chevron{color:var(--stone);transition:transform .2s ease}.badge-section-chevron.expanded{transform:rotate(180deg)}.badge-section-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:var(--space-2)}.badge-item{position:relative;width:54px;height:54px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all .2s ease;cursor:default}.badge-item.locked{background:var(--snow);opacity:.5}.badge-item.locked .badge-item-sprite{filter:grayscale(100%) brightness(.6)}.badge-item.earned{background:linear-gradient(135deg,var(--snow) 0%,rgba(139,92,246,.08) 100%);box-shadow:0 2px 8px var(--badge-glow, rgba(139, 92, 246, .2))}.badge-item.earned:hover{transform:scale(1.1);box-shadow:0 4px 12px var(--badge-glow, rgba(139, 92, 246, .3))}.badge-item-sprite{font-size:28px;line-height:1}.badge-item-check{position:absolute;bottom:2px;right:2px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:var(--success);border-radius:50%;color:var(--white)}@media(min-width:400px){.badge-section-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}.badge-item{width:60px;height:60px}.badge-item-sprite{font-size:32px}}.badge-item.earned{cursor:pointer}.badges-subtitle{font-size:14px;color:var(--stone);text-align:center;margin:0;font-style:italic}.badge-detail-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0f172ab3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;opacity:0;transition:opacity .2s ease;padding:var(--space-5)}.badge-detail-modal.visible{opacity:1}.badge-detail-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-5);padding-top:var(--space-6);background:var(--white);border-radius:var(--radius-xl);box-shadow:0 16px 48px #00000040;max-width:320px;width:100%;animation:modalSlideUp .3s var(--bounce);text-align:center}.badge-detail-close{position:absolute;top:var(--space-3);right:var(--space-3);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--snow);border:none;border-radius:50%;color:var(--stone);cursor:pointer;transition:all .2s ease}.badge-detail-close:hover{background:var(--cloud);color:var(--graphite)}.badge-detail-sprite-container{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--badge-gradient, var(--gradient-primary));border-radius:var(--radius-lg);box-shadow:0 4px 16px var(--badge-glow, rgba(139, 92, 246, .3))}.badge-detail-sprite{font-size:48px;line-height:1}.badge-detail-tier-badge{display:inline-block;padding:4px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--white);background:var(--badge-gradient, var(--gradient-primary));border-radius:var(--radius-full)}.badge-detail-name{font-size:20px;font-weight:700;color:var(--graphite);margin:0}.badge-detail-description{font-size:14px;color:var(--stone);line-height:1.5;margin:0}.badge-detail-earned{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--snow);border-radius:var(--radius-full);font-size:13px;color:var(--stone)}.badge-detail-earned svg{color:var(--success)}.badge-detail-done{width:100%;padding:var(--space-3);font-size:15px;font-weight:600;font-family:var(--font);color:var(--white);background:var(--badge-gradient, var(--gradient-primary));border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;margin-top:var(--space-2)}.badge-detail-done:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--badge-glow, rgba(139, 92, 246, .4))}.badge-detail-done:active{transform:scale(.98)}.badge-detail-content.tier-legendary .badge-detail-sprite-container{animation:legendaryGlow 2s ease-in-out infinite}@keyframes legendaryGlow{0%,to{box-shadow:0 4px 16px #ff6b6b66}50%{box-shadow:0 4px 24px #9b59b680}}.ideas-page{display:flex;flex-direction:column;gap:var(--space-5);animation:fadeInUp .5s ease-out}.ideas-header{display:flex;align-items:center;gap:var(--space-3);padding-top:var(--space-4)}.ideas-header h1{font-size:24px;font-weight:700;letter-spacing:-.02em;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;flex:1}.ideas-header p{font-size:15px;color:var(--stone);margin-top:var(--space-1)}.ideas-header-center{flex-direction:column;text-align:center}.ideas-header .back-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--cloud);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .3s var(--bounce)}.ideas-header .back-btn:hover{background:var(--mist);transform:translate(-2px)}.ideas-header .back-btn svg{width:20px;height:20px;color:var(--graphite)}.ideas-mode-select{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.ideas-mode-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6);background:var(--white);border:2px solid var(--cloud);border-radius:var(--radius-lg);cursor:pointer;transition:all .3s var(--bounce);animation:popIn .5s var(--bounce) backwards}.ideas-mode-btn:first-child{animation-delay:.1s}.ideas-mode-btn:last-child{animation-delay:.2s}.ideas-mode-btn:hover{border-color:var(--primary-light);transform:translateY(-4px);box-shadow:var(--shadow-soft)}.ideas-mode-btn:active{transform:scale(.98)}.ideas-mode-btn .mode-icon{width:48px;height:48px;color:var(--primary);transition:transform .3s var(--bounce)}.ideas-mode-btn:hover .mode-icon{transform:scale(1.15)}.ideas-mode-btn .mode-label{font-size:20px;font-weight:700;color:var(--graphite)}.ideas-mode-btn .mode-description{font-size:14px;color:var(--stone)}.ideas-mode-btn-snacks:hover{border-color:var(--success)}.ideas-mode-btn-snacks:hover .mode-icon{color:var(--success)}.ideas-mode-btn-nibbles:hover{border-color:var(--warning)}.ideas-mode-btn-nibbles:hover .mode-icon{color:var(--warning)}.ideas-mode-btn-recipes:hover{border-color:var(--primary)}.ideas-mode-btn:nth-child(1){animation-delay:.1s}.ideas-mode-btn:nth-child(2){animation-delay:.2s}.ideas-mode-btn:nth-child(3){animation-delay:.3s}.ideas-toggle{padding:var(--space-3) var(--space-4);background:var(--snow);border-radius:var(--radius-md)}.ideas-toggle .toggle-label{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.ideas-toggle input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary)}.ideas-toggle .toggle-text{font-size:14px;font-weight:500;color:var(--graphite)}.ideas-excluded{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--warning-soft);border-radius:var(--radius-md);font-size:13px;color:var(--stone)}.excluded-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--white);border-radius:var(--radius-sm);font-weight:500;color:var(--graphite)}.excluded-remove{width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:var(--mist);border:none;border-radius:50%;cursor:pointer;font-size:14px;color:var(--stone);transition:all .2s ease}.excluded-remove:hover{background:var(--stone);color:var(--white)}.ideas-grid{display:flex;flex-direction:column;gap:var(--space-4)}.idea-card{background:var(--white);border:1px solid var(--cloud);border-radius:var(--radius-lg);padding:var(--space-4);cursor:pointer;transition:all .3s var(--bounce);animation:slideInRight .5s var(--bounce) backwards}.ideas-grid .idea-card:nth-child(1){animation-delay:0ms}.ideas-grid .idea-card:nth-child(2){animation-delay:.1s}.ideas-grid .idea-card:nth-child(3){animation-delay:.2s}.idea-card:hover{border-color:var(--primary-light);box-shadow:var(--shadow-subtle)}.idea-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.idea-card-header h3{font-size:16px;font-weight:600;color:var(--graphite);margin:0;flex:1}.idea-card-type{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:var(--space-1) var(--space-2);color:var(--white);border-radius:var(--radius-sm)}.idea-card-description{font-size:14px;color:var(--stone);line-height:1.5;margin:var(--space-2) 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.idea-card-macros{display:flex;align-items:center;gap:var(--space-2);font-size:14px;margin-top:var(--space-2)}.idea-card-macros .macro{font-weight:600}.idea-card-macros .macro.protein{color:var(--primary)}.idea-card-macros .macro.calories{color:var(--stone)}.idea-card-macros .macro-separator{color:var(--cloud)}.idea-card-prep{display:flex;align-items:center;gap:var(--space-1);font-size:12px;color:var(--stone);margin-top:var(--space-2)}.idea-card-prep svg{color:var(--stone)}.idea-card-tap-hint{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-1);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--cloud);font-size:12px;color:var(--stone)}.idea-card-tap-hint svg{color:var(--stone)}.idea-card-details{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--cloud);animation:fadeInUp .3s ease-out}.idea-card-description{font-size:14px;color:var(--graphite);line-height:1.6;margin:0 0 var(--space-4)}.idea-card-macro-breakdown,.idea-card-prep-time,.idea-card-ingredients,.idea-card-instructions{margin-bottom:var(--space-4)}.idea-card-details h4{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--stone);margin:0 0 var(--space-2)}.idea-card-details ul,.idea-card-details ol{margin:0;padding-left:var(--space-5)}.idea-card-details li{font-size:14px;color:var(--graphite);margin-bottom:var(--space-1)}.idea-card-prep-time p{font-size:14px;color:var(--graphite);margin:0}.idea-card-exclude{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--cloud)}.idea-card-exclude>p{font-size:13px;color:var(--stone);margin:0 0 var(--space-2)}.idea-ingredient-buttons{display:flex;flex-wrap:wrap;gap:var(--space-2)}.idea-ingredient-btn{padding:var(--space-2) var(--space-3);font-size:13px;font-weight:500;font-family:var(--font);color:var(--stone);background:var(--cloud);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.idea-ingredient-btn:hover{background:var(--warning-soft);color:var(--warning)}.idea-card-voting{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-3);margin-top:var(--space-3);border-top:1px solid var(--cloud)}.voting-label{font-size:13px;color:var(--stone)}.voting-buttons{display:flex;gap:var(--space-2)}.vote-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--cloud);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.vote-btn svg{width:18px;height:18px;color:var(--stone);transition:all .2s ease}.vote-btn:hover:not(:disabled){transform:scale(1.1)}.vote-btn:disabled{cursor:default;opacity:.6}.vote-up:hover:not(:disabled){background:var(--success-soft)}.vote-up:hover:not(:disabled) svg{color:var(--success)}.vote-up.voted{background:var(--success)}.vote-up.voted svg{color:#fff;fill:#fff}.vote-down:hover:not(:disabled){background:var(--energy-soft)}.vote-down:hover:not(:disabled) svg{color:var(--energy)}.vote-down.voted{background:var(--energy)}.vote-down.voted svg{color:#fff;fill:#fff}.vote-btn.voted{animation:voteConfirm .3s var(--bounce)}@keyframes voteConfirm{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.ideas-refresh-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-4);font-size:15px;font-weight:600;font-family:var(--font);color:var(--primary);background:var(--primary-soft);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .3s var(--bounce);margin-top:var(--space-2)}.ideas-refresh-btn:hover{background:var(--primary-medium);transform:translateY(-2px)}.ideas-refresh-btn:active{transform:scale(.98)}.ideas-refresh-btn svg{width:18px;height:18px}.ideas-loading-animation{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);min-height:300px}.cooking-scene{position:relative;width:200px;height:180px;margin-bottom:var(--space-6)}.floating-foods{position:absolute;inset:0}.food-item{position:absolute;font-size:32px;animation:floatAndFall 3s ease-in-out infinite}.food-1{left:10%;top:0;animation-delay:0s}.food-2{left:75%;top:10%;animation-delay:.4s}.food-3{left:40%;top:-5%;animation-delay:.8s}.food-4{left:5%;top:15%;animation-delay:1.2s}.food-5{left:70%;top:5%;animation-delay:1.6s}@keyframes floatAndFall{0%,to{transform:translateY(0) rotate(0);opacity:1}50%{transform:translateY(60px) rotate(15deg);opacity:.8}75%{transform:translateY(90px) rotate(-5deg);opacity:.4}90%,to{transform:translateY(100px) rotate(0);opacity:0}}.pot-container{position:absolute;bottom:0;left:50%;transform:translate(-50%)}.pot{position:relative;z-index:2}.pot-icon{font-size:64px;display:block;animation:potWiggle .5s ease-in-out infinite}@keyframes potWiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.steam{position:absolute;bottom:50px;left:50%;transform:translate(-50%);display:flex;gap:8px}.steam-particle{width:8px;height:8px;background:var(--cloud);border-radius:50%;animation:steamRise 1.5s ease-out infinite}.steam-particle:nth-child(1){animation-delay:0s}.steam-particle:nth-child(2){animation-delay:.3s}.steam-particle:nth-child(3){animation-delay:.6s}@keyframes steamRise{0%{transform:translateY(0) scale(1);opacity:.6}to{transform:translateY(-40px) scale(2);opacity:0}}.ideas-loading-message{text-align:center;font-size:16px;font-weight:600;color:var(--graphite);margin:0;min-height:24px;animation:fadeIn .3s ease}.loading-dots{display:flex;gap:6px;margin-top:var(--space-3)}.loading-dots span{width:8px;height:8px;background:var(--primary);border-radius:50%;animation:dotBounce 1.4s ease-in-out infinite}.loading-dots span:nth-child(1){animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dotBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.ideas-streaming-message{text-align:center;font-size:14px;font-weight:500;color:var(--stone);margin-top:var(--space-3);animation:pulse 1.5s ease-in-out infinite}.skeleton-idea-card{height:120px;border-radius:var(--radius-lg)}.ideas-error{text-align:center;padding:var(--space-6);background:var(--energy-soft);border-radius:var(--radius-lg)}.ideas-error p{font-size:14px;color:var(--energy);margin:0 0 var(--space-3)}.ideas-error button{padding:var(--space-2) var(--space-4);font-size:14px;font-weight:600;font-family:var(--font);color:var(--white);background:var(--energy);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.ideas-error button:hover{opacity:.9}.idea-detail-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;background:#0000;transition:background .2s ease}.idea-detail-modal.visible{background:#00000080}.idea-detail-content{width:100%;max-width:500px;max-height:85vh;overflow-y:auto;background:var(--white);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-6);transform:translateY(100%);transition:transform .3s var(--bounce)}.idea-detail-modal.visible .idea-detail-content{transform:translateY(0)}.idea-detail-close{position:absolute;top:var(--space-4);right:var(--space-4);width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--cloud);border:none;border-radius:50%;cursor:pointer;transition:all .2s ease}.idea-detail-close:hover{background:var(--ash)}.idea-detail-close svg{color:var(--stone)}.idea-detail-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.idea-detail-type{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:var(--space-1) var(--space-2);color:var(--white);border-radius:var(--radius-sm)}.idea-detail-prep{display:flex;align-items:center;gap:var(--space-1);font-size:13px;color:var(--stone)}.idea-detail-name{font-size:22px;font-weight:700;color:var(--graphite);margin:0 0 var(--space-2);padding-right:var(--space-8)}.idea-detail-description{font-size:15px;color:var(--stone);line-height:1.6;margin:0 0 var(--space-5)}.idea-detail-macros{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-2);padding:var(--space-4);background:var(--cloud);border-radius:var(--radius-md);margin-bottom:var(--space-5)}.idea-detail-macros .macro-item{text-align:center}.idea-detail-macros .macro-value{display:block;font-size:18px;font-weight:700;color:var(--graphite)}.idea-detail-macros .macro-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--stone);margin-top:var(--space-1)}.idea-detail-macros .macro-item.protein .macro-value{color:var(--primary)}.idea-detail-macros .macro-item.calories .macro-value{color:var(--energy)}.idea-detail-macros .macro-item.carbs .macro-value{color:var(--carbs)}.idea-detail-macros .macro-item.fats .macro-value{color:var(--fats)}.idea-detail-macros .macro-item.fiber .macro-value{color:var(--fiber)}.idea-detail-ingredients,.idea-detail-instructions{margin-bottom:var(--space-5)}.idea-detail-ingredients h4,.idea-detail-instructions h4{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--stone);margin:0 0 var(--space-3)}.idea-detail-ingredients ul,.idea-detail-instructions ol{margin:0;padding-left:var(--space-5)}.idea-detail-ingredients li,.idea-detail-instructions li{font-size:15px;color:var(--graphite);line-height:1.6;margin-bottom:var(--space-2)}.idea-detail-exclude{margin-bottom:var(--space-5);padding:var(--space-4);background:var(--warning-soft);border-radius:var(--radius-md)}.idea-detail-exclude>p{font-size:13px;font-weight:500;color:var(--warning);margin:0 0 var(--space-3)}.exclude-buttons{display:flex;flex-wrap:wrap;gap:var(--space-2)}.exclude-btn{padding:var(--space-2) var(--space-3);font-size:13px;font-weight:500;font-family:var(--font);color:var(--graphite);background:var(--white);border:1px solid var(--cloud);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.exclude-btn:hover{border-color:var(--warning);color:var(--warning)}.idea-detail-voting{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--cloud);border-radius:var(--radius-md);margin-bottom:var(--space-5)}.idea-detail-voting .voting-label{font-size:14px;font-weight:500;color:var(--stone)}.idea-detail-voting .voting-buttons{display:flex;gap:var(--space-2)}.idea-detail-voting .vote-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--white);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.idea-detail-voting .vote-btn svg{width:20px;height:20px;color:var(--stone)}.idea-detail-voting .vote-btn:hover:not(:disabled){transform:scale(1.1)}.idea-detail-voting .vote-up:hover:not(:disabled){background:var(--success-soft)}.idea-detail-voting .vote-up:hover:not(:disabled) svg{color:var(--success)}.idea-detail-voting .vote-up.voted{background:var(--success)}.idea-detail-voting .vote-up.voted svg{color:#fff;fill:#fff}.idea-detail-voting .vote-down:hover:not(:disabled){background:var(--energy-soft)}.idea-detail-voting .vote-down:hover:not(:disabled) svg{color:var(--energy)}.idea-detail-voting .vote-down.voted{background:var(--energy)}.idea-detail-voting .vote-down.voted svg{color:#fff;fill:#fff}.idea-detail-done{width:100%;padding:var(--space-4);font-size:16px;font-weight:600;font-family:var(--font);color:var(--white);background:var(--primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.idea-detail-done:hover{opacity:.9}.groups-page{display:flex;flex-direction:column;gap:var(--space-5)}.groups-header{display:flex;justify-content:space-between;align-items:center}.groups-header h1{font-size:28px;font-weight:700}.groups-actions{display:flex;gap:var(--space-2)}.groups-loading{display:flex;justify-content:center;padding:var(--space-8)}.groups-list{display:flex;flex-direction:column;gap:var(--space-3)}.group-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--white);border:1px solid var(--cloud);border-radius:var(--radius-lg);cursor:pointer;text-align:left;width:100%;transition:all .2s ease}.group-card:hover{border-color:var(--primary-light);box-shadow:var(--shadow-soft)}.group-card:active{transform:scale(.98)}.group-card-avatar{width:48px;height:48px;border-radius:var(--radius-md);background:var(--gradient-primary);color:var(--white);font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.group-activity-dot{position:absolute;top:-4px;right:-4px;width:14px;height:14px;background:var(--primary);border-radius:50%;border:2px solid var(--white);box-shadow:0 2px 4px #8b5cf64d}.group-card-content{flex:1;min-width:0}.group-card-name{font-size:16px;font-weight:600;color:var(--graphite);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-card-meta{font-size:13px;color:var(--stone);margin:0;display:flex;align-items:center;gap:var(--space-2)}.group-sharing-badge{font-size:11px;padding:2px 6px;background:var(--success-soft);color:var(--success);border-radius:var(--radius-full);font-weight:500}.group-card-description{font-size:13px;color:var(--stone);margin:var(--space-1) 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-card-chevron{width:20px;height:20px;color:var(--stone);flex-shrink:0}.groups-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-8) var(--space-4)}.groups-empty-icon{width:80px;height:80px;background:var(--primary-soft);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-5)}.groups-empty-icon svg{width:40px;height:40px;color:var(--primary)}.groups-empty h2{font-size:20px;font-weight:600;margin-bottom:var(--space-2)}.groups-empty p{font-size:14px;color:var(--stone);margin-bottom:var(--space-5);max-width:280px}.groups-empty-actions{display:flex;flex-direction:column;gap:var(--space-3);width:100%;max-width:240px}.member-avatars{display:flex}.member-avatar{width:28px;height:28px;border-radius:50%;background:var(--cloud);border:2px solid var(--white);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--stone);margin-left:-8px;overflow:hidden}.member-avatar:first-child{margin-left:0}.member-avatar img{width:100%;height:100%;object-fit:cover}.member-avatar-more{background:var(--primary-soft);color:var(--primary)}.invite-code-card{background:var(--white);border:1px solid var(--cloud);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center}.invite-code-label{font-size:12px;font-weight:500;color:var(--stone);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3)}.invite-code-display{background:var(--snow);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.invite-code-value{font-size:28px;font-weight:700;font-family:ui-monospace,monospace;letter-spacing:.1em;color:var(--graphite)}.invite-code-actions{display:flex;gap:var(--space-3)}.invite-code-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:14px;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;border:1px solid var(--mist);background:var(--white);color:var(--graphite)}.invite-code-btn svg{width:18px;height:18px}.invite-code-btn:hover{border-color:var(--primary-light);color:var(--primary)}.invite-code-btn-primary{background:var(--primary);border-color:var(--primary);color:var(--white)}.invite-code-btn-primary:hover{background:var(--primary-light);border-color:var(--primary-light);color:var(--white)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding:var(--space-4)}.modal-content{width:100%;max-width:var(--max-width);background:var(--white);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-5);max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.modal-header h2{font-size:20px;font-weight:600}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:var(--cloud);border-radius:50%;cursor:pointer;color:var(--stone);transition:all .2s ease}.modal-close:hover{background:var(--mist);color:var(--graphite)}.modal-close svg{width:16px;height:16px}.modal-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:14px;font-weight:500;color:var(--graphite)}.form-group input,.form-group textarea{padding:var(--space-3) var(--space-4);font-size:16px;border:1px solid var(--mist);border-radius:var(--radius-md);background:var(--white);color:var(--graphite);font-family:var(--font);transition:all .2s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--stone)}.form-group textarea{resize:vertical;min-height:80px}.invite-code-input{text-align:center;font-size:24px!important;font-weight:600;letter-spacing:.15em;font-family:ui-monospace,monospace!important;text-transform:uppercase}.form-hint{font-size:12px;color:var(--stone)}.form-error{font-size:14px;color:var(--energy);background:var(--energy-soft);padding:var(--space-3);border-radius:var(--radius-sm)}.modal-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.modal-actions button{flex:1}.group-feed-page{display:flex;flex-direction:column;min-height:100%}.group-feed-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.back-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:var(--cloud);border-radius:50%;cursor:pointer;color:var(--graphite);transition:all .2s ease;flex-shrink:0}.back-btn:hover{background:var(--mist)}.back-btn svg{width:20px;height:20px}.group-feed-header-content{flex:1;min-width:0}.group-feed-header-content h1{font-size:20px;font-weight:600;margin-bottom:var(--space-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-feed-header-actions{display:flex;gap:var(--space-2)}.icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:var(--cloud);border-radius:50%;cursor:pointer;color:var(--stone);transition:all .2s ease}.icon-btn:hover{background:var(--mist);color:var(--graphite)}.icon-btn svg{width:18px;height:18px}.group-feed-panel{margin-bottom:var(--space-4)}.group-settings{background:var(--white);border:1px solid var(--cloud);border-radius:var(--radius-lg);padding:var(--space-4)}.group-setting-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.group-setting-info h4{font-size:15px;font-weight:600;margin-bottom:var(--space-1)}.group-setting-info p{font-size:13px;color:var(--stone)}.group-setting-divider{height:1px;background:var(--cloud);margin:var(--space-4) 0}.group-setting-item.danger .group-setting-info h4{color:var(--error)}.btn-danger-outline{padding:var(--space-2) var(--space-4);font-size:14px;font-weight:500;color:var(--error);background:transparent;border:1px solid var(--error);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.btn-danger-outline:hover{background:var(--error);color:var(--white)}.btn-danger{padding:var(--space-3) var(--space-5);font-size:15px;font-weight:600;color:var(--white);background:var(--error);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.btn-danger:hover{background:#c53030}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:1000}.modal-content{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-6);max-width:400px;width:100%;text-align:center}.modal-content h3{font-size:18px;font-weight:600;margin-bottom:var(--space-2)}.modal-content p{font-size:14px;color:var(--stone);margin-bottom:var(--space-5)}.modal-actions{display:flex;gap:var(--space-3);justify-content:center}.toggle-switch{position:relative;display:inline-block;width:48px;height:28px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--mist);border-radius:var(--radius-full);transition:all .3s ease}.toggle-slider:before{content:"";position:absolute;height:22px;width:22px;left:3px;bottom:3px;background:var(--white);border-radius:50%;transition:all .3s ease;box-shadow:0 2px 4px #0000001a}.toggle-switch input:checked+.toggle-slider{background:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.group-feed-content{flex:1}.group-feed-loading,.group-feed-loading-inline{display:flex;justify-content:center;padding:var(--space-8)}.feed-list{display:flex;flex-direction:column;gap:var(--space-4)}.feed-entry{background:var(--white);border:1px solid var(--cloud);border-radius:var(--radius-lg);padding:var(--space-4)}.feed-entry-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-3)}.feed-entry-user{display:flex;align-items:center;gap:var(--space-3)}.feed-entry-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover}.feed-entry-avatar-placeholder{background:var(--gradient-primary);color:var(--white);font-weight:600;font-size:16px;display:flex;align-items:center;justify-content:center}.feed-entry-user-info{display:flex;flex-direction:column}.feed-entry-name{font-size:14px;font-weight:600;color:var(--graphite)}.feed-entry-time{font-size:12px;color:var(--stone)}.feed-entry-menu{position:relative}.feed-entry-menu-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:50%;cursor:pointer;color:var(--stone);transition:all .2s ease}.feed-entry-menu-btn:hover{background:var(--cloud);color:var(--graphite)}.feed-entry-menu-btn svg{width:18px;height:18px}.feed-entry-menu-backdrop{position:fixed;inset:0;z-index:10}.feed-entry-menu-dropdown{position:absolute;top:100%;right:0;background:var(--white);border:1px solid var(--cloud);border-radius:var(--radius-md);box-shadow:var(--shadow-medium);overflow:hidden;z-index:20;min-width:160px}.feed-entry-menu-dropdown button{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);border:none;background:none;font-size:14px;color:var(--graphite);cursor:pointer;text-align:left;transition:background .2s ease}.feed-entry-menu-dropdown button:hover{background:var(--cloud)}.feed-entry-menu-dropdown svg{width:16px;height:16px;color:var(--stone)}.feed-entry-content{margin-bottom:var(--space-3)}.feed-entry-image{position:relative;margin-bottom:var(--space-3);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;max-height:150px}.feed-entry-image img{width:100%;height:150px;object-fit:cover;display:block;transition:transform .2s ease}.feed-entry-image:hover img{transform:scale(1.02)}.feed-entry-image-hint{position:absolute;bottom:var(--space-2);right:var(--space-2);background:#0009;color:#fff;font-size:11px;padding:4px 8px;border-radius:var(--radius-sm);opacity:.8}.image-lightbox{position:fixed;inset:0;background:#000000e6;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fadeIn .2s ease}.image-lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-md)}.image-lightbox-close{position:absolute;top:var(--space-4);right:var(--space-4);width:40px;height:40px;border:none;background:#fff3;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:background .2s ease}.image-lightbox-close:hover{background:#ffffff4d}.image-lightbox-close svg{width:24px;height:24px}.feed-entry-food{display:flex;flex-direction:column;gap:var(--space-1)}.feed-entry-food-name{font-size:16px;font-weight:600;color:var(--graphite);margin:0}.feed-entry-macros{display:flex;flex-wrap:wrap;gap:var(--space-2)}.feed-entry-macro{font-size:14px;font-weight:500}.reaction-bar{display:flex;gap:var(--space-2);flex-wrap:wrap}.reaction-chip{display:flex;align-items:center;gap:4px;padding:6px 12px;border:1.5px solid var(--reaction-color);background:var(--white);border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease;font-size:13px;font-weight:500;color:var(--reaction-color)}.reaction-chip:hover{background:color-mix(in srgb,var(--reaction-color) 15%,white);opacity:.9}.reaction-chip:active{transform:scale(.95)}.reaction-chip-active{background:var(--reaction-color);color:var(--white)}.reaction-chip-active:hover{background:var(--reaction-color);filter:brightness(1.1)}.reaction-label{white-space:nowrap}.reaction-emoji{font-size:14px}.reaction-count{font-size:12px;font-weight:700;margin-left:2px}.empty-feed{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-8) var(--space-4)}.empty-feed-icon{width:64px;height:64px;margin-bottom:var(--space-4)}.empty-feed-icon svg{width:100%;height:100%;color:var(--mist)}.empty-feed h3{font-size:16px;font-weight:600;margin-bottom:var(--space-2)}.empty-feed p{font-size:14px;color:var(--stone)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:13px;display:flex;align-items:center;gap:var(--space-1)}.btn-sm svg{width:16px;height:16px}.btn-primary{padding:var(--space-3) var(--space-5);font-size:15px;font-weight:600;font-family:var(--font);color:var(--white);background:var(--primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:var(--primary-light)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:var(--space-3) var(--space-5);font-size:15px;font-weight:600;font-family:var(--font);color:var(--graphite);background:var(--white);border:1px solid var(--mist);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.btn-secondary:hover:not(:disabled){border-color:var(--primary-light);color:var(--primary)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.spinner{width:32px;height:32px;border:3px solid var(--cloud);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.settings-saving{font-size:13px;color:var(--primary);font-weight:500;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.settings-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-5);background:var(--cloud);padding:var(--space-1);border-radius:var(--radius-md)}.settings-tab{flex:1;padding:var(--space-3) var(--space-4);font-size:14px;font-weight:600;font-family:var(--font);color:var(--stone);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.settings-tab:hover{color:var(--graphite)}.settings-tab.active{background:var(--white);color:var(--graphite);box-shadow:var(--shadow-subtle)}.support-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:linear-gradient(135deg,#fd0,#fbb034);border-radius:var(--radius-lg);text-decoration:none;transition:all .2s ease}.support-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-medium)}.support-card:active{transform:scale(.98)}.support-icon{width:48px;height:48px;background:#ffffff4d;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.support-icon svg{width:28px;height:28px;color:#7c4700}.support-content{flex:1}.support-content h3{font-size:16px;font-weight:600;color:#7c4700;margin:0 0 var(--space-1)}.support-content p{font-size:13px;color:#9c5a00;margin:0}.support-chevron{width:20px;height:20px;color:#7c4700;flex-shrink:0}.clear-cache-btn{width:100%;padding:var(--space-3) var(--space-4);background:var(--cloud);border:1px solid var(--silver);border-radius:var(--radius-md);color:var(--graphite-light);font-size:var(--font-sm);cursor:pointer;transition:all .2s ease}.clear-cache-btn:hover{background:var(--silver)}.clear-cache-btn:active{transform:scale(.98)}.home-tabs{display:flex;gap:var(--space-1);margin:var(--space-3) var(--space-4) var(--space-4);background:var(--cloud);padding:4px;border-radius:var(--radius-full)}.home-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:15px;font-weight:600;font-family:var(--font);color:var(--stone);background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease}.home-tab:hover{color:var(--graphite)}.home-tab.active{background:var(--white);color:var(--charcoal);box-shadow:0 1px 3px #0000001a}.home-tab-badge{font-size:11px;padding:2px 6px;background:var(--primary-soft);color:var(--primary);border-radius:var(--radius-full);font-weight:600}.home-tab.active .home-tab-badge{background:var(--primary);color:var(--white)}.badges-tab-content{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-2) 0}.badges-tab-content .badges-header{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-2)}.badges-tab-content .badges-header h1{font-size:24px;font-weight:700;margin:0}.badges-tab-content .badges-subtitle{font-size:14px;color:var(--stone);margin:0}.badges-tab-content .badges-all-content{display:flex;flex-direction:column;gap:var(--space-4)}.badges-tab-content .badge-section{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--cloud);padding:var(--space-4)}.badges-tab-content .badge-section-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);width:100%;background:none;border:none;cursor:pointer;padding:var(--space-2) 0}.badges-tab-content .badge-section-icon{font-size:20px}.badges-tab-content .badge-section-title{font-size:16px;font-weight:600;color:var(--charcoal);flex:1;text-align:left}.badges-tab-content .badge-section-chevron{color:var(--stone);transition:transform .2s ease;margin-left:auto}.badges-tab-content .badge-section-chevron.expanded{transform:rotate(180deg)}.badges-tab-content .badge-section-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:var(--space-3)}.badges-tab-content .badge-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-md);position:relative;transition:transform .2s ease,box-shadow .2s ease}.badges-tab-content .badge-item.earned{cursor:pointer;background:linear-gradient(135deg,var(--badge-gradient, #fef3c7),transparent);box-shadow:0 0 12px var(--badge-glow, rgba(251, 191, 36, .3))}.badges-tab-content .badge-item.earned:hover{transform:scale(1.05)}.badges-tab-content .badge-item.locked{opacity:.4;filter:grayscale(100%)}.badges-tab-content .badge-item-sprite{font-size:32px;line-height:1}.badges-tab-content .badge-item-check{position:absolute;top:4px;right:4px;width:16px;height:16px;background:var(--success);border-radius:50%;display:flex;align-items:center;justify-content:center}.badges-tab-content .badge-item-check svg{stroke:#fff}.onboarding{position:fixed;inset:0;background:var(--white);z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.onboarding-container{width:100%;max-width:440px}.onboarding-progress{display:flex;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-8)}.progress-dot{width:8px;height:8px;border-radius:50%;background:var(--mist);transition:all .3s ease}.progress-dot.active{width:24px;border-radius:var(--radius-full);background:var(--primary)}.progress-dot.completed{background:var(--primary)}.onboarding-step{text-align:center;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.onboarding-icon{font-size:64px;margin-bottom:var(--space-4)}.onboarding-step h1{font-size:28px;font-weight:700;margin-bottom:var(--space-3);color:var(--charcoal)}.onboarding-step h2{font-size:22px;font-weight:600;margin-bottom:var(--space-2);color:var(--charcoal)}.onboarding-step>p{font-size:16px;color:var(--stone);margin-bottom:var(--space-4);line-height:1.5}.onboarding-hint{font-size:14px!important;color:var(--stone)!important;margin-bottom:var(--space-6)!important}.btn-large{padding:var(--space-4) var(--space-8);font-size:17px}.btn-coffee{background:linear-gradient(135deg,#fd0,#fbb034);color:#000;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);text-decoration:none;margin-bottom:var(--space-3)}.btn-coffee:hover{background:linear-gradient(135deg,#fbb034,#fd0);transform:translateY(-1px)}.btn-coffee svg{stroke:#000}.onboarding-input-group{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-4)}.onboarding-input-group input{width:120px;padding:var(--space-4);font-size:24px;font-weight:600;text-align:center;border:2px solid var(--mist);border-radius:var(--radius-md);transition:all .2s ease}.onboarding-input-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.input-suffix{font-size:18px;color:var(--stone);font-weight:500}.onboarding-error{color:var(--error)!important;font-size:14px!important;margin-bottom:var(--space-4)!important}.onboarding-actions{display:flex;justify-content:center;gap:var(--space-3);margin-top:var(--space-6)}.onboarding-actions-center{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-top:var(--space-4)}.onboarding-actions-center .btn-link{margin-top:var(--space-1)}.onboarding-macros{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4);text-align:left}.onboarding-macro{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--snow);border:2px solid var(--cloud);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.onboarding-macro:hover:not(.locked){border-color:var(--macro-color)}.onboarding-macro.enabled{background:color-mix(in srgb,var(--macro-color) 10%,white);border-color:var(--macro-color)}.onboarding-macro.locked{cursor:default;opacity:.8}.onboarding-macro input{display:none}.macro-check{width:24px;height:24px;border:2px solid var(--mist);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.onboarding-macro.enabled .macro-check{background:var(--macro-color);border-color:var(--macro-color)}.macro-check svg{width:14px;height:14px;stroke:#fff;opacity:0;transition:opacity .2s ease}.onboarding-macro.enabled .macro-check svg{opacity:1}.macro-label{flex:1;font-size:16px;font-weight:500;color:var(--graphite)}.macro-badge{font-size:11px;font-weight:600;color:var(--stone);background:var(--cloud);padding:2px 8px;border-radius:var(--radius-full);text-transform:uppercase}.onboarding-toggle-group{display:flex;gap:var(--space-3);margin-bottom:var(--space-5)}.toggle-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--snow);border:2px solid var(--cloud);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.toggle-option:hover{border-color:var(--primary-soft)}.toggle-option.active{background:var(--primary-soft);border-color:var(--primary)}.toggle-icon{font-size:24px}.toggle-label{font-size:14px;font-weight:500;color:var(--graphite)}.onboarding-calculated label,.onboarding-manual label{display:block;font-size:13px;font-weight:500;color:var(--stone);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3);text-align:left}.activity-options{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2);margin-bottom:var(--space-4)}.activity-option{display:flex;flex-direction:column;padding:var(--space-3);background:var(--snow);border:2px solid var(--cloud);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;text-align:left}.activity-option:hover{border-color:var(--primary-soft)}.activity-option.active{background:var(--primary-soft);border-color:var(--primary)}.activity-label{font-size:14px;font-weight:500;color:var(--graphite)}.activity-value{font-size:12px;color:var(--stone)}.calculated-result{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);background:var(--primary-soft);border-radius:var(--radius-md)}.result-formula{font-size:14px;color:var(--graphite)}.result-value{font-size:20px;font-weight:700;color:var(--primary)}.onboarding-summary{background:var(--snow);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-6);text-align:left}.summary-item{display:flex;justify-content:space-between;padding:var(--space-2) 0}.summary-item:not(:last-child){border-bottom:1px solid var(--cloud)}.summary-label{font-size:14px;color:var(--stone)}.summary-value{font-size:14px;font-weight:600;color:var(--graphite)}.onboarding-coffee{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--cloud)}.onboarding-coffee p{font-size:13px!important;color:var(--stone)!important;margin-bottom:var(--space-2)!important}.onboarding-coffee a{display:inline-flex;align-items:center;gap:var(--space-2);font-size:14px;font-weight:500;color:var(--primary);text-decoration:none}.onboarding-coffee a:hover{text-decoration:underline}.onboarding-feature{width:100%;margin:var(--space-4) 0}.feature-preview{background:var(--cloud);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-3)}.feature-quick-demo{display:flex;flex-direction:column;gap:var(--space-2)}.quick-demo-item{background:#fff;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:15px;font-weight:500;color:var(--graphite);box-shadow:0 1px 3px #00000014}.feature-ideas-demo{display:flex;gap:var(--space-3);justify-content:center}.ideas-demo-card{background:#fff;padding:var(--space-4);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);flex:1;box-shadow:0 1px 3px #00000014}.ideas-demo-icon{font-size:28px}.ideas-demo-text{font-size:13px;font-weight:600;color:var(--graphite)}.feature-groups-demo{display:flex;flex-direction:column;gap:var(--space-2)}.groups-demo-entry{background:#fff;padding:var(--space-3);border-radius:var(--radius-md);display:flex;align-items:center;gap:var(--space-3);box-shadow:0 1px 3px #00000014}.groups-demo-avatar{font-size:20px;background:var(--mist);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}.groups-demo-text{flex:1;font-size:13px;color:var(--graphite)}.groups-demo-reactions{font-size:14px}.onboarding-diet-dropdown{margin-bottom:var(--space-4)}.section-hint{font-size:13px;color:var(--stone);margin-bottom:var(--space-3)}.join-group-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--snow)}.join-group-card{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;max-width:320px;width:100%;box-shadow:var(--shadow-soft)}.join-group-icon{font-size:48px;margin-bottom:var(--space-4)}.join-group-icon.success{animation:popIn .4s var(--bounce)}.join-group-icon.error{opacity:.7}.join-group-card h1{font-size:22px;font-weight:700;color:var(--graphite);margin-bottom:var(--space-2)}.join-group-card p{font-size:15px;color:var(--stone);margin-bottom:var(--space-3)}.join-group-error{color:#ef4444!important}.join-group-redirect{font-size:13px!important;color:var(--primary)!important}.join-group-auth{margin-top:var(--space-4)}.join-group-hint{font-size:13px!important;color:var(--stone)!important;margin-top:var(--space-2)}.announcement-modal{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-6);max-width:340px;width:calc(100% - var(--space-6));text-align:center;position:relative;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.announcement-close{position:absolute;top:var(--space-3);right:var(--space-3);width:32px;height:32px;border:none;background:var(--cloud);border-radius:var(--radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.announcement-close:hover{background:var(--mist)}.announcement-close svg{width:18px;height:18px;color:var(--stone)}.announcement-icon{font-size:56px;margin-bottom:var(--space-3);animation:popIn .4s var(--bounce) .1s both}.announcement-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--primary);margin-bottom:var(--space-2)}.announcement-feature{font-size:22px;font-weight:700;color:var(--graphite);margin-bottom:var(--space-3)}.announcement-description{font-size:15px;color:var(--stone);line-height:1.5;margin-bottom:var(--space-5)}.announcement-actions{display:flex;flex-direction:column;gap:var(--space-2)}.announcement-actions .btn{width:100%}.announcement-diet-selector{margin-bottom:var(--space-4);width:100%}.diet-dropdown{width:100%;padding:var(--space-3);border-radius:var(--radius-md);border:1.5px solid var(--cloud);background:var(--white);color:var(--ink);font-size:var(--text-base);font-weight:500;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:20px}.diet-dropdown:focus{outline:none;border-color:var(--primary)}.loading-spinner{width:48px;height:48px;border:4px solid var(--cloud);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.success-toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + var(--space-4));left:50%;transform:translate(-50%) translateY(0);z-index:1000;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--white);border-radius:var(--radius-full);box-shadow:0 8px 32px #0000001f,0 2px 8px #00000014;animation:toastSlideIn .4s cubic-bezier(.34,1.56,.64,1);max-width:calc(100vw - var(--space-8))}.success-toast.leaving{animation:toastSlideOut .3s ease-in forwards}.success-toast.success{border:2px solid var(--success)}.success-toast.milestone{border:2px solid var(--warning);background:linear-gradient(135deg,var(--white) 0%,var(--warning-soft) 100%)}.success-toast.goal{border:2px solid var(--primary);background:linear-gradient(135deg,var(--white) 0%,var(--primary-soft) 100%)}.toast-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:16px;flex-shrink:0}.success-toast.success .toast-icon{background:var(--success-soft);color:var(--success)}.success-toast.milestone .toast-icon{background:var(--warning-soft);font-size:20px}.success-toast.goal .toast-icon{background:var(--primary-soft);font-size:24px;animation:celebrateIcon .6s ease-in-out}.toast-content{display:flex;flex-direction:column;gap:2px}.toast-text{font-size:15px;font-weight:600;color:var(--graphite)}.toast-protein{font-size:13px;color:var(--success);font-weight:500}.success-toast.goal .toast-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:var(--radius-full)}.success-toast.goal .toast-confetti:before,.success-toast.goal .toast-confetti:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;animation:confettiBurst .8s ease-out forwards}.success-toast.goal .toast-confetti:before{background:var(--primary);left:20%;top:50%}.success-toast.goal .toast-confetti:after{background:var(--energy);right:20%;top:50%;animation-delay:.1s}@keyframes toastSlideIn{0%{transform:translate(-50%) translateY(-100px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translate(-50%) translateY(0);opacity:1}to{transform:translate(-50%) translateY(-100px);opacity:0}}@keyframes celebrateIcon{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.2) rotate(-10deg)}50%{transform:scale(1.3) rotate(10deg)}75%{transform:scale(1.1) rotate(-5deg)}}@keyframes confettiBurst{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--x, 30px),var(--y, -40px)) scale(0);opacity:0}}.success-toast.goal .toast-confetti:before{--x: -40px;--y: -30px}.success-toast.goal .toast-confetti:after{--x: 40px;--y: -35px}.language-selector{display:flex;flex-direction:column;gap:var(--space-2)}.language-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--snow);border:2px solid var(--cloud);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;font-family:var(--font);text-align:left}.language-option:hover{border-color:var(--primary-light)}.language-option.active{background:var(--primary-soft);border-color:var(--primary)}.language-flag{font-size:24px;line-height:1}.language-name{flex:1;font-size:15px;font-weight:500;color:var(--graphite)}.language-check{width:20px;height:20px;color:var(--primary)}.reminders-toggle-card{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--snow);border-radius:var(--radius-lg);border:1px solid var(--cloud)}.reminders-toggle-info{display:flex;align-items:center;gap:var(--space-3)}.reminders-icon{font-size:24px;line-height:1}.reminders-text{display:flex;flex-direction:column;gap:var(--space-1)}.reminders-label{font-size:15px;font-weight:500;color:var(--graphite)}.reminders-status{font-size:13px;color:var(--stone)}.reminders-blocked-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);padding:var(--space-5);background:var(--snow);border-radius:var(--radius-lg);border:1px solid var(--cloud)}.reminders-blocked-card p{font-size:14px;color:var(--stone);margin:0;line-height:1.5}.reminders-blocked-card .btn{margin-top:var(--space-2)}button.toggle-switch{position:relative;width:52px;height:32px;background:var(--cloud);border:none;border-radius:16px;cursor:pointer;transition:background .2s ease;flex-shrink:0}button.toggle-switch:disabled{opacity:.5;cursor:not-allowed}button.toggle-switch.active{background:var(--primary)}.toggle-switch-thumb{position:absolute;top:4px;left:4px;width:24px;height:24px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #00000026;transition:transform .2s ease}button.toggle-switch.active .toggle-switch-thumb{transform:translate(20px)}.feature-reminders-demo{display:flex;flex-direction:column;gap:var(--space-2)}.reminder-demo-item{display:flex;align-items:center;gap:var(--space-3);background:#fff;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:0 1px 3px #00000014}.reminder-time{font-size:13px;font-weight:600;color:var(--primary);min-width:70px}.reminder-text{font-size:14px;color:var(--graphite)}.btn-link{background:none;border:none;color:var(--stone);font-size:14px;cursor:pointer;padding:var(--space-2);margin-top:var(--space-2);text-decoration:underline;font-family:var(--font)}.btn-link:hover{color:var(--graphite)}.reminders-modal{background:#fff;border-radius:var(--radius-xl);padding:var(--space-6);max-width:380px;width:90%;text-align:center;position:relative;animation:modalSlideUp .3s ease}.reminders-modal-icon-animated,.onboarding-icon-animated{position:relative;margin-bottom:var(--space-3)}.bell-icon{font-size:56px;display:inline-block;animation:bellRing 2s ease-in-out infinite}@keyframes bellRing{0%,to{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-14deg)}30%{transform:rotate(10deg)}40%{transform:rotate(-10deg)}50%{transform:rotate(6deg)}60%{transform:rotate(-6deg)}70%{transform:rotate(0)}}.reminders-modal-badge{display:inline-block;background:linear-gradient(135deg,var(--primary) 0%,#A78BFA 100%);color:#fff;font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;margin-bottom:var(--space-3);letter-spacing:.5px}.reminders-modal-title{font-size:24px;font-weight:700;color:var(--graphite);margin:0 0 var(--space-2)}.reminders-modal-subtitle{font-size:15px;color:var(--stone);margin:0 0 var(--space-4);line-height:1.5}.reminders-benefits{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.reminder-benefit{display:flex;align-items:center;gap:var(--space-3);background:linear-gradient(135deg,#f3e8ff,#ede9fe);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);text-align:left}.benefit-icon{font-size:28px;line-height:1}.benefit-text{display:flex;flex-direction:column;gap:2px}.benefit-time{font-size:14px;font-weight:700;color:var(--primary)}.benefit-label{font-size:13px;color:var(--graphite)}.reminders-modal-cta,.onboarding-cta{margin-bottom:var(--space-4)}.cta-text,.onboarding-cta{font-size:14px;color:var(--stone);line-height:1.5;margin:0}.btn-glow{position:relative;box-shadow:0 0 20px #8b5cf666;animation:btnGlow 2s ease-in-out infinite}@keyframes btnGlow{0%,to{box-shadow:0 0 20px #8b5cf666}50%{box-shadow:0 0 30px #8b5cf699}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
