:root{--color-bg:#f5f7fa;--color-surface:#fff;--color-subtle:#f8fafc;--color-text:#101828;--color-secondary:#475467;--color-tertiary:#667085;--color-border:#e4e7ec;--color-divider:#eaecf0;--color-primary:#1677ff;--color-primary-pressed:#0958d9;--color-primary-soft:#eaf3ff;--color-success:#12b76a;--color-success-soft:#ecfdf3;--color-warning:#f79009;--color-warning-soft:#fff7e8;--color-danger:#f04438;--color-danger-soft:#fff1f0;color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:var(--color-bg);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;border-radius:12px;min-height:44px;padding:10px 14px;font-weight:650;transition:background .15s,transform .15s}button:active{transform:scale(.98)}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit}#root,.app-shell{min-height:100vh}.app-shell{background:var(--color-bg)}.app-shell:has(.workout-editor) .bottom-navigation{display:none}.app-shell:has(.workout-editor) .app-content{min-height:100vh;padding-top:12px;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.app-content{width:min(100%,640px);min-height:calc(100vh - 84px);padding:20px 16px calc(100px + env(safe-area-inset-bottom));margin:0 auto}.page{gap:16px;display:grid}.page h1{color:var(--color-text);letter-spacing:-.035em;margin:0;font-size:28px;line-height:1.25}.eyebrow{color:var(--color-tertiary);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.page-heading,.exercise-row,.family-row,.row-actions,.inline-form,.quick-family{align-items:center;gap:12px;display:flex}.page-heading{justify-content:space-between;margin-bottom:4px}.page-heading h1{margin:0}.top-bar{grid-template-columns:1fr auto 1fr;align-items:center;min-height:44px;margin:-4px 0 4px;display:grid}.top-bar h1{letter-spacing:-.01em;font-size:17px}.top-bar__side{align-items:center;min-width:44px;display:flex}.top-bar__side--end{justify-content:flex-end}.top-bar a{color:var(--color-secondary);font-size:14px;text-decoration:none}.primary-link,.text-link{border-radius:12px;justify-content:center;align-items:center;min-height:44px;font-weight:700;text-decoration:none;display:inline-flex}.primary-link,.primary-button{color:#fff;background:var(--color-primary)}.primary-button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.primary-link{white-space:nowrap;padding:10px 14px}.primary-link:hover,.primary-button:hover{background:var(--color-primary-pressed)}.text-link{color:var(--color-primary)}.quiet-button,.row-actions button,.inline-form button,.quick-family button{color:var(--color-primary);background:var(--color-primary-soft)}.danger-button{color:var(--color-danger)!important;background:var(--color-danger-soft)!important}.icon-button{width:40px;min-width:40px;min-height:40px;color:var(--color-secondary);background:0 0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.icon-button:hover{background:var(--color-subtle)}.app-icon{display:block}.search-field,.exercise-form>label,.exercise-form fieldset>label,.inline-form label,.quick-family label,.record-composer label{color:var(--color-secondary);gap:6px;font-size:14px;font-weight:650;display:grid}.search-field{margin:0}input,select{border:1px solid var(--color-border);width:100%;min-width:0;min-height:44px;color:var(--color-text);background:var(--color-surface);border-radius:10px;padding:10px 12px;font-size:16px}input:focus,select:focus{outline:3px solid color-mix(in srgb, var(--color-primary) 20%, transparent);border-color:var(--color-primary)}.field-hint,.exercise-row__main span,.family-management>p{color:var(--color-tertiary);font-size:14px;line-height:1.5}.exercise-groups,.exercise-form,.family-management,.settings-page,.statistics-page,.exercise-statistics-page{gap:16px;display:grid}.exercise-group,.family-management,.exercise-form,.settings-card,.backup-summary,.summary-card,.statistics-section,.empty-state,.workout-card,.session-header{border:1px solid var(--color-border);background:var(--color-surface);border-radius:16px;padding:16px}.exercise-group h2,.family-management h2,.settings-card h2,.backup-summary h3,.statistics-section h2,.statistics-section h3{color:var(--color-text);margin:0;font-size:17px}.exercise-list,.family-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.exercise-row,.family-row{border-top:1px solid var(--color-divider);justify-content:space-between;min-width:0;padding:12px 0}.exercise-list li:first-child .exercise-row,.exercise-list li:first-child>.exercise-row__main,.family-list li:first-child .family-row{border-top:0}.exercise-row__main{gap:3px;min-width:0;padding:12px 0;text-decoration:none;display:grid}.exercise-row__main strong,.exercise-row__main span,.family-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-actions{flex:none}.row-actions button{min-height:40px;padding:8px 10px}.exercise-form fieldset{border:1px solid var(--color-border);border-radius:12px;margin:0;padding:14px}.exercise-form legend{color:var(--color-secondary);padding:0 4px;font-weight:700}.schema-grid,.record-composer{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.choice-list{gap:12px;display:grid}.choice-list label{align-items:center;gap:8px;display:flex}.choice-list input{width:20px;min-height:20px}.inline-form,.quick-family{flex-wrap:wrap;align-items:end}.inline-form label,.quick-family label{flex:12rem}.form-error,.form-warning,.inline-feedback{border-radius:12px;margin:0;padding:12px;font-size:14px;line-height:1.45}.form-error{color:#b42318;background:var(--color-danger-soft)}.form-warning,.inline-feedback{color:#8a5700;background:var(--color-warning-soft)}.empty-state{text-align:center;color:var(--color-tertiary);place-items:center;padding:32px 20px}.empty-state h2,.empty-state p{margin:0}.empty-state h2{color:var(--color-text);font-size:17px}.empty-state__mark{width:48px;height:48px;color:var(--color-primary);background:var(--color-primary-soft);border-radius:16px;place-items:center;display:grid}.settings-card,.backup-summary{gap:12px}.settings-card h2,.backup-summary h3,.settings-card p,.backup-summary p{margin:0}.backup-summary{background:var(--color-subtle)}.backup-summary ul{gap:4px;margin:0;padding-left:20px;display:grid}.statistics-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.summary-card{gap:4px;display:grid}.summary-card span,.summary-card small{color:var(--color-tertiary)}.summary-card strong,.metric-value{color:var(--color-text);font-variant-numeric:tabular-nums;margin:0;font-size:22px}.statistics-section{gap:12px;display:grid}.statistics-section h2,.statistics-section h3{margin:0}.statistics-section .exercise-group{z-index:1;position:relative}.heatmap{max-width:100%;padding-bottom:4px;display:block;overflow-x:auto}.heatmap-months{min-width:710px;color:var(--color-tertiary);grid-template-columns:28px repeat(53,11px);gap:2px;margin-bottom:4px;font-size:10px;display:grid}.heatmap-grid{grid-template-rows:repeat(7,11px);grid-template-columns:28px repeat(53,11px);gap:2px;min-width:710px;display:grid}.heatmap-weekday{color:var(--color-tertiary);font-size:10px;line-height:11px}.active-day-list{gap:8px;margin:0;padding-bottom:2px;display:flex;overflow-x:auto}.heatmap-day{color:#98a2b3;background:var(--color-subtle);border-radius:2px;width:11px;min-width:11px;min-height:11px;padding:0;font-size:0}.heatmap-day--active{color:#fff;background:var(--color-primary)}.trend-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.trend-list li,.filter-buttons{justify-content:space-between;align-items:center;gap:12px;display:flex}.trend-chart{gap:12px;display:grid}.trend-chart svg{width:100%;height:128px;color:var(--color-primary);border-bottom:1px solid var(--color-border);overflow:visible}.trend-chart circle{fill:var(--color-primary)}.trend-tooltip{color:var(--color-secondary);margin:0}.filter-buttons{flex-wrap:wrap;justify-content:flex-start}.workout-card{color:inherit;gap:4px;padding:12px 14px;text-decoration:none;display:grid}.home-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.home-header .primary-link{min-height:40px}.workout-week{gap:8px;display:grid}.workout-week__label{color:var(--color-text);margin:0;font-size:14px;font-weight:700}.workout-card:hover{border-color:#b2ddff}.workout-card__top{justify-content:space-between;align-items:center;gap:10px;display:flex}.workout-card__date{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;font-weight:700;overflow:hidden}.workout-card__tail{color:var(--color-tertiary);flex:none;align-items:center;gap:6px;display:inline-flex}.workout-card__badge{color:#8a5700;background:var(--color-warning-soft);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.workout-card__meta{color:var(--color-tertiary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.workout-card__meta--names{color:var(--color-secondary)}.resume-card{background:var(--color-warning-soft);text-align:left;border:1px solid #fedf89;border-radius:16px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.resume-card__mark{color:#b54708;background:var(--color-surface);border-radius:10px;flex:none;place-items:center;width:32px;height:32px;display:grid}.resume-card__body{flex:auto;gap:2px;min-width:0;display:grid}.resume-card__title{color:#b54708;font-size:14px;font-weight:700}.resume-card__meta{color:#8a5700;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.resume-card__meta--names{color:#b54708;opacity:.72}.resume-card__chevron{color:#b54708;opacity:.65;flex:none;display:inline-flex}.workout-empty{color:var(--color-tertiary);text-align:center;margin:0;padding:40px 0;font-size:15px}.create-workout-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.session-header{gap:6px;padding:10px 14px;display:grid}.workout-editor{gap:12px}.workout-editor .exercise-group{padding:12px 16px}.workout-hint{border:1px dashed var(--color-border);color:var(--color-tertiary);text-align:center;border-radius:12px;margin:0;padding:14px 16px;font-size:13px;line-height:1.5}.session-header__top{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.session-header__date{min-width:0;color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:20px;overflow:hidden}.session-header__date-input{flex:auto;min-width:0}.session-badge{color:#8a5700;background:var(--color-warning-soft);border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:700}.session-header__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.session-field{gap:2px;min-width:0;display:grid}.session-field__label{color:var(--color-tertiary);font-size:11px;font-weight:650;line-height:14px}.session-field__value{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:16px;line-height:22px}.session-field__value--empty{color:var(--color-tertiary);font-weight:400}.session-field__input{appearance:none;width:100%;min-height:22px;color:var(--color-text);font-variant-numeric:tabular-nums;background:0 0;border:0;border-bottom:1px solid #0000;border-radius:0;padding:0;font-size:16px;line-height:20px}.session-field__input::-webkit-calendar-picker-indicator{display:none}.session-field__input:focus{border-bottom-color:var(--color-primary);outline:0}.session-field__input.is-invalid{border-bottom-color:var(--color-danger)}.session-field__control{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;align-items:center;min-width:0;min-height:44px;padding:10px 12px;display:flex;position:relative}.session-field__control .session-field__value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.session-field__input--overlay{z-index:1;border-radius:inherit;opacity:0;cursor:pointer;border:0;width:auto;height:auto;min-height:0;padding:0;position:absolute;inset:-1px}.session-field:focus-within .session-field__control{border-color:var(--color-primary);outline:3px solid color-mix(in srgb, var(--color-primary) 20%, transparent)}.session-header__actions{justify-content:flex-end;display:flex}.session-header__now{min-height:26px;color:var(--color-primary);background:var(--color-primary-soft);padding:2px 10px;font-size:12px;font-weight:650}.session-header .form-warning{padding:8px 10px;font-size:12px}.exercise-card__header{justify-content:space-between;align-items:center;gap:8px;min-height:32px;display:flex}.exercise-card__header h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.exercise-card__more{flex:none;align-items:center;gap:2px;display:flex}.exercise-card__previous{min-height:32px;color:var(--color-primary);background:0 0;padding:4px 6px;font-size:13px;font-weight:650}.exercise-card__previous:hover{background:var(--color-primary-soft)}.record-list{gap:0;margin:0;display:grid}.record-row-group{gap:0;min-width:0;display:grid}.record-row,.exercise-card__table-head{grid-template-columns:var(--record-columns,20px minmax(0, 1fr) 46px minmax(0, 1fr) 44px);align-items:center;gap:4px;min-width:0;display:grid}.record-row--cardio{--record-value-width:3.2ch}.record-row{min-height:45px}.record-empty{color:var(--color-tertiary);margin:0;padding:10px 0;font-size:14px}.exercise-card__table-head{color:var(--color-tertiary);background:var(--color-subtle);text-align:center;border-radius:8px;margin:4px -8px 2px;padding:3px 8px;font-size:12px;font-weight:500;line-height:15px}.exercise-card__table-head>span:first-child{text-align:left}.record-field{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;justify-content:center;align-items:center;gap:3px;min-width:0;height:35px;padding:0 8px;display:flex}.record-row--cardio .record-field{padding:0 6px}.record-field--static{background:0 0;border-color:#0000}.record-field__value{min-width:0;color:var(--color-text);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:500;line-height:20px;overflow:hidden}.record-field:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #1677ff2e}.record-row__input,.record-row__select{width:var(--record-value-width,5ch);min-width:0;min-height:0;color:var(--color-text);font-variant-numeric:tabular-nums;text-align:right;background:0 0;border:0;border-radius:0;padding:0;font-size:17px;font-weight:500;line-height:20px}.record-row__select{appearance:none;text-align:center;text-align-last:center;flex:auto;width:auto}.record-row__input:focus,.record-row__select:focus{border-color:#0000;outline:none}.record-row__input::-webkit-outer-spin-button{appearance:none;margin:0}.record-row__input::-webkit-inner-spin-button{appearance:none;margin:0}.record-field__unit{color:var(--color-tertiary);pointer-events:none;flex:none;font-size:12px;line-height:14px}.record-times{color:var(--color-tertiary);text-align:center;font-size:12px}.record-delete{width:44px;min-width:44px;min-height:44px;color:var(--color-tertiary)}.record-delete:hover{color:var(--color-secondary)}.record-delete .app-icon{width:16px;height:16px}.exercise-card__add{width:100%;min-height:36px;margin-top:6px;font-size:13px}.record-row__index{color:var(--color-tertiary);font-variant-numeric:tabular-nums;font-size:13px}.record-composer{padding-top:12px}.record-composer label{font-size:13px}.record-composer input{min-height:42px;padding:8px 10px}.record-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sticky-actions{z-index:12;border-top:1px solid var(--color-border);width:min(100%,640px);padding:10px 16px calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;grid-template-columns:1fr 1fr;gap:10px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.sticky-actions button{min-height:40px;font-size:15px}.sticky-actions__add{border:1px solid var(--color-border);color:var(--color-primary);background:var(--color-surface);justify-content:center;align-items:center;gap:6px;display:inline-flex}.sticky-actions__add:hover{background:var(--color-primary-soft)}.sticky-actions__finish{color:#fff;background:var(--color-primary)}.sticky-actions__finish:hover{background:var(--color-primary-pressed)}.workout-overflow{position:relative}.workout-overflow__menu{z-index:4;border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;gap:4px;width:156px;padding:6px;display:grid;position:absolute;top:44px;right:0;box-shadow:0 8px 20px #1018281f}.sheet-backdrop{z-index:30;background:#10182861;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:min(100%,640px);min-width:0;max-width:100%;max-height:min(82vh,700px);padding:8px 16px calc(20px + env(safe-area-inset-bottom));background:var(--color-surface);border-radius:20px 20px 0 0;overflow:auto;box-shadow:0 -12px 36px #10182829}.sheet__handle{background:var(--color-border);border-radius:999px;width:36px;height:4px;margin:0 auto 10px}.sheet__header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.sheet__header h2{margin:0;font-size:18px}.sheet__content{grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;display:grid}.sheet label{min-width:0}.bottom-navigation{z-index:10;border-top:1px solid var(--color-border);padding:7px 4px calc(7px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #1018280d}.bottom-navigation__item{min-height:48px;color:var(--color-tertiary);border-radius:10px;align-content:center;place-items:center;gap:2px;font-size:11px;font-weight:650;text-decoration:none;display:grid}.bottom-navigation__item--active{color:var(--color-primary)}.bottom-navigation__item .app-icon{width:20px;height:20px}.bottom-navigation__item:focus-visible,button:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #b2ddff}.update-prompt{z-index:20;right:16px;bottom:calc(80px + env(safe-area-inset-bottom));color:#eff6ff;background:#101828;border-radius:16px;width:min(100% - 32px,480px);margin:0 auto;padding:16px;position:fixed;left:16px;box-shadow:0 16px 32px #0f172a40}.update-prompt p{margin:0}.update-prompt__actions{gap:12px;margin-top:12px;display:flex}.update-prompt button{color:#eff6ff;background:#344054;flex:1}.update-prompt button:last-child{color:#fff;background:var(--color-primary)}@media (width<=400px){.app-content{padding-left:12px;padding-right:12px}.schema-grid,.record-composer{grid-template-columns:1fr}.page-heading,.exercise-row,.family-row{flex-direction:column;align-items:stretch}.row-actions,.row-actions button{width:100%}}@media (width>=768px){.app-shell{border:1px solid var(--color-border);border-radius:20px;width:min(100% - 32px,672px);margin:20px auto;overflow:hidden;box-shadow:0 16px 40px #10182814}.bottom-navigation{width:min(100% - 32px,672px);left:50%;right:auto;transform:translate(-50%)}.sticky-actions{border-radius:0 0 20px 20px;width:min(100% - 32px,672px);bottom:20px}}
