:root{color-scheme:light;--color-bg: #f0f0f5;--color-surface: #fafafe;--color-surface-raised: #ffffff;--color-surface-hover: #f5f5fa;--color-text: #1a1a2e;--color-text-secondary: rgba(26, 26, 46, .7);--color-text-tertiary: rgba(26, 26, 46, .45);--color-border: rgba(0, 0, 0, .1);--color-shadow: rgba(0, 0, 0, .08);--color-accent: #e63946;--color-accent-light: rgba(230, 57, 70, .1);--color-success: #4caf50;--color-success-light: rgba(76, 175, 80, .1);--color-warning: #ff9800;--color-warning-light: rgba(255, 152, 0, .1);--color-danger: #ef5350;--color-danger-light: rgba(239, 83, 80, .1);--font-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1.0625rem;--fs-lg: 1.25rem;--fs-xl: 1.5rem;--fs-2xl: 2rem;--fs-3xl: 2.75rem;--fs-weight: 3.5rem;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--radius-pill: 100px;--shadow-sm: 0 2px 8px var(--color-shadow);--shadow-md: 0 4px 20px var(--color-shadow);--shadow-lg: 0 8px 40px var(--color-shadow);--transition: .2s ease;--nav-height: 4.5rem;--tap-target: 48px}[data-theme=dark]{color-scheme:dark;--color-bg: #0f0f1a;--color-surface: #1a1a2e;--color-surface-raised: #232340;--color-surface-hover: #2a2a4a;--color-text: #f0f0f5;--color-text-secondary: rgba(240, 240, 245, .7);--color-text-tertiary: rgba(240, 240, 245, .45);--color-border: rgba(255, 255, 255, .1);--color-shadow: rgba(0, 0, 0, .4);--color-accent-light: rgba(230, 57, 70, .15);--color-success-light: rgba(76, 175, 80, .15);--color-warning-light: rgba(255, 152, 0, .15);--color-danger-light: rgba(239, 83, 80, .15)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}html,body{overflow-x:hidden}body{font-family:var(--font-body);font-size:var(--fs-base);color:var(--color-text);background:var(--color-bg);line-height:1.5;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}#root{min-height:100dvh}a{color:var(--color-accent);text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font:inherit;color:inherit}.card{background:var(--color-surface-raised);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.tap-target{min-height:var(--tap-target);min-width:var(--tap-target);display:flex;align-items:center;justify-content:center}.page{padding:var(--space-md);padding-bottom:calc(var(--nav-height) + var(--space-xl));max-width:480px;margin:0 auto}.weight-display{font-size:var(--fs-weight);font-weight:900;letter-spacing:-.02em;line-height:1;color:var(--color-text)}.weight-unit{font-size:var(--fs-lg);font-weight:600;color:var(--color-text-tertiary);margin-left:var(--space-xs)}.auth-gate{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-bg);padding:var(--space-md)}.auth-card{background:var(--color-surface-raised);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-xl);text-align:center;max-width:440px;width:calc(100% - var(--space-md) * 2);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center}.auth-logo{width:72px;height:72px;border-radius:var(--radius-md);margin-bottom:var(--space-md)}.auth-title{font-size:var(--fs-2xl);font-weight:900;letter-spacing:-.02em;margin-bottom:var(--space-xs)}.auth-subtitle{font-size:var(--fs-base);color:var(--color-text-tertiary);margin-bottom:var(--space-lg)}.auth-illustration{width:100%;max-width:320px;border-radius:var(--radius-md);margin-bottom:var(--space-xl);opacity:.5;mix-blend-mode:multiply}.auth-btn-container{display:flex;justify-content:center}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-height);display:flex;align-items:center;justify-content:space-around;background:var(--color-surface);border-top:1px solid var(--color-border);z-index:50;padding-bottom:env(safe-area-inset-bottom,0)}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--color-text-tertiary);font-size:.625rem;font-weight:500;padding:var(--space-sm);min-width:56px;text-transform:uppercase;letter-spacing:.05em;transition:var(--transition)}.nav-item.active{color:var(--color-accent)}.nav-icon-wrap{position:relative;display:flex;align-items:center;justify-content:center}.nav-item-start{margin-top:-16px}.nav-start-btn{width:52px;height:52px;border-radius:50%;background:var(--color-accent);color:#fff;font-weight:900;font-size:var(--fs-base);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #e6394666;letter-spacing:.05em}.nav-item-start.active .nav-start-btn{box-shadow:0 4px 20px #e6394699}.sync-spinner{position:absolute;top:-4px;right:-6px;width:8px;height:8px;border:2px solid var(--color-accent);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.sync-badge{position:absolute;top:-6px;right:-8px;background:var(--color-accent);color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px}@keyframes spin{to{transform:rotate(360deg)}}.dashboard{padding-top:var(--space-xl)}.dash-header{margin-bottom:var(--space-xl)}.dash-title{font-size:var(--fs-2xl);font-weight:900;letter-spacing:-.02em}.dash-subtitle{font-size:var(--fs-sm);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);margin-bottom:var(--space-xl)}.dash-stat{padding:var(--space-md);text-align:center}.dash-stat-value{display:block;font-size:var(--fs-xl);font-weight:800;color:var(--color-accent)}.dash-stat-label{font-size:var(--fs-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.dash-next{padding:var(--space-lg);margin-bottom:var(--space-xl)}.dash-next-title{font-size:var(--fs-lg);font-weight:700;margin-bottom:var(--space-xs)}.dash-next-type{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-sm);color:var(--color-accent);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-md)}.dash-switch-btn{font-size:var(--fs-xs);font-weight:600;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);text-transform:none;letter-spacing:normal}.dash-switch-btn:active{background:var(--color-surface-hover)}.dash-next-exercises{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.dash-next-ex{display:flex;justify-content:space-between;align-items:center}.dash-next-ex-name{font-weight:600}.dash-next-ex-detail{font-size:var(--fs-sm);color:var(--color-text-secondary);font-weight:500}.dash-deload-notice{display:flex;gap:var(--space-sm);padding:var(--space-md);background:var(--color-accent-light);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.dash-deload-icon{font-size:var(--fs-lg);flex-shrink:0;line-height:1.4}.dash-deload-text{font-size:var(--fs-sm);color:var(--color-text-secondary);line-height:1.4}.dash-deload-text strong{display:block;color:var(--color-text);margin-bottom:4px}.dash-deload-text p{margin-bottom:4px}.dash-deload-hint{color:var(--color-text-tertiary);font-size:var(--fs-xs)}.dash-start-btn{width:100%;background:var(--color-accent);color:#fff;font-size:var(--fs-lg);font-weight:700;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);min-height:56px;box-shadow:0 4px 16px #e639464d;transition:var(--transition)}.dash-start-btn:active{transform:scale(.98)}.dash-section-title{font-size:var(--fs-lg);font-weight:700;margin-bottom:var(--space-md)}.dash-recent{margin-bottom:var(--space-xl)}.dash-workout-row{padding:var(--space-md);margin-bottom:var(--space-sm)}.dash-workout-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.dash-workout-type{font-weight:700}.dash-workout-date{font-size:var(--fs-sm);color:var(--color-text-tertiary)}.dash-workout-exercises{display:flex;gap:var(--space-sm);flex-wrap:wrap}.dash-ex-badge{font-size:var(--fs-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-success-light);color:var(--color-success)}.dash-ex-badge.incomplete{background:var(--color-accent-light);color:var(--color-accent)}.dash-workout-duration{display:block;font-size:var(--fs-xs);color:var(--color-text-tertiary);margin-top:var(--space-sm)}.plate-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:150;padding:var(--space-md)}.plate-modal{background:var(--color-surface-raised);border-radius:var(--radius-xl);padding:var(--space-lg);max-width:400px;width:100%;border:1px solid var(--color-border)}.plate-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.plate-header-left{display:flex;flex-direction:column}.plate-exercise{font-size:var(--fs-lg);font-weight:700}.plate-sets{font-size:var(--fs-sm);color:var(--color-text-tertiary);font-weight:600}.plate-weight-stepper{display:flex;align-items:center;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.plate-wt-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-lg);font-weight:700;color:var(--color-text-secondary);background:var(--color-surface)}.plate-wt-btn:active{background:var(--color-surface-hover)}.plate-total{font-size:var(--fs-lg);font-weight:900;color:var(--color-accent);min-width:64px;text-align:center;padding:0 var(--space-xs)}.plate-total.changed{color:var(--color-success)}.plate-barbell-wrap{background:var(--color-bg);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-sm);margin-bottom:var(--space-lg);overflow-x:auto;scrollbar-width:none}.plate-barbell-wrap::-webkit-scrollbar{display:none}.plate-barbell{display:flex;align-items:center;justify-content:center;min-height:120px}.plate-sleeve{display:flex;align-items:center;gap:2px}.plate-sleeve-left,.plate-sleeve-right{flex-direction:row}.plate-bar-center{width:60px;height:10px;background:linear-gradient(180deg,#888,#666 40%,#555);border-radius:2px;flex-shrink:0;position:relative}.plate-bar-knurl{position:absolute;inset:1px 10px;background:repeating-linear-gradient(90deg,transparent 0px,transparent 2px,rgba(255,255,255,.1) 2px,rgba(255,255,255,.1) 3px);border-radius:1px}.plate-collar{width:8px;height:18px;background:linear-gradient(180deg,#999,#777);border-radius:2px;flex-shrink:0}.plate-collar-end{width:6px;height:14px;background:linear-gradient(180deg,#888,#666);border-radius:2px 0 0 2px;flex-shrink:0}.plate-sleeve-right .plate-collar-end{border-radius:0 2px 2px 0}.plate-disc{border-radius:3px;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px #0003,1px 0 2px #0000004d}.plate-disc-label{font-size:7px;font-weight:800;color:#ffffffe6;writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:-.5px;text-shadow:0 1px 2px rgba(0,0,0,.4);white-space:nowrap}.plate-warning{background:var(--color-warning-light);color:var(--color-warning);font-size:var(--fs-sm);font-weight:600;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);text-align:center}.plate-list{margin-bottom:var(--space-lg)}.plate-list-header{font-size:var(--fs-sm);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.05em}.plate-list-empty{font-size:var(--fs-base);color:var(--color-text-tertiary);padding:var(--space-sm) 0}.plate-list-items{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.plate-list-item{display:flex;align-items:center;gap:var(--space-sm);background:var(--color-bg);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-pill);border:1px solid var(--color-border)}.plate-list-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.plate-list-weight{font-size:var(--fs-sm);font-weight:700}.plate-list-count{font-size:var(--fs-sm);font-weight:600;color:var(--color-text-tertiary)}.plate-close-btn{width:100%;background:var(--color-surface);color:var(--color-text-secondary);font-weight:600;font-size:var(--fs-base);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border);min-height:var(--tap-target)}.plate-close-btn:active{background:var(--color-surface-hover)}.ws-overlay{position:fixed;inset:0;background:var(--color-bg);z-index:200;overflow-y:auto;display:flex;flex-direction:column;align-items:center}.ws-content{width:100%;max-width:420px;padding:var(--space-xl) var(--space-md);display:flex;flex-direction:column;gap:var(--space-lg)}.ws-hero{text-align:center;padding:var(--space-xl) 0}.ws-trophy{display:flex;align-items:center;justify-content:center;gap:var(--space-md)}.ws-laurel-left,.ws-laurel-right{font-size:3rem;line-height:1}.ws-laurel-right{transform:scaleX(-1)}.ws-hero-text{display:flex;flex-direction:column}.ws-hero-label{font-size:var(--fs-lg);font-weight:700;color:var(--color-text-secondary)}.ws-hero-number{font-size:var(--fs-3xl);font-weight:900;letter-spacing:-.02em;color:var(--color-text)}.ws-stats{display:flex;justify-content:space-around;text-align:center;gap:var(--space-md)}.ws-stat{display:flex;flex-direction:column;gap:2px}.ws-stat-label{font-size:var(--fs-xs);color:var(--color-text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.ws-stat-value{font-size:var(--fs-xl);font-weight:800}.ws-exercises{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.ws-workout-type{font-size:var(--fs-sm);color:var(--color-text-tertiary);font-weight:600}.ws-exercise{display:flex;flex-direction:column;gap:var(--space-xs)}.ws-ex-header{display:flex;justify-content:space-between;align-items:center}.ws-ex-name{font-weight:700}.ws-ex-detail{font-size:var(--fs-sm);color:var(--color-text-secondary);font-weight:600}.ws-star{margin-left:var(--space-xs);font-size:var(--fs-base)}.ws-set-circles{display:flex;gap:var(--space-sm)}.ws-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:700}.ws-circle.complete{background:var(--color-accent);color:#fff}.ws-circle.failed{background:var(--color-accent);color:#fff;opacity:.7}.ws-circle.skipped{background:var(--color-surface);color:var(--color-text-tertiary);border:1px solid var(--color-border)}.ws-done-btn{width:100%;background:var(--color-accent);color:#fff;font-weight:700;font-size:var(--fs-lg);padding:var(--space-md);border-radius:var(--radius-md);min-height:var(--tap-target)}.active-workout{min-height:100dvh;background:var(--color-bg);display:flex;flex-direction:column}.aw-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);flex-shrink:0}.aw-back-btn{color:var(--color-accent);width:44px;height:44px;border-radius:var(--radius-md)}.aw-header-title{font-size:var(--fs-base);font-weight:700}.aw-finish-btn{color:var(--color-accent);font-weight:700;font-size:var(--fs-base);padding:var(--space-sm) var(--space-md)}.aw-exercises{flex:1;padding:0 var(--space-md);overflow-y:auto;padding-bottom:140px}.aw-cancel-text-btn{display:block;margin:var(--space-xl) auto;color:var(--color-text-tertiary);font-size:var(--fs-sm);font-weight:500;padding:var(--space-sm) var(--space-lg)}.aw-exercise-row{padding:var(--space-md) 0;border-bottom:1px solid var(--color-border)}.aw-exercise-row:last-child{border-bottom:none}.aw-ex-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.aw-ex-name{font-size:var(--fs-base);font-weight:700}.aw-ex-weight{display:flex;align-items:center;gap:2px;font-size:var(--fs-sm);font-weight:600;color:var(--color-text-secondary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.aw-ex-weight:active{background:var(--color-surface-raised)}.aw-ex-weight svg{color:var(--color-text-tertiary)}.aw-tabs{display:flex;border-bottom:2px solid var(--color-border);flex-shrink:0}.aw-tab{flex:1;padding:var(--space-sm) var(--space-md);font-size:var(--fs-sm);font-weight:700;color:var(--color-text-tertiary);text-align:center;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.aw-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.aw-tab-check{color:var(--color-success)}.aw-warmup-circles{display:flex;gap:10px}.aw-warmup-circle{width:56px;height:56px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:none;cursor:pointer;flex-shrink:0;transition:transform .1s ease;background:var(--color-surface-raised);color:var(--color-text-tertiary)}.aw-warmup-circle.current{background:var(--color-surface-raised);color:var(--color-text-secondary);box-shadow:inset 0 0 0 2px var(--color-border)}.aw-warmup-circle.complete{background:var(--color-accent);color:#fff}.aw-warmup-circle.pending{opacity:.25;cursor:default}.aw-warmup-circle:active:not(.pending){transform:scale(.9)}.aw-warmup-circle-reps{font-size:var(--fs-sm);font-weight:800;line-height:1}.aw-warmup-circle-weight{font-size:10px;font-weight:600;line-height:1;margin-top:2px;opacity:.85}.aw-ex-work-weight{font-size:var(--fs-sm);font-weight:600;color:var(--color-text-tertiary)}.aw-start-working-btn{display:block;width:100%;margin-top:var(--space-lg);padding:var(--space-md);background:var(--color-accent);color:#fff;font-weight:700;font-size:var(--fs-base);border-radius:var(--radius-md);text-align:center}.aw-set-circles{display:flex;gap:10px}.aw-circle{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-md);font-weight:800;border:none;cursor:pointer;flex-shrink:0;transition:transform .1s ease;background:var(--color-surface-raised);color:var(--color-text-tertiary)}.aw-circle.current{background:var(--color-surface-raised);color:var(--color-text-secondary);box-shadow:inset 0 0 0 2px var(--color-border)}.aw-circle.complete{background:var(--color-accent);color:#fff}.aw-circle.failed{background:var(--color-accent);color:#fff;opacity:.7}.aw-circle.zero{background:var(--color-surface-raised);color:var(--color-text-tertiary);box-shadow:inset 0 0 0 2px var(--color-danger)}.aw-circle.pending{opacity:.25;cursor:default}.aw-circle:active:not(.pending){transform:scale(.9)}.aw-rest-bar{position:fixed;bottom:var(--nav-height);left:0;right:0;background:var(--color-surface-raised);border-top:1px solid var(--color-border);z-index:40;overflow:hidden}.aw-rest-progress{position:absolute;top:0;left:0;height:100%;background:var(--color-accent-light);transition:width 1s linear;z-index:0}.aw-rest-bar.done .aw-rest-progress{background:var(--color-success-light)}.aw-rest-content{position:relative;z-index:1;display:flex;align-items:center;padding:var(--space-md);gap:var(--space-md)}.aw-rest-time{font-size:var(--fs-xl);font-weight:800;min-width:50px;flex-shrink:0}.aw-rest-bar.done .aw-rest-time{color:var(--color-success)}.aw-rest-hint{font-size:var(--fs-xs);color:var(--color-text-secondary);line-height:1.3}.aw-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-md)}.aw-modal{background:var(--color-surface-raised);border-radius:var(--radius-xl);padding:var(--space-xl);max-width:340px;width:100%;text-align:center}.aw-modal h3{font-size:var(--fs-xl);font-weight:700;margin-bottom:var(--space-sm)}.aw-modal p{color:var(--color-text-secondary);margin-bottom:var(--space-xl)}.aw-modal-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.aw-modal-keep{background:var(--color-accent);color:#fff;font-weight:700;padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--fs-base)}.aw-modal-cancel{color:var(--color-text-tertiary);padding:var(--space-md);font-size:var(--fs-base)}.aw-finish-summary{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md);text-align:left}.aw-finish-ex{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:600;background:var(--color-surface)}.aw-finish-ex.good{color:var(--color-success)}.aw-finish-ex.partial{color:var(--color-accent)}.aw-finish-ex.skipped{color:var(--color-text-tertiary)}.aw-finish-note{font-size:var(--fs-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-md)}.aw-modal-finish{background:var(--color-accent);color:#fff;font-weight:700;padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--fs-base)}.history-title{font-size:var(--fs-2xl);font-weight:900;letter-spacing:-.02em;margin-bottom:var(--space-lg);padding-top:var(--space-md)}.cal-summary{display:flex;align-items:baseline;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-md)}.cal-summary-count{font-size:var(--fs-2xl);font-weight:900;color:var(--color-accent)}.cal-summary-label{font-size:var(--fs-sm);color:var(--color-text-secondary);font-weight:600}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.cal-nav-btn{color:var(--color-accent);width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.cal-nav-title{font-size:var(--fs-base);font-weight:700}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--space-xl)}.cal-day-header{text-align:center;font-size:var(--fs-xs);font-weight:600;color:var(--color-text-tertiary);padding:var(--space-sm) 0}.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:50%;position:relative}.cal-day-num{font-size:var(--fs-sm);font-weight:600;color:var(--color-text-secondary)}.cal-cell.today .cal-day-num{color:var(--color-text);font-weight:800}.cal-cell.today{box-shadow:inset 0 0 0 2px var(--color-border)}.cal-cell.has-workout{background:var(--color-accent);cursor:pointer}.cal-cell.has-workout .cal-day-num{color:#fff;font-weight:700}.cal-cell.has-workout:active{transform:scale(.9)}.cal-cell.has-workout.today{box-shadow:inset 0 0 0 2px #fff6}.wd-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0;margin-bottom:var(--space-md)}.wd-back{color:var(--color-accent);width:44px;height:44px;border-radius:var(--radius-md)}.wd-header-title{font-size:var(--fs-lg);font-weight:700}.wd-header-spacer{width:44px}.wd-delete{color:var(--color-text-tertiary);width:44px;height:44px;border-radius:var(--radius-md)}.wd-delete:active{color:var(--color-danger);background:var(--color-danger-light)}.wd-meta{text-align:center;margin-bottom:var(--space-lg)}.wd-date{font-size:var(--fs-lg);font-weight:700;display:block;margin-bottom:var(--space-md)}.wd-date-editable{display:inline-flex;align-items:center;gap:var(--space-xs);color:inherit;cursor:pointer}.wd-date-editable svg{color:var(--color-text-tertiary)}.wd-date-editable:active{opacity:.7}.wd-date-input-hidden{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.wd-stats{display:flex;justify-content:center;gap:var(--space-2xl)}.wd-stat{display:flex;flex-direction:column;gap:2px}.wd-stat-label{font-size:var(--fs-xs);color:var(--color-text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.wd-stat-value{font-size:var(--fs-xl);font-weight:800}.wd-exercises{display:flex;flex-direction:column;gap:var(--space-md)}.wd-exercise{padding:var(--space-lg)}.wd-ex-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.wd-ex-name{font-weight:700}.wd-ex-detail{font-size:var(--fs-sm);color:var(--color-text-secondary);font-weight:600}.wd-pr-star{margin-left:var(--space-xs);font-size:var(--fs-sm)}.wd-set-circles{display:flex;gap:var(--space-sm)}.wd-circle{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:700}.wd-circle.complete{background:var(--color-accent);color:#fff}.wd-circle.failed{background:var(--color-accent);color:#fff;opacity:.7}.wd-circle.skipped{background:var(--color-surface);color:var(--color-text-tertiary);border:1px solid var(--color-border)}.progress-title{font-size:var(--fs-2xl);font-weight:900;letter-spacing:-.02em;margin-bottom:var(--space-lg);padding-top:var(--space-md)}.progress-empty{padding:var(--space-2xl);text-align:center;color:var(--color-text-tertiary)}.progress-list{display:flex;flex-direction:column;gap:var(--space-md)}.progress-card{padding:var(--space-lg)}.progress-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-md)}.progress-card-left{display:flex;flex-direction:column;gap:2px}.progress-ex-name{font-size:var(--fs-lg);font-weight:700}.progress-ex-info{font-size:var(--fs-xs);color:var(--color-text-tertiary);font-weight:600}.progress-current{display:flex;align-items:baseline;gap:var(--space-xs)}.progress-weight{font-size:var(--fs-2xl);font-weight:900;color:var(--color-accent)}.progress-unit{font-size:var(--fs-sm);color:var(--color-text-tertiary);font-weight:600}.progress-stats{display:flex;gap:var(--space-md);margin-bottom:var(--space-md);padding:var(--space-sm) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.progress-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px}.progress-stat-value{font-size:var(--fs-base);font-weight:800}.progress-stat-label{font-size:var(--fs-xs);color:var(--color-text-tertiary);font-weight:600}.progress-chart{position:relative;margin-bottom:var(--space-xs)}.progress-svg{width:100%;height:auto;display:block}.progress-chart-labels{position:absolute;top:0;right:0;bottom:0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;padding:4px 0}.progress-chart-labels span{font-size:10px;color:var(--color-text-tertiary);font-weight:600;background:var(--color-surface-raised);padding:0 2px;border-radius:2px}.progress-chart-dates{display:flex;justify-content:space-between;margin-top:var(--space-xs)}.progress-chart-dates span{font-size:10px;color:var(--color-text-tertiary);font-weight:600}.progress-single{font-size:var(--fs-sm);color:var(--color-text-secondary);text-align:center;padding:var(--space-md) 0}.settings-title{font-size:var(--fs-2xl);font-weight:900;letter-spacing:-.02em;margin-bottom:var(--space-lg);padding-top:var(--space-md)}.settings-section{padding:var(--space-lg);margin-bottom:var(--space-md)}.settings-section h2{font-size:var(--fs-md);font-weight:700;margin-bottom:var(--space-md)}.settings-section-toggle{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;min-height:var(--tap-target)}.settings-chevron{font-size:var(--fs-sm);color:var(--color-text-tertiary);transition:transform .2s ease}.settings-chevron.open{transform:rotate(180deg)}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border);min-height:var(--tap-target)}.settings-row:last-child{border-bottom:none}.settings-weight{font-weight:700;color:var(--color-accent)}.settings-hint{font-size:var(--fs-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-md)}.settings-info p{font-size:var(--fs-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.settings-btn-secondary{background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--fs-sm);font-weight:600;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.settings-btn-danger{width:100%;background:var(--color-danger-light);color:var(--color-danger);font-weight:600;padding:var(--space-md);border-radius:var(--radius-md);margin-top:var(--space-md);min-height:var(--tap-target)}.settings-danger h2{color:var(--color-danger)}.plate-row-label{display:flex;align-items:center;gap:var(--space-sm)}.plate-color-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.plate-stepper{display:flex;align-items:center;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.plate-stepper-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-lg);font-weight:700;color:var(--color-text-secondary);background:var(--color-surface);transition:var(--transition)}.plate-stepper-btn:active{background:var(--color-surface-hover)}.plate-stepper-value{min-width:56px;text-align:center;font-size:var(--fs-sm);font-weight:700;padding:0 var(--space-xs)}.plate-stepper-value.custom{color:var(--color-accent)}.settings-exercise-block{padding:var(--space-md) 0;border-bottom:1px solid var(--color-border)}.settings-exercise-block:last-child{border-bottom:none}.settings-ex-name{font-size:var(--fs-base);font-weight:700;margin-bottom:var(--space-sm)}.settings-ex-controls{display:flex;flex-direction:column;gap:var(--space-sm)}.settings-ex-row{display:flex;justify-content:space-between;align-items:center}.settings-ex-label{font-size:var(--fs-sm);color:var(--color-text-secondary)}.app{min-height:100dvh;background:var(--color-bg)}.app-content{min-height:100dvh}
