a2a3949269
- Fetch custom workouts for authenticated user - Display 'Anpassad' (custom) or 'Program' badge on each workout card - Add badge component with orange accent for custom, muted color for program - Badge positioned bottom-right of workout icon - Responsive styling consistent with Gravl dark theme - All build checks pass
2 lines
59 KiB
CSS
2 lines
59 KiB
CSS
.app{min-height:100vh;display:flex;flex-direction:column}.app.loading{justify-content:center;align-items:center;gap:var(--space-4)}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.header{background:var(--bg-secondary);padding:var(--space-4) var(--space-5);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.header h1{font-size:var(--font-xl);font-weight:700}.week-selector{display:flex;align-items:center;gap:var(--space-3)}.week-selector button{background:var(--bg-card);color:var(--text-primary);width:44px;height:44px;min-width:44px;min-height:44px;border-radius:var(--radius-md);font-size:var(--font-lg);transition:all var(--transition-base);border:1px solid var(--border)}.week-selector button:hover:not(:disabled){background:var(--accent);border-color:var(--accent);box-shadow:0 4px 12px #ff6b4a40}.week-selector button:active:not(:disabled){transform:scale(.95)}.week-selector button:disabled{opacity:.3;cursor:not-allowed}.week-selector span{font-weight:600;min-width:80px;text-align:center}.main{flex:1;padding:var(--space-4);max-width:600px;margin:0 auto;width:100%}.program-info{margin-bottom:var(--space-6)}.program-info h2{font-size:var(--font-lg);margin-bottom:var(--space-2);color:var(--accent)}.program-info p{color:var(--text-secondary);font-size:var(--font-sm);line-height:1.6}.days-list h3{font-size:var(--font-sm);color:var(--text-muted);margin-bottom:var(--space-4);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.day-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-4);margin-bottom:var(--space-3);cursor:pointer;transition:all var(--transition-base);border:1px solid var(--border);box-shadow:var(--shadow-card)}.day-card:hover{background:var(--bg-card-hover);border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.day-card:active{transform:scale(.98)}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.day-number{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase;font-weight:500;letter-spacing:.5px}.day-name{font-size:var(--font-lg);font-weight:600}.day-exercises{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.exercise-tag{background:var(--bg-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-secondary);border:1px solid var(--border)}.exercise-tag.more{background:var(--accent);color:#fff;border-color:var(--accent)}.day-action{text-align:right;color:var(--accent);font-weight:600;font-size:var(--font-sm)}.workout-header{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.back-btn{background:none;color:var(--accent);font-size:var(--font-sm);padding:var(--space-1) 0}.header-title h1{font-size:var(--font-lg)}.header-subtitle{font-size:var(--font-sm);color:var(--text-muted)}.exercise-card{background:var(--bg-card);border-radius:var(--radius-xl);margin-bottom:var(--space-3);overflow:hidden;border:1px solid var(--border);transition:all var(--transition-base);box-shadow:var(--shadow-card)}.exercise-card.expanded{border-color:var(--accent);box-shadow:0 4px 16px #ff6b4a26}.exercise-card.all-done{border-color:var(--success);background:var(--bg-card)}.exercise-header{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;cursor:pointer}.exercise-actions{display:flex;align-items:center;gap:var(--space-3)}.swap-btn{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);width:34px;height:34px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}.swap-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--bg-tertiary)}.swap-badge{font-size:var(--font-xs);color:var(--accent)}.exercise-info h3{font-size:var(--font-base);margin-bottom:var(--space-1)}.muscle-group{font-size:var(--font-xs);color:var(--text-muted)}.exercise-meta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.sets-info{font-size:var(--font-sm);color:var(--text-secondary)}.progress-badge{background:var(--bg-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:600;border:1px solid var(--border)}.progress-badge.complete{background:var(--success);color:#fff;border-color:var(--success)}.exercise-body{padding:0 var(--space-4) var(--space-4);border-top:1px solid var(--border);padding-top:var(--space-4)}.progression-hint{background:var(--accent-subtle);border:1px solid rgba(255,107,74,.3);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-4);font-size:var(--font-sm);color:var(--text-secondary)}.progression-hint strong{color:var(--accent)}.sets-list{display:flex;flex-direction:column;gap:var(--space-2)}.set-row{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid transparent;transition:all var(--transition-base)}.set-row.completed{background:var(--success-subtle);border-color:var(--success)}.set-number{font-size:var(--font-sm);color:var(--text-muted);font-weight:500}.set-row-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.set-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.set-metric{background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.metric-label{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.metric-controls{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:var(--space-2)}.metric-btn{width:44px;height:44px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);font-size:var(--font-lg);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.metric-btn:hover{border-color:var(--accent);color:var(--accent)}.metric-value{display:flex;align-items:baseline;justify-content:center;gap:var(--space-1);font-size:var(--font-lg);font-weight:700;min-height:44px;color:var(--text-primary)}.metric-suffix{font-size:var(--font-sm);color:var(--text-muted);font-weight:500}.klart-btn{width:100%;min-height:52px;border-radius:var(--radius-xl);background:var(--accent);color:#fff;border:none;font-size:var(--font-base);font-weight:700;letter-spacing:1px;display:flex;align-items:center;justify-content:center;gap:var(--space-2);cursor:pointer;transition:all var(--transition-base)}.klart-btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px #ff6b4a40}.klart-btn.done{background:var(--success);box-shadow:0 10px 24px #22c55e4d}@media (max-width: 480px){.header{padding:var(--space-3) var(--space-4)}.header h1{font-size:var(--font-lg)}.main{padding:var(--space-3)}}@supports (padding: env(safe-area-inset-bottom)){.main{padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}}.dashboard{min-height:100vh;background:var(--bg)}.dashboard.loading{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-4)}.dashboard-header{background:var(--bg-secondary);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.header-top{display:flex;justify-content:space-between;align-items:center}.header-top h1{font-size:var(--font-xl);font-weight:700}.nav-menu{display:flex;gap:var(--space-1)}.nav-btn{background:transparent;border:none;color:var(--text-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-base);min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}.nav-btn:hover,.nav-btn.active{background:var(--bg-card);color:var(--text-primary)}.nav-btn.active{color:var(--accent)}.nav-btn.logout{color:var(--text-muted)}.nav-btn.logout:hover{color:var(--error)}.dashboard-main{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-5);max-width:600px;margin:0 auto}.coach-greeting{display:flex;gap:var(--space-4);padding:var(--space-5);background:linear-gradient(135deg,var(--accent) 0%,#6366f1 100%);border-radius:var(--radius-xl);color:#fff;box-shadow:0 8px 24px #6366f140;position:relative;overflow:hidden}.coach-greeting:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none}.coach-avatar{width:56px;height:56px;min-width:56px;background:#ffffff26;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid rgba(255,255,255,.2)}.coach-message{display:flex;align-items:center}.coach-message p{font-size:var(--font-lg);font-weight:500;line-height:1.4;position:relative;z-index:1}.week-calendar{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-4);border:1px solid var(--border);box-shadow:var(--shadow-card)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.calendar-title{font-weight:600;text-transform:capitalize;font-size:var(--font-base)}.calendar-nav{background:var(--bg-secondary);border:1px solid var(--border);width:44px;height:44px;min-width:44px;min-height:44px;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);transition:all var(--transition-base)}.calendar-nav:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 4px 12px #ff6b4a40}.calendar-nav:active{transform:scale(.95)}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1)}.calendar-day{display:flex;flex-direction:column;align-items:center;padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);position:relative;min-height:60px;justify-content:center}.calendar-day:hover{background:var(--bg-secondary)}.calendar-day.today{background:var(--accent);color:#fff;box-shadow:0 4px 12px #ff6b4a4d}.calendar-day.has-workout:not(.today){background:var(--bg-secondary)}.day-name{font-size:var(--font-xs);text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-1);font-weight:500;letter-spacing:.5px}.calendar-day.today .day-name{color:#ffffffd9}.day-date{font-size:var(--font-base);font-weight:600}.day-dot{width:5px;height:5px;border-radius:50%;background:var(--success);margin-top:var(--space-1)}.calendar-day.today .day-dot{background:#ffffffd9}.todays-workout{display:flex;flex-direction:column;gap:var(--space-4)}.todays-workout h2{font-size:var(--font-base);font-weight:600;color:var(--text-secondary)}.workout-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-5);border:1px solid var(--border);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-card)}.workout-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.workout-card:active{transform:scale(.98)}.workout-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.workout-card-header h3{font-size:var(--font-lg);font-weight:600}.workout-duration{font-size:var(--font-sm);color:var(--text-muted)}.workout-exercises{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.exercise-preview{display:flex;justify-content:space-between;padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.exercise-preview:last-child{border-bottom:none}.exercise-name{font-weight:500}.exercise-sets{color:var(--text-muted);font-size:var(--font-sm)}.start-workout-btn{width:100%;background:var(--accent);color:#fff;border:none;padding:var(--space-4);border-radius:var(--radius-xl);font-size:var(--font-base);font-weight:600;cursor:pointer;transition:all var(--transition-base);min-height:48px;box-shadow:0 4px 12px #ff6b4a4d}.start-workout-btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 20px #ff6b4a66}.start-workout-btn:active{transform:translateY(0)}.rest-day-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-10);border:1px solid var(--border);text-align:center;box-shadow:var(--shadow-card)}.rest-icon{font-size:3rem;margin-bottom:var(--space-4)}.rest-day-card h3{font-size:var(--font-lg);margin-bottom:var(--space-2)}.rest-day-card p{color:var(--text-muted);margin-bottom:var(--space-4)}.rest-tips{display:flex;justify-content:center;gap:var(--space-3);flex-wrap:wrap}.rest-tips span{background:var(--bg-secondary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-sm);border:1px solid var(--border)}.quick-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.stat-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-4);text-align:center;border:1px solid var(--border);box-shadow:var(--shadow-card);transition:all var(--transition-base)}.stat-card:hover{border-color:var(--border-hover);transform:translateY(-1px)}.stat-value{display:block;font-size:var(--font-2xl);font-weight:700;color:var(--accent);line-height:1.2}.stat-label{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500;margin-top:var(--space-1)}.stat-icon{display:flex;align-items:center;justify-content:center}.brand-title{display:flex;align-items:center;gap:var(--space-2)}.upcoming-workouts h2{font-size:var(--font-base);font-weight:600;margin-bottom:var(--space-3)}.upcoming-list{display:flex;flex-direction:column;gap:var(--space-2)}.upcoming-item{display:flex;align-items:center;gap:var(--space-4);background:var(--bg-card);padding:var(--space-4);border-radius:var(--radius-xl);border:1px solid var(--border);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-card)}.upcoming-item:hover{border-color:var(--accent);transform:translate(4px)}.upcoming-day{font-weight:600;width:40px;color:var(--accent);font-size:var(--font-sm)}.upcoming-name{flex:1;font-weight:500}.upcoming-arrow{color:var(--text-muted)}.coach-section{display:flex;flex-direction:column;gap:var(--space-4)}.today-workout-card{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,var(--accent) 0%,#6366f1 100%);border-radius:var(--radius-xl);padding:var(--space-5);cursor:pointer;transition:all var(--transition-base);color:#fff;box-shadow:0 8px 24px #6366f140;position:relative;overflow:hidden}.today-workout-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none}.today-workout-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px #6366f14d}.today-workout-card:active{transform:scale(.98)}.workout-info h3{font-size:var(--font-lg);font-weight:600;margin-bottom:var(--space-1)}.workout-meta{font-size:var(--font-sm);opacity:.9}.workout-action{background:#fff3;width:48px;height:48px;min-width:48px;min-height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid rgba(255,255,255,.2)}.action-arrow{font-size:var(--font-xl)}.rest-day-section{display:flex;flex-direction:column;gap:var(--space-4)}.rest-day-section .rest-tips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tip-badge{display:flex;align-items:center;gap:var(--space-2);background:var(--bg-card);border:1px solid var(--border);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-sm);transition:all var(--transition-base)}.tip-badge:hover{border-color:var(--accent)}.add-workout-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--bg-card);border:2px dashed var(--border);border-radius:var(--radius-xl);padding:var(--space-5);cursor:pointer;color:var(--text-muted);transition:all var(--transition-base);font-size:var(--font-base);min-height:56px}.add-workout-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-secondary)}.add-icon{font-size:var(--font-2xl);font-weight:300}.profile-page,.progress-page{min-height:100vh;background:var(--bg)}.profile-page.loading,.progress-page.loading{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-4)}.page-header{background:var(--bg-secondary);padding:var(--space-4) var(--space-5);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.page-header h1{font-size:var(--font-lg);font-weight:600}.back-btn{background:transparent;border:none;color:var(--accent);font-size:var(--font-base);cursor:pointer;padding:var(--space-2);display:flex;align-items:center;gap:var(--space-1);min-height:44px;transition:opacity var(--transition-fast)}.back-btn:hover{opacity:.8}.page-main{padding:var(--space-4);max-width:600px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-5)}.profile-section{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-5);border:1px solid var(--border);box-shadow:var(--shadow-card)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.section-header h2{font-size:var(--font-lg);font-weight:600}.edit-btn{background:var(--bg-secondary);border:1px solid var(--border);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-sm);color:var(--text-primary);min-height:44px;transition:all var(--transition-base)}.edit-btn:hover{border-color:var(--accent);color:var(--accent)}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.info-item{display:flex;flex-direction:column;gap:var(--space-1)}.info-label{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.info-value{font-size:var(--font-base);font-weight:500}.edit-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:var(--font-sm);color:var(--text-muted);font-weight:500}.form-group input,.form-group select{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:16px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-group input:hover,.form-group select:hover{border-color:var(--border-hover)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.cancel-btn{flex:1;padding:var(--space-3);border:1px solid var(--border);background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);min-height:48px;transition:all var(--transition-base)}.cancel-btn:hover{border-color:var(--border-hover)}.save-btn{flex:1;padding:var(--space-3);border:none;background:var(--accent);color:#fff;border-radius:var(--radius-md);cursor:pointer;font-weight:600;min-height:48px;box-shadow:0 4px 12px #ff6b4a4d;transition:all var(--transition-base)}.save-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 20px #ff6b4a66}.save-btn:disabled{opacity:.7}.measurements-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.measurement-card{background:var(--bg-secondary);padding:var(--space-4);border-radius:var(--radius-xl);display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.measurement-icon{font-size:var(--font-xl)}.measurement-value{font-size:var(--font-lg);font-weight:700;color:var(--accent)}.measurement-label{font-size:var(--font-xs);color:var(--text-muted)}.strength-grid{display:flex;flex-direction:column;gap:var(--space-3)}.strength-card{display:flex;justify-content:space-between;padding:var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-xl)}.strength-exercise{font-weight:500}.strength-value{font-weight:700;color:var(--accent)}.no-data{color:var(--text-muted);text-align:center;padding:var(--space-4)}.progress-tabs{display:flex;gap:var(--space-2);background:var(--bg-card);padding:var(--space-2);border-radius:var(--radius-xl);border:1px solid var(--border)}.tab-btn{flex:1;padding:var(--space-3);border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-sm);color:var(--text-muted);transition:all var(--transition-base);min-height:48px}.tab-btn.active{background:var(--accent);color:#fff;box-shadow:0 4px 12px #ff6b4a40}.tab-btn:hover:not(.active){background:var(--bg-secondary);color:var(--text-primary)}.chart-section{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-5);border:1px solid var(--border);box-shadow:var(--shadow-card)}.chart-section h2{font-size:var(--font-lg);font-weight:600;margin-bottom:var(--space-4)}.chart-container{margin-bottom:var(--space-4)}.line-chart{width:100%;max-width:100%}.chart-labels{display:flex;justify-content:space-between;font-size:var(--font-xs);color:var(--text-muted);padding:0 var(--space-2)}.strength-charts{display:flex;flex-direction:column;gap:var(--space-6)}.strength-chart-item h3{font-size:var(--font-base);margin-bottom:var(--space-3)}.progress-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border)}.progress-stats .stat-item{text-align:center}.progress-stats .stat-label{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.progress-stats .stat-value{font-size:var(--font-sm);font-weight:600}.trend-up{color:var(--success)}.trend-down{color:var(--error)}.trend-neutral{color:var(--text-muted)}.empty-state{text-align:center;padding:var(--space-10)}.empty-icon{font-size:3rem;display:block;margin-bottom:var(--space-4)}.empty-state p{color:var(--text-muted)}.empty-hint{font-size:var(--font-sm);margin-top:var(--space-2)}.workout-page{min-height:100vh;background:var(--bg)}.workout-page .page-header{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-4);align-items:center}.workout-page .header-center{text-align:center}.workout-page .header-center h1{font-size:var(--font-base);font-weight:600;margin:0}.workout-page .header-subtitle{font-size:var(--font-xs);color:var(--text-muted)}.workout-page .header-progress{background:var(--accent);color:#fff;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-sm);font-weight:600}.workout-page .workout-main{padding-bottom:var(--space-8)}.rest-timer-card{background:linear-gradient(135deg,#ff6b4a24,#22c55e1f);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-4);margin-bottom:var(--space-5);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-3)}.rest-timer-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.rest-timer-label{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:1px;font-weight:600;color:var(--text-secondary)}.rest-timer-time{font-size:2rem;font-weight:700;color:var(--text-primary);letter-spacing:1px}.rest-timer-time.running{color:var(--accent)}.rest-timer-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.rest-timer-btn{min-height:48px;border-radius:var(--radius-xl);border:1px solid var(--border);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.rest-timer-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.rest-timer-btn.primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px #ff6b4a40}.rest-timer-btn.secondary{background:var(--bg-card);color:var(--text-secondary)}.rest-timer-presets{display:flex;flex-wrap:wrap;gap:var(--space-2)}.rest-timer-chip{padding:var(--space-2) var(--space-3);background:var(--bg-card);border-radius:var(--radius-full);border:1px solid var(--border);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.rest-timer-chip:hover{border-color:var(--accent);color:var(--accent)}.workout-progress-bar{height:4px;background:var(--border);border-radius:2px;margin-bottom:var(--space-5);overflow:hidden}.workout-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));border-radius:2px;transition:width var(--transition-slow)}.warmup-section{background:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border);margin-bottom:var(--space-5);overflow:hidden;transition:all var(--transition-base);box-shadow:var(--shadow-card)}.warmup-section.completed{border-color:var(--success);background:var(--success-subtle)}.warmup-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);cursor:pointer;-webkit-user-select:none;user-select:none}.warmup-title{display:flex;align-items:center;gap:var(--space-3)}.warmup-icon{display:flex;align-items:center;color:var(--accent)}.warmup-title h2{font-size:var(--font-base);font-weight:600;margin:0}.warmup-progress{background:var(--bg-secondary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-xs);color:var(--text-muted);font-weight:500}.expand-icon{display:flex;align-items:center;color:var(--text-muted);transition:transform var(--transition-base)}.expand-icon.expanded{transform:rotate(180deg)}.warmup-content{padding:0 var(--space-5) var(--space-5)}.warmup-category{margin-bottom:var(--space-5)}.warmup-category:last-of-type{margin-bottom:var(--space-4)}.warmup-category h3{font-size:var(--font-sm);color:var(--text-muted);margin-bottom:var(--space-3);font-weight:500}.warmup-list{display:flex;flex-direction:column;gap:var(--space-2)}.warmup-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);min-height:48px;border:1px solid transparent}.warmup-item:hover{background:var(--bg-tertiary);border-color:var(--border)}.warmup-item.done{background:var(--success-subtle);border-color:#22c55e4d}.warmup-item.done .warmup-name{text-decoration:line-through;opacity:.7}.warmup-check{width:26px;height:26px;min-width:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-card);color:var(--text-muted);font-size:var(--font-sm);flex-shrink:0;border:2px solid var(--border)}.warmup-item.done .warmup-check{background:var(--success);color:#fff;border-color:var(--success)}.warmup-item-icon{font-size:var(--font-lg);flex-shrink:0}.warmup-name{flex:1;font-size:var(--font-sm)}.warmup-duration{font-size:var(--font-sm);color:var(--text-muted);white-space:nowrap}.warmup-done-btn{width:100%;padding:var(--space-4);background:var(--bg-secondary);border:2px dashed var(--border);border-radius:var(--radius-xl);color:var(--text-muted);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px}.warmup-done-btn:hover{border-color:var(--accent);color:var(--accent)}.warmup-done-btn.completed{background:var(--success);border:none;color:#fff;font-weight:600;border:2px solid var(--success)}.exercises-section{margin-bottom:var(--space-5)}.exercises-section h2{font-size:var(--font-base);font-weight:600;margin-bottom:var(--space-4)}.exercise-card.all-done{border-color:var(--success);background:var(--success-subtle)}.exercise-card.all-done .exercise-info h3:after{content:" ✓";color:var(--success)}.finish-workout-btn{width:100%;padding:var(--space-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);color:var(--text-muted);font-size:var(--font-base);cursor:pointer;transition:all var(--transition-base);margin-top:var(--space-4);min-height:52px;box-shadow:var(--shadow-card)}.finish-workout-btn:hover{border-color:var(--accent);color:var(--accent)}.finish-workout-btn.ready{background:linear-gradient(135deg,var(--accent) 0%,#6366f1 100%);border:none;color:#fff;font-weight:600;animation:pulse-glow 2s infinite;box-shadow:0 8px 24px #6366f14d}@keyframes pulse-glow{0%,to{box-shadow:0 8px 24px #6366f14d}50%{box-shadow:0 12px 32px #6366f180}}@media (max-width: 480px){.workout-page .page-header{padding:var(--space-3) var(--space-4)}.workout-page .header-center h1{font-size:var(--font-sm)}.warmup-item{padding:var(--space-3)}.warmup-name{font-size:var(--font-sm)}.rest-timer-actions,.set-controls{grid-template-columns:1fr}}.workout-list{display:flex;flex-direction:column;gap:var(--space-3)}.workout-card.compact{padding:var(--space-4)}.workout-card.compact .workout-card-header{margin-bottom:var(--space-2)}.workout-card.compact .workout-card-header h3{font-size:var(--font-base)}.workout-day{font-size:var(--font-xs);color:var(--text-muted);background:var(--bg-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border)}.workout-exercises.compact{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:0}.stepper-wrapper{display:flex;flex-direction:column;gap:var(--space-1);width:100%}.stepper-label{font-size:var(--font-xs);color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stepper-container{display:flex;align-items:center;gap:var(--space-1);background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border);padding:var(--space-1);height:52px}.stepper-btn{width:44px;height:44px;min-width:44px;min-height:44px;background:var(--bg-secondary);border:none;border-radius:var(--radius-sm);color:var(--text-primary);font-size:1.4rem;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);flex-shrink:0;line-height:1}.stepper-btn:hover:not(:disabled){background:var(--accent);color:#fff;box-shadow:0 4px 12px #ff6b4a40}.stepper-btn:active:not(:disabled){transform:scale(.94)}.stepper-btn:disabled{opacity:.35;cursor:not-allowed}.stepper-input-wrapper{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-1);min-width:0}.stepper-input{flex:1;min-width:0;background:transparent;border:none;color:var(--text-primary);font-size:16px;font-weight:600;text-align:center;padding:var(--space-2);outline:none;font-family:inherit}.stepper-input:disabled{opacity:.6;cursor:not-allowed}.stepper-input::-webkit-outer-spin-button,.stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper-input[type=number]{-moz-appearance:textfield}.input-suffix{color:var(--text-muted);font-size:var(--font-sm);font-weight:500;white-space:nowrap;flex-shrink:0}@media (max-width: 480px){.stepper-container{height:56px}.stepper-btn{width:48px;height:48px;min-width:48px;min-height:48px}}.add-set-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:var(--space-2);padding:var(--space-3) var(--space-4);background:transparent;border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:all var(--transition-base)}.add-set-btn:hover{border-color:var(--accent);color:var(--accent)}.delete-set-btn{display:flex;align-items:center;justify-content:center;width:36px;min-height:44px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;opacity:.6;transition:all var(--transition-base);flex-shrink:0}.delete-set-btn:hover:not(:disabled){color:#e53e3e;opacity:1}.delete-set-btn:disabled,.delete-set-btn.disabled{opacity:.2;cursor:not-allowed}.set-type-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:200;padding-bottom:env(safe-area-inset-bottom,0)}.set-type-modal{background:var(--bg-card);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;padding:var(--space-6) var(--space-4) var(--space-8);width:100%;max-width:600px;display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-xl)}.set-type-modal h3{font-size:var(--font-base);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-1);text-align:center}.set-type-option{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);width:100%;min-height:56px;padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all var(--transition-base)}.set-type-option strong{font-size:var(--font-base);color:var(--text-primary)}.set-type-option span{font-size:var(--font-sm);color:var(--text-secondary)}.set-type-option:hover{border-color:var(--accent);background:var(--bg-tertiary)}.set-type-option.dropset strong{color:var(--accent)}.set-type-cancel{width:100%;min-height:48px;padding:var(--space-3);background:transparent;border:none;color:var(--text-secondary);font-size:var(--font-sm);cursor:pointer;margin-top:var(--space-1);transition:color var(--transition-base)}.set-type-cancel:hover{color:var(--text-primary)}.alternative-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:220;padding-bottom:env(safe-area-inset-bottom,0)}.alternative-modal{background:var(--bg-card);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;padding:var(--space-5) var(--space-4) var(--space-7);width:100%;max-width:640px;display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-xl)}.alternative-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.alternative-modal-header h3{font-size:var(--font-base);margin:0 0 var(--space-1);color:var(--text-primary)}.alternative-modal-header p{margin:0;color:var(--text-secondary);font-size:var(--font-sm)}.alternative-modal-close{border:none;background:var(--bg-secondary);color:var(--text-secondary);width:36px;height:36px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}.alternative-modal-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.alternative-modal-state{padding:var(--space-4);text-align:center;color:var(--text-secondary);font-size:var(--font-sm);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border)}.alternative-modal-state.error{color:#e53e3e}.alternative-list{display:flex;flex-direction:column;gap:var(--space-3)}.alternative-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary)}.alternative-info{display:flex;flex-direction:column;gap:var(--space-1)}.alternative-info strong{font-size:var(--font-sm);color:var(--text-primary)}.alternative-info span{font-size:var(--font-xs);color:var(--text-secondary)}.alternative-select-btn{min-width:72px;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:var(--font-sm);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base)}.alternative-select-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff6b4a40}.select-page{min-height:100vh;background:var(--bg)}.select-page.loading{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-4)}.select-main{padding:var(--space-4);max-width:600px;margin:0 auto}.select-intro{text-align:center;color:var(--text-muted);margin-bottom:var(--space-6);font-size:var(--font-base)}.workout-grid{display:flex;flex-direction:column;gap:var(--space-4)}.workout-select-card{display:flex;align-items:center;gap:var(--space-4);background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-4);cursor:pointer;transition:all var(--transition-base);position:relative;box-shadow:var(--shadow-card)}.workout-select-card:hover{border-color:var(--workout-color, var(--accent));transform:translate(4px);box-shadow:var(--shadow-md)}.workout-select-card.selected{border-color:var(--workout-color, var(--accent));background:var(--bg);box-shadow:0 4px 16px #ff6b4a26}.workout-icon{width:56px;height:56px;min-width:56px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:var(--font-xl);flex-shrink:0}.workout-details{flex:1}.workout-details h3{font-size:var(--font-base);font-weight:600;margin-bottom:var(--space-1)}.workout-exercises-count{font-size:var(--font-sm);color:var(--text-muted);margin-bottom:var(--space-2)}.workout-preview{display:flex;flex-wrap:wrap;gap:var(--space-1)}.preview-exercise{font-size:var(--font-xs);color:var(--text-muted);background:var(--bg-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border)}.preview-more{font-size:var(--font-xs);color:var(--accent)}.selected-indicator{position:absolute;top:-8px;right:-8px;width:28px;height:28px;background:var(--workout-color, var(--accent));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:0 2px 8px #0003}.select-action{position:fixed;bottom:0;left:0;right:0;padding:var(--space-4);background:var(--bg);border-top:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.start-btn{width:100%;max-width:600px;margin:0 auto;display:block;padding:var(--space-4);background:var(--accent);color:#fff;border:none;border-radius:var(--radius-xl);font-size:var(--font-lg);font-weight:600;cursor:pointer;transition:all var(--transition-base);min-height:52px;box-shadow:0 4px 12px #ff6b4a4d}.start-btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 20px #ff6b4a66}.start-btn:active{transform:translateY(0)}@keyframes authFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes errorShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes errorFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(255,107,74,.12) 0%,transparent 60%),var(--bg-primary);animation:authFadeIn var(--transition-slow) ease both}.auth-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border-hover);border-radius:var(--radius-2xl);padding:var(--space-10) var(--space-8);box-shadow:var(--shadow-xl),0 0 40px #ff6b4a0f;display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.logo-mark{width:56px;height:56px;color:var(--accent);filter:drop-shadow(0 0 10px var(--accent-glow));flex-shrink:0}.auth-title{font-size:var(--font-2xl);font-weight:700;color:var(--text-primary);text-align:center;margin:0}.auth-tagline{font-size:var(--font-sm);color:var(--text-muted);text-align:center;margin:0;letter-spacing:.02em}.auth-card form{width:100%;display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.auth-card input[type=email],.auth-card input[type=password]{width:100%;background:var(--bg-elevated);border:1.5px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-4) var(--space-5);color:var(--text-primary);font-size:16px;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.auth-card input[type=email]:focus,.auth-card input[type=password]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}.auth-card button[type=submit]{width:100%;padding:var(--space-4);background:var(--accent);color:#fff;border:none;border-radius:var(--radius-xl);font-size:var(--font-base);font-weight:600;cursor:pointer;min-height:52px;margin-top:var(--space-2);transition:background var(--transition-base),transform var(--transition-fast),box-shadow var(--transition-base);box-shadow:0 4px 14px #ff6b4a4d}.auth-card button[type=submit]:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 20px #ff6b4a73}.auth-card button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.auth-error{width:100%;background:var(--error-subtle);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:#f87171;font-size:var(--font-sm);text-align:center;animation:errorFadeIn var(--transition-base) ease both,errorShake .4s ease .1s both}.auth-link{font-size:var(--font-sm);color:var(--text-muted);text-align:center}.brand-title .logo-mark{width:26px;height:26px;color:var(--accent);filter:none}.brand-name{font-size:var(--font-xl);font-weight:700;letter-spacing:-.4px;color:var(--text-primary)}.nav-btn.active{background:var(--accent-subtle);color:var(--accent)}.stat-card{background:linear-gradient(160deg,var(--bg-card) 0%,var(--bg-tertiary) 100%);border-top:2px solid var(--border)}.quick-stats .stat-card:nth-child(1){border-top-color:#ff6b4a80}.quick-stats .stat-card:nth-child(2){border-top-color:#22c55e80}.quick-stats .stat-card:nth-child(3){border-top-color:#f59e0b80}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-hover)}.stat-value{font-size:var(--font-3xl);letter-spacing:-1px}@keyframes todayGlow{0%,to{box-shadow:0 4px 12px #ff6b4a4d}50%{box-shadow:0 4px 22px #ff6b4a8c,0 0 0 3px #ff6b4a1f}}.calendar-day.today{animation:todayGlow 2.5s ease-in-out infinite}.calendar-day.has-workout:not(.today){background:#ff6b4a0f;border:1px solid rgba(255,107,74,.18)}.calendar-day.has-workout:not(.today):hover{background:#ff6b4a1f;border-color:#ff6b4a59}.day-dot{width:6px;height:6px;background:var(--accent);box-shadow:0 0 6px #ff6b4a99}.calendar-day.today .day-dot{background:#fff;box-shadow:0 0 6px #ffffff80}.calendar-day{border-radius:var(--radius-xl);gap:var(--space-1);min-height:64px}.day-name{letter-spacing:.6px}.coach-greeting{box-shadow:0 8px 28px #6366f147,0 2px 8px #0000004d}@keyframes arrowNudge{0%,to{transform:translate(0)}50%{transform:translate(4px)}}.today-workout-card:hover .workout-action{animation:arrowNudge .6s ease infinite}.today-workout-card:hover{box-shadow:0 14px 36px #6366f159,0 4px 12px #0000004d}.dashboard-main{gap:var(--space-6)}.add-workout-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle)}@keyframes sectionIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.week-calendar{animation:sectionIn .3s ease both}.coach-section{animation:sectionIn .3s ease 80ms both}.quick-stats{animation:sectionIn .3s ease .16s both}.exercise-card{position:relative}.exercise-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),#ff8a65);opacity:0;transition:opacity .2s ease}.exercise-card.expanded:before{opacity:1}.exercise-card.all-done:before{background:linear-gradient(90deg,var(--success),#4ade80);opacity:1}.exercise-info h3{font-size:var(--font-lg);font-weight:700}.muscle-group{display:inline-block;font-size:var(--font-xs);font-weight:600;text-transform:uppercase;padding:var(--space-1) var(--space-2);background:var(--bg-tertiary);border-radius:var(--radius-full)}.progress-badge{background:linear-gradient(135deg,var(--bg-secondary),var(--bg-tertiary))}.progress-badge.complete{background:linear-gradient(135deg,var(--success),#16a34a);box-shadow:0 4px 12px #22c55e4d}.rest-timer-card{box-shadow:0 4px 16px #ff6b4a1a}.rest-timer-time.running{text-shadow:0 0 20px rgba(255,107,74,.4);animation:pulse-timer 1s ease-in-out infinite}@keyframes pulse-timer{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.klart-btn{background:linear-gradient(135deg,var(--accent),#e85a3c);border-radius:var(--radius-xl)}.klart-btn.done{background:linear-gradient(135deg,var(--success),#16a34a);animation:success-bounce .5s ease}@keyframes success-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.warmup-check{width:22px;height:22px;border-radius:var(--radius-md);border:2px solid var(--border);display:flex;align-items:center;justify-content:center}.warmup-item.done .warmup-check{background:var(--success);border-color:var(--success);color:#fff}.workout-badge-container{position:relative;display:flex;align-items:flex-end}.workout-badge{position:absolute;bottom:-6px;right:-6px;font-size:var(--font-xs);font-weight:600;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid transparent;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 1px 4px #00000026;white-space:nowrap;color:#fff}.workout-badge.custom{background:var(--accent);color:#fff;border-color:var(--accent)}.workout-badge.program{background:var(--text-muted);color:#fff;border-color:var(--text-muted);opacity:.7}.workout-select-card:hover .workout-badge{box-shadow:0 2px 6px #00000040}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a0f;--bg-secondary: #0d0d14;--bg-tertiary: #12121a;--bg-card: #16161f;--bg-card-hover: #1c1c28;--bg-elevated: #1a1a24;--bg: #0a0a0f;--text-primary: #ffffff;--text-secondary: #a1a1aa;--text-muted: #71717a;--text-tertiary: #52525b;--text: #ffffff;--accent: #ff6b4a;--accent-hover: #ff8066;--accent-subtle: rgba(255, 107, 74, .15);--accent-glow: rgba(255, 107, 74, .25);--success: #22c55e;--success-subtle: rgba(34, 197, 94, .15);--warning: #f59e0b;--warning-subtle: rgba(245, 158, 11, .15);--error: #ef4444;--error-subtle: rgba(239, 68, 68, .15);--border: #1f1f2a;--border-hover: #2a2a38;--border-accent: var(--accent-subtle);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5), 0 2px 4px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .6), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .7), 0 8px 10px -6px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px var(--accent-glow);--shadow-card: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-elevated: 0 8px 16px rgba(0, 0, 0, .4), 0 2px 4px rgba(0, 0, 0, .3);--workout-push: #ef4444;--workout-pull: #3b82f6;--workout-legs: #22c55e;--workout-shoulders: #f59e0b;--workout-upper: #8b5cf6;--workout-lower: #06b6d4;--workout-default: #ff6b4a;--font-xs: .75rem;--font-sm: .875rem;--font-base: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--font-3xl: 2rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-2xl: 24px;--radius-full: 9999px}html,body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2}#root{min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;outline:none;font-size:var(--font-base)}input{font-family:inherit;outline:none;font-size:var(--font-base)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--bg-primary);position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 30% 20%,rgba(255,107,74,.03) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(99,102,241,.03) 0%,transparent 50%);pointer-events:none}.auth-card{background:var(--bg-card);padding:var(--space-10) var(--space-8);border-radius:var(--radius-2xl);width:100%;max-width:420px;text-align:center;box-shadow:var(--shadow-elevated);border:1px solid var(--border);position:relative;z-index:1}.auth-card h1{font-size:var(--font-3xl);margin-bottom:var(--space-2);background:linear-gradient(135deg,var(--text-primary) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-card h2{color:var(--text-secondary);font-weight:500;margin-bottom:var(--space-8);font-size:var(--font-lg)}.logo-mark{width:56px;height:56px;color:var(--accent);margin:0 auto var(--space-4);display:block}.auth-title{font-size:var(--font-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-1)}.auth-tagline{color:var(--text-secondary);font-size:var(--font-sm);margin-bottom:var(--space-6)}@keyframes auth-error-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.auth-error{animation:auth-error-in .2s ease-out}.auth-card form{display:flex;flex-direction:column;gap:var(--space-4)}.auth-card input{padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:16px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-card input:hover{border-color:var(--border-hover)}.auth-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.auth-card input::placeholder{color:var(--text-tertiary)}.auth-card button[type=submit]{padding:var(--space-4);background:var(--accent);color:#fff;border-radius:var(--radius-md);font-size:var(--font-base);font-weight:600;transition:all var(--transition-base);box-shadow:0 4px 12px #ff6b4a4d;position:relative;overflow:hidden}.auth-card button[type=submit]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none}.auth-card button[type=submit]:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 20px #ff6b4a66}.auth-card button[type=submit]:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #ff6b4a4d}.auth-card button:disabled{opacity:.6;cursor:not-allowed}.auth-card .error{background:var(--error-subtle);color:var(--error);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--font-sm);border:1px solid rgba(239,68,68,.2)}.auth-link{margin-top:var(--space-6);color:var(--text-muted);font-size:var(--font-sm)}.auth-link a{color:var(--accent);text-decoration:none;font-weight:500;transition:color var(--transition-fast)}.auth-link a:hover{color:var(--accent-hover);text-decoration:underline}.onboarding{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--bg-primary);position:relative;overflow:hidden}.onboarding:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 30% 20%,rgba(255,107,74,.04) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(99,102,241,.04) 0%,transparent 50%);pointer-events:none}.onboarding-card{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-2xl);width:100%;max-width:520px;box-shadow:var(--shadow-elevated);border:1px solid var(--border);position:relative;z-index:1}.steps-indicator{display:flex;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-8)}.steps-indicator span{width:36px;height:36px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);font-weight:600;color:var(--text-muted);transition:all var(--transition-base);border:2px solid var(--border)}.steps-indicator span.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 4px 12px #ff6b4a4d}.step h2{margin-bottom:var(--space-6);text-align:center;font-size:var(--font-xl)}.step .hint{color:var(--text-muted);font-size:var(--font-sm);margin-bottom:var(--space-4);text-align:center}.field{margin-bottom:var(--space-4)}.field label{display:block;margin-bottom:var(--space-2);color:var(--text-secondary);font-size:var(--font-sm);font-weight:500}.field input{width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:16px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field input:hover{border-color:var(--border-hover)}.chat-onboarding{min-height:100vh;display:flex;justify-content:center;padding:var(--space-5);background:radial-gradient(circle at top,rgba(255,107,74,.08),transparent 55%),var(--bg-primary)}.chat-shell{width:100%;max-width:720px;min-height:calc(100vh - var(--space-10));background:var(--bg-card);border-radius:var(--radius-2xl);border:1px solid var(--border);box-shadow:var(--shadow-elevated);display:flex;flex-direction:column;overflow:hidden}.chat-header{padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#ff6b4a1a,#12121ae6)}.chat-header h1{font-size:var(--font-2xl)}.chat-subtitle{font-size:var(--font-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-1)}.chat-status{font-size:var(--font-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background:#22c55e1f;color:var(--success);border:1px solid rgba(34,197,94,.3)}.chat-status.saving{background:#f59e0b1f;color:var(--warning);border-color:#f59e0b4d}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);background:var(--bg-elevated)}.chat-message{display:flex;align-items:flex-end;gap:var(--space-3);animation:slideUp .3s ease both}.chat-message.user{justify-content:flex-end}.chat-message.user .chat-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:var(--radius-sm);box-shadow:var(--shadow-glow)}.chat-message.coach .chat-bubble{background:var(--bg-secondary);border:1px solid var(--border);border-bottom-left-radius:var(--radius-sm)}.chat-bubble{max-width:80%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-base);line-height:1.5}.chat-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-subtle);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.chat-actions{padding:var(--space-4);border-top:1px solid var(--border);background:var(--bg-card)}.chat-input-area{display:flex;flex-direction:column;gap:var(--space-3)}.chat-input-row{display:flex;gap:var(--space-3)}.chat-input-row input{flex:1;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-base)}.chat-input-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}.send-btn{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--accent);color:#fff;font-weight:600;transition:transform var(--transition-fast)}.send-btn:active{transform:scale(.97)}.chat-error{color:var(--error);font-size:var(--font-sm)}.quick-replies{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1);-webkit-overflow-scrolling:touch}.quick-reply{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);white-space:nowrap;transition:all var(--transition-fast)}.quick-reply:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.quick-reply:disabled{opacity:.5;cursor:not-allowed}.quick-reply.ghost{background:transparent;color:var(--text-muted)}.typing-indicator{display:flex;gap:var(--space-2);align-items:center}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:typingPulse 1.2s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes typingPulse{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-4px);opacity:1}}@media (max-width: 700px){.chat-onboarding{padding:var(--space-3)}.chat-shell{min-height:calc(100vh - var(--space-6))}.chat-header,.chat-messages{padding:var(--space-4)}}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.field input::placeholder{color:var(--text-tertiary)}.btn-group{display:flex;gap:var(--space-2)}.btn-group.vertical{flex-direction:column}.btn-group button{flex:1;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border);transition:all var(--transition-base);font-weight:500;min-height:44px}.btn-group button:hover{border-color:var(--accent);color:var(--text-primary);background:var(--bg-tertiary)}.btn-group button.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 4px 12px #ff6b4a40}.rm-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-2)}.rm-fields .field{margin-bottom:0}.bodyfat-result{background:var(--success-subtle);color:var(--success);padding:var(--space-4);border-radius:var(--radius-md);text-align:center;margin:var(--space-4) 0;border:1px solid rgba(34,197,94,.2)}.bodyfat-result strong{font-size:var(--font-lg)}.nav-btns{display:flex;gap:var(--space-3);margin-top:var(--space-6)}.nav-btns button{flex:1;padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--font-base);transition:all var(--transition-base);min-height:44px}.nav-btns button:first-child{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border)}.nav-btns button:first-child:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-hover)}.next-btn,.finish-btn{background:var(--accent)!important;color:#fff!important;font-weight:600;border:none!important;box-shadow:0 4px 12px #ff6b4a4d}.next-btn:hover:not(:disabled),.finish-btn:hover:not(:disabled){background:var(--accent-hover)!important;transform:translateY(-1px);box-shadow:0 6px 20px #ff6b4a66}button:disabled{opacity:.5;cursor:not-allowed}.header-left{display:flex;align-items:center;gap:var(--space-4)}.logout-btn{padding:var(--space-2) var(--space-3);background:var(--bg-secondary);color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--font-xs);transition:all var(--transition-base);border:1px solid var(--border)}.logout-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-hover)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],select,textarea{font-size:16px}
|