:root{--bg: #F5F5F7;--surface: #FFFFFF;--surface-2: #F2F2F7;--surface-3: #E8E8ED;--accent: #007AFF;--accent-dim: rgba(0, 122, 255, .12);--success: #34C759;--warning: #FF9500;--danger: #FF3B30;--text: #1C1C1E;--text-2: #48484A;--text-3: #8E8E93;--text-inv: #FFFFFF;--border: #E5E5EA;--border-2: #C7C7CC;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-full: 9999px;--shadow-xs: 0 1px 2px rgba(0,0,0,.06);--shadow-sm: 0 1px 4px rgba(0,0,0,.08);--shadow-md: 0 2px 12px rgba(0,0,0,.08);--shadow-lg: 0 8px 30px rgba(0,0,0,.12);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace;--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-md: 17px;--text-lg: 20px;--text-xl: 24px;--text-2xl: 28px;--text-3xl: 36px;--text-4xl: 48px;--nav-h: 60px;--header-h: 52px;--max-w: 600px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}@media (prefers-color-scheme: dark){:root{--bg: #000000;--surface: #1C1C1E;--surface-2: #2C2C2E;--surface-3: #3A3A3C;--text: #FFFFFF;--text-2: #EBEBF5;--text-3: #8E8E93;--text-inv: #000000;--border: #38383A;--border-2: #545458;--shadow-xs: 0 1px 2px rgba(0,0,0,.3);--shadow-sm: 0 1px 4px rgba(0,0,0,.3);--shadow-md: 0 2px 12px rgba(0,0,0,.3);--shadow-lg: 0 8px 30px rgba(0,0,0,.5)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:var(--text-base);color:var(--text);background:var(--bg);line-height:1.5;overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100dvh;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;outline:none}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}body.modal-open,body.modal-open .layout-main{overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.15)}}@keyframes workoutPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.page{width:100%;padding:var(--sp-4) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-5)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;padding-top:var(--sp-3)}.page-title{font-size:var(--text-2xl);font-weight:700}.section-title{width:100%;font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:var(--sp-2)}.divider{height:1px;background:var(--border);margin:var(--sp-3) 0}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--max-w);height:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--surface);border-top:1px solid var(--border);display:flex;align-items:stretch;z-index:100}.bottom-nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-3);transition:color .15s;padding:var(--sp-2) 0;position:relative}.bottom-nav-tab--active{color:var(--accent)}.bottom-nav-icon{display:flex;align-items:center;justify-content:center}.bottom-nav-label{font-size:10px;font-weight:500;letter-spacing:.01em}.layout{display:flex;flex-direction:column;min-height:100dvh;width:100%;max-width:var(--max-w);margin:0 auto;position:relative}.layout-main{flex:1;width:100%;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable;padding-top:var(--safe-top);padding-bottom:calc(var(--nav-h) + var(--safe-bottom) + var(--sp-4));scrollbar-width:none}.layout-main::-webkit-scrollbar{display:none}.layout-main--session{padding-bottom:calc(var(--nav-h) + var(--safe-bottom) + 36px + var(--sp-4))}@media (min-width: 640px){.layout{border-left:1px solid var(--border);border-right:1px solid var(--border)}}.active-workout-bar{position:fixed;bottom:calc(var(--nav-h) + var(--safe-bottom));left:50%;transform:translate(-50%);width:100%;max-width:var(--max-w);background:var(--accent);color:#fff;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);font-size:var(--text-sm);font-weight:600;z-index:99;border:none;cursor:pointer;transition:background .15s}.active-workout-bar:active{background:#0062cc}.active-workout-bar-dot{width:7px;height:7px;border-radius:var(--r-full);background:#fffc;flex-shrink:0;animation:workoutPulse 2s infinite}.active-workout-bar-label{flex:1}.desktop-layout{display:flex;min-height:100dvh;width:100%}.desktop-sidebar{width:220px;flex-shrink:0;height:100dvh;position:sticky;top:0;display:flex;flex-direction:column;gap:var(--sp-1);border-right:1px solid var(--border);background:var(--surface);padding:var(--sp-5) var(--sp-3);overflow-y:auto}.desktop-brand{display:block;font-size:var(--text-xl);font-weight:800;color:var(--accent);letter-spacing:-.02em;text-decoration:none;padding:var(--sp-1) var(--sp-3);margin-bottom:var(--sp-5)}.desktop-nav{display:flex;flex-direction:column;gap:2px}.desktop-nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--text-base);font-weight:500;color:var(--text-2);text-decoration:none;transition:background .12s,color .12s}.desktop-nav-item:hover{background:var(--surface-2);color:var(--text)}.desktop-nav-item--active{background:var(--accent-dim);color:var(--accent);font-weight:600}.desktop-session-bar{margin-top:auto;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--accent);color:#fff;font-size:var(--text-sm);font-weight:600;cursor:pointer;width:100%;transition:opacity .15s}.desktop-session-bar:active{opacity:.85}.desktop-session-dot{width:7px;height:7px;border-radius:var(--r-full);background:#fffc;flex-shrink:0;animation:workoutPulse 2s infinite}.desktop-session-label{flex:1;text-align:left}.desktop-main{flex:1;min-width:0;overflow-y:auto;scrollbar-gutter:stable;scrollbar-width:none;background:var(--bg)}.desktop-main::-webkit-scrollbar{display:none}.desktop-page{width:100%;max-width:860px;padding:var(--sp-4) var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-5)}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);display:block;width:100%;text-align:left;border:1px solid var(--border)}.card--padded{padding:var(--sp-4)}.card--clickable{cursor:pointer;transition:transform .15s,box-shadow .15s}.card--clickable:active{transform:scale(.985);box-shadow:var(--shadow-xs)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-weight:600;border-radius:var(--r-md);transition:opacity .15s,transform .1s,background .15s;white-space:nowrap;cursor:pointer;letter-spacing:.01em}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;pointer-events:none}.btn--sm{font-size:var(--text-sm);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm)}.btn--md{font-size:var(--text-base);padding:var(--sp-3) var(--sp-5)}.btn--lg{font-size:var(--text-md);padding:var(--sp-4) var(--sp-6);border-radius:var(--r-lg)}.btn--full{width:100%}.btn--primary{background:var(--accent);color:var(--text-inv)}.btn--primary:hover{opacity:.88}.btn--secondary{background:var(--accent-dim);color:var(--accent)}.btn--secondary:hover{background:var(--surface-3)}.btn--ghost{background:transparent;color:var(--text-2)}.btn--ghost:hover{background:var(--surface-2)}.btn--danger{background:transparent;color:var(--danger);opacity:.65;font-weight:500}.btn--danger:hover,.btn--danger:active{opacity:1;background:#ff3b301a}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding:0;animation:fadeIn .15s ease;touch-action:none}.modal{background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-width:var(--max-w);max-height:92dvh;display:flex;flex-direction:column;animation:slideUp .25s cubic-bezier(.32,.72,0,1);padding-bottom:var(--safe-bottom)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-5) var(--sp-5) var(--sp-3);flex-shrink:0}.modal-header-left{display:flex;align-items:baseline;gap:var(--sp-3);flex:1;min-width:0;margin-right:var(--sp-2)}.modal-title{font-size:var(--text-lg);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-close{width:32px;height:32px;border-radius:var(--r-full);background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--text-2);flex-shrink:0;transition:background .15s}.modal-close:hover{background:var(--surface-3)}.modal-body{overflow-y:auto;overscroll-behavior:contain;padding:0 var(--sp-5) var(--sp-5);flex:1}.modal-footer{padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border);flex-shrink:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (min-width: 640px){.modal-overlay{align-items:center}.modal{border-radius:var(--r-xl);max-height:80dvh;max-width:480px;margin:var(--sp-4)}}.set-row{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:center;padding:var(--sp-2) 0;transition:opacity .2s}.set-row--done{opacity:.45}.set-row-num{font-size:var(--text-sm);font-weight:600;color:var(--text-3);text-align:center}.set-row-field{display:flex;align-items:center;gap:4px;background:var(--surface-2);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-2)}.set-row-input{width:44px;font-size:var(--text-base);font-weight:500;text-align:center;background:transparent;-moz-appearance:textfield}.set-row-input::-webkit-inner-spin-button,.set-row-input::-webkit-outer-spin-button{-webkit-appearance:none}.set-row-input--reps{width:36px}.set-row-unit{font-size:var(--text-xs);color:var(--text-3);font-weight:500}.set-row-sep{font-size:var(--text-sm);color:var(--text-3);font-weight:500;text-align:center}.set-row-check{width:32px;height:32px;border-radius:var(--r-full);border:2px solid var(--border-2);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;transition:background .15s,border-color .15s,transform .1s}.set-row-check:active{transform:scale(.88)}.set-row-check--done{background:var(--success);border-color:var(--success)}.set-row-del{width:28px;height:28px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;color:var(--danger);opacity:.35;flex-shrink:0;transition:opacity .15s}.set-row-del:active{opacity:1}.exercise-row{background:var(--surface);border-radius:var(--r-md);border:1px solid var(--border);overflow:hidden;transition:opacity .2s,border-color .15s}.exercise-row--done{border-color:var(--success)}.exercise-row--dragging{opacity:.4}.exercise-row--drag-over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.exercise-row-header-wrap{display:flex;align-items:stretch}.exercise-row-header-wrap--no-handle .exercise-row-header{padding-left:var(--sp-4)}.exercise-row-drag-handle{display:flex;align-items:center;padding:var(--sp-3) var(--sp-2) var(--sp-3) var(--sp-3);color:var(--text-3);cursor:grab;touch-action:none;flex-shrink:0}.exercise-row-drag-handle:active{cursor:grabbing}.exercise-row-header{flex:1;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4) var(--sp-3) 0;text-align:left;background:transparent;min-width:0}.exercise-row-status{display:flex;align-items:center;justify-content:center;flex-shrink:0}.exercise-row-dot{width:10px;height:10px;border-radius:var(--r-full);border:2px solid var(--border-2);transition:background .2s,border-color .2s}.exercise-row-dot--done{background:var(--success);border-color:var(--success)}.exercise-row-info{flex:1;min-width:0}.exercise-row-name{display:block;font-size:var(--text-base);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exercise-row-progress{display:block;font-size:var(--text-sm);color:var(--text-3);margin-top:2px}.exercise-row-chevron{color:var(--text-3);transition:transform .2s;flex-shrink:0}.exercise-row-chevron--open{transform:rotate(180deg)}.exercise-row-body{border-top:1px solid var(--border);padding:var(--sp-3) var(--sp-4)}.sets-grid{display:grid;grid-template-columns:18px auto auto auto 32px 28px;column-gap:var(--sp-3)}.sets-grid--planning{grid-template-columns:18px auto auto auto 28px}.sets-grid--time{grid-template-columns:18px auto 32px 28px}.sets-grid--time.sets-grid--planning{grid-template-columns:18px auto 28px}.exercise-row-sets-header{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:center;font-size:var(--text-xs);font-weight:600;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;padding-bottom:var(--sp-1);margin-bottom:var(--sp-1)}.exercise-row-sets-header>*{text-align:center}.exercise-row-actions{display:flex;align-items:center;justify-content:space-between;margin-top:var(--sp-3)}.exercise-row-add-set{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--text-sm);font-weight:600;color:var(--accent);background:var(--accent-dim);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);transition:opacity .15s}.exercise-row-add-set:active{opacity:.7}.exercise-row-note{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border);color:var(--text-3)}.exercise-row-note-input{flex:1;font-family:inherit;font-size:var(--text-sm);color:var(--text-2);background:transparent;border:none;outline:none;min-width:0}.exercise-row-note-input::placeholder{color:var(--text-3)}.exercise-row-note-preview{display:block;font-size:var(--text-xs);color:var(--text-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.session-modal-footer-left{display:flex;align-items:center;gap:var(--sp-2)}.session-detail{display:flex;flex-direction:column;gap:var(--sp-4)}.session-detail-meta{font-size:var(--text-sm);color:var(--text-3)}.session-detail-exercises{display:flex;flex-direction:column;gap:var(--sp-3)}.steps-widget{display:flex;flex-direction:column;align-items:flex-start;align-self:flex-start;gap:2px;padding:7px 10px;border-radius:var(--r-full);background:hsla(var(--steps-hue),80%,50%,.12);color:hsl(var(--steps-hue),70%,36%);white-space:nowrap;flex-shrink:0;transition:background .3s,color .3s}.steps-widget:active{filter:brightness(.92)}.steps-widget-row{display:flex;align-items:center;gap:3px;line-height:1;font-size:var(--text-sm);font-weight:700}.steps-widget-row--sub{font-weight:500;opacity:.7}@media (prefers-color-scheme: dark){.steps-widget{background:hsla(var(--steps-hue),80%,50%,.18);color:hsl(var(--steps-hue),75%,65%)}}.dashboard-greeting{color:var(--text);line-height:1.1}.dashboard-date{font-size:var(--text-base);color:var(--text-3);margin-top:var(--sp-1)}.dashboard-section{width:100%;min-width:0;display:flex;flex-direction:column;gap:var(--sp-2)}.dashboard-active-card{background:linear-gradient(135deg,#007aff,#0056cc)!important;border-color:transparent!important}.dashboard-active-inner{display:flex;align-items:center;gap:var(--sp-3)}.dashboard-active-pulse{width:10px;height:10px;border-radius:var(--r-full);background:#ffffffb3;flex-shrink:0;animation:pulse 1.5s infinite}.dashboard-active-label{font-size:var(--text-xs);color:#ffffffbf;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.dashboard-active-name{font-size:var(--text-md);font-weight:700;color:#fff}.dashboard-active-card .btn{background:#fff3!important;color:#fff!important;margin-left:auto}.dashboard-steps{display:flex;align-items:center;gap:var(--sp-4)}.dashboard-steps-ring{width:72px;height:72px;flex-shrink:0}.dashboard-steps-svg{width:100%;height:100%;transform:rotate(-90deg)}.steps-ring-bg{fill:none;stroke:var(--surface-2);stroke-width:6}.steps-ring-fg{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .5s ease}.dashboard-steps-info{flex:1}.dashboard-steps-count{font-size:var(--text-2xl);font-weight:700;color:var(--text);line-height:1}.dashboard-steps-goal{font-size:var(--text-sm);color:var(--text-3);margin-top:4px;margin-bottom:var(--sp-2)}.dashboard-steps-bar{height:4px;background:var(--surface-2);border-radius:var(--r-full);overflow:hidden}.dashboard-steps-bar-fill{height:100%;background:var(--accent);border-radius:var(--r-full);transition:width .5s ease}.dashboard-next{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.dashboard-next-icon{width:44px;height:44px;border-radius:var(--r-md);background:var(--accent-dim);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-next-name{font-size:var(--text-md);font-weight:600}.dashboard-next-meta{font-size:var(--text-sm);color:var(--text-3);margin-top:2px}.dashboard-next-actions{display:flex;flex-direction:column;gap:var(--sp-2);align-items:center}.dashboard-recent-item{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);gap:var(--sp-3);cursor:pointer;transition:background .1s}.dashboard-recent-item:active{background:var(--surface-2)}.dashboard-recent-item--border{border-bottom:1px solid var(--border)}.dashboard-recent-name{font-size:var(--text-base);font-weight:600}.dashboard-recent-date{font-size:var(--text-sm);color:var(--text-3);margin-top:2px}.dashboard-recent-right{display:flex;align-items:center;gap:4px;font-size:var(--text-sm);color:var(--text-3);font-weight:500;white-space:nowrap}.dashboard-apk-banner{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);border-left:3px solid var(--success)}.dashboard-apk-dismiss{position:absolute;top:var(--sp-2);right:var(--sp-2);width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-3);border-radius:var(--r-sm);cursor:pointer}.dashboard-apk-icon{width:36px;height:36px;border-radius:var(--r-sm);background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-apk-text{flex:1;min-width:0;padding-right:var(--sp-6)}.dashboard-apk-title{font-size:var(--text-sm);font-weight:600;color:var(--text)}.dashboard-apk-sub{font-size:var(--text-xs);color:var(--text-3);margin-top:2px}.dashboard-apk-btn{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-3);background:var(--success);color:#fff;font-size:var(--text-sm);font-weight:600;border-radius:var(--r-sm);text-decoration:none;white-space:nowrap;flex-shrink:0}.dashboard-quick-start{background:linear-gradient(135deg,var(--success) 0%,#22a547 100%)!important;color:#fff!important;font-size:var(--text-md)!important;font-weight:700!important;border-radius:var(--r-md)!important;padding:var(--sp-4)!important;gap:var(--sp-2)}.dashboard-quick-start:active{opacity:.88}.dashboard-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-3);padding:var(--sp-6) 0;color:var(--text-3)}.dashboard-empty-title{font-size:var(--text-md);font-weight:600;color:var(--text-2)}.dashboard-empty-sub{font-size:var(--text-sm);color:var(--text-3)}.wcard{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--border);display:flex;overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s}.wcard:active{transform:scale(.985)}.wcard-accent{width:4px;flex-shrink:0}.wcard-body{flex:1;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.wcard-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.wcard-name{font-size:var(--text-md);font-weight:600;color:var(--text)}.wcard-meta{font-size:var(--text-sm);color:var(--text-3);margin-top:2px}.wcard-desc{font-size:var(--text-sm);color:var(--text-2);margin-top:var(--sp-1)}.wcard-start{width:36px;height:36px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;transition:opacity .15s,transform .1s;padding-left:2px}.wcard-start:active{transform:scale(.9)}.workouts-header{display:flex;justify-content:space-between}.workouts-header-actions{display:flex;align-items:center;gap:var(--sp-2)}.workouts-action-btn{width:42px;height:42px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;transition:background .15s}.workouts-action-btn--start{background:#34c75926;color:var(--success);padding-left:2px}.workouts-action-btn--start:active{background:#34c75940}.workouts-action-btn--plan{background:var(--accent-dim);color:var(--accent)}.workouts-action-btn--plan:active{background:var(--surface-3)}.workouts-list{width:100%;min-width:0;display:flex;flex-direction:column;gap:var(--sp-5)}.workouts-group{width:100%;min-width:0;display:flex;flex-direction:column;gap:var(--sp-2)}.workouts-group-list{display:flex;flex-direction:column;gap:var(--sp-3)}.workouts-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.workouts-modal-footer-left{display:flex;align-items:center;gap:var(--sp-2)}.workouts-detail{display:flex;flex-direction:column;gap:var(--sp-4)}.workouts-detail-desc-wrap{position:relative}.workouts-detail-desc{font-size:var(--text-base);color:var(--text-2);line-height:1.4;overflow:hidden;max-height:2.8em}.workouts-detail-desc--expanded{max-height:none;overflow:visible;padding-right:18px}.workouts-detail-desc-toggle{position:absolute;right:0;bottom:0;height:1.4em;display:flex;align-items:center;padding-left:16px;background:linear-gradient(to right,transparent,var(--surface) 50%);color:var(--text-3);font-size:var(--text-base)}.workouts-detail-desc-toggle svg{transition:transform .2s}.workouts-detail-desc-toggle--expanded{background:none;padding-left:0}.workouts-detail-desc-toggle--expanded svg{transform:rotate(180deg)}.workouts-detail-exercises{display:flex;flex-direction:column;gap:var(--sp-3)}.ws{display:flex;flex-direction:column;height:100dvh;background:var(--bg)}.ws--loading{align-items:center;justify-content:center;color:var(--text-3)}.ws-header{background:var(--surface);border-bottom:1px solid var(--border);padding:calc(var(--safe-top) + var(--sp-4)) var(--sp-4) var(--sp-3);flex-shrink:0}.ws-header-top{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-1)}.ws-back-btn{width:36px;height:36px;border-radius:var(--r-full);background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--text-2);flex-shrink:0;transition:background .15s}.ws-back-btn:active{background:var(--surface-3)}.ws-title-input{flex:1;font-size:var(--text-xl);font-weight:700;text-align:center;background:transparent;color:var(--text-1);border-radius:var(--r-sm);padding:2px 4px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-title-input:focus{outline:none;background:var(--surface-2)}.ws-title-input::placeholder{color:var(--text-3);opacity:.6}.ws-close-btn{width:36px;height:36px;border-radius:var(--r-full);background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--text-2);flex-shrink:0;transition:background .15s}.ws-close-btn:active{background:var(--surface-3)}.ws-desc-wrap{position:relative;margin-bottom:var(--sp-2);cursor:text}.ws-desc{font-size:var(--text-sm);color:var(--text-3);line-height:1.4;overflow:hidden;max-height:2.8em}.ws-desc--expanded{max-height:none;overflow:visible;padding-right:18px}.ws-desc-placeholder{opacity:.5}.ws-desc-toggle{position:absolute;right:0;bottom:0;height:1.4em;display:flex;align-items:center;padding-left:16px;background:linear-gradient(to right,transparent,var(--surface) 50%);color:var(--text-3);font-size:var(--text-sm)}.ws-desc-toggle svg{transition:transform .2s}.ws-desc-toggle--expanded{background:none;padding-left:0}.ws-desc-toggle--expanded svg{transform:rotate(180deg)}.ws-desc-edit{display:block;width:100%;font-size:var(--text-sm);color:var(--text-2);line-height:1.4;margin-bottom:var(--sp-2);padding:2px 0;border-bottom:1px solid var(--accent)}.ws-timer{display:flex;align-items:center;gap:4px;color:var(--text-3);font-variant-numeric:tabular-nums;margin-bottom:var(--sp-2)}.ws-timer-display{font-size:var(--text-sm);font-weight:600;font-family:var(--font-mono);color:var(--text-3)}.ws-progress{display:flex;align-items:center;gap:var(--sp-2)}.ws-progress-bar{flex:1;height:6px;background:var(--surface-2);border-radius:var(--r-full);overflow:hidden}.ws-progress-fill{height:100%;background:var(--success);border-radius:var(--r-full);transition:width .4s ease}.ws-progress-label{font-size:var(--text-sm);font-weight:600;color:var(--text-3);white-space:nowrap}.ws-session-meta{font-size:var(--text-xs);color:var(--text-3);margin-top:var(--sp-1)}.ws-exercises{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);flex:1;overflow-y:auto;min-height:0}.ws-add-exercise-btn{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);font-weight:500;color:var(--accent);padding:var(--sp-3) var(--sp-2);border-radius:var(--r-md);align-self:flex-start;transition:background .1s}.ws-add-exercise-btn:active{background:var(--accent-dim)}.ws-footer{padding:var(--sp-3) var(--sp-4) calc(var(--sp-4) + var(--safe-bottom));background:var(--surface);border-top:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;gap:var(--sp-2)}.ws-footer-plan{display:flex;align-items:center;gap:var(--sp-2)}.ws-save-btn{flex:1}.ws-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:300;padding:var(--sp-4);touch-action:none}.ws-dialog{background:var(--surface);border-radius:var(--r-xl);padding:var(--sp-6);width:100%;max-width:320px;display:flex;flex-direction:column;gap:var(--sp-3);animation:popIn .2s cubic-bezier(.34,1.56,.64,1)}.ws-dialog-header{display:flex;align-items:center;justify-content:space-between}.ws-dialog-header h2{font-size:var(--text-lg);font-weight:700}.ws-dialog-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--text-3);border-radius:var(--r-full);flex-shrink:0}.ws-dialog-close:active{background:var(--surface-2)}.ws-dialog h2{font-size:var(--text-lg);font-weight:700}.ws-dialog p{font-size:var(--text-base);color:var(--text-2)}.ws-dialog-actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-2)}.ws-dialog-actions .btn{flex:1}.ws-dialog-actions--col{flex-direction:column;gap:var(--sp-2)}.ws-dialog-changes{background:var(--surface-2);border-radius:var(--r-md);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.ws-dialog-changes-title{font-size:var(--text-sm);font-weight:500;color:var(--text-2)}.ws-dialog-changes-list{display:flex;flex-direction:column;gap:var(--sp-1);padding-left:var(--sp-4);list-style:disc}.ws-dialog-changes-list li{font-size:var(--text-sm);color:var(--text-2)}.picker{display:flex;flex-direction:column;gap:var(--sp-3)}.picker-search{width:100%;font-family:inherit;font-size:var(--text-base);color:var(--text-1);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);box-sizing:border-box}.picker-search:focus{outline:none;border-color:var(--accent)}.picker-empty{padding:var(--sp-4) var(--sp-2);color:var(--text-3);font-size:var(--text-sm);text-align:center}.picker-tabs{display:flex;gap:var(--sp-2);overflow-x:auto;padding-bottom:var(--sp-1);scrollbar-width:none}.picker-tabs::-webkit-scrollbar{display:none}.picker-tab{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-full);font-size:var(--text-sm);font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--text-2);transition:background .15s,color .15s}.picker-tab--active{background:var(--accent);color:#fff}.picker-list{display:flex;flex-direction:column}.picker-item{display:flex;align-items:center;width:100%;padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--border);gap:var(--sp-3);text-align:left;transition:background .1s}.picker-item:last-child{border-bottom:none}.picker-item:active{background:var(--surface-2)}.picker-item--added,.picker-item--added .picker-item-name{color:var(--text-3)}.picker-item-name{flex:1;font-size:var(--text-base);font-weight:500;color:var(--text)}.picker-item-muscle{font-size:var(--text-sm);color:var(--text-3)}.picker-item-recent-icon{display:flex;align-items:center;flex-shrink:0;color:var(--accent)}.activity-section{width:100%;min-width:0;display:flex;flex-direction:column;gap:var(--sp-2)}.steps-ring-wrap{display:flex;flex-direction:column;align-items:center;gap:var(--sp-5)}.steps-ring-container{position:relative;width:200px;height:200px}.steps-ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.steps-ring-track{fill:none;stroke:var(--surface-2);stroke-width:12}.steps-ring-progress{fill:none;stroke:var(--accent);stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset .6s ease}.steps-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.steps-ring-count{font-size:var(--text-3xl);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1}.steps-ring-label{font-size:var(--text-sm);color:var(--text-3);margin-top:4px}.steps-ring-info{display:flex;align-items:center;gap:var(--sp-6)}.steps-ring-stat{text-align:center}.steps-ring-stat-value{font-size:var(--text-xl);font-weight:700}.steps-ring-stat-label{font-size:var(--text-xs);color:var(--text-3);margin-top:2px}.steps-divider{width:1px;height:40px;background:var(--border)}.steps-goal-edit{display:flex;flex-direction:column;align-items:center}.steps-goal-input{font-size:var(--text-xl);font-weight:700;width:80px;text-align:center;background:var(--surface-2);border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-2);-moz-appearance:textfield}.steps-goal-input::-webkit-inner-spin-button,.steps-goal-input::-webkit-outer-spin-button{-webkit-appearance:none}.steps-goal-btn{display:flex;flex-direction:column;align-items:center;gap:2px}.steps-manual-hint{font-size:var(--text-xs);color:var(--text-3);margin:var(--sp-2) 0 0}.steps-notice{display:flex;align-items:flex-start;gap:var(--sp-3);font-size:var(--text-sm);color:var(--text-2);line-height:1.5}.steps-notice--success{color:var(--success)}.steps-notice--muted{color:var(--text-3);font-size:var(--text-xs)}.steps-tracking-dot{width:8px;height:8px;border-radius:var(--r-full);background:var(--success);margin-top:3px;flex-shrink:0;animation:pulse 1.5s infinite}.steps-manual{display:flex;gap:var(--sp-3);align-items:center}.steps-manual-input{flex:1;background:var(--surface-2);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--text-base);font-weight:500;-moz-appearance:textfield}.steps-manual-input::-webkit-inner-spin-button,.steps-manual-input::-webkit-outer-spin-button{-webkit-appearance:none}.steps-chart{display:flex;align-items:flex-end;gap:var(--sp-2);height:120px}.steps-chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);height:100%}.steps-chart-bar-wrap{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}.steps-chart-bar{width:100%;max-width:32px;background:var(--surface-2);border-radius:var(--r-sm) var(--r-sm) 2px 2px;min-height:4px;transition:height .4s ease}.steps-chart-bar--today{background:var(--accent)}.steps-chart-label{font-size:var(--text-xs);color:var(--text-3);font-weight:500}.steps-chart-label--today{color:var(--accent);font-weight:700}.steps-chart-legend{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);font-size:var(--text-xs);color:var(--text-3)}.steps-chart-goal-dot{width:8px;height:2px;background:var(--success);border-radius:var(--r-full)}.activity-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-12) 0;color:var(--text-3);text-align:center;font-size:var(--text-base)}.activity-history-list{width:100%;min-width:0;display:flex;flex-direction:column;gap:var(--sp-5)}.activity-history-group{width:100%;min-width:0;display:flex;flex-direction:column;gap:var(--sp-2)}.history-item{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);gap:var(--sp-3);cursor:pointer;transition:background .1s}.history-item:active{background:var(--surface-2)}.history-item--border{border-bottom:1px solid var(--border)}.history-item-name{font-size:var(--text-base);font-weight:600}.history-item-meta{font-size:var(--text-sm);color:var(--text-3);margin-top:2px}.history-item-right{flex-shrink:0}.history-item-duration{display:flex;align-items:center;gap:4px;font-size:var(--text-sm);color:var(--text-3);font-weight:500}.profile-heading{margin-bottom:var(--sp-2)}.profile-subheading{font-size:var(--text-sm);color:var(--text-2);line-height:1.5}.profile-banner{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);font-size:var(--text-sm);font-weight:500}.profile-banner--success{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}.profile-banner--error{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.profile-card{background:var(--surface);border-radius:var(--r-xl);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);border:1px solid var(--border)}.profile-card--warn{border-color:#ff9500;background:color-mix(in srgb,#FF9500 8%,var(--surface))}.profile-card-title{font-size:var(--text-base);font-weight:600}.profile-card-body{font-size:var(--text-sm);color:var(--text-2);line-height:1.5}.profile-code{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--surface-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);overflow-x:auto}.profile-google-btn{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);height:44px;background:#fff;border:1px solid #dadce0;border-radius:22px;font-size:var(--text-sm);font-weight:500;color:#3c4043;cursor:pointer;transition:background .15s,box-shadow .15s;align-self:flex-start}.profile-google-btn:hover{background:#f8f9fa;box-shadow:0 1px 3px #0000001a}.profile-google-btn:disabled{opacity:.5;cursor:not-allowed}@media (prefers-color-scheme: dark){.profile-google-btn{background:#131314;border-color:#8e918f;color:#e3e3e3}.profile-google-btn:hover{background:#1e1f20}}.profile-user-card{flex-direction:row;align-items:center;gap:var(--sp-4)}.profile-avatar{width:52px;height:52px;border-radius:var(--r-full);object-fit:cover;flex-shrink:0}.profile-avatar-placeholder{width:52px;height:52px;border-radius:var(--r-full);background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);font-weight:700;flex-shrink:0}.profile-user-info{display:flex;flex-direction:column;gap:2px;min-width:0}.profile-user-name{font-size:var(--text-base);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-user-email{font-size:var(--text-sm);color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-sync-row{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-2);font-size:var(--text-sm)}.profile-sync-label{flex:1}.profile-sync-time{font-weight:500;color:var(--text)}.profile-actions{display:flex;flex-direction:column;gap:var(--sp-2)}.profile-action-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);height:44px;border-radius:var(--r-lg);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background .15s,opacity .15s;width:100%}.profile-action-btn:disabled{opacity:.5;cursor:not-allowed}.profile-action-btn--primary{background:var(--accent);color:#fff}.profile-action-btn--primary:active{background:#0062cc}.profile-action-btn--ghost{background:var(--surface-2);color:var(--text)}.profile-action-btn--ghost:active{background:var(--surface-3)}.profile-action-btn--danger{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.profile-action-btn--danger:active{background:color-mix(in srgb,var(--danger) 20%,transparent)}.profile-hint{font-size:var(--text-xs);color:var(--text-3);line-height:1.5}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:300;padding:var(--sp-4);touch-action:none}.profile-dialog{background:var(--surface);border-radius:var(--r-xl);padding:var(--sp-6);width:100%;max-width:320px;display:flex;flex-direction:column;gap:var(--sp-3);animation:popIn .2s cubic-bezier(.34,1.56,.64,1)}.profile-dialog h2{font-size:var(--text-lg);font-weight:700}.profile-dialog p{font-size:var(--text-sm);color:var(--text-2);line-height:1.5}.profile-dialog-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.profile-dialog-actions .profile-action-btn{flex:1}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.ideas-header{margin-bottom:var(--sp-4)}.ideas-title{font-size:var(--text-2xl);font-weight:700;color:var(--text-1);margin:0 0 var(--sp-1)}.ideas-subtitle{font-size:var(--text-sm);color:var(--text-3);margin:0}.ideas-section{margin-bottom:var(--sp-4)}.ideas-input-row{display:flex;flex-direction:column;gap:var(--sp-3)}.ideas-textarea{width:100%;font-family:inherit;font-size:var(--text-base);color:var(--text-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-3);resize:vertical;min-height:80px;box-sizing:border-box;line-height:1.5}.ideas-textarea:focus{outline:none;border-color:var(--accent)}.ideas-empty{text-align:center;color:var(--text-3);font-size:var(--text-sm);padding:var(--sp-8) 0}.ideas-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.ideas-section-header .section-title{margin:0}.ideas-export-btn{background:none;border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-3);font-size:var(--text-sm);color:var(--text-2);cursor:pointer}.ideas-export-btn:hover{color:var(--accent);border-color:var(--accent)}.ideas-list{display:flex;flex-direction:column;gap:var(--sp-3)}.ideas-item{display:flex;flex-direction:column;gap:var(--sp-2)}.ideas-item-text{font-size:var(--text-base);color:var(--text-1);margin:0;white-space:pre-wrap;line-height:1.5}.ideas-item-footer{display:flex;align-items:center;justify-content:space-between}.ideas-item-date{font-size:var(--text-xs);color:var(--text-3)}.ideas-delete-btn{background:none;border:none;padding:var(--sp-1);cursor:pointer;color:var(--text-3);border-radius:var(--r-sm);display:flex;align-items:center;transition:color .15s}.ideas-delete-btn:hover{color:var(--danger)}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:var(--sp-5)}.login-card{width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3)}.login-logo{margin-bottom:var(--sp-2)}.login-title{font-size:var(--text-2xl);font-weight:700;color:var(--text);letter-spacing:-.02em}.login-sub{font-size:var(--text-sm);color:var(--text-3);margin-top:calc(-1 * var(--sp-1));text-align:center}.login-form{width:100%;display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-2)}.login-input{width:100%;padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);font-size:var(--text-base);color:var(--text);transition:border-color .15s}.login-input:focus{outline:none;border-color:var(--accent)}.login-input--error{border-color:var(--danger)}.login-error{font-size:var(--text-sm);color:var(--danger);margin-top:calc(-1 * var(--sp-1))}.login-btn{width:100%;padding:var(--sp-3);background:var(--accent);color:#fff;font-size:var(--text-base);font-weight:600;border-radius:var(--r-md);cursor:pointer;transition:opacity .15s}.login-btn:disabled{opacity:.45;cursor:default}
