:root{--surface-page:#0d0e1a;--surface-card:#16182a;--surface-elevated:#1e2140;--primary:#e94560;--primary-hover:#ff6b81;--accent:#00d4aa;--accent-dim:#00d4aa26;--text:#f0f0f5;--text-muted:#8888a0;--text-dim:#555570;--border:#2a2d45;--danger:#e94560;--radius-sm:6px;--radius:10px;--radius-lg:16px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-xxl:48px;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--surface-page);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh}#root{flex-direction:column;max-width:100%;min-height:100dvh;display:flex}.page{max-width:480px;padding:var(--space-lg) var(--space-md);flex:1;width:100%;margin:0 auto}h1{color:var(--text);font-size:1.5rem;font-weight:700}h2{color:var(--text);margin-bottom:var(--space-sm);font-size:1.125rem;font-weight:600}p{color:var(--text-muted);line-height:1.5}.error{color:var(--danger);font-size:.875rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes exerciseBob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn{border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;gap:8px;width:100%;font-size:1rem;font-weight:600;transition:background .15s,transform .1s,opacity .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--secondary{background:var(--surface-card);color:var(--text);border:1px solid var(--border)}.btn--secondary:hover:not(:disabled){background:var(--surface-elevated)}.btn--ghost{color:var(--text-muted);background:0 0;font-weight:400;text-decoration:underline}.btn--ghost:hover:not(:disabled){color:var(--text)}.btn--danger{background:var(--danger);color:#fff}.btn--sm{padding:8px 16px;font-size:.875rem}.btn--md{padding:12px 24px;font-size:1rem}.btn--lg{padding:20px 24px;font-size:1.5rem}.progress-bar{gap:4px;width:100%;height:8px;display:flex}.progress-segment{background:var(--surface-elevated);border-radius:4px;position:relative;overflow:hidden}.progress-segment-fill{background:var(--accent);border-radius:4px;width:0;height:100%;transition:width .4s cubic-bezier(.34,1.56,.64,1)}.progress-segment--filled .progress-segment-fill{width:100%}.offline-badge{z-index:100;background:var(--surface-card);color:var(--text-muted);text-align:center;letter-spacing:.5px;text-transform:uppercase;border-bottom:1px solid var(--border);padding:6px;font-size:.75rem;font-weight:600;position:fixed;top:0;left:0;right:0}.login-page{justify-content:center;align-items:center;gap:var(--space-lg);flex-direction:column;min-height:100dvh;display:flex}.login-page form{gap:var(--space-md);flex-direction:column;width:100%;display:flex}input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-card);color:var(--text);font-size:1rem;font-family:var(--font-body);outline:none;padding:12px;transition:border-color .15s}input:focus{border-color:var(--primary)}.home-page{animation:.3s fadeIn}.home-page header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.duration-grid{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.duration-btn{padding:var(--space-lg);background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;font-size:1.3rem;font-weight:700;transition:border-color .15s,background .15s,transform .1s}.duration-btn:active{background:var(--surface-elevated);transform:scale(.97)}.preview-page{animation:.3s fadeIn}.duration-estimate{color:var(--accent);margin-bottom:var(--space-sm);font-size:1.125rem;font-weight:600}.preview-meta{color:var(--text-muted);margin-bottom:var(--space-md);font-size:.875rem}.circuit-list{gap:var(--space-sm);margin-bottom:var(--space-lg);flex-direction:column;animation:.3s slideUp;display:flex}.circuit-item{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--surface-card);border-radius:var(--radius);border:1px solid var(--border);transition:background .15s;display:flex}.circuit-item:hover{background:var(--surface-elevated)}.exercise-name{flex:1;font-size:.9375rem}.exercise-reps{color:var(--text-muted);font-size:.875rem;font-weight:600}.exclude-btn{border:1px solid var(--border);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:.875rem;transition:border-color .15s,color .15s;display:flex}.exclude-btn:hover{border-color:var(--danger);color:var(--danger)}.preview-actions{gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.preview-actions>*{flex:1}.runner-page{min-height:100dvh;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.runner-ready{justify-content:center;align-items:center;gap:var(--space-lg);padding:var(--space-lg);flex-direction:column;flex:1;animation:.3s fadeIn;display:flex}.runner-ready h2{margin-bottom:0;font-size:2rem}.runner-ready-meta{color:var(--text-muted);font-size:1rem}.runner-go-btn{background:var(--accent);width:100%;color:var(--surface-page);border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;padding:24px;font-size:2rem;font-weight:800;animation:1.5s ease-in-out infinite pulse}.runner-go-btn:active{animation:none;transform:scale(.96)}.runner-active{padding:var(--space-md) var(--space-md) var(--space-lg);flex-direction:column;flex:1;display:flex}.runner-progress{margin-bottom:var(--space-md)}.runner-meta{color:var(--text-dim);margin-bottom:var(--space-xl);justify-content:space-between;font-size:.75rem;display:flex}.runner-exercise-area{justify-content:center;align-items:center;gap:var(--space-md);text-align:center;flex-direction:column;flex:1;display:flex}.runner-illustration{color:var(--text-dim);animation:.8s ease-in-out infinite exerciseBob}.runner-exercise-name{color:var(--text);font-size:1.5rem;font-weight:600}.runner-rep-count{color:var(--primary);font-size:3.5rem;font-weight:800;line-height:1}.runner-rep-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.875rem}.runner-next-btn{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;width:100%;padding:20px;font-size:1.5rem;font-weight:700;transition:transform .1s,background .15s}.runner-next-btn:active{background:var(--primary-hover);transform:scale(.96)}.runner-done{justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-lg);text-align:center;flex-direction:column;flex:1;animation:.3s fadeIn;display:flex}.runner-done h2{margin-bottom:0;font-size:2rem}.total-time{color:var(--accent);font-size:2.5rem;font-weight:800;line-height:1}.total-time-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.875rem}.runner-done-meta{color:var(--text-muted);margin-bottom:var(--space-lg);font-size:.875rem}.runner-done-actions{gap:var(--space-sm);flex-direction:column;width:100%;display:flex}.feedback-page{animation:.3s fadeIn}.feedback-subtitle{color:var(--text-muted);margin-bottom:var(--space-lg);font-size:.875rem}.feedback-list{gap:var(--space-sm);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.feedback-item{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md)}.feedback-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.feedback-header .exercise-name{font-size:.9375rem;font-weight:600}.ban-toggle{color:var(--text-muted);align-items:center;gap:var(--space-xs);cursor:pointer;font-size:.75rem;display:flex}.ban-toggle input{width:14px;height:14px;accent-color:var(--danger);padding:0}.feedback-controls{gap:var(--space-sm);flex-direction:column;display:flex}.pref-buttons{gap:var(--space-xs);display:flex}.pref-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;flex:1;padding:8px;font-size:1rem;transition:background .15s,border-color .15s,color .15s,transform .1s}.pref-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.pref-btn:active{transform:scale(.96)}.difficulty-slider{align-items:center;gap:var(--space-sm);display:flex}.slider-label{color:var(--text-muted);white-space:nowrap;font-size:.75rem}.difficulty-slider input[type=range]{accent-color:var(--primary);background:0 0;border:none;flex:1;padding:0}.slider-value{color:var(--text-muted);text-align:right;min-width:28px;font-size:.75rem;font-weight:600}.feedback-actions{gap:var(--space-md);display:flex}.feedback-actions>*{flex:1}@view-transition{navigation:auto}::view-transition-old(root){animation:.15s ease-out both fadeOut}::view-transition-new(root){animation:.2s ease-in both fadeIn}@keyframes fadeOut{to{opacity:0}}
