:root{--color-primary:#6366f1;--color-primary-bright:#4f46e5;--color-primary-dim:#4f46e5;--color-accent:#d97706;--color-accent-bright:#b45309;--color-bg:#f5f5f0;--color-surface:#fff;--color-surface-alt:#eceae5;--color-surface-hover:#e4e2dc;--color-text:#0a0a0a;--color-text-muted:#64605b;--color-text-inverse:#fafaf9;--color-border:#d4d1cc;--color-border-focus:var(--color-primary);--color-success:#22c55e;--color-success-dim:#16a34a;--color-danger:#ef4444;--color-danger-dim:#dc2626;--color-warning:#f59e0b;--shadow-sm:0 1px 2px #0000001a;--shadow-md:0 4px 12px #00000024;--shadow-lg:0 8px 24px #0000002e;--shadow-glow:0 0 20px #6366f126;--color-primary-alpha-15:#6366f126;--color-primary-alpha-10:#6366f11a;--color-primary-alpha-04:#6366f10a;--card-border:1px solid var(--color-border);--card-shadow:var(--shadow-md);--color-nav-bg:#f5f5f0e6;--color-overlay:#00000059;--color-overlay-heavy:#00000080;--color-dialog-bg:#fffffff2;--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-2xl:2rem;--space-3xl:3rem;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Space Grotesk", "Inter", -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-black:900;--leading-tight:1.15;--leading-normal:1.5;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--chart-stroke:#6366f1;--chart-fill-start:#6366f133;--nav-height:64px;--max-width:480px}[data-theme=dark]{--color-primary:#818cf8;--color-primary-bright:#a5b4fc;--color-primary-dim:#6366f1;--color-accent:#fbbf24;--color-accent-bright:#fde68a;--color-bg:#0a0b09;--color-surface:#13150f;--color-surface-alt:#1d1f19;--color-surface-hover:#272922;--color-text:#f5f5f3;--color-text-muted:#b5b2ab;--color-text-inverse:#0a0b09;--color-border:#292b24;--color-border-focus:var(--color-primary);--color-success:#34d399;--color-success-dim:#22c55e;--color-danger:#f87171;--color-danger-dim:#ef4444;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-glow:0 0 24px #818cf833;--color-primary-alpha-15:#818cf826;--color-primary-alpha-10:#818cf81a;--color-primary-alpha-04:#818cf80a;--card-border:1px solid transparent;--card-shadow:var(--shadow-sm);--color-nav-bg:#13150fd9;--color-overlay:#0006;--color-overlay-heavy:#0009;--color-dialog-bg:#1d1f19f2;--chart-stroke:#a5b4fc;--chart-fill-start:#a5b4fc4d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:16px;line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}body{min-height:100dvh;overflow-x:hidden}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,textarea,select{font:inherit;color:inherit;background:0 0;border:none;outline:none;width:100%}img,svg{max-width:100%;display:block}h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.02em}h2{font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:-.01em}h3{font-size:var(--text-base);font-weight:var(--weight-semibold)}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-topbar{padding:var(--space-sm) var(--space-lg);max-width:var(--max-width);justify-content:space-between;align-items:center;width:100%;margin:0 auto;display:flex}.app-topbar__brand{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text-muted);letter-spacing:-.02em}.app-main{padding:var(--space-md) var(--space-lg) var(--space-xl);padding-bottom:calc(var(--nav-height) + var(--space-xl));max-width:var(--max-width);width:100%;animation:fadeIn var(--duration-normal) var(--ease-out);flex:1;margin:0 auto}.bottom-nav{height:var(--nav-height);background:var(--color-nav-bg);border-top:1px solid var(--color-border);z-index:100;-webkit-backdrop-filter:blur(12px);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-link{padding:var(--space-sm) var(--space-md);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);flex-direction:column;align-items:center;gap:2px;display:flex;position:relative}.nav-link svg{margin-bottom:1px;font-size:1.25rem}.nav-link.active{color:var(--color-primary-bright)}.nav-link.active:after{content:"";background:var(--color-primary-bright);border-radius:0 0 var(--radius-full) var(--radius-full);width:24px;height:3px;animation:scaleIn var(--duration-normal) var(--ease-spring);position:absolute;top:-1px;left:50%;transform:translate(-50%)}.nav-link:active{transform:scale(.9)}.nav-link--primary svg{font-size:1.5rem}.nav-link--primary.active svg{color:var(--color-primary-bright)}.nav-badge{background:var(--color-primary-bright);border:2px solid var(--color-surface);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;right:-6px}.page-header{margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.page-title{font-family:var(--font-display);font-size:var(--text-2xl)}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-lg);border:var(--card-border);box-shadow:var(--card-shadow);transition:box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out)}a.card:hover,button.card:hover{box-shadow:var(--shadow-md)}a.card:active,button.card:active{transform:scale(.985)}.card--active{border-color:var(--color-primary-bright);background:linear-gradient(135deg, var(--color-surface) 0%, var(--color-primary-alpha-04) 100%)}.card+.card{margin-top:var(--space-md)}.card__title{font-size:var(--text-base);font-weight:var(--weight-semibold);align-items:center;gap:var(--space-sm);display:flex}.card__subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-xs)}.card__row{justify-content:space-between;align-items:center;display:flex}.stats-row{gap:var(--space-md);margin-bottom:var(--space-xl);display:flex}.stat-card{text-align:center;padding:var(--space-lg) var(--space-sm);background:var(--color-surface);border-radius:var(--radius-lg);border:var(--card-border);box-shadow:var(--card-shadow);flex:1}.stat-card__value{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;line-height:var(--leading-tight);color:var(--color-primary-bright)}.stat-card--accent .stat-card__value{color:var(--color-primary-bright)}.stat-card--success .stat-card__value{color:var(--color-success)}.stat-card__value span{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.stat-card__label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}.cta-train{justify-content:center;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-lg);background:var(--color-primary-bright);color:var(--color-text-inverse);border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-xl);transition:all var(--duration-fast) var(--ease-out);display:flex}.cta-train:hover{background:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.cta-train:active{transform:scale(.98)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);transition:all var(--duration-fast) var(--ease-out);white-space:nowrap;min-height:44px;display:inline-flex}.btn:active{transform:scale(.96)}.btn--primary{background:var(--color-primary-bright);color:var(--color-text-inverse)}.btn--primary:hover{background:var(--color-primary);box-shadow:var(--shadow-glow)}.btn--secondary{background:var(--color-surface-alt);color:var(--color-text);border:1px solid var(--color-border)}.btn--secondary:hover{background:var(--color-surface-hover)}.btn--danger{color:var(--color-danger)}.btn--danger:hover{background:#ef44441a}.btn--ghost{color:var(--color-text-muted);padding:var(--space-sm)}.btn--ghost:hover{color:var(--color-text);background:var(--color-surface-alt)}.btn--full{width:100%}.btn--lg{padding:var(--space-lg) var(--space-xl);font-size:var(--text-base);border-radius:var(--radius-lg);min-height:52px}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn--start{justify-content:flex-start}.btn--icon{border-radius:var(--radius-md);flex-shrink:0;width:40px;height:40px;padding:0}.avatar-editable{cursor:pointer;display:inline-block;position:relative}.avatar-editable__overlay{opacity:0;transition:opacity var(--duration-fast) var(--ease-out);color:#fff;font-size:var(--text-lg);pointer-events:none;background:#00000080;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.avatar-editable:hover .avatar-editable__overlay{opacity:1}.form-group{gap:var(--space-xs);flex-direction:column;display:flex}.form-group+.form-group,.form-row+.form-group,.form-group+.form-row,.form-row+.form-row{margin-top:var(--space-lg)}.form-row>.form-group+.form-group{margin-top:0}.form-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.form-input{padding:var(--space-md) var(--space-lg);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);min-height:44px;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.form-input::placeholder{color:var(--color-text-muted)}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-alpha-15)}.form-input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--color-surface-alt) inset;-webkit-text-fill-color:var(--color-text);caret-color:var(--color-text);transition:background-color 5000s ease-in-out}.form-input:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 1000px var(--color-surface-alt) inset;-webkit-text-fill-color:var(--color-text);caret-color:var(--color-text);transition:background-color 5000s ease-in-out}.form-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--color-surface-alt) inset;-webkit-text-fill-color:var(--color-text);caret-color:var(--color-text);transition:background-color 5000s ease-in-out}.form-row{gap:var(--space-md);display:flex}.form-row>*{flex:1}.form-checkbox{align-items:center;gap:var(--space-md);cursor:pointer;padding:var(--space-md) var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:44px;transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);display:flex}.form-checkbox:hover{border-color:var(--color-text-muted)}.form-checkbox:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-alpha-04)}.form-checkbox input[type=checkbox]{appearance:none;border:2px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;width:20px;height:20px;transition:all var(--duration-fast) var(--ease-out);background:var(--color-surface);flex-shrink:0;position:relative}.form-checkbox input[type=checkbox]:checked{background:var(--color-primary);border-color:var(--color-primary)}.form-checkbox input[type=checkbox]:checked:after{content:"";border:solid var(--color-text-inverse);border-width:0 2px 2px 0;width:6px;height:11px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.form-checkbox span{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);-webkit-user-select:none;user-select:none}.form-actions{gap:var(--space-md);margin-top:var(--space-lg);display:flex}.form-error{font-size:var(--text-sm);color:var(--color-danger);animation:shake var(--duration-normal) var(--ease-out)}.alert{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500}.alert--error{margin-top:var(--space-md);background:color-mix(in srgb, var(--color-danger) 12%, transparent);border:1px solid color-mix(in srgb, var(--color-danger) 30%, transparent);color:var(--color-danger);animation:shake var(--duration-normal) var(--ease-out)}.password-checklist{margin:var(--space-sm) 0 var(--space-md);gap:var(--space-xs);font-size:var(--text-sm);flex-direction:column;padding:0;list-style:none;display:flex}.password-checklist li{align-items:center;gap:var(--space-xs);transition:color var(--duration-fast) var(--ease-out);display:flex}.password-checklist .check-pass{color:var(--color-success)}.password-checklist .check-fail{color:var(--color-text-muted)}.password-checklist .check-error{color:var(--color-danger)}.auth-page{min-height:100dvh;padding:var(--space-xl);animation:fadeIn var(--duration-slow) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:380px}.auth-hero{color:var(--color-primary-bright);margin-bottom:var(--space-lg);justify-content:center;display:flex}.auth-title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-bold);text-align:center;margin-bottom:var(--space-3xl);letter-spacing:-.03em}.input-icon-wrap{position:relative}.input-icon{left:var(--space-lg);color:var(--color-text-muted);font-size:var(--text-sm);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.form-input--icon{padding-left:2.75rem}.auth-title span{color:var(--color-primary-bright)}.auth-footer{text-align:center;margin-top:var(--space-xl);font-size:var(--text-sm);color:var(--color-text-muted)}.auth-footer a{color:var(--color-primary-bright);font-weight:var(--weight-semibold);transition:opacity var(--duration-fast)}.auth-footer a:hover{opacity:.8}.auth-title{text-align:center;font-size:var(--text-xl);margin-bottom:var(--space-xs)}.auth-subtitle{text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-lg)}.form-label-row{justify-content:space-between;align-items:baseline;display:flex}.forgot-link{font-size:var(--text-sm);color:var(--color-text-muted);transition:color var(--duration-fast)}.forgot-link:hover{color:var(--color-primary-bright)}.forgot-success{text-align:center;align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.forgot-success-icon{color:var(--color-primary-bright);font-size:3rem}.forgot-success h2{font-size:var(--text-xl)}.forgot-success p{font-size:var(--text-sm);color:var(--color-text-muted)}.section{margin-top:var(--space-2xl)}.section--flush{margin-top:var(--space-lg);margin-bottom:var(--space-xl)}.section--flush:last-of-type{margin-bottom:0}.section__header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.section__title{font-size:var(--text-sm);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.session-banner{align-items:center;gap:var(--space-lg);padding:var(--space-lg);background:linear-gradient(135deg, var(--color-primary-alpha-10) 0%, var(--color-primary-alpha-04) 100%);border:1px solid var(--color-primary-alpha-15);border-radius:var(--radius-lg);margin-bottom:var(--space-xl);display:flex}.session-banner__icon{background:var(--color-primary-bright);width:44px;height:44px;color:var(--color-text-inverse);border-radius:var(--radius-md);font-size:var(--text-lg);flex-shrink:0;justify-content:center;align-items:center;display:flex}.session-banner__text{flex:1}.session-banner__label{font-size:var(--text-sm);color:var(--color-text-muted)}.session-banner__action{font-weight:var(--weight-semibold);color:var(--color-primary-bright)}.exercise-icon{border-radius:var(--radius-md);background:var(--color-surface-alt);width:36px;height:36px;color:var(--color-primary-bright);flex-shrink:0;justify-content:center;align-items:center;display:flex}.exercise-item{align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-border);animation:slideUp var(--duration-normal) var(--ease-out) both;display:flex}.exercise-item:last-child{border-bottom:none}.exercise-info{flex:1;min-width:0}.exercise-name{font-weight:var(--weight-semibold);font-size:var(--text-base)}.exercise-meta{font-size:var(--text-sm);color:var(--color-text-muted);gap:var(--space-sm);flex-wrap:wrap;margin-top:2px;display:flex}.exercise-meta span{align-items:center;gap:3px;display:inline-flex}.rest-dialog-overlay{z-index:300;background:var(--color-overlay);-webkit-backdrop-filter:blur(12px);animation:fadeIn var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.rest-dialog{background:var(--color-dialog-bg);border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-xl) var(--space-lg);width:min(320px, calc(100vw - var(--space-xl) * 2));text-align:center;animation:scaleIn var(--duration-normal) var(--ease-out);border:1px solid #fbbf244d;box-shadow:0 8px 32px #0003}@keyframes scaleIn{0%{transform:translate(-50%)scaleX(0)}to{transform:translate(-50%)scaleX(1)}}.rest-dialog__title{font-size:var(--text-lg);font-weight:var(--weight-bold);margin-bottom:var(--space-lg);color:var(--color-accent-bright)}.rest-ring{width:128px;height:128px;margin:0 auto var(--space-lg);position:relative}.rest-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.rest-ring__track{fill:none;stroke:#fbbf2426;stroke-width:6px}.rest-ring__fill{fill:none;stroke:var(--color-accent-bright);stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.rest-ring__time{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-accent-bright);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.rest-dialog__hint{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-lg)}.rest-dialog__btn{width:100%;padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-accent-bright);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:#fbbf241a;border:1px solid #fbbf244d}.rest-dialog__btn:hover{background:#fbbf2433}.rest-inline{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);margin-top:var(--space-md);background:#fbbf2414;border:1px solid #fbbf2433;display:flex}.rest-inline__icon{color:var(--color-accent-bright)}.rest-inline__text{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-accent-bright);flex:1}.workout-header{margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.workout-progress{font-size:var(--text-sm);color:var(--color-text-muted)}.workout-progress span{font-family:var(--font-display);color:var(--color-accent-bright);font-weight:var(--weight-bold)}.exercise-stack{min-height:200px;margin-bottom:var(--space-lg);position:relative}.game-card{--card-color:var(--color-primary-bright);border-radius:var(--radius-xl);background:var(--color-surface);border:2px solid var(--color-border);box-shadow:var(--shadow-md);transition:transform var(--duration-slow) var(--ease-out), opacity var(--duration-slow) var(--ease-out), box-shadow var(--duration-slow) var(--ease-out);will-change:transform, opacity;position:absolute;top:0;left:0;right:0;overflow:hidden}.game-card--done{opacity:0;pointer-events:none;transform:translate(-30%)scale(.9)}.game-card--next-1{z-index:5;opacity:.55;pointer-events:none;background:var(--color-surface-alt);transform:translate(8px)translateY(4px)scale(.96)}.game-card--next-2{z-index:4;opacity:.3;pointer-events:none;background:var(--color-surface-alt);transform:translate(16px)translateY(8px)scale(.92)}.game-card--next-3{z-index:3;opacity:0;pointer-events:none;transform:translate(24px)translateY(12px)scale(.88)}.game-card--active{z-index:10;opacity:1;background:linear-gradient(135deg, var(--card-color), var(--color-accent-bright), var(--card-color));box-shadow:0 8px 32px #0000004d, 0 0 40px color-mix(in srgb, var(--card-color) 20%, transparent);animation:gameCardDeal var(--duration-slow) var(--ease-spring);border:none;padding:2px;position:relative;transform:translate(0)scale(1)}.game-card--active .game-card__inner{background:var(--color-surface);border-radius:calc(var(--radius-xl) - 2px);overflow:hidden}.game-card__inner{border-radius:var(--radius-xl);overflow:hidden}.game-card__topbar{padding:var(--space-sm) var(--space-md);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.game-card--active .game-card__topbar{background:linear-gradient(90deg, color-mix(in srgb, var(--card-color) 12%, transparent), transparent);border-bottom-color:color-mix(in srgb, var(--card-color) 20%, transparent)}.game-card__number{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text-muted);letter-spacing:.08em}.game-card--active .game-card__number{color:var(--card-color)}.game-card__type{padding:2px var(--space-sm);border-radius:var(--radius-full);font-family:var(--font-mono);font-size:.625rem;font-weight:var(--weight-bold);letter-spacing:.1em;text-transform:uppercase;background:color-mix(in srgb, var(--card-color) 15%, transparent);color:var(--card-color);border:1px solid color-mix(in srgb, var(--card-color) 30%, transparent);align-items:center;gap:4px;display:inline-flex}.game-card__type-dot{background:currentColor;border-radius:50%;width:5px;height:5px}.game-card--active .game-card__type-dot{background:var(--color-primary-bright)}.game-card__art{padding:var(--space-xl) 0 var(--space-md);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex;position:relative}.game-card__art:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--card-color) 12%, transparent), transparent 70%);pointer-events:none;border-radius:50%;width:96px;height:96px;position:absolute}.game-card--active .game-card__art:before{background:radial-gradient(circle, color-mix(in srgb, var(--card-color) 25%, transparent), transparent 70%);animation:3s ease-in-out infinite alternate artGlow}.game-card__art-frame{background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;display:flex;position:relative}.game-card--active .game-card__art-frame{background:linear-gradient(135deg, var(--color-surface-alt), color-mix(in srgb, var(--card-color) 8%, transparent));border-color:color-mix(in srgb, var(--card-color) 40%, transparent);box-shadow:0 0 0 4px color-mix(in srgb, var(--card-color) 8%, transparent), 0 0 16px color-mix(in srgb, var(--card-color) 12%, transparent)}.game-card__art-frame svg{width:36px;height:36px;color:var(--color-text-muted)}.game-card--active .game-card__art-frame svg{color:var(--card-color);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--card-color) 40%, transparent))}.game-card__title-area{padding:0 var(--space-lg) var(--space-sm);text-align:center;-webkit-user-select:none;user-select:none}.game-card__name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:var(--leading-tight)}.game-card__divider{height:1px;margin:0 var(--space-lg);background:var(--color-border)}.game-card--active .game-card__divider{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--card-color) 40%, transparent), transparent)}.game-card__stats{padding:var(--space-md) var(--space-lg);-webkit-user-select:none;user-select:none;display:flex}.game-card__stat{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex;position:relative}.game-card__stat+.game-card__stat:before{content:"";background:var(--color-border);width:1px;height:60%;position:absolute;top:20%;left:0}.game-card__stat-label{font-family:var(--font-mono);font-size:.5625rem;font-weight:var(--weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted)}.game-card__stat-value{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--weight-black);font-variant-numeric:tabular-nums;line-height:1}.game-card--active .game-card__stat:first-child .game-card__stat-value{color:var(--card-color)}.game-card__body{padding:var(--space-md) var(--space-lg) var(--space-lg);border-top:1px solid var(--color-border);margin-top:var(--space-xs)}.game-card--active .game-card__body{border-top-color:color-mix(in srgb, var(--card-color) 15%, transparent)}.game-card__body .form-input{min-height:56px;font-size:var(--text-lg);font-family:var(--font-display);font-weight:var(--weight-bold);text-align:center}.game-card__set-label{font-size:var(--text-sm);color:var(--color-text-muted);margin:var(--space-md) 0 var(--space-sm);font-variant-numeric:tabular-nums}.game-card__set-label strong{font-family:var(--font-display);color:var(--card-color)}@keyframes gameCardDeal{0%{opacity:0;transform:translate(48px)translateY(-8px)rotate(3deg)scale(.95)}to{opacity:1;transform:translate(0)translateY(0)rotate(0)scale(1)}}@keyframes artGlow{0%{opacity:.6;transform:scale(.95)}to{opacity:1;transform:scale(1.05)}}.done-pills{gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.done-pill{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);animation:fadeIn var(--duration-normal) var(--ease-out);background:#22c55e1a;display:inline-flex}[data-theme=dark] .done-pill{background:#34d3991f}.done-pill__check{color:var(--color-success);font-weight:var(--weight-bold)}.card-nav{justify-content:center;align-items:center;gap:var(--space-xl);margin-bottom:var(--space-lg);display:flex}.card-nav__btn{border-radius:var(--radius-full);background:var(--color-surface-alt);border:1px solid var(--color-border);width:44px;height:44px;color:var(--color-text);font-size:var(--text-base);transition:all var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex}.card-nav__btn:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-primary)}.card-nav__btn:active:not(:disabled){transform:scale(.92)}.card-nav__btn:disabled{opacity:.25;cursor:not-allowed}.card-nav__indicator{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:center;min-width:3rem}.set-row{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-surface-alt);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-xs);animation:slideUp var(--duration-fast) var(--ease-out);display:flex}.set-row__number{font-weight:var(--weight-bold);color:var(--color-primary-bright);min-width:1.2rem}.set-row__detail{flex:1}.set-row__failure{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-danger);margin-left:var(--space-xs)}.set-row__check{color:var(--color-success)}.btn-failure-toggle{border:2px solid var(--color-border);border-radius:var(--radius-md);width:44px;color:var(--color-text-muted);font-size:var(--text-lg);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:all .15s;display:flex}.btn-failure-toggle:hover{border-color:var(--color-danger);color:var(--color-danger)}.btn-failure-toggle--active{border-color:var(--color-danger);background:var(--color-danger);color:#fff}.form-input--failure{box-shadow:0 0 0 1px var(--color-danger);animation:.3s shake;border-color:var(--color-danger)!important}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.metric{font-variant-numeric:tabular-nums}.metric__value{font-size:var(--text-xl);font-weight:var(--weight-black);color:var(--color-primary-bright);line-height:var(--leading-tight)}.metric__label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.log-entry{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-surface-alt);border-radius:var(--radius-md);font-size:var(--text-sm);animation:slideUp var(--duration-normal) var(--ease-out) both;display:flex}.log-entry+.log-entry{margin-top:var(--space-sm)}.log-entry__set{font-weight:var(--weight-bold);color:var(--color-primary-bright);min-width:1.5rem}.log-entry__name{font-weight:var(--weight-medium);flex:1}.log-entry__detail{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.history-item{border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-fast) var(--ease-out);overflow:hidden}.history-item+.history-item{margin-top:var(--space-md)}.history-item--expanded{box-shadow:var(--shadow-md);border-left:3px solid var(--color-primary-bright)}.history-header{padding:var(--space-lg);cursor:pointer;align-items:center;gap:var(--space-md);transition:background var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;display:flex}.history-header:hover{background:var(--color-surface-alt)}.history-header:active{background:var(--color-surface-hover)}.history-header__info{flex:1}.history-header__name{font-weight:var(--weight-semibold)}.history-header__date{font-size:var(--text-sm);color:var(--color-text-muted)}.history-header__chevron{color:var(--color-text-muted);transition:transform var(--duration-normal) var(--ease-spring)}.history-item--expanded .history-header__chevron{transform:rotate(180deg)}.history-body{padding:var(--space-sm) var(--space-lg) var(--space-lg);animation:expandDown var(--duration-normal) var(--ease-out)}.session-stats{gap:var(--space-md);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.session-stats__item{align-items:center;gap:var(--space-xs);font-size:var(--text-xs);color:var(--color-text-muted);display:flex}.session-stats__value{font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text)}.chart-headline{margin-bottom:var(--space-md)}.chart-headline__row{align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.chart-headline__value{font-size:var(--text-2xl);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;font-family:var(--font-display)}.chart-headline__unit{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.chart-headline__trend{align-items:center;gap:var(--space-xs);font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:2px var(--space-sm);border-radius:var(--radius-sm);display:inline-flex}.chart-headline__trend--up{color:var(--color-success);background:#22c55e1a}.chart-headline__trend--down{color:var(--color-text-muted);background:#a8a29e1a}.chart-headline__best{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-xs)}.exercise-group{margin-top:var(--space-md)}.exercise-group:first-child{margin-top:0}.exercise-group__name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-primary-bright,var(--color-primary));padding-bottom:var(--space-xs);margin-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.exercise-group__sets{flex-direction:column;gap:2px;display:flex}.toggle-group{background:var(--color-surface-alt);border-radius:var(--radius-md);gap:3px;padding:3px;display:flex}.toggle-btn{padding:var(--space-sm) var(--space-lg);border-radius:calc(var(--radius-md) - 2px);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);transition:all var(--duration-fast) var(--ease-out);text-align:center;flex:1}.toggle-btn--active{background:var(--color-surface);color:var(--color-primary);font-weight:var(--weight-semibold);box-shadow:var(--shadow-sm)}.pill-group{gap:var(--space-sm);flex-wrap:wrap;display:flex}.pill-btn{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full,999px);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);background:var(--color-surface-alt);cursor:pointer;transition:all var(--duration-fast) ease;border:1px solid #0000}.pill-btn:hover{color:var(--color-text)}.pill-btn--active{color:var(--color-primary);border-color:var(--color-primary);font-weight:var(--weight-semibold);background:#6366f126}.chart-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-sm) var(--space-sm) 0;margin-top:var(--space-lg)}.pagination{justify-content:center;align-items:center;gap:var(--space-lg);margin-top:var(--space-xl);display:flex}.pagination__info{font-size:var(--text-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.empty{text-align:center;padding:var(--space-3xl) var(--space-lg);color:var(--color-text-muted)}.empty__icon{font-size:var(--text-3xl);margin-bottom:var(--space-lg);color:var(--color-primary-dim);opacity:.6}.empty__text{font-size:var(--text-base)}.badge{align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);background:var(--color-surface-alt);color:var(--color-text-muted);display:inline-flex}.badge--primary{background:var(--color-primary-alpha-15);color:var(--color-primary-bright)}.badge--success{color:var(--color-success);background:#22c55e1f}.badge--accent{color:var(--color-accent);background:#fbbf241f}.badge--danger{color:var(--color-danger);background:#ef44441f}.divider{background:var(--color-border);height:1px;margin:var(--space-xl) 0}.loader{min-height:200px;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.loader:after{content:"";border:3px solid var(--color-border);border-top-color:var(--color-primary-bright);width:24px;height:24px;margin-left:var(--space-md);border-radius:50%;animation:.6s linear infinite spin}.stagger{gap:var(--space-md);flex-direction:column;display:flex}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:40ms}.stagger>:nth-child(3){animation-delay:80ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.16s}.stagger>:nth-child(6){animation-delay:.2s}.stagger>:nth-child(7){animation-delay:.24s}.stagger>:nth-child(8){animation-delay:.28s}.stagger>:nth-child(9){animation-delay:.32s}.stagger>:nth-child(10){animation-delay:.36s}.exercise-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.exercise-list .exercise-item{padding:var(--space-md) var(--space-lg)}.exercise-list .exercise-item:last-child{border-bottom:none}.inline-form{background:var(--color-surface-alt);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);animation:slideDown var(--duration-normal) var(--ease-out)}.inline-form+.inline-form{margin-top:var(--space-md)}.picker-area{margin-top:var(--space-xl)}.picker-search{margin-bottom:var(--space-md)}.picker-scroll{max-height:320px;overflow-y:auto}.picker-group{margin-bottom:var(--space-md)}.picker-group__label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.picker-item{min-height:36px}.picker-selected{margin-bottom:var(--space-md)}.picker-selected__name{font-weight:var(--weight-semibold)}.picker-selected__category{font-size:var(--text-sm);color:var(--color-text-muted)}.picker-empty{color:var(--color-text-muted);font-size:var(--text-sm);text-align:center;padding:var(--space-lg)}.picker-action{margin-top:var(--space-sm)}.cardio-item{align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);animation:slideUp var(--duration-normal) var(--ease-out) both;display:flex}.cardio-item+.cardio-item{margin-top:var(--space-md)}.cardio-item__info{flex:1}.cardio-item__icon{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-accent);background:#fbbf241a;flex-shrink:0;justify-content:center;align-items:center;display:flex}.cardio-item__activity{font-weight:var(--weight-semibold)}.cardio-item__meta{font-size:var(--text-sm);color:var(--color-text-muted);gap:var(--space-sm);flex-wrap:wrap;margin-top:2px;display:flex}.workout-complete{text-align:center;animation:fadeIn var(--duration-slow) var(--ease-out)}.workout-complete__check{width:72px;height:72px;margin:0 auto var(--space-xl);background:var(--color-primary-bright);border-radius:var(--radius-full);animation:checkBounce .6s var(--ease-spring) .2s both;justify-content:center;align-items:center;display:flex}.workout-complete__check svg{width:32px;height:32px}.workout-complete__check svg path{stroke:var(--color-text-inverse);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke-dasharray:30;stroke-dashoffset:30px;animation:drawCheck .4s var(--ease-out) .6s forwards}.workout-complete__title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-lg)}.workout-complete__stats{justify-content:center;gap:var(--space-xl);margin-bottom:var(--space-2xl);display:flex}.workout-complete__stat{text-align:center}.workout-complete__stat-value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-primary-bright);line-height:var(--leading-tight)}.workout-complete__stat-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}@keyframes checkBounce{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes drawCheck{to{stroke-dashoffset:0}}.feedback-card{border-left:3px solid var(--color-accent);text-align:left}.feedback-card__icon{color:var(--color-accent-bright)}.stat-card--fire .stat-card__value{color:var(--color-warning)}.stat-card .streak-icon{margin-left:var(--space-xs);vertical-align:middle;font-size:.6em;animation:1.5s ease-in-out infinite flicker;display:inline-block;color:#f97316!important}@keyframes flicker{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.stat-card--risk{animation:2s ease-in-out infinite streakPulse}@keyframes streakPulse{0%,to{box-shadow:0 0 #eab30800}50%{box-shadow:0 0 0 4px #eab30840}}.set-row--new{animation:setPulse .4s var(--ease-spring)}@keyframes setPulse{0%{opacity:0;transform:scale(.95)}50%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes expandDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}@keyframes spin{to{transform:rotate(360deg)}}.back-link{margin-bottom:var(--space-md);display:inline-flex}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mt-2xl{margin-top:var(--space-2xl)}.mb-md{margin-bottom:var(--space-md)}.dialog-overlay{z-index:300;padding:var(--space-xl);background:var(--color-overlay-heavy);-webkit-backdrop-filter:blur(4px);animation:fadeIn var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:340px;padding:var(--space-xl);box-shadow:var(--shadow-lg);animation:dialogSlideUp var(--duration-normal) var(--ease-spring)}.dialog__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);margin-bottom:var(--space-sm)}.dialog__description{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-xl);line-height:1.5}.dialog__actions{gap:var(--space-sm);flex-direction:column;display:flex}@keyframes dialogSlideUp{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
