:root{--color-bg:#0f1117;--color-surface:#1a1d28;--color-surface-elevated:#252a3a;--color-primary:#6c63ff;--color-primary-light:#8b83ff;--color-primary-dark:#5a52d5;--color-secondary:#00d4aa;--color-secondary-light:#33e0bf;--color-text:#e8e8ed;--color-text-muted:#9ca3af;--color-text-dim:#6b7280;--color-border:#2d3142;--color-error:#ef4444;--color-success:#22c55e;--color-warning:#f59e0b;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,.4);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.5);--shadow-glow:0 0 20px rgba(108,99,255,.3)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.6}h1,h2,h3,h4,h5,h6{color:var(--color-text);font-weight:700;line-height:1.2}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{color:var(--color-text-muted)}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-light)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);cursor:pointer;border:none;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--color-primary-light), var(--color-primary));box-shadow:var(--shadow-glow)}.btn-secondary{background-color:var(--color-surface-elevated);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-border)}.btn-ghost{color:var(--color-text);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled){background-color:var(--color-surface)}.btn-large{padding:var(--space-md) var(--space-xl);font-size:1rem}.btn-full{width:100%}.form-group{margin-bottom:var(--space-lg)}.form-label{margin-bottom:var(--space-sm);color:var(--color-text);font-size:.875rem;font-weight:500;display:block}.form-input{width:100%;padding:var(--space-sm) var(--space-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px rgba(108,99,255,.1)}.form-input::placeholder{color:var(--color-text-dim)}.input-with-toggle{align-items:center;display:flex;position:relative}.input-with-toggle .form-input{padding-right:2.75rem}.toggle-password{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:.25rem;font-size:1.1rem;line-height:1;position:absolute;right:.5rem}.toggle-password:hover{color:var(--color-text)}.form-input.match{border-color:#22c55e}.form-input.mismatch{border-color:#ef4444}.form-row{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);min-width:0;transition:transform .2s,box-shadow .2s;overflow:hidden}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-title{margin-bottom:var(--space-md);color:var(--color-text);font-size:1.125rem;font-weight:600}.card-content{color:var(--color-text-muted)}.nav{padding:var(--space-md) var(--space-xl);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:100;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.nav-brand a{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800}.nav-links{gap:var(--space-xl);display:flex}.nav-links a{color:var(--color-text-muted);font-weight:500;transition:color .2s}.nav-links a:hover{color:var(--color-text)}.nav-burger{cursor:pointer;padding:var(--space-sm);background:0 0;border:none;flex-direction:column;gap:4px;display:none}.burger-line{background-color:var(--color-text);border-radius:1px;width:22px;height:2px;transition:transform .2s,opacity .2s;display:block}.nav-links-logout,.nav-overlay{display:none}@media (width<=768px){.nav-overlay{z-index:98;background:0 0;display:block;position:fixed;inset:0}}.landing-page{min-height:100vh}.landing-header{padding:var(--space-lg) var(--space-2xl);z-index:100;backdrop-filter:blur(10px);background:rgba(15,17,23,.8);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.landing-header .logo{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.75rem;font-weight:800}.landing-nav{align-items:center;gap:var(--space-lg);display:flex}.landing-nav a{color:var(--color-text-muted);font-weight:500}.landing-nav a:hover{color:var(--color-text)}.hero-section{min-height:100vh;padding:var(--space-3xl) var(--space-xl);text-align:center;justify-content:center;align-items:center;display:flex}.hero-content{max-width:800px}.hero-title{margin-bottom:var(--space-lg);font-size:4rem;font-weight:800;line-height:1.1}.gradient-text{background:linear-gradient(135deg, var(--color-primary), var(--color-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-description{color:var(--color-text-muted);margin-bottom:var(--space-2xl);max-width:600px;margin-left:auto;margin-right:auto;font-size:1.25rem}.hero-cta{gap:var(--space-md);margin-bottom:var(--space-3xl);justify-content:center;display:flex}.hero-stats{justify-content:center;gap:var(--space-3xl);display:flex}.hero-stats .stat{text-align:center}.hero-stats .stat-number{color:var(--color-primary);font-size:2.5rem;font-weight:800;display:block}.hero-stats .stat-label{color:var(--color-text-muted);font-size:.875rem}.features-section{padding:var(--space-3xl) var(--space-xl);text-align:center}.section-title{margin-bottom:var(--space-2xl);font-size:2.5rem}.features-grid{gap:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));max-width:1200px;margin:0 auto;display:grid}.feature-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;transition:transform .2s,box-shadow .2s}.feature-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.feature-icon{margin-bottom:var(--space-md);font-size:3rem}.feature-card h3{margin-bottom:var(--space-sm)}.feature-card p{color:var(--color-text-muted)}.pricing-section{padding:var(--space-3xl) var(--space-xl);text-align:center}.pricing-cards{justify-content:center;max-width:400px;margin:0 auto;display:flex}.pricing-card{background:linear-gradient(135deg, var(--color-surface), var(--color-surface-elevated));border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-2xl);width:100%}.pricing-card h3{margin-bottom:var(--space-md);font-size:1.5rem}.price{margin-bottom:var(--space-xl)}.price .currency{vertical-align:top;font-size:1.5rem}.price .amount{font-size:4rem;font-weight:800}.price .period{color:var(--color-text-muted)}.features-list{text-align:left;margin-bottom:var(--space-xl);list-style:none}.features-list li{padding:var(--space-sm) 0;color:var(--color-text-muted)}.landing-footer{background-color:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-2xl)}.footer-content{max-width:1200px;margin:0 auto;margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.footer-brand .logo{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800}.footer-links{gap:var(--space-lg);display:flex}.footer-bottom{text-align:center;color:var(--color-text-dim);font-size:.875rem}.auth-page{min-height:100vh;padding:var(--space-xl);justify-content:center;align-items:center;display:flex}.auth-container{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:420px;padding:var(--space-2xl)}.auth-container h1{text-align:center;margin-bottom:var(--space-sm)}.auth-subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:var(--space-xl)}.auth-footer{text-align:center;margin-top:var(--space-xl);color:var(--color-text-muted)}.page{min-height:100vh}.main-content{padding:var(--space-xl);max-width:1400px;margin:0 auto}.dashboard-header{margin-bottom:var(--space-xl)}.dashboard-header h1{margin-bottom:var(--space-sm)}.dashboard-grid{gap:var(--space-lg);margin-bottom:var(--space-2xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.metric{text-align:center}.metric-label{color:var(--color-text-muted);margin-bottom:var(--space-sm);font-size:.875rem;display:block}.metric-value{justify-content:center;align-items:baseline;gap:var(--space-xs);margin-bottom:var(--space-sm);display:flex}.metric-value .value{color:var(--color-text);font-size:2.5rem;font-weight:700}.metric-value .unit{color:var(--color-text-muted);font-size:1rem}.metric-change{font-size:.875rem;font-weight:600}.metric-change.positive{color:var(--color-secondary)}.metric-change.negative{color:var(--color-error)}.quick-actions{gap:var(--space-sm);flex-direction:column;display:flex}.quick-action{align-items:center;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface-elevated);border-radius:var(--radius-md);transition:background-color .2s;display:flex}.quick-action:hover{background-color:var(--color-border)}.quick-action .icon{font-size:1.5rem}.dashboard-section{margin-bottom:var(--space-2xl)}.dashboard-section h2{margin-bottom:var(--space-lg)}.charts-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(400px,1fr));display:grid}.chart-container{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.chart-container h4{margin-bottom:var(--space-md)}.chart-placeholder{height:200px;color:var(--color-text-muted);border:2px dashed var(--color-border);border-radius:var(--radius-md);flex-direction:column;justify-content:center;align-items:center;display:flex}.chart-card{gap:var(--space-md);flex-direction:column;display:flex}.chart-header-row{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.chart-help-text{color:var(--color-text-muted);font-size:.9rem}.chart-metric-control{align-items:center;gap:var(--space-sm);color:var(--color-text-muted);font-size:.875rem;display:flex}.chart-metric-select{background-color:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:.35rem .55rem}.chart-canvas-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);height:320px;padding:var(--space-sm);background:radial-gradient(circle at 15% 5%,rgba(108,99,255,.16),rgba(108,99,255,.02) 55%),linear-gradient(rgba(108,99,255,.06),rgba(108,99,255,0));position:relative}.progress-chart-canvas{width:100%!important;height:100%!important}.chart-selection-popup{border-radius:var(--radius-sm);color:var(--color-text);padding:var(--space-sm) var(--space-md);background:rgba(108,99,255,.12);border:1px solid rgba(108,99,255,.35);font-size:.9rem}.profile-page .page-header{margin-bottom:var(--space-xl)}.profile-page>.card{margin-bottom:var(--space-lg)}.profile-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.profile-field{align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-border);min-width:0;display:flex}.profile-field:last-child{border-bottom:none}.profile-field label{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:.875rem}.profile-field .profile-value{text-align:right;word-break:break-all;min-width:0;margin-left:auto}.profile-field .form-input,.profile-field .chat-control-select{flex:1;min-width:0}.subscription-info{text-align:center}.subscription-badge{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);font-size:.875rem;font-weight:600;display:inline-block}.subscription-badge.premium{background-color:var(--color-primary);color:#fff}.diet-page .page-header,.diet-overview{margin-bottom:var(--space-xl)}.macro-grid{gap:var(--space-md);grid-template-columns:repeat(4,1fr);display:grid}.macro-item{text-align:center;padding:var(--space-md);background-color:var(--color-surface-elevated);border-radius:var(--radius-md)}.macro-value{color:var(--color-text);font-size:1.5rem;font-weight:700;display:block}.macro-label{color:var(--color-text-muted);text-transform:uppercase;font-size:.75rem}.meals-section h2{margin-bottom:var(--space-lg)}.meals-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.meal-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.meal-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.meal-header h4{margin:0}.meal-type{color:var(--color-text-muted);text-transform:uppercase;background-color:var(--color-surface-elevated);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem}.meal-macros{gap:var(--space-md);margin-bottom:var(--space-md);color:var(--color-text-muted);font-size:.875rem;display:flex}.meal-ingredients h5,.meal-instructions h5{margin-bottom:var(--space-sm);color:var(--color-text-muted);font-size:.875rem}.meal-ingredients ul{gap:var(--space-xs);flex-wrap:wrap;list-style:none;display:flex}.meal-ingredients li{background-color:var(--color-surface-elevated);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.875rem}.workout-page .page-header,.workout-overview{margin-bottom:var(--space-xl)}.workout-stats{gap:var(--space-xl);display:flex}.workout-stats .stat{text-align:center}.workout-stats .stat-value{color:var(--color-text);font-size:2rem;font-weight:700;display:block}.workout-stats .stat-label{color:var(--color-text-muted);font-size:.875rem}.workouts-section h2{margin-bottom:var(--space-lg)}.workout-day{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.workout-day h3{margin-bottom:var(--space-sm)}.workout-meta{gap:var(--space-md);margin-bottom:var(--space-lg);color:var(--color-text-muted);font-size:.875rem;display:flex}.exercises-list{gap:var(--space-md);flex-direction:column;display:flex}.exercise-card{background-color:var(--color-surface-elevated);border-radius:var(--radius-md);padding:var(--space-md)}.exercise-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.exercise-header h4{margin:0;font-size:1rem}.exercise-weight{color:var(--color-primary);font-size:.875rem;font-weight:600}.exercise-details{gap:var(--space-md);color:var(--color-text-muted);margin-bottom:var(--space-sm);font-size:.875rem;display:flex}.exercise-notes{color:var(--color-text-dim);font-size:.875rem;font-style:italic}.chat-page .page-header{margin-bottom:var(--space-xl);justify-content:space-between;align-items:flex-start;gap:var(--space-lg);flex-wrap:wrap;display:flex}.page-header-content{min-width:240px}.chat-controls{gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-lg);border:1px solid var(--color-border);background-color:var(--color-surface-elevated);grid-template-columns:repeat(2,minmax(160px,1fr));display:grid}.chat-control{gap:var(--space-xs);flex-direction:column;display:flex}.chat-control-label{text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-dim);font-size:.7rem}.chat-control-select{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);font-size:.95rem}.chat-control-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px rgba(108,99,255,.2)}.chat-container{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);height:calc(100vh - 250px);flex-direction:column;height:calc(100dvh - 250px);display:flex}.chat-messages{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;flex:1;display:flex;overflow-y:auto}.message{max-width:70%;padding:var(--space-md);border-radius:var(--radius-lg)}.message.user{background-color:var(--color-primary);color:#fff;align-self:flex-end}.message.assistant{background-color:var(--color-surface-elevated);align-self:flex-start}.message-content{margin-bottom:var(--space-xs)}.markdown-content p{margin:0 0 var(--space-sm)}.markdown-content p:last-child{margin-bottom:0}.markdown-content ul,.markdown-content ol{margin:0 0 var(--space-sm);padding-left:1.2rem}.markdown-content li{margin-bottom:.35rem}.markdown-content code{font-family:var(--font-mono);border-radius:var(--radius-sm);background-color:rgba(255,255,255,.08);padding:.1rem .3rem;font-size:.9rem}.markdown-content pre{border:1px solid var(--color-border);padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-sm);background-color:rgba(15,17,23,.8);overflow-x:auto}.markdown-content pre code{background:0 0;padding:0}.markdown-content blockquote{margin:0 0 var(--space-sm);padding-left:var(--space-md);border-left:3px solid var(--color-primary);color:var(--color-text-muted)}.message-time{opacity:.7;font-size:.75rem}.filter-badge{background-color:var(--color-warning);color:var(--color-bg);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);margin-top:var(--space-sm);font-size:.75rem;display:inline-block}.filter-notice{border:1px solid var(--color-warning);border-radius:var(--radius-md);padding:var(--space-md);margin:var(--space-md);align-items:center;gap:var(--space-sm);color:var(--color-warning);background-color:rgba(245,158,11,.1);display:flex}.filter-icon{font-size:1.25rem}.chat-input{gap:var(--space-md);padding:var(--space-lg);border-top:1px solid var(--color-border);display:flex}.chat-input input{padding:var(--space-md);background-color:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);flex:1;font-size:1rem}.chat-input input:focus{border-color:var(--color-primary);outline:none}.chat-input button{padding:var(--space-md) var(--space-xl);background-color:var(--color-primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;font-weight:600;transition:background-color .2s}.chat-input button:hover:not(:disabled){background-color:var(--color-primary-light)}.chat-input button:disabled{opacity:.5;cursor:not-allowed}.error-message{border:1px solid var(--color-error);border-radius:var(--radius-md);padding:var(--space-md);color:var(--color-error);align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);background-color:rgba(239,68,68,.1);display:flex}.success-message{border:1px solid var(--color-success);border-radius:var(--radius-md);padding:var(--space-md);color:var(--color-success);align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);background-color:rgba(34,197,94,.1);display:flex}.not-found-page{text-align:center;justify-content:center;align-items:center;min-height:100vh;display:flex}.not-found-content h1{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-light));-webkit-text-fill-color:transparent;margin-bottom:var(--space-md);-webkit-background-clip:text;background-clip:text;font-size:6rem}.not-found-content p{margin-bottom:var(--space-xl);font-size:1.25rem}.spinner{justify-content:center;align-items:center;display:flex}.spinner-inner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.hero-title{font-size:2.5rem}.hero-stats{gap:var(--space-xl);flex-direction:column}.features-grid{grid-template-columns:1fr}.nav-burger{display:flex}.nav-actions .btn{padding:var(--space-xs) var(--space-sm);font-size:.75rem}.nav-links{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-md) var(--space-xl);gap:var(--space-sm);z-index:99;flex-direction:column;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 4px 12px rgba(0,0,0,.3)}.nav-links--open{display:flex}.nav-links a{padding:var(--space-sm) 0;font-size:1.1rem}.nav-links-logout{padding-top:var(--space-sm);border-top:1px solid var(--color-border);margin-top:var(--space-sm);display:block}.nav{z-index:100;position:sticky;top:0}.main-content{padding:var(--space-md)}.chat-container{height:calc(100vh - 120px);border-radius:var(--radius-md);height:calc(100dvh - 120px)}.chat-input{padding:var(--space-md)}.chat-input button{padding:var(--space-md) var(--space-md)}.message{max-width:90%}.dashboard-grid{grid-template-columns:1fr}.macro-grid{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:1fr}.chart-header-row{flex-direction:column;align-items:flex-start}.chart-canvas-wrap{height:260px}.chart-selection-popup{font-size:.82rem}.profile-grid{grid-template-columns:1fr}}@media print{.nav,.landing-header,.landing-footer{display:none}body{color:#000;background:#fff}}