@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";:root{--color-bg-primary:#0a0e1a;--color-bg-secondary:#111827;--color-bg-tertiary:#1a2236;--color-bg-card:#111827b3;--color-bg-card-hover:#1a2236e6;--color-bg-input:#11182780;--glass-bg:#11182799;--glass-border:#63b3ed26;--glass-shadow:0 8px 32px #0000004d;--color-text-primary:#f0f4f8;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-text-inverse:#0a0e1a;--color-accent:#3b82f6;--color-accent-light:#60a5fa;--color-accent-dark:#2563eb;--color-accent-glow:#3b82f64d;--color-running:#f97316;--color-trail:#84cc16;--color-cycling:#06b6d4;--color-mtb:#8b5cf6;--color-swimming:#0ea5e9;--color-strength:#ef4444;--color-hiit:#f43f5e;--color-skiing:#a5b4fc;--color-mountaineering:#fbbf24;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-info:#3b82f6;--gradient-accent:linear-gradient(135deg, #3b82f6, #8b5cf6);--gradient-warm:linear-gradient(135deg, #f97316, #f43f5e);--gradient-cool:linear-gradient(135deg, #06b6d4, #3b82f6);--gradient-nature:linear-gradient(135deg, #10b981, #84cc16);--gradient-card:linear-gradient(145deg, #111827cc, #1a223699);--gradient-hero:linear-gradient(135deg, #0a0e1a 0%, #1a2236 50%, #0f172a 100%);--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0000004d;--shadow-lg:0 10px 25px #0006;--shadow-xl:0 20px 50px #00000080;--shadow-glow:0 0 20px var(--color-accent-glow);--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background:var(--gradient-hero);color:var(--color-text-primary);min-height:100vh;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--color-accent-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent)}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.container{width:100%;max-width:1280px;padding:0 var(--space-lg);margin:0 auto}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{box-shadow:var(--glass-shadow), var(--shadow-glow);border-color:#63b3ed4d;transform:translateY(-2px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glow{0%,to{box-shadow:0 0 5px var(--color-accent-glow)}50%{box-shadow:0 0 20px var(--color-accent-glow), 0 0 40px #3b82f61a}}.animate-fade-in{animation:.5s forwards fadeIn}.animate-slide-up{animation:.6s forwards slideUp}.animate-pulse{animation:2s ease-in-out infinite pulse}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}input,textarea,select{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-input);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);transition:all var(--transition-fast);outline:none;width:100%}input:focus,textarea:focus,select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}button{font-family:var(--font-family);cursor:pointer;transition:all var(--transition-base);border:none;outline:none}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);transition:all var(--transition-base);line-height:1.5;display:inline-flex}.btn-primary{background:var(--gradient-accent);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover{box-shadow:var(--shadow-lg), var(--shadow-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--glass-border)}.btn-secondary:hover{background:var(--color-bg-card-hover);border-color:var(--color-accent)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover{color:var(--color-text-primary);background:#ffffff0d}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:var(--font-size-base);border-radius:var(--radius-lg)}.btn-icon{padding:var(--space-sm);border-radius:var(--radius-md)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.spinner{border:3px solid var(--glass-border);border-top-color:var(--color-accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}.badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);letter-spacing:.02em;align-items:center;gap:4px;padding:2px 10px;font-weight:600;display:inline-flex}.badge-success{color:var(--color-success);background:#10b98126;border:1px solid #10b9814d}.badge-warning{color:var(--color-warning);background:#f59e0b26;border:1px solid #f59e0b4d}.badge-error{color:var(--color-error);background:#ef444426;border:1px solid #ef44444d}@media (width<=768px){:root{--font-size-4xl:1.875rem;--font-size-5xl:2.25rem}.container{padding:0 var(--space-md)}}.auth-page{min-height:100vh;padding:var(--space-lg);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.auth-bg-pattern{pointer-events:none;background:radial-gradient(circle at 20%,#3b82f614 0%,#0000 50%),radial-gradient(circle at 80% 20%,#8b5cf60f 0%,#0000 50%),radial-gradient(circle at 50% 80%,#f973160a 0%,#0000 50%);position:absolute;inset:0}.auth-container{width:100%;max-width:420px;padding:var(--space-2xl);background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);z-index:1;position:relative}.auth-logo{text-align:center;margin-bottom:var(--space-xl)}.auth-logo-icon{background:var(--gradient-accent);border-radius:var(--radius-xl);color:#fff;width:64px;height:64px;margin-bottom:var(--space-md);box-shadow:var(--shadow-glow);justify-content:center;align-items:center;animation:3s ease-in-out infinite glow;display:inline-flex}.auth-title{font-size:var(--font-size-2xl);letter-spacing:-.02em;background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800}.auth-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--space-xs)}.auth-form{gap:var(--space-md);flex-direction:column;display:flex}.input-group{align-items:center;display:flex;position:relative}.input-group input{border-radius:var(--radius-lg);height:48px;padding-left:44px;padding-right:44px}.input-icon{color:var(--color-text-muted);pointer-events:none;z-index:1;position:absolute;left:14px}.input-group input:focus+.input-icon,.input-group:focus-within .input-icon{color:var(--color-accent)}.input-action{color:var(--color-text-muted);border-radius:var(--radius-sm);cursor:pointer;z-index:1;background:0 0;border:none;padding:8px;position:absolute;right:8px}.input-action:hover{color:var(--color-text-primary);background:#ffffff0d}.auth-error{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm);text-align:center;background:#ef44441a;border:1px solid #ef44444d}.auth-submit{width:100%;height:48px;margin-top:var(--space-sm);font-size:var(--font-size-base)}.auth-footer{text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--space-lg)}.auth-footer a{font-weight:600}.dashboard{flex-direction:column;min-height:100vh;display:flex}.dashboard-loading{justify-content:center;align-items:center;gap:var(--space-md);min-height:100vh;color:var(--color-text-secondary);flex-direction:column;display:flex}.dashboard-header{padding:var(--space-md) var(--space-xl);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);z-index:100;background:#0a0e1acc;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:var(--space-md);display:flex}.header-logo{background:var(--gradient-accent);border-radius:var(--radius-lg);color:#fff;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.header-left h1{font-size:var(--font-size-xl);background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.header-right{align-items:center;gap:var(--space-sm);display:flex}.garmin-badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-success);background:#10b9811a;border:1px solid #10b9814d;align-items:center;gap:6px;padding:4px 12px;font-weight:600;display:flex}.animate-spin{animation:1s linear infinite spin}.dashboard-main{padding-top:var(--space-xl);padding-bottom:var(--space-3xl);gap:var(--space-xl);flex-direction:column;flex:1;display:flex}.metrics-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.metric-card{padding:var(--space-lg);gap:var(--space-xs);flex-direction:column;display:flex}.metric-header{align-items:center;gap:var(--space-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:600;display:flex}.metric-value{font-size:var(--font-size-3xl);letter-spacing:-.02em;font-weight:800;line-height:1.1}.metric-unit{font-size:var(--font-size-xs);color:var(--color-text-muted)}.charts-section{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(400px,1fr));display:grid}.chart-card{padding:var(--space-lg)}.chart-card h3{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md);font-weight:600}.activities-section h2{font-size:var(--font-size-xl);margin-bottom:var(--space-md);font-weight:700}.activities-list{gap:var(--space-sm);flex-direction:column;display:flex}.activity-card{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);display:flex}.activity-sport-icon{font-size:24px}.activity-info{flex:1}.activity-name{font-weight:600;font-size:var(--font-size-sm)}.activity-date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.activity-stats{gap:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.empty-state{align-items:center;gap:var(--space-md);padding:var(--space-2xl);color:var(--color-text-muted);text-align:center;flex-direction:column;display:flex}.coming-soon{padding:var(--space-xl);text-align:center}.coming-soon h2{font-size:var(--font-size-xl);margin-bottom:var(--space-sm)}.coming-soon p{color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.coming-features{justify-content:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.coach-briefing-card{padding:var(--space-xl);border-left:4px solid var(--color-accent);gap:var(--space-md);flex-direction:column;display:flex;position:relative;overflow:hidden}.coach-header{justify-content:space-between;align-items:center;display:flex}.coach-title{align-items:center;gap:var(--space-sm);font-size:var(--font-size-lg);color:var(--color-accent);font-weight:700;display:flex}.readiness-tag{align-items:center;gap:var(--space-xs);border-radius:var(--radius-full);font-size:var(--font-size-xs);background:#63b3ed1a;border:1px solid #63b3ed33;padding:4px 12px;font-weight:700;display:flex}.readiness-tag.status-excelente{color:#22c55e;background:#22c55e1a;border-color:#22c55e4d}.readiness-tag.status-bueno{color:#3b82f6;background:#3b82f61a;border-color:#3b82f64d}.readiness-tag.status-moderado{color:#f59e0b;background:#f59e0b1a;border-color:#f59e0b4d}.readiness-tag.status-necesitas-descanso{color:#ef4444;background:#ef44441a;border-color:#ef44444d}.coach-content{color:var(--color-text-primary);line-height:1.6;font-size:var(--font-size-md);white-space:pre-line}.coach-content p{margin-bottom:.75rem}@media (width<=768px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.charts-section{grid-template-columns:1fr}.activity-stats{font-size:var(--font-size-xs);flex-direction:column;gap:2px}.dashboard-header{padding:var(--space-sm) var(--space-md)}.header-left h1{display:none}}.onboarding-page{min-height:100vh;padding:var(--space-lg);justify-content:center;align-items:center;display:flex;position:relative}.onboarding-container{width:100%;max-width:640px;padding:var(--space-2xl);background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);z-index:1;position:relative}.onboarding-progress{margin-bottom:var(--space-xl);justify-content:center;gap:8px;display:flex}.progress-dot{background:var(--color-bg-tertiary);width:10px;height:10px;transition:all var(--transition-base);border-radius:50%}.progress-dot.active{background:var(--color-accent);box-shadow:0 0 8px var(--color-accent-glow);transform:scale(1.2)}.progress-dot.completed{background:var(--color-success)}.step-content{text-align:center;min-height:360px}.step-content h2{font-size:var(--font-size-2xl);margin-bottom:var(--space-sm);font-weight:700}.step-description{color:var(--color-text-secondary);margin-bottom:var(--space-xl);line-height:1.6}.step-icon-large{background:var(--gradient-accent);border-radius:var(--radius-2xl);color:#fff;width:80px;height:80px;margin-bottom:var(--space-lg);box-shadow:var(--shadow-glow);justify-content:center;align-items:center;display:inline-flex}.feature-cards{gap:var(--space-md);margin-top:var(--space-lg);grid-template-columns:repeat(2,1fr);display:grid}.feature-card{align-items:center;gap:var(--space-sm);padding:var(--space-lg);background:var(--color-bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:all var(--transition-base);flex-direction:column;display:flex}.feature-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.feature-emoji{font-size:28px}.garmin-form{gap:var(--space-md);flex-direction:column;max-width:360px;margin:0 auto;display:flex}.garmin-form input{border-radius:var(--radius-lg);text-align:center;height:48px}.garmin-connected{align-items:center;gap:var(--space-md);padding:var(--space-xl);flex-direction:column;display:flex}.connected-icon{border:2px solid var(--color-success);width:64px;height:64px;color:var(--color-success);background:#10b98126;border-radius:50%;justify-content:center;align-items:center;animation:.5s fadeIn;display:flex}.garmin-connected h3{color:var(--color-success)}.garmin-connected p{color:var(--color-text-secondary)}.sport-grid{gap:var(--space-md);text-align:left;grid-template-columns:repeat(3,1fr);display:grid}.sport-card{align-items:center;gap:var(--space-sm);padding:var(--space-lg) var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);color:var(--color-text-secondary);border:2px solid #0000;flex-direction:column;display:flex;position:relative}.sport-card:hover{border-color:var(--sport-color);color:var(--color-text-primary);transform:translateY(-2px)}.sport-card.selected{border-color:var(--sport-color);color:var(--color-text-primary);background:#3b82f614;box-shadow:0 0 12px #3b82f626}.sport-emoji{font-size:28px}.sport-label{font-size:var(--font-size-xs);font-weight:600}.sport-check{background:var(--color-success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;animation:.3s fadeIn;display:flex;position:absolute;top:6px;right:6px}.level-section{margin-top:var(--space-xl);text-align:left}.level-section h3{font-size:var(--font-size-base);margin-bottom:var(--space-md);text-align:center}.level-grid{gap:var(--space-sm);grid-template-columns:repeat(2,1fr);display:grid}.level-card{padding:var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all var(--transition-fast);color:var(--color-text-primary);border:2px solid #0000;flex-direction:column;gap:2px;display:flex}.level-card span{font-size:var(--font-size-xs);color:var(--color-text-muted)}.level-card.selected{border-color:var(--color-accent);background:#3b82f614}.level-card:hover{border-color:var(--color-accent)}.goals-grid{gap:var(--space-md);text-align:left;flex-direction:column;display:flex}.goal-card{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-bg-tertiary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);color:var(--color-text-primary);border:2px solid #0000;display:flex;position:relative}.goal-card:hover{border-color:var(--color-accent);transform:translate(4px)}.goal-card.selected{border-color:var(--color-accent);background:#3b82f614}.goal-emoji{flex-shrink:0;font-size:28px}.goal-text{flex-direction:column;gap:2px;display:flex}.goal-text span{font-size:var(--font-size-xs);color:var(--color-text-muted)}.goal-check{background:var(--color-success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;animation:.3s fadeIn;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.availability-section{max-width:400px;margin:0 auto var(--space-xl);text-align:left}.availability-label{margin-bottom:var(--space-md);font-size:var(--font-size-base);color:var(--color-text-secondary);display:block}.availability-label strong{color:var(--color-accent-light);font-size:var(--font-size-xl)}.range-slider{appearance:none;background:var(--color-bg-tertiary);border:none;border-radius:3px;outline:none;width:100%;height:6px;padding:0}.range-slider::-webkit-slider-thumb{appearance:none;background:var(--gradient-accent);cursor:pointer;width:22px;height:22px;box-shadow:var(--shadow-glow);transition:transform var(--transition-fast);border-radius:50%}.range-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.range-labels{margin-top:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-muted);justify-content:space-between;display:flex}.onboarding-nav{align-items:center;gap:var(--space-md);margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--glass-border);display:flex}@media (width<=640px){.sport-grid{grid-template-columns:repeat(2,1fr)}.feature-cards,.level-grid{grid-template-columns:1fr}}.training-page{max-width:1200px;margin:0 auto;padding:2rem 0}.training-header{justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2.5rem;display:flex}.header-title{align-items:flex-start;gap:1.5rem;display:flex}.btn-back{color:#fff;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;margin-top:.5rem;transition:all .2s;display:flex}.btn-back:hover{background:#ffffff1a;transform:translate(-4px)}.header-actions{gap:1rem;display:flex}.training-header h1{background:linear-gradient(135deg,#fff 0%,#94a3b8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:1rem;margin:0;font-size:2.5rem;font-weight:800;display:flex}.training-header p{color:#94a3b8;max-width:800px;margin-top:.75rem;font-size:1.1rem;line-height:1.6}.day-selector{grid-template-columns:repeat(7,1fr);gap:1rem;margin-bottom:2.5rem;display:grid}.day-item{text-align:center;cursor:pointer;background:#1e293b80;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem .75rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.day-item:hover{background:#33415599;border-color:#fff3;transform:translateY(-2px)}.day-item.active{background:var(--color-primary-dark);border-color:var(--color-primary);box-shadow:0 0 20px #6366f133}.day-item.completed{border-color:#10b981}.day-name{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;font-size:.75rem;font-weight:700}.day-item.active .day-name{color:#fff}.day-number{color:#f1f5f9;font-size:1.5rem;font-weight:800}.day-indicators{gap:4px;height:6px;margin-top:4px;display:flex}.indicator-dot{background:#475569;border-radius:50%;width:6px;height:6px}.indicator-dot.running{background:#60a5fa}.indicator-dot.strength{background:#f87171}.indicator-dot.trail_running{background:#34d399}.indicator-dot.road_cycling{background:#f59e0b}.indicator-dot.swimming{background:#06b6d4}.indicator-dot.completed{background:#10b981}.day-content{animation:.4s ease-out fadeIn}.day-details-header{align-items:baseline;gap:1rem;margin-bottom:1.5rem;display:flex}.day-details-header h2{margin:0;font-size:1.75rem;font-weight:700}.day-details-header span{color:#64748b;font-weight:500}.sessions-list{flex-direction:column;gap:1.5rem;display:flex}.session-detail-card{grid-template-columns:100px 1fr;gap:2rem;padding:2rem;display:grid;position:relative}@media (width<=768px){.session-detail-card{grid-template-columns:1fr;gap:1rem;padding:1.5rem}.day-selector{grid-template-columns:repeat(4,1fr)}}.session-type-icon{color:#fff;border-radius:24px;justify-content:center;align-items:center;width:100px;height:100px;display:flex;box-shadow:0 8px 16px #0003}.session-main-info h3{margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.session-full-desc{color:#cbd5e1;margin-bottom:2rem;font-size:1.1rem;line-height:1.7}.session-full-desc p{margin:0}.metrics-row{background:#ffffff08;border-radius:12px;flex-wrap:wrap;gap:2rem;margin-bottom:2rem;padding:1.5rem;display:flex}.big-metric{flex-direction:column;gap:.25rem;display:flex}.big-metric .label{text-transform:uppercase;color:#64748b;letter-spacing:.05em;font-size:.7rem;font-weight:800}.big-metric .value{color:#f8fafc;font-size:1.5rem;font-weight:800}.empty-plan{text-align:center;padding:5rem 2rem}.empty-plan h2{margin-bottom:1rem;font-size:2rem}.empty-plan p{color:#94a3b8;max-width:600px;margin:0 auto 2rem;font-size:1.2rem}.bg-running{background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%)}.bg-trail_running{background:linear-gradient(135deg,#10b981 0%,#047857 100%)}.bg-road_cycling{background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%)}.bg-mtb{background:linear-gradient(135deg,#8b5cf6 0%,#6d28d9 100%)}.bg-swimming{background:linear-gradient(135deg,#06b6d4 0%,#0891b2 100%)}.bg-strength{background:linear-gradient(135deg,#ef4444 0%,#b91c1c 100%)}.bg-rest{background:linear-gradient(135deg,#64748b 0%,#334155 100%)}.bg-default{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%)}.settings-panel{background:#0f172a99;border:1px solid #6366f14d;border-radius:20px;margin-bottom:2.5rem;padding:2rem}.settings-panel h3{align-items:center;gap:.75rem;margin:0 0 1.5rem;font-size:1.25rem;display:flex}.settings-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem 2.5rem;display:grid}.settings-group{flex-direction:column;gap:.75rem;display:flex}.settings-group label{color:#94a3b8;font-size:.875rem;font-weight:600}.days-picker{flex-wrap:wrap;gap:.5rem;display:flex}.day-picker-btn{color:#94a3b8;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;width:40px;height:40px;font-size:.75rem;font-weight:700;transition:all .2s}.day-picker-btn:hover{background:#ffffff1a}.day-picker-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 4px 12px #6366f14d}.animate-slide-down{animation:.3s cubic-bezier(.4,0,.2,1) slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.settings-grid{grid-template-columns:1fr}}.daily-selector-grid{grid-template-columns:repeat(7,1fr);gap:.75rem;display:grid}@media (width<=1024px){.daily-selector-grid{grid-template-columns:repeat(4,1fr)}}@media (width<=640px){.daily-selector-grid{grid-template-columns:repeat(3,1fr)}}.daily-avail-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff08;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .5rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.daily-avail-card:hover{background:#ffffff14;border-color:#fff3;transform:scale(1.02)}.daily-avail-card.off{opacity:.5;color:#64748b}.daily-avail-card.morning{color:#fbbf24;background:#fbbf240d;border-color:#fbbf24}.daily-avail-card.afternoon{color:#818cf8;background:#6366f10d;border-color:#6366f1}.daily-avail-card.both{color:#f472b6;background:#ec48990d;border-color:#ec4899}.day-name-short{text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:800}.pref-icon-wrapper{background:#ffffff08;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.pref-label{font-size:.7rem;font-weight:700}.settings-legend{color:#94a3b8;gap:1rem;font-size:.75rem;display:flex}.legend-item{align-items:center;gap:.375rem;font-weight:600;display:flex}.settings-footer-grid{grid-template-columns:200px 1fr;gap:2rem;display:grid}@media (width<=640px){.settings-footer-grid{grid-template-columns:1fr;gap:1rem}}.recovery-panel{border-left:4px solid #3b82f6;justify-content:space-between;align-items:center;gap:2rem;margin-bottom:2.5rem;padding:1.5rem 2rem;display:flex}.recovery-main{align-items:center;gap:1.5rem;display:flex}.readiness-score-circle{border:4px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;font-size:1.5rem;font-weight:800;display:flex}.readiness-low{color:#ef4444;border-color:#ef4444}.readiness-mod{color:#fbbf24;border-color:#fbbf24}.readiness-high{color:#10b981;border-color:#10b981}.recovery-info h4{color:#f8fafc;margin:0;font-size:1.1rem}.recovery-info p{color:#94a3b8;margin:.25rem 0 0;font-size:.9rem}.adjustment-modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#000c;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0}.adjustment-modal{border:1px solid var(--color-primary);width:100%;max-width:600px;padding:2.5rem;box-shadow:0 0 30px #6366f133}.adjustment-modal h2{align-items:center;gap:.75rem;margin:0 0 1rem;display:flex}.adjustment-reason{border-left:4px solid var(--color-primary);background:#6366f11a;border-radius:12px;margin-bottom:2rem;padding:1.25rem}.adjustment-reason p{color:#e2e8f0;margin:0;line-height:1.5}.adjustment-preview{margin-bottom:2rem}.adjustment-preview h4{color:#94a3b8;text-transform:uppercase;margin:0 0 1rem;font-size:.8rem}.preview-card{background:#ffffff0d;border-radius:16px;padding:1.5rem}.preview-card h3{color:#fff;margin:0 0 .5rem}.preview-metrics{color:#94a3b8;gap:1.5rem;margin-top:1rem;font-size:.9rem;display:flex}.adjustment-actions{gap:1rem;display:flex}@media (width<=640px){.recovery-panel{flex-direction:column;align-items:flex-start;gap:1rem}.adjustment-actions{flex-direction:column}}.nutrition-page{padding-bottom:5rem}.nutrition-header{justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2rem;display:flex}.macro-summary{background:#0f172a99;border:1px solid #ffffff1a;justify-content:space-around;align-items:center;margin-bottom:2rem;padding:1.5rem;display:flex}.macro-item{flex-direction:column;align-items:center;gap:.25rem;display:flex}.macro-label{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;font-size:.75rem;font-weight:700}.macro-value{color:#fff;font-size:1.5rem;font-weight:800}.macro-value small{color:#94a3b8;font-size:.875rem;font-weight:400}.macro-value.protein{color:#f472b6}.macro-value.carbs{color:#60a5fa}.macro-value.fats{color:#fbbf24}.macro-divider{background:#ffffff1a;width:1px;height:40px}.meals-list{flex-direction:column;gap:1rem;display:flex}.meal-card{border:1px solid #ffffff0d;padding:0;transition:all .2s;overflow:hidden}.meal-card.completed{border-color:#22c55e33}.meal-header{cursor:pointer;justify-content:space-between;align-items:center;padding:1.25rem;display:flex}.meal-header:hover{background:#ffffff08}.meal-main{align-items:center;gap:1.25rem;display:flex}.meal-icon-box{color:#94a3b8;background:#ffffff0d;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.meal-icon-box.breakfast{color:#f59e0b;background:#f59e0b1a}.meal-icon-box.lunch{color:#3b82f6;background:#3b82f61a}.meal-icon-box.dinner{color:#6366f1;background:#6366f11a}.meal-icon-box.pre_workout{color:#ef4444;background:#ef44441a}.meal-icon-box.post_workout{color:#22c55e;background:#22c55e1a}.meal-type-label{text-transform:uppercase;color:#64748b;font-size:.75rem;font-weight:700;display:block}.meal-title{margin:0;font-size:1.1rem;font-weight:700}.meal-right{align-items:center;gap:1.5rem;display:flex}.meal-quick-macros{color:#94a3b8;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.meal-quick-macros .dot{color:#ffffff1a}.meal-details{background:#0000001a;border-top:1px solid #ffffff0d;padding:0 1.25rem 1.5rem}.meal-desc{color:#cbd5e1;margin:1rem 0 1.5rem;line-height:1.6}.meal-info-grid{grid-template-columns:1fr 1.5fr;gap:2rem;margin-bottom:2rem;display:grid}.meal-info-grid h4{color:#fff;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.9rem;display:flex}.meal-ingredients ul{margin:0;padding:0;list-style:none}.meal-ingredients li{color:#94a3b8;border-bottom:1px solid #ffffff08;padding:.375rem 0;font-size:.875rem}.meal-recipe p{color:#94a3b8;font-size:.875rem;line-height:1.6}.meal-footer{justify-content:flex-end;display:flex}.meal-card.is-extra{border-left:3px solid var(--color-success)}.meal-icon-box.extra{color:#22c55e;background:#22c55e1a}.extra-macros-list{padding:0;list-style:none}.extra-macros-list li{font-weight:600;color:#fff!important}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#000c;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-content{background:#0f172a;width:100%;max-width:500px;padding:2rem;box-shadow:0 25px 50px -12px #00000080}.modal-content h3{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.modal-content p{color:#94a3b8;font-size:.95rem;line-height:1.5}.modal-actions{justify-content:flex-end;gap:1rem;display:flex}.btn-icon-small{color:#94a3b8;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.btn-icon-small:hover{color:#fff;background:#ffffff1a}.btn-icon-small.is-active{background:#ef44441a;border-color:#ef44444d;animation:1.5s infinite pulse}@media (width<=768px){.meal-info-grid{grid-template-columns:1fr}.meal-right .meal-quick-macros{display:none}.macro-summary{flex-wrap:wrap;gap:1.5rem}.macro-divider{display:none}}.profile-page{min-height:100vh;padding-top:2rem;padding-bottom:5rem}.profile-header{justify-content:space-between;align-items:center;margin-bottom:2.5rem;display:flex}.profile-header h1{align-items:center;gap:.75rem;margin:0;font-size:2rem;display:flex}.profile-container{grid-template-columns:280px 1fr;align-items:start;gap:2rem;display:grid}@media (width<=992px){.profile-container{grid-template-columns:1fr}}.profile-sidebar{flex-direction:column;gap:.5rem;display:flex;position:sticky;top:2rem}.nav-item{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:.75rem;padding:1rem 1.25rem;font-weight:500;transition:all .2s;display:flex}.nav-item:hover{color:var(--text-primary);background:#ffffff0d}.nav-item.active{background:rgba(var(--color-primary-rgb), .15);border-color:rgba(var(--color-primary-rgb), .3);color:var(--color-primary)}.profile-content{flex-direction:column;gap:2rem;display:flex}.profile-section{padding:2rem}.profile-section h2{border-bottom:1px solid #ffffff1a;margin-top:0;margin-bottom:1.5rem;padding-bottom:.75rem;font-size:1.5rem}.profile-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem;display:grid}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--text-secondary);font-size:.9rem;font-weight:500}.form-control{color:var(--text-primary);background:#0003;border:1px solid #ffffff1a;border-radius:8px;padding:.75rem 1rem;font-size:1rem;transition:all .2s}.form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb), .2);outline:none}.profile-sport-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.profile-sport-card{cursor:pointer;background:#ffffff08;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;transition:all .2s;display:flex}.profile-sport-card.selected{background:rgba(var(--color-primary-rgb), .1);border-color:var(--color-primary);transform:translateY(-2px)}.profile-sport-emoji{font-size:1.5rem}.profile-sport-label{font-size:.85rem;font-weight:600}.profile-level-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.profile-level-card{text-align:left;cursor:pointer;background:#ffffff08;border:1px solid #ffffff1a;border-radius:10px;padding:1rem;transition:all .2s}.profile-level-card.selected{background:rgba(var(--color-primary-rgb), .1);border-color:var(--color-primary)}.profile-level-card strong{margin-bottom:.25rem;font-size:.95rem;display:block}.profile-level-card span{color:var(--text-secondary);font-size:.8rem}.save-bar{justify-content:flex-end;gap:1rem;margin-top:2rem;display:flex}.toast{background:var(--bg-card);color:#fff;z-index:1000;border-left:4px solid var(--color-primary);border-radius:12px;align-items:center;gap:.75rem;padding:1rem 2rem;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 10px 30px #00000080}.toast.success{border-left-color:var(--color-success)}.toast.error{border-left-color:var(--color-error)}.progress-page{max-width:1200px;margin:0 auto;padding:2rem 0}.progress-header{justify-content:space-between;align-items:flex-start;margin-bottom:2.5rem;display:flex}.progress-header h1{background:linear-gradient(135deg,#fff 0%,#94a3b8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:1rem;margin:0;font-size:2.5rem;font-weight:800;display:flex}.progress-header p{color:#94a3b8;margin-top:.5rem;font-size:1.1rem}.trends-grid{grid-template-columns:repeat(2,1fr);gap:2rem;margin-bottom:3rem;display:grid}.trend-card{border:1px solid #ffffff0d;padding:2rem}.trend-card h3{color:#f1f5f9;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:1.1rem;font-weight:700;display:flex}.chart-container{width:100%;height:300px}.custom-tooltip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ae6;border:1px solid #ffffff1a;border-radius:8px;padding:.75rem 1rem;box-shadow:0 10px 25px #0000004d}.tooltip-date{color:#94a3b8;margin-bottom:.25rem;font-size:.75rem;font-weight:600}.tooltip-value{color:#fff;font-size:1.1rem;font-weight:800}.biometrics-summary{grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2.5rem;display:grid}.summary-item{text-align:center;padding:1.5rem}.summary-label{text-transform:uppercase;color:#94a3b8;letter-spacing:.05em;margin-bottom:.5rem;font-size:.75rem;font-weight:700}.summary-value{font-size:1.75rem;font-weight:800}@media (width<=1024px){.trends-grid{grid-template-columns:1fr}.biometrics-summary{grid-template-columns:repeat(2,1fr)}}.community-page{background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 100%);min-height:100vh;padding-bottom:4rem}.community-header{align-items:center;gap:1.5rem;padding-top:2rem;padding-bottom:2rem;display:flex}.community-header h1{background:linear-gradient(to right, #fff, var(--color-accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;flex:1;margin:0;font-size:1.75rem;font-weight:700}.header-icon{width:44px;height:44px;color:var(--color-accent);background:#63b3ed1a;border:1px solid #63b3ed33;border-radius:12px;justify-content:center;align-items:center;display:flex}.community-stats-section{margin-bottom:2.5rem}.stats-card{border:1px solid #ffffff1a;padding:1.5rem}.stats-header{align-items:center;gap:2rem;margin-bottom:1.5rem;display:flex}.rank-badge{background:linear-gradient(135deg, var(--color-accent) 0%, #3182ce 100%);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;width:80px;height:80px;display:flex;box-shadow:0 8px 16px #0003}.rank-number{font-size:1.75rem;font-weight:800;line-height:1}.rank-total{opacity:.8;margin-top:4px;font-size:.7rem}.consistency-info{flex:1}.consistency-info h3{color:#94a3b8;margin:0 0 .5rem;font-size:1.1rem}.score-display{align-items:center;gap:1rem;display:flex}.score-value{color:#fff;font-size:2rem;font-weight:800}.score-bar-bg{background:#ffffff1a;border-radius:4px;flex:1;height:8px;overflow:hidden}.score-bar-fill{background:var(--color-accent);height:100%;box-shadow:0 0 10px var(--color-accent);border-radius:4px;transition:width 1s cubic-bezier(.4,0,.2,1)}.stats-footer{border-top:1px solid #ffffff0d;grid-template-columns:1fr 1fr;gap:1rem;padding-top:1rem;display:grid}.stat-item{align-items:center;gap:.75rem;display:flex}.stat-info{flex-direction:column;display:flex}.stat-label{color:#64748b;font-size:.75rem}.stat-value{font-size:1rem;font-weight:600}.icon-streak{color:#f97316}.icon-max{color:#eab308}.community-grid{grid-template-columns:1.5fr 2fr;gap:2rem;margin-bottom:2.5rem;display:grid}@media (width<=768px){.community-grid{grid-template-columns:1fr}}.section-header{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.section-icon{color:var(--color-accent)}.section-header h2{margin:0;font-size:1.25rem;font-weight:600}.leaderboard-list{flex-direction:column;display:flex}.leaderboard-item{border-bottom:1px solid #ffffff0d;align-items:center;padding:1rem;transition:background .2s;display:flex}.leaderboard-item:last-child{border-bottom:none}.item-rank{color:#64748b;width:24px;font-weight:700}.item-name{flex:1;font-weight:500}.item-streak{color:#f97316;align-items:center;margin:0 1rem;font-size:.85rem;display:flex}.item-score{color:var(--color-accent);font-weight:700}.top-1 .item-rank{color:#facc15}.top-2 .item-rank{color:#cbd5e1}.top-3 .item-rank{color:#d97706}.challenges-grid{flex-direction:column;gap:1rem;display:flex}.challenge-card{gap:1.25rem;padding:1.25rem;display:flex}.challenge-icon-bg{color:#a855f7;background:#9333ea1a;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.challenge-content h4{margin:0 0 .25rem;font-size:1rem}.challenge-content p{color:#94a3b8;margin:0 0 .75rem;font-size:.85rem;line-height:1.4}.challenge-footer{justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.challenge-date{color:#64748b;align-items:center;gap:4px;display:flex}.challenge-goal{background:#ffffff0d;border-radius:4px;padding:2px 8px;font-weight:600}.achievements-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.achievement-badge{align-items:center;gap:1rem;padding:1rem;display:flex;position:relative;overflow:hidden}.achievement-icon{justify-content:center;align-items:center;width:50px;height:50px;transition:transform .3s cubic-bezier(.175,.885,.32,1.275);display:flex}.achievement-badge:hover .achievement-icon{transform:scale(1.15)rotate(5deg)}.achievement-badge.locked{opacity:.5;filter:grayscale(.8)}.achievement-badge.earned{background:linear-gradient(135deg,#facc150d 0%,#ffffff05 100%);border:1px solid #facc154d}.achievement-badge.earned .achievement-icon{color:#facc15;filter:drop-shadow(0 0 8px #facc1566)}.achievement-info{flex-direction:column;display:flex}.achievement-name{font-size:.95rem;font-weight:600}.earned-date{color:#eab308;margin-top:2px;font-size:.7rem}.lock-overlay{color:#64748b;position:absolute;top:8px;right:8px}.community-loading{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;height:100vh;display:flex}.empty-msg{text-align:center;color:#64748b;padding:2rem;font-style:italic}.admin-page{padding:2rem 1rem}.admin-table{border-collapse:collapse;text-align:left;width:100%}.admin-table th{color:#64748b;border-bottom:1px solid #ffffff1a;padding:1rem;font-weight:500}.admin-table td{border-bottom:1px solid #ffffff0d;padding:1rem}.admin-table tr{transition:background .2s}.admin-table tr:hover{background:#ffffff05}.admin-table tr.expanded{background:#3b82f60d}.admin-table tr.breakdown-row,.admin-table tr.breakdown-row:hover{background:0 0}.app-loading{background:var(--gradient-hero);justify-content:center;align-items:center;min-height:100vh;display:flex}
