.today-card{margin-top:24px;display:flex;flex-direction:column;gap:12px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px}.today-card-head{display:flex;flex-direction:column;gap:2px}.today-card-day{font-size:14px;color:var(--color-text-secondary)}.today-card-name{font-size:20px;font-weight:600;color:var(--color-text)}.today-start{min-height:var(--touch-min);padding:0 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:16px;cursor:pointer}.today-start:hover{background-color:var(--color-hover)}.today-start:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.today-rest{margin-top:24px;font-size:16px;color:var(--color-text-secondary)}.today-prompts{margin-top:24px}.today-prompts h2{margin-bottom:8px}.today-prompt-list{display:flex;flex-direction:column;gap:8px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px}.today-prompt{font-size:14px;color:var(--color-text-secondary)}.today-others{margin-top:24px}.today-others h2{margin-bottom:8px}.today-list{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.today-row{display:flex;align-items:center;gap:12px;min-height:var(--touch-min);padding:10px 16px;background:none;border:none;border-bottom:1px solid var(--color-border);text-align:left;cursor:pointer}.today-row:last-child{border-bottom:none}.today-row:hover{background-color:var(--color-hover)}.today-row:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.today-row-day{min-width:88px;font-size:14px;color:var(--color-text-secondary)}.today-row-name{font-size:16px;font-weight:500;color:var(--color-text)}.plan-workout{margin-top:24px}.plan-workout h2{margin-bottom:8px}.plan-exercise-list{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.plan-exercise-row{display:flex;flex-direction:column;gap:2px;min-height:var(--touch-min);padding:10px 16px;background:none;border:none;border-bottom:1px solid var(--color-border);text-align:left;cursor:pointer}.plan-exercise-row:last-child{border-bottom:none}.plan-exercise-row:hover{background-color:var(--color-hover)}.plan-exercise-row:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.plan-exercise-name{font-size:16px;font-weight:500;color:var(--color-text)}.plan-exercise-spec{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;color:var(--color-text-secondary)}.plan-tag{padding:1px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:12px;line-height:1.4;color:var(--color-text-secondary)}.chart{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;margin-top:24px;text-align:left}.chart-title{font-size:16px;font-weight:600;color:var(--color-text);margin:0 0 8px}.chart-svg{width:100%;height:auto;display:block}.chart-line{fill:none;stroke:var(--color-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chart-line-average{fill:none;stroke:var(--color-text-secondary);stroke-width:1.5;stroke-dasharray:4 4}.chart-dot{fill:var(--color-accent)}.chart-axis{stroke:var(--color-border);stroke-width:1}.chart-label{fill:var(--color-text-secondary);font-size:11px;font-variant-numeric:tabular-nums}.chart-legend{display:flex;gap:16px;margin-top:12px;flex-wrap:wrap}.chart-legend-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary)}.chart-legend-swatch{width:16px;height:3px;border-radius:2px;background-color:var(--color-accent)}.chart-legend-swatch-average{background-color:transparent;border-top:2px dashed var(--color-text-secondary);border-radius:0}.chart-empty{font-size:14px;color:var(--color-text-secondary);padding:16px 0}.progress{display:flex;flex-direction:column;gap:8px}.progress-section{margin-top:24px}.progress-history{min-height:var(--touch-min);padding:0 12px;display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;cursor:pointer;align-self:flex-start}.progress-history:hover{background-color:var(--color-hover)}.progress-history:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.progress-section-title{font-size:20px;font-weight:600;color:var(--color-text);margin:0 0 8px}.progress-form{display:flex;flex-direction:column;gap:8px;margin-top:16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px}.progress-form-row{display:flex;gap:8px;flex-wrap:wrap}.progress-input{min-height:var(--touch-min);padding:0 12px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;font-variant-numeric:tabular-nums}.progress-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.progress-input-date{width:160px}.progress-input-value{width:96px}.progress-input-type{flex:1;min-width:120px}.progress-add{min-height:var(--touch-min);padding:0 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;cursor:pointer}.progress-add:hover{background-color:var(--color-hover)}.progress-add:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.nutrition{display:flex;flex-direction:column;gap:8px}.nutrition-goal-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:8px}.nutrition-card-title{font-size:20px;font-weight:600;color:var(--color-text);margin:0}.nutrition-goal-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:var(--touch-min)}.nutrition-goal-label{font-size:16px;color:var(--color-text)}.nutrition-goal-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.nutrition-goal-value{font-size:14px;color:var(--color-text);font-variant-numeric:tabular-nums}.nutrition-goal-reached{font-size:13px;color:var(--color-accent)}.nutrition-goal-remaining{font-size:13px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.nutrition-section{margin-top:24px}.nutrition-section-title{font-size:20px;font-weight:600;color:var(--color-text);margin:0 0 8px}.nutrition-form{display:flex;flex-direction:column;gap:8px;margin-top:16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px}.nutrition-form-row{display:flex;gap:8px;flex-wrap:wrap}.nutrition-input{min-height:var(--touch-min);padding:0 12px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;font-variant-numeric:tabular-nums}.nutrition-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.nutrition-input-date{width:160px}.nutrition-input-number{width:96px}.nutrition-goal-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:140px}.nutrition-goal-field-label{font-size:13px;color:var(--color-text-secondary)}.nutrition-goal-field .nutrition-input{width:100%}.nutrition-add{min-height:var(--touch-min);padding:0 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;cursor:pointer}.nutrition-add:hover{background-color:var(--color-hover)}.nutrition-add:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.settings{display:flex;flex-direction:column;gap:8px}.settings-section{margin-top:24px}.settings-section-title{font-size:20px;font-weight:600;color:var(--color-text);margin:0 0 8px}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:var(--touch-min)}.settings-label{font-size:16px;color:var(--color-text)}.settings-theme-toggle{min-height:var(--touch-min);padding:0 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;cursor:pointer}.settings-theme-toggle:hover{background-color:var(--color-hover)}.settings-theme-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.settings-toggle-on{border-color:var(--color-accent);color:var(--color-accent)}.settings-time-input{min-height:var(--touch-min);padding:0 12px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;font-variant-numeric:tabular-nums}.settings-time-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.settings-sync-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:8px}.settings-passphrase{width:100%;min-height:var(--touch-min);padding:0 12px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px}.settings-passphrase:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.settings-sync-actions{display:flex;gap:8px;flex-wrap:wrap}.settings-connect{min-height:var(--touch-min);padding:0 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;cursor:pointer}.settings-connect:hover{background-color:var(--color-hover)}.settings-connect:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.settings-sync-now{min-height:var(--touch-min);padding:0 16px;background-color:var(--color-surface);border:1px solid var(--color-accent);border-radius:var(--radius);color:var(--color-accent);font-size:14px;cursor:pointer}.settings-sync-now:hover{background-color:var(--color-hover)}.settings-sync-now:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.settings-sync-now:disabled{opacity:.5;cursor:default}.settings-connect:disabled{opacity:.5;cursor:default}.settings-export{min-height:var(--touch-min);padding:0 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;cursor:pointer}.settings-export:hover{background-color:var(--color-hover)}.settings-export:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.settings-reset{min-height:var(--touch-min);padding:0 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;cursor:pointer}.settings-reset:hover{background-color:var(--color-hover)}.settings-reset:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.settings-reset:disabled{opacity:.5;cursor:default}.settings-reset-confirm{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--color-border)}.settings-reset-note{font-size:13px;color:var(--color-text-secondary)}.settings-status{font-size:13px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.settings-status-error{color:var(--color-error)}.settings-note{font-size:13px;color:var(--color-text-secondary)}.muscle-map{display:flex;flex-direction:column;align-items:center;gap:12px}.muscle-figures{display:flex;justify-content:center;align-items:flex-start;gap:20px;width:100%;max-width:320px}.muscle-figure{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;min-width:0}.muscle-svg{display:block;width:100%;height:auto}.muscle-figure-label{font-size:12px;color:var(--color-text-secondary)}.muscle-body{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1}.muscle{stroke:var(--color-bg);stroke-width:1}.muscle-idle{fill:var(--color-border)}.muscle-secondary{fill:var(--color-text-secondary);opacity:.55}.muscle-primary{fill:var(--color-accent)}.muscle-legend{display:flex;gap:16px}.muscle-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary)}.muscle-legend-swatch{width:12px;height:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.muscle-legend-swatch-primary{background-color:var(--color-accent)}.muscle-legend-swatch-secondary{background-color:var(--color-text-secondary);opacity:.55}.exercise-back{display:inline-flex;align-items:center;gap:8px;min-height:var(--touch-min);padding:10px 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:16px;cursor:pointer}.exercise-back:hover{background-color:var(--color-hover)}.exercise-back:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.exercise-note{color:var(--color-text-secondary);font-size:14px}.exercise-section{margin-top:24px}.exercise-section h2{margin-bottom:8px}.exercise-list{margin:0;padding-left:20px}.exercise-list li{margin-bottom:4px}.exercise-video{display:block;width:100%;aspect-ratio:16 / 9;border:1px solid var(--color-border);border-radius:var(--radius);background-color:var(--color-surface)}.exercise-images{display:flex;flex-direction:column;gap:8px}.exercise-image{display:block;width:100%;max-width:100%;border:1px solid var(--color-border);border-radius:var(--radius)}.rest-timer{position:fixed;left:0;right:0;bottom:56px;z-index:40;display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;background-color:var(--color-surface);border-top:1px solid var(--color-border);border-radius:0;text-align:left}.rest-timer-count{font-size:28px;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums;min-width:72px;text-align:left}.rest-timer-label{font-size:14px;color:var(--color-text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rest-timer-controls{display:flex;gap:8px;align-items:center}.rest-timer-btn{min-height:var(--touch-min);min-width:var(--touch-min);padding:0 12px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;cursor:pointer;font-variant-numeric:tabular-nums}.rest-timer-btn:hover{background-color:var(--color-hover)}.rest-timer-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.rest-timer-btn-skip{color:var(--color-accent);border-color:var(--color-accent)}.rest-timer-note{font-size:12px;color:var(--color-text-secondary);width:100%}.session{display:flex;flex-direction:column;gap:8px}.session-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.session-title{font-size:28px;font-weight:700;line-height:1.25;color:var(--color-text)}.session-finish{min-height:var(--touch-min);padding:10px 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:16px;cursor:pointer}.session-finish:hover{background-color:var(--color-hover)}.session-finish:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.session-exercise{margin-bottom:24px;padding-top:16px;border-top:1px solid var(--color-border)}.session-exercise-title{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:var(--touch-min);padding:8px 4px;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text);font-size:20px;font-weight:700;line-height:1.3;text-align:left;cursor:pointer}.session-exercise-title:hover{background-color:var(--color-hover)}.session-exercise-title:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.session-exercise-title-text{flex:1}.session-exercise-title-chevron{flex-shrink:0;color:var(--color-text-secondary)}.session-note,.session-suggestion{margin-top:4px;margin-bottom:12px;font-size:14px;color:var(--color-text-secondary)}.session-suggestion-progress{color:var(--color-accent)}.session-set{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:var(--touch-min);padding:8px 0;border-bottom:1px solid var(--color-border)}.session-set-label{min-width:48px;font-size:14px;color:var(--color-text-secondary)}.session-input{min-height:var(--touch-min);padding:10px 12px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-family:inherit;font-size:16px}.session-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.session-input-reps{width:64px;text-align:center;font-variant-numeric:tabular-nums}.session-input-band{width:96px}.session-input-note{flex:1;min-width:120px}.session-input-note::placeholder{color:var(--color-text-secondary)}.session-check{min-height:var(--touch-min);min-width:var(--touch-min);padding:10px 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:16px;cursor:pointer}.session-check:hover{background-color:var(--color-hover)}.session-check:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.session-check-logged{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}.session-check-logged:hover{background-color:var(--color-accent)}.session-side{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:var(--touch-min);padding:8px 0 8px 24px;border-bottom:1px solid var(--color-border)}.session-side-label{min-width:24px;font-size:14px;color:var(--color-text-secondary)}.session-timer-slot{display:flex;align-items:center;justify-content:center;min-height:var(--touch-min);padding:10px 16px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-secondary);font-size:14px}.history{display:flex;flex-direction:column;gap:8px}.history-back{min-height:var(--touch-min);padding:0 12px;display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;cursor:pointer;align-self:flex-start}.history-back:hover{background-color:var(--color-hover)}.history-back:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.history-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}.history-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px}.history-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.history-card-name{font-size:16px;font-weight:600;color:var(--color-text)}.history-card-date{font-size:13px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.history-card-meta{font-size:13px;color:var(--color-text-secondary);margin-top:4px;font-variant-numeric:tabular-nums}.history-card-toggle{min-height:var(--touch-min);padding:0 10px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:13px;cursor:pointer;margin-top:12px}.history-card-toggle:hover{background-color:var(--color-hover)}.history-card-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.history-note{margin-top:12px}.history-note-label{font-size:13px;color:var(--color-text-secondary);display:block;margin-bottom:4px}.history-note-input{width:100%;min-height:var(--touch-min);padding:8px 12px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px}.history-note-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.history-empty{font-size:14px;color:var(--color-text-secondary);padding:16px 0}.session-detail{display:flex;flex-direction:column;gap:8px}.session-detail-back{min-height:var(--touch-min);padding:0 12px;display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:14px;cursor:pointer;align-self:flex-start}.session-detail-back:hover{background-color:var(--color-hover)}.session-detail-back:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.session-detail-exercise-title{font-size:20px;font-weight:700;line-height:1.3;color:var(--color-text);padding:8px 4px}:root,:root[data-theme=dark]{color-scheme:dark;--color-bg: #191919;--color-surface: #202020;--color-hover: #2A2A2A;--color-border: #2F2F2F;--color-text: #EBEBEB;--color-text-secondary: #9B9B9B;--color-accent: #529CCA;--color-error: #F87171;--font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius-sm: 4px;--radius: 6px;--touch-min: 48px}:root[data-theme=light]{color-scheme:light;--color-bg: #FFFFFF;--color-surface: #F7F6F3;--color-hover: #EFEEEC;--color-border: #E9E9E7;--color-text: #37352F;--color-text-secondary: #787774;--color-accent: #2383E2;--color-error: #C0392B}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--color-text);background-color:var(--color-bg);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-align:left}#root{min-height:100dvh}h1{font-size:28px;font-weight:700;line-height:1.25;margin:0}h2{font-size:20px;font-weight:600;line-height:1.3;margin:0}p{margin:0}button{font-family:inherit;font-size:inherit;color:inherit}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.app-content{flex:1;width:100%;max-width:480px;margin:0 auto;padding:24px 20px 96px}.screen{display:flex;flex-direction:column;gap:8px}.screen-subtitle{color:var(--color-text-secondary)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background-color:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-nav-item{flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 4px;background:none;border:none;color:var(--color-text-secondary);font-size:12px;line-height:1.2;cursor:pointer}.bottom-nav-item:hover{background-color:var(--color-hover)}.bottom-nav-item.active{color:var(--color-accent)}
