:root{--bg-primary: #0a0a0f;--bg-secondary: #111118;--bg-card: rgba(255, 255, 255, .04);--bg-card-hover: rgba(255, 255, 255, .07);--bg-glass: rgba(255, 255, 255, .06);--bg-glass-strong: rgba(255, 255, 255, .1);--bg-input: rgba(255, 255, 255, .06);--bg-input-focus: rgba(255, 255, 255, .1);--border-subtle: rgba(255, 255, 255, .06);--border-medium: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .2);--text-primary: #f0f0f5;--text-secondary: #9898a6;--text-muted: #5c5c6e;--text-inverse: #0a0a0f;--gradient-primary: linear-gradient(135deg, #06d6a0 0%, #00b4d8 100%);--gradient-secondary: linear-gradient(135deg, #7b2ff7 0%, #c77dff 100%);--gradient-danger: linear-gradient(135deg, #ff6b6b 0%, #ff8e53 100%);--gradient-warm: linear-gradient(135deg, #f9c74f 0%, #f8961e 100%);--gradient-hero: linear-gradient(160deg, #06d6a0 0%, #00b4d8 40%, #7b2ff7 100%);--accent-green: #06d6a0;--accent-cyan: #00b4d8;--accent-purple: #7b2ff7;--accent-pink: #c77dff;--accent-red: #ff6b6b;--accent-orange: #ff8e53;--accent-yellow: #f9c74f;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow-green: 0 0 20px rgba(6, 214, 160, .15);--shadow-glow-purple: 0 0 20px rgba(123, 47, 247, .15);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fs-xs: .6875rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1.0625rem;--fs-lg: 1.25rem;--fs-xl: 1.5rem;--fs-2xl: 1.875rem;--fs-3xl: 2.25rem;--fw-light: 300;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-black: 900;--lh-tight: 1.2;--lh-base: 1.5;--lh-relaxed: 1.7;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-base: 16px;--space-lg: 20px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 40px;--space-4xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s cubic-bezier(.16, 1, .3, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--nav-height: 80px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;height:100%}body{font-family:var(--font-family);font-size:var(--fs-base);font-weight:var(--fw-regular);line-height:var(--lh-base);color:var(--text-primary);background-color:var(--bg-primary);min-height:100%;overflow-x:hidden;overscroll-behavior-y:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}#page-container{flex:1;padding-top:var(--safe-top);padding-bottom:calc(var(--nav-height) + var(--safe-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch}.page{animation:pageIn .35s cubic-bezier(.16,1,.3,1);padding:var(--space-base);padding-top:var(--space-lg);max-width:480px;margin:0 auto;width:100%}@keyframes pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.text-gradient{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-secondary{background:var(--gradient-secondary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.glass-card{background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-base);transition:background var(--transition-fast),border-color var(--transition-fast)}.glass-card:hover{background:var(--bg-glass-strong);border-color:var(--border-medium)}.glass-card-accent{background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(6,214,160,.15);border-radius:var(--radius-lg);padding:var(--space-base);box-shadow:var(--shadow-glow-green)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border:none;border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--fs-base);font-weight:var(--fw-semibold);cursor:pointer;transition:all var(--transition-fast);touch-action:manipulation;-webkit-user-select:none;user-select:none;text-decoration:none;line-height:1.2;position:relative;overflow:hidden}.btn:active{transform:scale(.96)}.btn-primary{background:var(--gradient-primary);color:var(--text-inverse);box-shadow:var(--shadow-glow-green)}.btn-primary:hover{box-shadow:0 0 30px #06d6a040}.btn-secondary{background:var(--bg-glass-strong);color:var(--text-primary);border:1px solid var(--border-medium)}.btn-secondary:hover{background:#ffffff26}.btn-danger{background:var(--gradient-danger);color:#fff}.btn-ghost{background:transparent;color:var(--text-secondary);padding:var(--space-sm) var(--space-md)}.btn-ghost:hover{color:var(--text-primary);background:var(--bg-glass)}.btn-lg{padding:var(--space-base) var(--space-xl);font-size:var(--fs-md);border-radius:var(--radius-lg)}.btn-full{width:100%}.btn-icon{width:44px;height:44px;padding:0;border-radius:var(--radius-md);font-size:1.25rem}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.input-group{display:flex;flex-direction:column;gap:var(--space-sm)}.input-group label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary)}.input{width:100%;padding:var(--space-md) var(--space-base);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-family);font-size:var(--fs-base);transition:all var(--transition-fast);outline:none}.input:focus{background:var(--bg-input-focus);border-color:var(--accent-green);box-shadow:0 0 0 3px #06d6a01a}.input::placeholder{color:var(--text-muted)}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%239898a6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}textarea.input{resize:vertical;min-height:80px}.tag{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.tag.active{background:#06d6a026;border-color:#06d6a04d;color:var(--accent-green)}.tag:hover{background:var(--bg-glass-strong)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-base)}.section-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text-primary)}.section-action{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--accent-green);cursor:pointer;transition:opacity var(--transition-fast)}.section-action:hover{opacity:.7}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xl);padding-top:var(--space-sm)}.page-header h1{font-size:var(--fs-2xl);font-weight:var(--fw-black);letter-spacing:-.5px}.page-header-subtitle{font-size:var(--fs-sm);color:var(--text-secondary);margin-top:var(--space-xs)}.skeleton{background:linear-gradient(90deg,var(--bg-glass) 25%,var(--bg-glass-strong) 50%,var(--bg-glass) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.spinner{width:24px;height:24px;border:2px solid var(--border-subtle);border-top-color:var(--accent-green);border-radius:50%;animation:spin .8s linear infinite}.spinner-lg{width:40px;height:40px;border-width:3px}.loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-base);padding:var(--space-4xl);color:var(--text-secondary)}.loading-dots{display:flex;gap:var(--space-sm)}.loading-dots span{width:8px;height:8px;background:var(--accent-green);border-radius:50%;animation:pulse 1.4s infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}#toast-container{position:fixed;top:calc(var(--safe-top) + var(--space-base));left:var(--space-base);right:var(--space-base);z-index:10000;display:flex;flex-direction:column;gap:var(--space-sm);pointer-events:none}.toast{background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:var(--space-md) var(--space-base);font-size:var(--fs-sm);color:var(--text-primary);box-shadow:var(--shadow-lg);animation:slideUp .3s ease;pointer-events:all;display:flex;align-items:center;gap:var(--space-sm)}.toast.success{border-color:#06d6a04d}.toast.error{border-color:#ff6b6b4d}.toast.info{border-color:#00b4d84d}.toast-icon{font-size:var(--fs-lg)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:9000;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}.modal-overlay.hidden{display:none}.modal{background:var(--bg-secondary);border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;padding:var(--space-xl);padding-bottom:calc(var(--space-xl) + var(--safe-bottom));animation:slideUp .35s cubic-bezier(.16,1,.3,1)}.modal-handle{width:36px;height:4px;background:var(--border-medium);border-radius:var(--radius-full);margin:0 auto var(--space-lg)}.modal h2{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin-bottom:var(--space-base)}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.stat-card{background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-base);display:flex;flex-direction:column;gap:var(--space-xs)}.stat-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.5px}.stat-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.stat-icon{font-size:var(--fs-lg);margin-bottom:var(--space-xs)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-full)}.stagger>*{animation:slideUp .4s cubic-bezier(.16,1,.3,1) both}.stagger>*:nth-child(1){animation-delay:0ms}.stagger>*:nth-child(2){animation-delay:50ms}.stagger>*:nth-child(3){animation-delay:.1s}.stagger>*:nth-child(4){animation-delay:.15s}.stagger>*:nth-child(5){animation-delay:.2s}.stagger>*:nth-child(6){animation-delay:.25s}.stagger>*:nth-child(7){animation-delay:.3s}.stagger>*:nth-child(8){animation-delay:.35s}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4xl) var(--space-xl);text-align:center;gap:var(--space-base)}.empty-state-icon{font-size:3rem;opacity:.3}.empty-state-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-secondary)}.empty-state-text{font-size:var(--fs-sm);color:var(--text-muted);max-width:280px}.divider{height:1px;background:var(--border-subtle);margin:var(--space-lg) 0}.progress-bar{width:100%;height:6px;background:var(--bg-glass);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;border-radius:var(--radius-full);background:var(--gradient-primary);transition:width .6s cubic-bezier(.16,1,.3,1)}.chip-group{display:flex;flex-wrap:wrap;gap:var(--space-sm)}#bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-height);background:#0a0a0fd9;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-top:1px solid var(--border-subtle);display:flex;align-items:flex-start;justify-content:space-around;padding-top:var(--space-sm);padding-bottom:var(--safe-bottom);z-index:1000}#bottom-nav.hidden{display:none}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-xs) var(--space-md);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;text-decoration:none;border:none;background:none;position:relative}.nav-item svg{width:24px;height:24px;fill:none;stroke:var(--text-muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:all var(--transition-fast)}.nav-item span{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);transition:color var(--transition-fast)}.nav-item.active svg{stroke:var(--accent-green);filter:drop-shadow(0 0 6px rgba(6,214,160,.4))}.nav-item.active span{color:var(--accent-green)}.nav-item.scanner-btn{margin-top:-12px}.nav-item.scanner-btn .scanner-circle{width:52px;height:52px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #06d6a04d;transition:all var(--transition-fast)}.nav-item.scanner-btn .scanner-circle svg{stroke:var(--bg-primary);width:26px;height:26px;stroke-width:2.2}.nav-item.scanner-btn:active .scanner-circle{transform:scale(.9)}.exercise-card{background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-base);display:flex;align-items:flex-start;gap:var(--space-md);transition:all var(--transition-fast)}.exercise-card:active{transform:scale(.98)}.exercise-card-icon{width:44px;height:44px;min-width:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.3rem}.exercise-card-icon.strength{background:#7b2ff726}.exercise-card-icon.cardio{background:#ff6b6b26}.exercise-card-icon.flexibility{background:#06d6a026}.exercise-card-icon.rest{background:#f9c74f26}.exercise-card-body{flex:1;min-width:0}.exercise-card-name{font-size:var(--fs-base);font-weight:var(--fw-semibold);margin-bottom:2px}.exercise-card-meta{font-size:var(--fs-sm);color:var(--text-secondary)}.exercise-card-detail{font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--space-xs)}.exercise-card-check{width:28px;height:28px;min-width:28px;border-radius:50%;border:2px solid var(--border-medium);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);align-self:center}.exercise-card-check.checked{background:var(--gradient-primary);border-color:transparent;color:var(--bg-primary)}.exercise-card-check.checked:after{content:"✓";font-size:14px;font-weight:700;color:var(--bg-primary)}.meal-card{background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-fast)}.meal-card:active{transform:scale(.98)}.meal-card-header{padding:var(--space-md) var(--space-base);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle)}.meal-card-type{display:flex;align-items:center;gap:var(--space-sm)}.meal-card-type-icon{font-size:1.2rem}.meal-card-type-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.meal-card-calories{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--accent-green)}.meal-card-body{padding:var(--space-base)}.meal-card-name{font-size:var(--fs-base);font-weight:var(--fw-semibold);margin-bottom:var(--space-sm)}.meal-card-macros{display:flex;gap:var(--space-md)}.meal-card-macro{display:flex;flex-direction:column;align-items:center;gap:2px}.meal-card-macro-value{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.meal-card-macro-label{font-size:var(--fs-xs);color:var(--text-muted)}.meal-card-macro.protein .meal-card-macro-value{color:#00b4d8}.meal-card-macro.carbs .meal-card-macro-value{color:#f9c74f}.meal-card-macro.fat .meal-card-macro-value{color:#ff8e53}.meal-card-footer{padding:var(--space-sm) var(--space-base) var(--space-md);display:flex;gap:var(--space-sm)}.chat-message{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md);animation:slideUp .3s ease}.chat-message.user{flex-direction:row-reverse}.chat-avatar{width:32px;height:32px;min-width:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);align-self:flex-end}.chat-message.ai .chat-avatar{background:var(--gradient-primary);color:var(--bg-primary)}.chat-message.user .chat-avatar{background:var(--gradient-secondary);color:#fff}.chat-bubble{max-width:80%;padding:var(--space-md) var(--space-base);border-radius:var(--radius-lg);font-size:var(--fs-base);line-height:var(--lh-base);word-break:break-word}.chat-message.ai .chat-bubble{background:var(--bg-glass);border:1px solid var(--border-subtle);border-bottom-left-radius:var(--space-xs)}.chat-message.user .chat-bubble{background:#06d6a01f;border:1px solid rgba(6,214,160,.2);border-bottom-right-radius:var(--space-xs)}.chat-bubble p{margin-bottom:var(--space-sm)}.chat-bubble p:last-child{margin-bottom:0}.chat-bubble strong{color:var(--accent-green);font-weight:var(--fw-semibold)}.chat-bubble ul,.chat-bubble ol{padding-left:var(--space-lg);margin:var(--space-sm) 0}.chat-bubble li{margin-bottom:var(--space-xs)}.chat-bubble code{background:var(--bg-glass-strong);padding:2px 6px;border-radius:4px;font-size:var(--fs-sm)}.chat-time{font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--space-xs);padding:0 var(--space-xs)}.chat-message.user .chat-time{text-align:right}.chat-typing{display:flex;gap:4px;padding:var(--space-md)}.chat-typing span{width:6px;height:6px;background:var(--text-muted);border-radius:50%;animation:pulse 1.4s infinite}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}.camera-container{position:relative;width:100%;aspect-ratio:3/4;border-radius:var(--radius-xl);overflow:hidden;background:var(--bg-secondary);border:2px solid var(--border-subtle)}.camera-container video,.camera-container img{width:100%;height:100%;object-fit:cover}.camera-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:var(--space-xl);background:linear-gradient(transparent 50%,#0009)}.camera-viewfinder{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70%;aspect-ratio:1;border:2px solid rgba(6,214,160,.4);border-radius:var(--radius-xl);box-shadow:0 0 0 9999px #00000040}.camera-viewfinder:before,.camera-viewfinder:after{content:"";position:absolute;width:24px;height:24px;border-color:var(--accent-green);border-style:solid}.camera-viewfinder:before{top:-1px;left:-1px;border-width:3px 0 0 3px;border-top-left-radius:var(--radius-md)}.camera-viewfinder:after{bottom:-1px;right:-1px;border-width:0 3px 3px 0;border-bottom-right-radius:var(--radius-md)}.capture-btn{width:72px;height:72px;border-radius:50%;border:4px solid rgba(255,255,255,.8);background:transparent;cursor:pointer;position:relative;transition:all var(--transition-fast);z-index:10}.capture-btn:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:#fff;transition:all var(--transition-fast)}.capture-btn:active:after{transform:scale(.85)}.chart-container{background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-base);overflow:hidden}.chart-container canvas{width:100%!important;height:200px!important}.fridge-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--border-subtle)}.fridge-item:last-child{border-bottom:none}.fridge-item-icon{font-size:1.5rem;width:40px;text-align:center}.fridge-item-info{flex:1}.fridge-item-name{font-size:var(--fs-base);font-weight:var(--fw-medium)}.fridge-item-qty{font-size:var(--fs-sm);color:var(--text-secondary)}.fridge-item-remove{width:32px;height:32px;border-radius:50%;border:none;background:#ff6b6b1a;color:var(--accent-red);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all var(--transition-fast)}.fridge-item-remove:hover{background:#ff6b6b33}.shopping-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--border-subtle)}.shopping-item-check{width:24px;height:24px;border-radius:50%;border:2px solid var(--border-medium);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;display:flex;align-items:center;justify-content:center}.shopping-item.checked .shopping-item-check{background:var(--gradient-primary);border-color:transparent}.shopping-item.checked .shopping-item-check:after{content:"✓";font-size:12px;color:var(--bg-primary);font-weight:700}.shopping-item.checked .shopping-item-name{text-decoration:line-through;color:var(--text-muted)}.shopping-item-name{flex:1;font-size:var(--fs-base)}.day-tabs{display:flex;gap:var(--space-xs);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-bottom:var(--space-lg);padding-bottom:var(--space-xs)}.day-tabs::-webkit-scrollbar{display:none}.day-tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border-subtle);cursor:pointer;transition:all var(--transition-fast);min-width:52px;flex-shrink:0}.day-tab-letter{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);text-transform:uppercase}.day-tab-num{font-size:var(--fs-base);font-weight:var(--fw-bold)}.day-tab.active{background:#06d6a01f;border-color:#06d6a04d}.day-tab.active .day-tab-letter,.day-tab.active .day-tab-num{color:var(--accent-green)}.day-tab.today{position:relative}.day-tab.today:after{content:"";width:4px;height:4px;background:var(--accent-green);border-radius:50%;margin-top:2px}.macro-ring{width:120px;height:120px;position:relative;display:flex;align-items:center;justify-content:center}.macro-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.macro-ring circle{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.16,1,.3,1)}.macro-ring-center{position:absolute;text-align:center}.macro-ring-value{font-size:var(--fs-xl);font-weight:var(--fw-bold)}.macro-ring-label{font-size:var(--fs-xs);color:var(--text-muted)}.recipe-section{margin-top:var(--space-base)}.recipe-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-md);background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary);transition:all var(--transition-fast)}.recipe-toggle-arrow{transition:transform var(--transition-fast)}.recipe-toggle.open .recipe-toggle-arrow{transform:rotate(180deg)}.recipe-content{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.16,1,.3,1)}.recipe-content.open{max-height:2000px}.recipe-content-inner{padding:var(--space-base)}.recipe-ingredient{display:flex;justify-content:space-between;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-sm)}.recipe-ingredient:last-child{border-bottom:none}.recipe-ingredient-name{color:var(--text-primary)}.recipe-ingredient-amount{color:var(--text-secondary)}.recipe-step{display:flex;gap:var(--space-md);padding:var(--space-md) 0}.recipe-step-num{width:28px;height:28px;min-width:28px;border-radius:50%;background:var(--gradient-primary);color:var(--bg-primary);display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:var(--fw-bold)}.recipe-step-text{font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-relaxed);flex:1}.scan-result-card{background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.scan-result-image{width:100%;height:200px;object-fit:cover}.scan-result-body{padding:var(--space-base)}.scan-result-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle)}.scan-result-item:last-child{border-bottom:none}.scan-result-item-name{font-weight:var(--fw-medium)}.scan-result-item-cals{color:var(--accent-green);font-weight:var(--fw-bold)}.scan-result-total{display:flex;justify-content:space-between;padding-top:var(--space-md);margin-top:var(--space-sm);border-top:2px solid var(--border-medium);font-weight:var(--fw-bold);font-size:var(--fs-md)}.onboarding{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding:var(--space-xl);padding-top:calc(var(--safe-top) + var(--space-3xl))}.onboarding-hero{text-align:center;margin-bottom:var(--space-3xl)}.onboarding-logo{font-size:4rem;margin-bottom:var(--space-base);display:block}.onboarding-title{font-size:var(--fs-3xl);font-weight:var(--fw-black);letter-spacing:-1px;margin-bottom:var(--space-sm)}.onboarding-subtitle{font-size:var(--fs-base);color:var(--text-secondary)}.onboarding-form{display:flex;flex-direction:column;gap:var(--space-lg);flex:1}.onboarding-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.onboarding-step-indicator{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-xl)}.onboarding-step-dot{width:8px;height:8px;border-radius:50%;background:var(--border-medium);transition:all var(--transition-fast)}.onboarding-step-dot.active{width:24px;border-radius:var(--radius-full);background:var(--gradient-primary)}.onboarding-step-dot.done{background:var(--accent-green)}.onboarding-actions{display:flex;gap:var(--space-md);margin-top:auto;padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.dashboard-greeting{margin-bottom:var(--space-xl)}.dashboard-greeting h1{font-size:var(--fs-2xl);font-weight:var(--fw-black);letter-spacing:-.5px}.dashboard-greeting .date{font-size:var(--fs-sm);color:var(--text-secondary);margin-top:var(--space-xs)}.dashboard-hero-card{background:var(--gradient-hero);border-radius:var(--radius-xl);padding:var(--space-xl);margin-bottom:var(--space-xl);position:relative;overflow:hidden}.dashboard-hero-card:before{content:"";position:absolute;top:-50%;right:-30%;width:200px;height:200px;background:#ffffff1a;border-radius:50%}.dashboard-hero-card:after{content:"";position:absolute;bottom:-40%;left:-20%;width:150px;height:150px;background:#ffffff0d;border-radius:50%}.dashboard-hero-card *{position:relative;z-index:1}.dashboard-hero-card h3{font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:1px;color:#ffffffb3;margin-bottom:var(--space-sm)}.dashboard-hero-card .hero-value{font-size:var(--fs-3xl);font-weight:var(--fw-black);color:#fff;letter-spacing:-1px}.dashboard-hero-card .hero-sub{font-size:var(--fs-sm);color:#fff9;margin-top:var(--space-xs)}.dashboard-section{margin-bottom:var(--space-xl)}.dashboard-quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);margin-bottom:var(--space-xl)}.quick-action{background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-base);display:flex;flex-direction:column;gap:var(--space-sm);cursor:pointer;transition:all var(--transition-fast)}.quick-action:active{transform:scale(.96)}.quick-action-icon{font-size:1.5rem}.quick-action-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.quick-action-desc{font-size:var(--fs-xs);color:var(--text-muted)}.workout-day-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin-bottom:var(--space-sm)}.workout-day-subtitle{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--space-lg)}.workout-exercises{display:flex;flex-direction:column;gap:var(--space-md)}.workout-generate-area{text-align:center;padding:var(--space-3xl) var(--space-xl)}.workout-generate-area .emoji{font-size:3.5rem;margin-bottom:var(--space-lg);display:block}.workout-timer{background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-xl);text-align:center;margin-bottom:var(--space-lg)}.workout-timer-time{font-size:3rem;font-weight:var(--fw-black);font-variant-numeric:tabular-nums;letter-spacing:2px;margin-bottom:var(--space-base)}.workout-timer-exercise{font-size:var(--fs-md);color:var(--text-secondary);margin-bottom:var(--space-lg)}.workout-timer-controls{display:flex;justify-content:center;gap:var(--space-md)}.nutrition-summary{background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-xl);display:flex;align-items:center;gap:var(--space-xl);margin-bottom:var(--space-xl)}.nutrition-summary-right{flex:1;display:flex;flex-direction:column;gap:var(--space-md)}.nutrition-macro-bar{display:flex;flex-direction:column;gap:var(--space-xs)}.nutrition-macro-bar-header{display:flex;justify-content:space-between;font-size:var(--fs-sm)}.nutrition-macro-bar-label{font-weight:var(--fw-medium)}.nutrition-macro-bar-value{color:var(--text-secondary)}.nutrition-meals{display:flex;flex-direction:column;gap:var(--space-md)}.nutrition-tabs{display:flex;background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:3px;margin-bottom:var(--space-lg)}.nutrition-tab{flex:1;padding:var(--space-sm) var(--space-md);text-align:center;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border:none;background:none;font-family:var(--font-family)}.nutrition-tab.active{background:var(--gradient-primary);color:var(--bg-primary)}.scanner-page{padding-top:var(--space-sm)}.scanner-actions{display:flex;gap:var(--space-md);margin-top:var(--space-lg);margin-bottom:var(--space-lg)}.scanner-result{animation:scaleIn .4s cubic-bezier(.16,1,.3,1)}.scanner-history{margin-top:var(--space-xl)}.scanner-history-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--border-subtle)}.scanner-history-thumb{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover}.scanner-history-info{flex:1}.scanner-history-name{font-weight:var(--fw-medium);font-size:var(--fs-sm)}.scanner-history-time{font-size:var(--fs-xs);color:var(--text-muted)}.scanner-history-cals{font-weight:var(--fw-bold);color:var(--accent-green);font-size:var(--fs-sm)}.progress-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);margin-bottom:var(--space-xl)}.progress-stat{text-align:center;background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-base)}.progress-stat-value{font-size:var(--fs-xl);font-weight:var(--fw-black)}.progress-stat-label{font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--space-xs)}.progress-chart-section{margin-bottom:var(--space-xl)}.progress-weight-form{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg)}.progress-weight-form .input{flex:1}.chat-page{display:flex;flex-direction:column;height:calc(100vh - var(--nav-height) - var(--safe-top) - var(--safe-bottom));height:calc(100dvh - var(--nav-height) - var(--safe-top) - var(--safe-bottom));padding:0 var(--space-base)}.chat-messages{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-base) 0;display:flex;flex-direction:column}.chat-input-area{display:flex;gap:var(--space-sm);padding:var(--space-md) 0;border-top:1px solid var(--border-subtle);background:var(--bg-primary)}.chat-input-area .input{flex:1;border-radius:var(--radius-full);padding:var(--space-md) var(--space-lg)}.chat-send-btn{width:44px;height:44px;border-radius:50%;background:var(--gradient-primary);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.chat-send-btn:active{transform:scale(.9)}.chat-send-btn svg{width:20px;height:20px;stroke:var(--bg-primary);fill:none;stroke-width:2}.chat-suggestions{display:flex;gap:var(--space-sm);overflow-x:auto;padding:var(--space-sm) 0 var(--space-md);scrollbar-width:none}.chat-suggestions::-webkit-scrollbar{display:none}.chat-suggestion{padding:var(--space-sm) var(--space-md);background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-full);font-size:var(--fs-sm);color:var(--text-secondary);white-space:nowrap;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family)}.chat-suggestion:hover{background:var(--bg-glass-strong);color:var(--text-primary)}.settings-section{margin-bottom:var(--space-xl)}.settings-section-title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-md)}.settings-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-base);background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-sm);cursor:pointer;transition:all var(--transition-fast)}.settings-item:hover{background:var(--bg-glass-strong)}.settings-item-left{display:flex;align-items:center;gap:var(--space-md)}.settings-item-icon{font-size:1.3rem}.settings-item-label{font-size:var(--fs-base);font-weight:var(--fw-medium)}.settings-item-value{font-size:var(--fs-sm);color:var(--text-secondary)}.settings-item-arrow{color:var(--text-muted)}.toggle{width:48px;height:28px;border-radius:var(--radius-full);background:var(--bg-glass-strong);border:1px solid var(--border-medium);cursor:pointer;position:relative;transition:all var(--transition-fast)}.toggle.active{background:var(--accent-green);border-color:var(--accent-green)}.toggle:after{content:"";width:22px;height:22px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform var(--transition-fast);box-shadow:var(--shadow-sm)}.toggle.active:after{transform:translate(20px)}.fridge-section{margin-top:var(--space-xl)}.fridge-sync-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:#7b2ff71a;border:1px solid rgba(123,47,247,.2);border-radius:var(--radius-full);font-size:var(--fs-xs);color:var(--accent-pink);margin-bottom:var(--space-base)}.fridge-add-form{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg)}.fridge-add-form .input{flex:1}.fridge-categories{display:flex;gap:var(--space-sm);overflow-x:auto;margin-bottom:var(--space-base);scrollbar-width:none}.fridge-categories::-webkit-scrollbar{display:none}
