.dir-switch{display:flex;gap:.4rem;margin-top:.75rem}.dir-option{min-height:44px;min-width:44px;padding:.35rem .9rem;background:transparent;border:1px solid var(--line);border-radius:2px;font-family:inherit;font-size:.78rem;letter-spacing:.15em;color:var(--ink-soft)}.dir-option-active{border-color:var(--ink);color:var(--ink);font-weight:700;background:var(--paper-deep)}.dir-b{--bg: #eef1f5;--surface: #ffffff;--surface-alt: #e4e9ef;--ink-b: #131a22;--sub-b: #4d5a68;--faint-b: #8794a1;--line-b: #cdd5de;--line-strong: #aab6c2;--cobalt: #1f4bff;--cobalt-deep: #0f2fb8;--ok-b: #0b7a52;--warn-b: #b45309;--danger-b: #d92d20;--sans-b: "Inter", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--mono-b: "JetBrains Mono", "Sarasa Mono SC", ui-monospace, monospace}body:has(.dir-b){font-family:var(--sans-b);background:#eef1f5;color:#131a22;line-height:1.6;background-image:linear-gradient(rgba(19,26,34,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(19,26,34,.045) 1px,transparent 1px);background-size:24px 24px}.dir-b.app{border-left:1px solid var(--line-strong);border-right:1px solid var(--line-strong);background:var(--bg)}.dir-b button:focus-visible,.dir-b select:focus-visible,.dir-b textarea:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px;border-radius:0}.dir-b .system-status{background:var(--surface);border-bottom-color:var(--line-strong);color:var(--sub-b);font-family:var(--mono-b)}.dir-b .system-status-offline{color:var(--warn-b)}.dir-b .system-status-error{color:var(--danger-b)}.dir-b .sync-select select{font-family:var(--mono-b);background:var(--surface);border:1px solid var(--line-strong);border-radius:0;color:var(--ink-b)}.dir-b.sync-error .sync-button{color:var(--danger-b)}.dir-b .dir-option{font-family:var(--mono-b);background:var(--surface);border:1px solid var(--line-strong);border-radius:0;color:var(--sub-b);letter-spacing:.1em}.dir-b .dir-option-active{background:var(--ink-b);border-color:var(--ink-b);color:#fff}.dir-b .display{font-family:var(--sans-b);letter-spacing:.02em;border-bottom:2px solid var(--ink-b)}.dir-b .cal{gap:1px;background:var(--line-b);border:1px solid var(--line-strong)}.dir-b .cal-weekday{background:var(--surface-alt);color:var(--sub-b);font-family:var(--mono-b);letter-spacing:.3em}.dir-b .cal-pad{background:var(--surface-alt)}.dir-b .cal-day{background:var(--surface);color:var(--sub-b);border-radius:0}.dir-b .cal-num{font-family:var(--mono-b)}.dir-b .cal-day-trained{color:var(--ink-b);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-strong)}.dir-b .cal-dot{width:6px;height:6px;border-radius:0;background:var(--cobalt)}.dir-b .cal-day-selected{background:var(--cobalt);color:#fff;box-shadow:inset 0 0 0 1px var(--cobalt-deep)}.dir-b .cal-day-selected .cal-dot{background:#fff}.dir-b .cal-day-selected .cal-num{color:#fff}.dir-b .day-entry{border-top:2px solid var(--ink-b)}.dir-b .bw{font-family:var(--mono-b);color:var(--sub-b)}.dir-b .day-exercise{border-left:2px solid var(--cobalt)}.dir-b .set-ledger li{border-bottom:1px solid var(--line-b);font-family:var(--sans-b)}.dir-b .set-idx{font-family:var(--mono-b);color:var(--faint-b)}.dir-b .set-kind{color:var(--ok-b);font-family:var(--mono-b)}.dir-b .set-load{font-family:var(--mono-b);font-weight:700}.dir-b .set-result{color:var(--sub-b)}.dir-b .set-failed .set-load{text-decoration:line-through;color:var(--faint-b)}.dir-b .set-failed .set-result{color:var(--danger-b)}.dir-b .ink-note{font-style:normal;color:var(--sub-b)}.dir-b .session-note{background:var(--surface-alt);border-left:3px solid var(--warn-b);color:var(--sub-b)}.dir-b .session-note:before{content:"NOTE / ";font-family:var(--mono-b);font-size:.72rem;letter-spacing:.15em;color:var(--warn-b)}.dir-b .rest-day{border-top:1px solid var(--line-b);color:var(--faint-b);font-family:var(--mono-b);letter-spacing:.05em}.dir-b .entry-row{border:1px solid var(--line-strong);background:var(--surface)}.dir-b .entry-row:before{width:3px;background:var(--line-b)}.dir-b .entry-completed{background:#f7f9ff}.dir-b .entry-completed:before{background:var(--ok-b)}.dir-b .entry-idx{font-family:var(--mono-b);letter-spacing:.15em;font-weight:700}.dir-b .entry-kind{border-color:var(--line-strong);color:var(--sub-b);font-family:var(--mono-b)}.dir-b .result-toggle{border:1px solid var(--line-strong);color:var(--sub-b);border-radius:0;font-family:var(--mono-b);letter-spacing:.1em}.dir-b .result-toggle[aria-pressed=true]{border-color:var(--ok-b);background:var(--ok-b);color:#fff}.dir-b .set-number-field{font-family:var(--mono-b);color:var(--faint-b)}.dir-b .set-number-field input{border:1px solid var(--line-strong);background:var(--surface);border-radius:0;color:var(--ink-b);font-family:var(--mono-b)}.dir-b .set-number-field input[aria-invalid=true]{border-color:var(--danger-b)}.dir-b .set-field-error{color:var(--danger-b)}.dir-b .set-more-button{color:var(--cobalt-deep);font-family:var(--mono-b)}.dir-b .set-menu{border-color:var(--ink-b);background:var(--surface);box-shadow:4px 4px #1f4bff1f}.dir-b .set-menu button{color:var(--ink-b);font-family:var(--sans-b)}.dir-b .set-menu button:hover,.dir-b .set-menu button:focus-visible{background:var(--surface-alt)}.dir-b .set-menu .set-menu-danger{color:var(--danger-b)}.dir-b .btn-ghost,.dir-b .btn-primary,.dir-b .btn-danger{border-radius:0;letter-spacing:.12em}.dir-b .btn-ghost{border:1px solid var(--line-strong);color:var(--sub-b);background:var(--surface)}.dir-b .btn-primary{background:var(--cobalt);border:1px solid var(--cobalt-deep);color:#fff;box-shadow:none}.dir-b .btn-primary:hover{background:var(--cobalt-deep)}.dir-b .btn-primary:active{transform:none;box-shadow:none}.dir-b .btn-primary:disabled{background:var(--line-strong);border-color:var(--line-strong)}.dir-b .btn-danger{background:var(--danger-b);border:1px solid #a61b12;color:#fff}.dir-b .btn-danger:hover{background:#a61b12}.dir-b .saved-note{font-family:var(--mono-b);color:var(--ok-b)}.dir-b .chart{border-bottom:2px solid var(--ink-b);background:repeating-linear-gradient(0deg,transparent 0 2.55rem,rgba(19,26,34,.06) 2.55rem calc(2.55rem + 1px))}.dir-b .chart-bar{width:55%;background:var(--cobalt);border-radius:0;box-shadow:inset 0 3px 0 var(--cobalt-deep)}.dir-b .chart-bar-failed{background:repeating-linear-gradient(45deg,var(--faint-b) 0 3px,transparent 3px 7px);box-shadow:none}.dir-b .chart-val{font-family:var(--mono-b);color:var(--ink-b)}.dir-b .chart-date{font-family:var(--mono-b);color:var(--faint-b)}.dir-b .stat-verse{border-top:2px solid var(--ink-b);border-bottom:1px solid var(--line-b)}.dir-b .stat-label{font-family:var(--mono-b);letter-spacing:.15em;color:var(--cobalt);border:1px solid var(--cobalt);text-transform:uppercase}.dir-b .stat-big{font-family:var(--mono-b);letter-spacing:-.02em}.dir-b .stat-big small{font-family:var(--sans-b);color:var(--sub-b)}.dir-b .stat-trend{color:var(--sub-b)}.dir-b .history-head{font-family:var(--mono-b);letter-spacing:.35em;color:var(--faint-b);text-transform:uppercase}.dir-b .history-list li{border-bottom:1px solid var(--line-b)}.dir-b .history-date{font-family:var(--mono-b);color:var(--cobalt)}.dir-b .history-sets{font-family:var(--mono-b);color:var(--sub-b)}.dir-b .guide-meta{font-family:var(--mono-b);color:var(--faint-b);border-bottom:1px solid var(--line-b)}.dir-b .guide-h{font-family:var(--sans-b);letter-spacing:.04em}.dir-b .guide-h:before{width:.9rem;height:2px;background:var(--cobalt)}.dir-b .guide-p{text-align:left;color:var(--ink-b)}.dir-b .callout{border:1px solid var(--line-strong);background:var(--surface)}.dir-b .callout strong{font-family:var(--mono-b);letter-spacing:.15em;text-transform:uppercase}.dir-b .callout-tip{border-left:3px solid var(--ok-b)}.dir-b .callout-tip strong{color:var(--ok-b)}.dir-b .callout-warning{border-left:3px solid var(--warn-b)}.dir-b .callout-warning strong{color:var(--warn-b)}.dir-b .guide-steps li{border-bottom:1px solid var(--line-b)}.dir-b .guide-steps li:before{content:counter(step,decimal-leading-zero);font-family:var(--mono-b);font-weight:700;color:var(--cobalt);font-size:.95rem}.dir-b .guide-list li:before{content:"▸";color:var(--cobalt);font-size:.8rem;top:.4rem}.dir-b .guide-edit textarea{font-family:var(--mono-b);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-b);border-radius:0}.dir-b .empty-state{border:1px solid var(--line-strong);background:var(--surface)}.dir-b .empty-glyph{color:var(--line-b);font-family:var(--sans-b)}.dir-b .empty-state p{color:var(--faint-b)}.dir-b .tabbar{background:var(--surface);border-top:1px solid var(--line-strong);box-shadow:0 -2px 8px #131a2214}.dir-b .tab{color:var(--sub-b);border-top:2px solid transparent;margin-top:-1px}.dir-b .tab-label{font-family:var(--mono-b);letter-spacing:.2em}.dir-b .tab-active{color:var(--cobalt-deep);border-top-color:var(--cobalt);font-weight:700}@media (min-width: 40rem){.dir-b .display{font-size:2.6rem}.dir-b .chart{height:13rem}}@media (prefers-reduced-motion: reduce){.dir-b .btn-primary:active{transform:none}}.dir-b .month-controls button,.dir-b .block-toolbar button{background:var(--surface-alt);border-color:var(--line-strong);color:var(--cobalt-deep)}.dir-b .sync-notice{border-color:var(--danger-b);color:var(--danger-b);background:#fff}.dir-b .field-label,.dir-b .compact-field,.dir-b .settings-copy{color:var(--sub-b)}.dir-b .field-label input,.dir-b .field-label select,.dir-b .field-label textarea,.dir-b .compact-field input{border-color:var(--line-strong);background:var(--surface);color:var(--ink-b);border-radius:0}.dir-b .settings-section{border-top:2px solid var(--ink-b)}.dir-b .theme-picker select{font-family:var(--mono-b)}.dir-b .block-item{border-color:var(--line-strong);background:var(--surface);color:var(--sub-b);border-radius:0}.dir-b .archive-button,.dir-b .remove-link,.dir-b .guide-video a{color:var(--cobalt)}.dir-b .subpage-head{border-bottom-color:var(--ink-b)}.dir-b .back-button,.dir-b .row-arrow{color:var(--cobalt-deep)}.dir-b .plain-list,.dir-b .plain-row,.dir-b .local-tabs{border-color:var(--line-strong)}.dir-b .plain-row{color:var(--ink-b)}.dir-b .plain-row small,.dir-b .list-heading{color:var(--sub-b)}.dir-b .row-value{font-family:var(--mono-b)}.dir-b .local-tabs button{color:var(--sub-b)}.dir-b .local-tabs .local-tab-active{color:var(--cobalt-deep);border-bottom-color:var(--cobalt)}.dir-b .data-export-row{border-color:var(--line-strong)}.dir-b .data-export-row strong{color:var(--sub-b);font-family:var(--mono-b)}.dir-b .workout-exercise{border-top-color:var(--ink-b)}.dir-b .guide-toc,.dir-b .data-action-row{border-color:var(--line-strong)}.dir-b .guide-toc button,.dir-b .data-action{color:var(--cobalt-deep)}.dir-b .guide-toc-sub button,.dir-b .data-action-row strong{color:var(--sub-b)}.dir-b .section-link{color:var(--cobalt-deep)}.dir-b .strength-search input{border-color:var(--line-strong);border-radius:0;background:var(--surface);color:var(--ink-b);font-family:var(--sans-b)}.dir-b .block-add summary{border-color:var(--line-strong);background:var(--surface-alt);color:var(--sub-b)}.dir-b .session-edit,.dir-b .history-edit{color:var(--cobalt-deep)}.dir-b .session-delete,.dir-b .danger-link{color:var(--danger-b)}.dir-b .session-edit:hover,.dir-b .history-edit:hover{color:var(--cobalt)}.dir-b .session-delete:hover,.dir-b .danger-link:hover{color:#a61b12}.dir-b .training-data-row{border-bottom-color:var(--line-b)}.dir-b .training-data-row strong{color:var(--sub-b);font-family:var(--mono-b)}.dir-b .confirm-backdrop{background:#131a2280}.dir-b .confirm-dialog{border:2px solid var(--ink-b);background:var(--surface);box-shadow:none}.dir-b .confirm-dialog p{color:var(--sub-b)}.dir-b .calendar-template-link,.dir-b .template-row-action,.dir-b .template-start-row button,.dir-b .manage-templates-link{color:var(--cobalt-deep)}.dir-b .template-origin,.dir-b .template-source-note,.dir-b .workout-target,.dir-b .template-list-heading p,.dir-b .template-editor-heading span{color:var(--faint-b);font-family:var(--mono-b)}.dir-b .workout-template-source{color:var(--cobalt-deep);font-family:var(--mono-b)}.dir-b .session-template{color:var(--sub-b)}.dir-b .template-sheet-backdrop{background:#131a2280}.dir-b .template-sheet{border-color:var(--ink-b);background:var(--surface);box-shadow:none}.dir-b .template-sheet-head,.dir-b .template-list,.dir-b .template-editor-heading{border-color:var(--ink-b)}.dir-b .sheet-close,.dir-b .template-order-actions button{color:var(--sub-b)}.dir-b .start-free-row,.dir-b .template-start-row,.dir-b .template-list-row,.dir-b .template-source-note,.dir-b .template-secondary-actions{border-color:var(--line-b)}.dir-b .start-free-row,.dir-b .template-start-row,.dir-b .template-row-main{color:var(--ink-b)}.dir-b .start-free-row small,.dir-b .template-start-row small,.dir-b .template-row-main span{color:var(--faint-b);font-family:var(--mono-b)}.dir-b .template-row-main small{color:var(--sub-b)}.dir-b .template-exercise-row{border-top-color:var(--ink-b)}.dir-b .template-exercise-invalid{border-top-color:var(--danger-b)}.dir-b .template-exercise-head>strong,.dir-b .template-order-actions .template-remove{color:var(--cobalt-deep)}.dir-b .template-exercise-head select,.dir-b .template-targets input{border-color:var(--line-strong);border-radius:0;background:var(--surface);color:var(--ink-b);font-family:var(--mono-b)}.dir-b .template-targets>label{color:var(--faint-b)}.dir-b .template-stepper button{border-color:var(--line-strong);background:var(--surface-alt);color:var(--cobalt-deep)}.dir-b .template-invalid-note,.dir-b .template-issues{color:var(--danger-b)}.dir-b .template-issues{border-left-color:var(--danger-b)}.dir-c{--floor: #1b1815;--slab: #252119;--slab-2: #2e2a20;--chalk: #ece5d3;--sub-c: #a2988a;--faint-c: #6d665b;--line-c: #3b352a;--line-strong-c: #57503f;--ember: #e8621f;--ember-bright: #f4742e;--ember-deep: #b34410;--ok-c: #8aa86f;--warn-c: #d9a441;--danger-c: #e05d44;--sans-c: "Archivo", "Inter", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--mono-c: "JetBrains Mono", "Sarasa Mono SC", ui-monospace, monospace}body:has(.dir-c){font-family:var(--sans-c);background:#14120f;background-image:none;color:#ece5d3;line-height:1.65}.dir-c.app{border-left:1px solid var(--line-c);border-right:1px solid var(--line-c);background:var(--floor)}.dir-c button:focus-visible,.dir-c select:focus-visible,.dir-c textarea:focus-visible{outline:2px solid var(--ember);outline-offset:2px}.dir-c .system-status{background:var(--slab);border-bottom-color:var(--line-strong-c);color:var(--sub-c);font-family:var(--mono-c)}.dir-c .system-status-offline{color:var(--warn-c)}.dir-c .system-status-error{color:var(--danger-c)}.dir-c .sync-select select{font-family:var(--mono-c);background:var(--floor);border:1px solid var(--line-strong-c);border-radius:6px;color:var(--chalk)}.dir-c.sync-error .sync-button{color:var(--danger-c)}.dir-c .dir-option{font-family:var(--sans-c);font-weight:600;background:var(--floor);border:1px solid var(--line-strong-c);border-radius:6px;color:var(--sub-c);letter-spacing:.1em}.dir-c .dir-option-active{background:var(--ember);border-color:var(--ember-deep);color:#1b1815;font-weight:800}.dir-c .display{font-family:var(--sans-c);font-weight:800;letter-spacing:.01em;color:var(--chalk);border-bottom:2px solid var(--line-strong-c)}.dir-c .cal{gap:3px;background:transparent;border:none}.dir-c .cal-weekday{background:transparent;color:var(--faint-c);font-family:var(--mono-c);font-size:.65rem;letter-spacing:.3em;padding:.4rem 0}.dir-c .cal-pad{background:transparent}.dir-c .cal-day{background:var(--slab);border:1px solid var(--line-c);border-radius:6px;color:var(--sub-c)}.dir-c .cal-num{font-family:var(--mono-c);font-weight:600}.dir-c .cal-day-trained{color:var(--chalk);background:var(--slab-2);border-color:var(--line-strong-c)}.dir-c .cal-dot{width:14px;height:3px;border-radius:2px;background:var(--ember)}.dir-c .cal-day-selected{background:var(--ember);border-color:var(--ember-deep);color:#1b1815;box-shadow:0 3px #0006}.dir-c .cal-day-selected .cal-dot{background:#1b1815}.dir-c .cal-day-selected .cal-num{color:#1b1815}.dir-c .day-entry{border-top:2px solid var(--line-strong-c)}.dir-c .day-entry-head h2{color:var(--chalk)}.dir-c .bw{font-family:var(--mono-c);color:var(--sub-c)}.dir-c .day-exercise{border-left:4px solid var(--ember);padding-left:1rem}.dir-c .day-exercise h3{font-weight:800;letter-spacing:.06em;color:var(--chalk)}.dir-c .set-ledger li{border-bottom:1px solid var(--line-c);font-family:var(--sans-c);color:var(--chalk)}.dir-c .set-idx{font-family:var(--mono-c);color:var(--faint-c)}.dir-c .set-kind{color:var(--ok-c);font-family:var(--mono-c)}.dir-c .set-load{font-family:var(--mono-c);font-weight:700}.dir-c .set-result{color:var(--sub-c)}.dir-c .set-failed .set-load{text-decoration:line-through;color:var(--faint-c)}.dir-c .set-failed .set-result{color:var(--danger-c);font-weight:700}.dir-c .ink-note{font-style:normal;color:var(--sub-c)}.dir-c .session-note{background:var(--slab);border:1px solid var(--line-c);border-left:4px solid var(--warn-c);border-radius:6px;color:var(--sub-c)}.dir-c .session-note:before{content:"手记 — ";font-weight:700;color:var(--warn-c)}.dir-c .rest-day{border-top:1px solid var(--line-c);color:var(--faint-c);letter-spacing:.06em}.dir-c .entry-row{border:1px solid var(--line-strong-c);border-radius:6px;background:var(--slab);box-shadow:0 3px #0000004d}.dir-c .entry-row:before{width:4px;border-radius:6px 0 0 6px;background:var(--line-c)}.dir-c .entry-completed{background:color-mix(in srgb,var(--ok-c) 8%,var(--slab))}.dir-c .entry-completed:before{background:var(--ok-c)}.dir-c .entry-idx{font-family:var(--sans-c);font-weight:800;letter-spacing:.12em;color:var(--chalk)}.dir-c .entry-kind{border-color:var(--line-strong-c);color:var(--sub-c);font-family:var(--mono-c)}.dir-c .result-toggle{border:1px solid var(--line-strong-c);color:var(--sub-c);border-radius:999px;font-family:var(--mono-c);letter-spacing:.12em;background:transparent}.dir-c .result-toggle[aria-pressed=true]{border-color:var(--ok-c);background:var(--ok-c);color:var(--floor)}.dir-c .set-number-field{font-family:var(--mono-c);color:var(--faint-c)}.dir-c .set-number-field input{border:1px solid var(--line-strong-c);border-radius:6px;background:var(--floor);color:var(--chalk);font-family:var(--mono-c)}.dir-c .set-number-field input[aria-invalid=true]{border-color:var(--danger-c)}.dir-c .set-field-error{color:var(--danger-c)}.dir-c .set-more-button{color:var(--ember-bright);font-family:var(--mono-c)}.dir-c .set-menu{border-color:var(--line-strong-c);border-radius:6px;background:var(--slab-2);box-shadow:0 5px #00000073}.dir-c .set-menu button{color:var(--chalk);font-family:var(--sans-c)}.dir-c .set-menu button:hover,.dir-c .set-menu button:focus-visible{background:var(--floor)}.dir-c .set-menu .set-menu-danger{color:var(--danger-c)}.dir-c .btn-ghost,.dir-c .btn-primary,.dir-c .btn-danger{border-radius:6px;letter-spacing:.15em;font-weight:700}.dir-c .btn-ghost{border:1px solid var(--line-strong-c);color:var(--sub-c);background:var(--slab)}.dir-c .btn-primary{background:var(--ember);border:1px solid var(--ember-deep);color:#1b1815;box-shadow:0 4px 0 var(--ember-deep)}.dir-c .btn-primary:hover{background:#f0702c}.dir-c .btn-primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ember-deep)}.dir-c .btn-primary:disabled{background:var(--slab-2);border-color:var(--line-strong-c);color:var(--faint-c);box-shadow:none}.dir-c .btn-danger{background:var(--danger-c);border:1px solid #a93b2d;color:#1b1815}.dir-c .btn-danger:hover{background:#ef725c}.dir-c .saved-note{font-family:var(--mono-c);color:var(--ok-c)}.dir-c .chart{border-bottom:2px solid var(--line-strong-c)}.dir-c .chart-bar{width:55%;background:var(--chalk);border-radius:4px 4px 0 0;box-shadow:inset 0 4px 0 var(--ember)}.dir-c .chart-bar-failed{background:repeating-linear-gradient(45deg,var(--faint-c) 0 3px,transparent 3px 7px);box-shadow:none}.dir-c .chart-val{font-family:var(--mono-c);color:var(--chalk)}.dir-c .chart-date{font-family:var(--mono-c);color:var(--faint-c)}.dir-c .stat-verse{border-top:2px solid var(--line-strong-c);border-bottom:1px solid var(--line-c)}.dir-c .stat-label{font-family:var(--mono-c);letter-spacing:.18em;color:var(--ember);border:1px solid var(--ember);border-radius:4px}.dir-c .stat-big{font-family:var(--mono-c);letter-spacing:-.02em;color:var(--chalk)}.dir-c .stat-big small{font-family:var(--sans-c);color:var(--sub-c)}.dir-c .stat-trend{color:var(--sub-c)}.dir-c .history-head{font-family:var(--mono-c);letter-spacing:.35em;color:var(--faint-c);text-transform:uppercase}.dir-c .history-list li{border-bottom:1px solid var(--line-c)}.dir-c .history-date{font-family:var(--mono-c);color:var(--ember)}.dir-c .history-sets{font-family:var(--mono-c);color:var(--sub-c)}.dir-c .guide-meta{font-family:var(--mono-c);color:var(--faint-c);border-bottom:1px solid var(--line-c)}.dir-c .guide-h{font-family:var(--sans-c);font-weight:800;letter-spacing:.04em;color:var(--chalk)}.dir-c .guide-h:before{width:1rem;height:4px;border-radius:2px;background:var(--ember)}.dir-c .guide-p{text-align:left;color:var(--chalk)}.dir-c .callout{border:1px solid var(--line-strong-c);border-radius:6px;background:var(--slab);color:var(--sub-c)}.dir-c .callout strong{font-family:var(--mono-c);letter-spacing:.15em;text-transform:uppercase}.dir-c .callout-tip{border-left:4px solid var(--ok-c)}.dir-c .callout-tip strong{color:var(--ok-c)}.dir-c .callout-warning{border-left:4px solid var(--warn-c)}.dir-c .callout-warning strong{color:var(--warn-c)}.dir-c .guide-steps li{border-bottom:1px solid var(--line-c);color:var(--chalk)}.dir-c .guide-steps li:before{content:counter(step,decimal-leading-zero);font-family:var(--mono-c);font-weight:700;color:var(--ember);font-size:.95rem}.dir-c .guide-list li{color:var(--chalk)}.dir-c .guide-list li:before{content:"■";color:var(--ember);font-size:.55rem;top:.55rem}.dir-c .guide-edit textarea{font-family:var(--mono-c);border:1px solid var(--line-strong-c);border-radius:6px;background:var(--floor);color:var(--chalk)}.dir-c .empty-state{border:1px dashed var(--line-strong-c);border-radius:6px;background:var(--slab)}.dir-c .empty-glyph{color:var(--line-strong-c);font-family:var(--sans-c)}.dir-c .empty-state p{color:var(--faint-c)}.dir-c .tabbar{background:var(--slab-2);border-top:2px solid var(--line-strong-c);box-shadow:0 -4px #00000059}.dir-c .tab{color:var(--sub-c);border-top:3px solid transparent;margin-top:-2px}.dir-c .tab-label{font-family:var(--mono-c);letter-spacing:.2em}.dir-c .tab-active{color:var(--ember-bright);border-top-color:var(--ember);font-weight:800}@media (min-width: 40rem){.dir-c .display{font-size:2.6rem}.dir-c .chart{height:13rem}}@media (prefers-reduced-motion: reduce){.dir-c .btn-primary:active{transform:none;box-shadow:0 4px 0 var(--ember-deep)}}.dir-c .month-controls button,.dir-c .block-toolbar button{background:var(--slab-2);border-color:var(--line-strong-c);color:var(--ember);border-radius:6px}.dir-c .sync-notice{border-color:var(--danger-c);color:var(--danger-c);background:var(--slab);border-radius:6px}.dir-c .field-label,.dir-c .compact-field,.dir-c .settings-copy{color:var(--sub-c)}.dir-c .field-label input,.dir-c .field-label select,.dir-c .field-label textarea,.dir-c .compact-field input{border-color:var(--line-strong-c);background:var(--floor);color:var(--chalk);border-radius:6px}.dir-c .settings-section{border-top:2px solid var(--line-strong-c)}.dir-c .settings-section h2{color:var(--chalk)}.dir-c .theme-picker select{font-family:var(--mono-c)}.dir-c .block-item{border-color:var(--line-strong-c);background:var(--slab);color:var(--sub-c);border-radius:6px}.dir-c .archive-button,.dir-c .remove-link,.dir-c .guide-video a{color:var(--ember)}.dir-c .subpage-head{border-bottom-color:var(--line-strong-c)}.dir-c .subpage-head h1{color:var(--chalk)}.dir-c .back-button,.dir-c .row-arrow{color:var(--ember-bright)}.dir-c .plain-list,.dir-c .plain-row,.dir-c .local-tabs{border-color:var(--line-strong-c)}.dir-c .plain-row{color:var(--chalk)}.dir-c .plain-row small,.dir-c .list-heading{color:var(--sub-c)}.dir-c .row-value{font-family:var(--mono-c)}.dir-c .local-tabs button{color:var(--sub-c)}.dir-c .local-tabs .local-tab-active{color:var(--ember-bright);border-bottom-color:var(--ember)}.dir-c .data-export-row{border-color:var(--line-strong-c);color:var(--chalk)}.dir-c .data-export-row strong{color:var(--sub-c);font-family:var(--mono-c)}.dir-c .workout-exercise{border-top-color:var(--line-strong-c)}.dir-c .guide-toc,.dir-c .data-action-row{border-color:var(--line-strong-c);color:var(--chalk)}.dir-c .guide-toc button,.dir-c .data-action{color:var(--ember-bright)}.dir-c .guide-toc-sub button,.dir-c .data-action-row strong{color:var(--sub-c)}.dir-c .section-link{color:var(--ember-bright)}.dir-c .strength-search input{border-color:var(--line-strong-c);border-radius:6px;background:var(--slab);color:var(--chalk);font-family:var(--sans-c)}.dir-c .block-add summary{border-color:var(--line-strong-c);background:var(--slab-2);color:var(--sub-c);border-radius:6px}.dir-c .heading-action{box-shadow:none}.dir-c .session-edit,.dir-c .history-edit{color:var(--ember-bright)}.dir-c .session-delete,.dir-c .danger-link{color:var(--danger-c)}.dir-c .session-edit:hover,.dir-c .history-edit:hover{color:var(--ember)}.dir-c .session-delete:hover,.dir-c .danger-link:hover{color:#ef725c}.dir-c .training-data-row{border-bottom-color:var(--line-c)}.dir-c .training-data-row strong{color:var(--sub-c);font-family:var(--mono-c)}.dir-c .confirm-backdrop{background:#000000ad}.dir-c .confirm-dialog{border:2px solid var(--line-strong-c);border-radius:6px;background:var(--slab);color:var(--chalk);box-shadow:0 5px #00000080}.dir-c .confirm-dialog p{color:var(--sub-c)}.dir-c .guide-media img{border-color:var(--line-strong-c)}.dir-c .calendar-template-link,.dir-c .template-row-action,.dir-c .template-start-row button,.dir-c .manage-templates-link{color:var(--ember-bright)}.dir-c .template-origin,.dir-c .template-source-note,.dir-c .workout-target,.dir-c .template-list-heading p,.dir-c .template-editor-heading span{color:var(--faint-c);font-family:var(--mono-c)}.dir-c .workout-template-source{color:var(--ember-bright);font-family:var(--mono-c)}.dir-c .session-template{color:var(--sub-c)}.dir-c .template-sheet-backdrop{background:#000000ad}.dir-c .template-sheet{border-color:var(--line-strong-c);background:var(--slab);color:var(--chalk);box-shadow:0 -5px #00000073}.dir-c .template-sheet-head,.dir-c .template-list,.dir-c .template-editor-heading{border-color:var(--line-strong-c)}.dir-c .sheet-close,.dir-c .template-order-actions button{color:var(--sub-c)}.dir-c .start-free-row,.dir-c .template-start-row,.dir-c .template-list-row,.dir-c .template-source-note,.dir-c .template-secondary-actions{border-color:var(--line-c)}.dir-c .start-free-row,.dir-c .template-start-row,.dir-c .template-row-main{color:var(--chalk)}.dir-c .start-free-row small,.dir-c .template-start-row small,.dir-c .template-row-main span{color:var(--faint-c);font-family:var(--mono-c)}.dir-c .template-row-main small{color:var(--sub-c)}.dir-c .template-exercise-row{border-top-color:var(--line-strong-c)}.dir-c .template-exercise-invalid{border-top-color:var(--danger-c)}.dir-c .template-exercise-head>strong,.dir-c .template-order-actions .template-remove{color:var(--ember-bright)}.dir-c .template-exercise-head select,.dir-c .template-targets input{border-color:var(--line-strong-c);border-radius:6px;background:var(--floor);color:var(--chalk);font-family:var(--mono-c)}.dir-c .template-targets>label{color:var(--faint-c)}.dir-c .template-stepper button{border-color:var(--line-strong-c);background:var(--slab-2);color:var(--ember-bright)}.dir-c .template-invalid-note,.dir-c .template-issues{color:var(--danger-c)}.dir-c .template-issues{border-left-color:var(--danger-c)}:root{--paper: #f4f0e6;--paper-deep: #eae4d4;--ink: #23211c;--ink-soft: #5c574b;--ink-faint: #9a937f;--cinnabar: #a63a2b;--cinnabar-deep: #842b1f;--jade: #3d6b5a;--gold: #b98a2f;--line: #d6cfbc;--serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;--mono: "Sarasa Mono SC", "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--serif);background:var(--paper);color:var(--ink);line-height:1.7;background-image:radial-gradient(ellipse at 20% 0%,rgba(166,58,43,.04),transparent 55%),repeating-linear-gradient(0deg,transparent 0 27px,rgba(35,33,28,.022) 27px 28px)}.visually-hidden{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}button{font-family:inherit;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--cinnabar);outline-offset:2px}.app{max-width:30rem;margin:0 auto;min-height:100dvh;padding-top:env(safe-area-inset-top);display:flex;flex-direction:column;border-left:1px solid var(--line);border-right:1px solid var(--line);background:#ffffff40}.system-status{flex:0 0 auto;min-height:44px;padding:0 1.25rem;display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid var(--line);background:var(--paper);color:var(--ink-soft);font:700 .76rem var(--mono);letter-spacing:.08em;animation:status-enter .12s ease-out both}.system-status-offline{color:var(--gold)}.system-status-error{color:var(--cinnabar-deep)}.system-status-notice{padding-top:.4rem;padding-bottom:.4rem}@keyframes status-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sync-select select{font-family:var(--mono);font-size:.72rem;padding:.35rem .5rem;min-height:44px;background:var(--paper-deep);color:var(--ink);border:1px solid var(--line);border-radius:2px}.sync-button{min-height:44px;padding:.35rem 0;border:0;background:transparent;color:inherit;font:inherit}.sync-button:disabled{opacity:.65;cursor:wait}.sync-notice{width:100%;min-height:44px;padding:.45rem .6rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;text-align:left;border:1px solid var(--cinnabar);background:#a63a2b14;color:var(--cinnabar-deep);font-size:.76rem}.page{flex:1;padding:1.5rem 1.25rem 6.5rem}.section-head{margin-bottom:1.4rem}.calendar-head{display:flex;flex-direction:column;gap:.8rem}.title-action-row{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem}.title-action-row .display{flex:1;min-width:0}.title-action-row .heading-action{flex:0 0 auto;min-height:44px;padding:.45rem .8rem;letter-spacing:.08em;box-shadow:none}.month-controls{display:grid;grid-template-columns:44px minmax(7rem,1fr) 44px;align-items:center;border:1px solid var(--line)}.month-controls button{min-height:44px;border:0;background:var(--paper-deep);color:var(--cinnabar);font-size:1.4rem}.month-controls output{text-align:center;font-family:var(--mono);font-size:.85rem}.display{font-size:2.4rem;font-weight:900;letter-spacing:.12em;line-height:1.15;border-bottom:1px solid var(--ink);padding-bottom:.5rem}.subpage-head{margin-bottom:1.35rem;border-bottom:1px solid var(--ink)}.subpage-head h1{font-size:1.9rem;line-height:1.2;letter-spacing:.08em;padding:.35rem 0 .65rem}.back-button{min-height:44px;padding:.4rem 0;border:0;background:transparent;color:var(--cinnabar-deep);font-size:.85rem;font-weight:700}.plain-list{border-top:1px solid var(--line)}.plain-row{width:100%;min-height:58px;padding:.7rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink)}.plain-row>span:first-child{display:flex;flex-direction:column;gap:.15rem;min-width:0}.plain-row strong{font-size:1rem;letter-spacing:.06em}.plain-row small{color:var(--ink-faint);font-size:.72rem;font-weight:400}.row-arrow{flex:0 0 auto;color:var(--cinnabar);font-size:1.5rem}.row-value{flex:0 0 auto;text-align:right;font:700 .88rem var(--mono)}.row-value small{display:block;margin-top:.1rem}.list-section{margin-top:2rem}.list-heading{margin-bottom:.55rem;color:var(--ink-soft);font-size:.8rem;letter-spacing:.18em}.list-heading-row{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.35rem}.list-heading-row .list-heading{margin-bottom:0}.section-link{min-height:44px;padding:.35rem 0;border:0;background:transparent;color:var(--cinnabar-deep);font-size:.8rem;font-weight:700}.strength-row>strong{min-width:0;overflow-wrap:anywhere}.strength-search{display:block;margin-bottom:1rem}.strength-search input{width:100%;min-height:44px;padding:.65rem .75rem;border:1px solid var(--line);border-radius:2px;background:#ffffff73;color:var(--ink);font:.9rem var(--serif)}.strength-search input::placeholder{color:var(--ink-faint)}.local-tabs{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:1.35rem;border-bottom:1px solid var(--line)}.local-tabs button{min-height:44px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--ink-soft);font-size:.9rem;font-weight:700}.local-tabs .local-tab-active{border-bottom-color:var(--cinnabar);color:var(--cinnabar-deep)}.action-settings{padding-top:.2rem}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--line);border:1px solid var(--line);margin-bottom:1.6rem}.cal-weekday{background:var(--ink);color:var(--paper);font-size:.68rem;text-align:center;padding:.3rem 0;letter-spacing:.2em}.cal-pad{background:var(--paper-deep)}.cal-day{position:relative;background:var(--paper);border:none;min-height:44px;padding:.35rem 0 .45rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;color:var(--ink-soft)}.cal-num{font-size:.9rem;font-family:var(--mono)}.cal-day-trained{color:var(--ink);font-weight:700;background:linear-gradient(180deg,var(--paper),var(--paper-deep))}.cal-dot{width:5px;height:5px;border-radius:50%;background:var(--cinnabar)}.cal-day-selected{background:var(--cinnabar);color:var(--paper)}.cal-day-selected .cal-dot{background:var(--paper)}.cal-day-selected .cal-num{color:var(--paper)}.day-entry{border-top:3px double var(--ink);padding-top:1rem}.day-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.session-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.1rem}.day-entry-head h2{font-size:1.15rem;letter-spacing:.08em;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.bw{font-size:.8rem;color:var(--ink-soft);font-family:var(--mono);margin-top:.15rem}.day-exercise{margin-top:1.2rem;padding-left:.9rem;border-left:3px solid var(--cinnabar)}.day-exercise h3{font-size:1.05rem;letter-spacing:.15em;margin-bottom:.5rem}.set-ledger{list-style:none}.set-ledger li{display:grid;grid-template-columns:1.4rem 2.2rem 1fr auto;align-items:baseline;gap:.5rem;padding:.4rem 0;border-bottom:1px dashed var(--line);font-size:.92rem}.set-idx{font-family:var(--mono);color:var(--ink-faint);font-size:.75rem}.set-kind{font-size:.72rem;color:var(--jade);letter-spacing:.1em}.set-load{font-weight:700;font-family:var(--mono);font-size:.9rem}.set-result{font-size:.78rem;color:var(--ink-soft)}.set-failed .set-load{text-decoration:line-through;color:var(--ink-faint)}.set-failed .set-result{color:var(--cinnabar);font-weight:700}.ink-note{font-size:.82rem;color:var(--ink-soft);margin-top:.5rem;font-style:italic}.session-note{margin-top:1.4rem;padding:.9rem 1rem;background:var(--paper-deep);border-left:3px solid var(--gold);font-size:.88rem;color:var(--ink-soft)}.session-note:before{content:"手记 — ";font-weight:700;color:var(--gold)}.rest-day{border-top:1px dashed var(--line);padding-top:1.2rem;color:var(--ink-faint);font-size:.9rem;text-align:center;letter-spacing:.1em}.entry-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.workout-exercises{display:grid;gap:1.8rem}.workout-exercise{border-top:3px double var(--ink);padding-top:.35rem}.workout-exercise-head{display:grid;grid-template-columns:1fr auto;gap:.6rem;align-items:end}.workout-exercise-head .exercise-select{margin:0 0 1rem}.workout-exercise-head .remove-link{margin-bottom:1rem}.entry-row{border:1px solid var(--ink);background:#fff6;padding:.75rem .8rem .85rem;position:relative}.entry-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--line)}.entry-completed{background:#3d6b5a0f}.entry-completed:before{background:var(--jade)}.entry-top{display:flex;justify-content:space-between;align-items:center;gap:.65rem;margin-bottom:.65rem}.entry-idx{font-weight:900;letter-spacing:.2em;font-size:.95rem}.entry-identity,.entry-actions{display:flex;align-items:center;gap:.35rem;min-width:0}.entry-kind{padding:.15rem .4rem;border:1px solid var(--line);color:var(--ink-soft);font:.68rem var(--mono);letter-spacing:.08em}.result-toggle{min-height:44px;min-width:5rem;padding:.3rem .7rem;border:1px solid var(--ink-faint);background:transparent;color:var(--ink-soft);font-size:.82rem;font-weight:700;letter-spacing:.08em;border-radius:999px}.result-toggle[aria-pressed=true]{border-color:var(--jade);background:var(--jade);color:var(--paper)}.set-values{display:grid;grid-template-columns:minmax(0,1fr) minmax(6.5rem,.72fr);gap:.65rem}.set-number-field{display:flex;min-width:0;flex-direction:column;color:var(--ink-faint);font-size:.68rem;letter-spacing:.16em}.set-number-field input{width:100%;min-width:0;min-height:48px;margin-top:.25rem;border:1px solid var(--line);border-radius:2px;background:var(--paper);color:var(--ink);padding:.45rem .65rem;text-align:left;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;font-family:var(--mono);font-size:1.15rem;font-weight:700;letter-spacing:0}.set-number-field input[aria-invalid=true]{border-color:var(--cinnabar)}.set-number-field input::placeholder{color:var(--ink-faint);font-size:.72rem;font-weight:400}.set-number-field input::-webkit-inner-spin-button,.set-number-field input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.set-field-error{margin-top:.25rem;color:var(--cinnabar);font-size:.68rem;line-height:1.35;letter-spacing:0}.set-menu-root{position:relative;flex:0 0 auto}.set-more-button{width:44px;min-height:44px;border:0;background:transparent;color:var(--ink-soft);font:700 1.35rem/1 var(--mono)}.set-menu{position:absolute;z-index:20;top:calc(100% + .25rem);right:0;width:max-content;min-width:9.5rem;padding:.25rem;border:1px solid var(--ink);background:var(--paper);box-shadow:0 5px 14px #23211c29}.set-menu button{display:block;width:100%;min-height:44px;padding:.5rem .65rem;border:0;background:transparent;color:var(--ink);text-align:left;font-size:.82rem}.set-menu button:hover,.set-menu button:focus-visible{background:var(--paper-deep)}.set-menu .set-menu-danger{color:var(--cinnabar-deep)}.add-set-button,.add-exercise-button{width:100%;flex:none;margin-top:.8rem}.add-exercise-button{margin:1.1rem 0 0}.save-workout{margin-top:1.4rem}.log-actions{display:flex;gap:.75rem;margin-top:1.5rem}.btn-ghost,.btn-primary,.btn-danger{flex:1;min-height:48px;font-size:.92rem;letter-spacing:.2em;border-radius:2px}.btn-ghost{background:transparent;border:1px solid var(--ink-soft);color:var(--ink-soft)}.btn-primary{background:var(--cinnabar);border:1px solid var(--cinnabar-deep);color:var(--paper);font-weight:700;box-shadow:2px 2px 0 var(--ink)}.btn-primary:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-danger{background:var(--cinnabar);border:1px solid var(--cinnabar-deep);color:var(--paper);font-weight:700}.btn-danger:hover{background:var(--cinnabar-deep)}.btn-danger:disabled{opacity:.55;cursor:wait}.saved-note{margin-top:.8rem;text-align:center;font-size:.8rem;color:var(--jade);font-family:var(--mono)}.remove-link,.archive-button,.session-edit,.session-delete,.danger-link,.history-edit{min-height:44px;min-width:44px;padding:.35rem .7rem;border:0;background:transparent;color:var(--cinnabar);text-decoration:underline;text-underline-offset:.2em}.session-delete{flex:0 0 auto}.session-edit,.history-edit{color:var(--jade)}.session-edit:hover,.session-delete:hover,.danger-link:hover,.history-edit:hover{color:var(--cinnabar-deep);text-decoration-thickness:2px}.danger-link:disabled{color:var(--ink-faint);cursor:not-allowed;text-decoration:none}.auth-shell{justify-content:center;padding:1.5rem}.loading-copy{margin:auto;color:var(--ink-soft);letter-spacing:.12em}.login-panel{width:100%;padding:2rem .25rem}.settings-copy{color:var(--ink-soft);font-size:.82rem;margin:.55rem 0 .8rem}.field-label,.compact-field{display:flex;flex-direction:column;gap:.3rem;margin-top:.9rem;color:var(--ink-soft);font-size:.72rem;letter-spacing:.12em}.field-label input,.field-label select,.field-label textarea,.compact-field input{width:100%;min-width:0;max-width:100%;min-height:44px;border:1px solid var(--line);background:#ffffff80;color:var(--ink);padding:.65rem .7rem;font:.9rem/1.5 var(--mono);border-radius:2px}.field-label textarea{min-height:88px;resize:vertical}.form-error{color:var(--cinnabar);font-size:.82rem;margin-top:.8rem}.full-button{width:100%;flex:none;margin-top:1rem}.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.7rem;margin-bottom:1rem}.form-grid>*{min-width:0}.form-grid input[type=date]{min-inline-size:0}.field-label.exercise-select{margin:0 0 1rem}.compact-field{margin:0}.compact-field.bodyweight-field{margin-bottom:1rem}.note-field{margin-top:1.2rem}.field-help{color:var(--ink-faint);font-size:.76rem;margin-top:.5rem}.check-label{display:flex;align-items:center;gap:.6rem;min-height:44px;font-size:.82rem}.check-label input{width:20px;height:20px}.settings-section{border-top:3px double var(--ink);padding:1rem 0 1.5rem;margin-top:1rem}.settings-section h2{letter-spacing:.15em}.theme-picker{display:grid;grid-template-columns:1fr auto;gap:.6rem;align-items:end;margin-top:.9rem}.theme-picker .field-label{margin-top:0}.theme-apply{flex:none;min-width:6rem}.exercise-admin{display:grid;grid-template-columns:1fr auto;gap:.6rem;align-items:end}.exercise-admin .field-label{margin-top:0}.exercise-admin .field-label:first-child{grid-column:1 / -1}.exercise-admin .archive-button{grid-column:1 / -1;justify-self:start}.manual-one-rm-save{min-width:5.5rem}.manual-one-rm-save:disabled{opacity:.45;cursor:not-allowed}.add-exercise{margin-top:1rem;border-top:1px dashed var(--line);padding-top:.5rem}.export-time{font:.75rem var(--mono);color:var(--ink-faint)}.training-data-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.75rem;min-height:48px;margin-top:.45rem;border-bottom:1px dashed var(--line)}.training-data-row strong{font:.82rem var(--mono);color:var(--ink-soft)}.data-export-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:48px;border-bottom:1px dashed var(--line)}.data-export-row strong{font:.75rem var(--mono);color:var(--ink-soft)}.data-action-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.7rem;min-height:48px;border-bottom:1px dashed var(--line)}.data-action-row strong{color:var(--ink-soft);font:.75rem var(--mono)}.data-action{min-height:44px;padding:.35rem .65rem;border:0;background:transparent;color:var(--cinnabar);text-decoration:underline;text-underline-offset:.2em}.data-action:disabled{color:var(--ink-faint);cursor:not-allowed;text-decoration:none}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:1.25rem;background:#23211c7a;overscroll-behavior:contain}.confirm-dialog{width:min(100%,25rem);padding:1.25rem;border:3px double var(--ink);background:var(--paper);box-shadow:4px 4px 0 var(--ink)}.confirm-dialog h2{font-size:1.25rem;letter-spacing:.08em}.confirm-dialog p{margin-top:.55rem;color:var(--ink-soft);font-size:.88rem}.confirm-actions{display:flex;gap:.7rem;margin-top:1.1rem}.calendar-template-link{display:block;min-height:44px;margin:-.35rem 0 0 auto;padding:.35rem 0;border:0;background:transparent;color:var(--cinnabar);text-decoration:underline;text-underline-offset:.2em}.template-origin,.workout-template-source,.template-source-note,.workout-target{color:var(--ink-faint);font-size:.75rem;font-family:var(--mono)}.workout-template-source{margin:-.65rem 0 1rem;color:var(--cinnabar-deep)}.workout-target{margin:-.55rem 0 .75rem;text-align:right}.session-template{min-height:44px;padding:.35rem .55rem;border:0;background:transparent;color:var(--ink-soft);text-decoration:underline;text-underline-offset:.2em}.template-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:#23211c75;overscroll-behavior:contain}.template-sheet{width:min(100%,30rem);max-height:min(82vh,42rem);overflow-y:auto;padding:1rem 1.15rem calc(1rem + env(safe-area-inset-bottom));border:1px solid var(--ink);border-bottom:0;background:var(--paper);box-shadow:0 -5px 18px #23211c2e;animation:template-sheet-enter .16s ease-out}@keyframes template-sheet-enter{0%{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}.template-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:.7rem;border-bottom:3px double var(--ink)}.template-sheet-head h2{font-size:1.1rem;letter-spacing:.06em}.sheet-close{width:44px;min-height:44px;border:0;background:transparent;color:var(--ink-soft);font-size:1.5rem}.start-free-row,.template-start-row{width:100%;min-height:62px;border:0;border-bottom:1px dashed var(--line);background:transparent;color:var(--ink)}.start-free-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 0;text-align:left}.start-free-row>span:first-child,.template-start-row>span{display:flex;min-width:0;flex-direction:column;gap:.15rem}.start-free-row small,.template-start-row small{color:var(--ink-faint);font:.72rem var(--mono)}.template-start-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.8rem}.template-start-row button,.manage-templates-link{min-width:56px;min-height:44px;border:0;background:transparent;color:var(--cinnabar);text-decoration:underline;text-underline-offset:.2em}.template-start-row button:disabled{color:var(--ink-faint);text-decoration:none}.manage-templates-link{display:block;margin:.55rem auto 0}.template-list-heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.45rem}.template-list-heading p{color:var(--ink-faint);font:.72rem var(--mono)}.template-new-button{min-width:5.5rem;flex:0 0 auto}.template-list{border-top:1px solid var(--ink)}.template-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border-bottom:1px dashed var(--line)}.template-row-main{display:flex;min-width:0;min-height:76px;flex-direction:column;align-items:flex-start;justify-content:center;gap:.12rem;padding:.65rem .5rem .65rem 0;border:0;background:transparent;color:var(--ink);text-align:left}.template-row-main strong{font-size:1rem}.template-row-main small{max-width:100%;overflow:hidden;color:var(--ink-soft);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.template-row-main span{color:var(--ink-faint);font:.7rem var(--mono)}.template-row-action{min-width:4rem;min-height:44px;padding:.4rem;border:0;background:transparent;color:var(--cinnabar);text-decoration:underline;text-underline-offset:.2em}.template-row-action:disabled{color:var(--ink-faint);text-decoration:none}.archived-template-list{border-top-color:var(--line);opacity:.82}.empty-primary{display:block;width:min(100%,12rem);margin:1rem auto 0}.template-source-note{margin-bottom:.75rem;padding:.65rem 0;border-bottom:1px dashed var(--line);line-height:1.65}.template-editor-heading{display:flex;align-items:baseline;justify-content:space-between;margin:1.4rem 0 .55rem;border-bottom:1px solid var(--ink);padding-bottom:.35rem}.template-editor-heading h2{font-size:1rem;letter-spacing:.18em}.template-editor-heading span{color:var(--ink-faint);font:.72rem var(--mono)}.compact-empty{margin:.8rem 0;padding:1.4rem 1rem}.template-exercise-list{display:grid;list-style:none;gap:1rem}.template-exercise-row{border-top:3px double var(--ink);padding-top:.65rem}.template-exercise-invalid{border-top-color:var(--cinnabar)}.template-exercise-head{display:grid;grid-template-columns:1.5rem minmax(0,1fr);align-items:center;gap:.5rem}.template-exercise-head>strong{color:var(--cinnabar);font:700 .82rem var(--mono)}.template-exercise-head select{width:100%;min-width:0;min-height:44px;border:1px solid var(--line);background:#ffffff80;color:var(--ink);padding:.5rem;font:.86rem var(--mono)}.template-order-actions{grid-column:2;display:flex;flex-wrap:wrap;justify-content:flex-end}.template-order-actions button{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--ink-soft)}.template-order-actions button:disabled{color:var(--line)}.template-order-actions .template-remove{color:var(--cinnabar);text-decoration:underline;text-underline-offset:.2em}.template-invalid-note{margin:.35rem 0 0 2rem;color:var(--cinnabar);font-size:.75rem}.template-targets{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem;margin:.55rem 0 0 2rem}.template-targets>label{display:flex;min-width:0;flex-direction:column;gap:.3rem;color:var(--ink-faint);font-size:.7rem;letter-spacing:.08em}.template-targets input{width:100%;min-width:0;min-height:44px;border:1px solid var(--line);background:#ffffff80;color:var(--ink);padding:.5rem;font:.86rem var(--mono)}.template-stepper{display:grid;grid-template-columns:44px minmax(0,1fr) 44px}.template-stepper button{min-height:44px;border:1px solid var(--line);background:var(--paper-deep);color:var(--cinnabar);font-size:1.1rem}.template-stepper input{border-left:0;border-right:0;text-align:center;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.template-stepper input::-webkit-inner-spin-button,.template-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.add-template-exercise{width:100%;margin-top:1rem;flex:none}.template-issues{margin-top:1rem;padding:.75rem .75rem .75rem 1.8rem;border-left:3px solid var(--cinnabar);color:var(--cinnabar-deep);font-size:.8rem}.template-save{margin-top:1.2rem}.template-secondary-actions{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:1rem;padding-top:.5rem;border-top:1px dashed var(--line)}.template-secondary-actions .btn-ghost{min-width:7rem;flex:0 0 auto}.template-secondary-actions .archive-button,.template-secondary-actions .danger-link{flex:0 0 auto}.block-add{margin-bottom:1rem}.block-add summary{min-height:44px;padding:.6rem .75rem;border:1px solid var(--line);background:var(--paper-deep);color:var(--ink-soft);cursor:pointer;font-weight:700}.block-toolbar{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;margin-top:.45rem}.block-toolbar button{min-height:44px;border:1px solid var(--line);background:var(--paper-deep);color:var(--ink-soft)}.block-list{list-style:none;display:grid;gap:.8rem}.block-item{padding:.8rem;border:1px solid var(--line);background:#ffffff40}.block-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-bottom:1px dashed var(--line);padding-bottom:.4rem}.block-head strong{font:.72rem var(--mono);color:var(--cinnabar)}.block-head span{display:flex}.block-head button{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--ink-soft)}.guide-media{margin:1.2rem 0}.guide-media img{display:block;width:100%;max-height:32rem;object-fit:contain;border:1px solid var(--line)}.guide-media figcaption{color:var(--ink-faint);font-size:.78rem;margin-top:.35rem}.guide-video a{display:block;min-height:44px;padding:.6rem 0;color:var(--cinnabar)}.guide-divider{border:0;border-top:3px double var(--line);margin:1.5rem 0}.chart{display:flex;align-items:flex-end;gap:.9rem;height:11rem;padding:1rem .5rem 0;border-bottom:2px solid var(--ink);margin-bottom:1.6rem}.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:.25rem}.chart-bar{width:60%;background:linear-gradient(180deg,var(--cinnabar),var(--cinnabar-deep));border-radius:2px 2px 0 0;min-height:8px}.chart-bar-failed{background:repeating-linear-gradient(45deg,var(--ink-faint) 0 4px,transparent 4px 8px)}.chart-val{font-family:var(--mono);font-size:.68rem;font-weight:700}.chart-date{font-family:var(--mono);font-size:.65rem;color:var(--ink-faint)}.stat-verse{border-top:3px double var(--ink);border-bottom:1px solid var(--line);padding:1rem 0;margin-bottom:1.6rem;display:flex;flex-direction:column;gap:.7rem}.stat-line{display:flex;align-items:baseline;gap:1rem}.stat-label{flex-shrink:0;font-size:.72rem;letter-spacing:.3em;color:var(--cinnabar);writing-mode:horizontal-tb;border:1px solid var(--cinnabar);padding:.1rem .4rem}.stat-big{font-size:1.9rem;font-weight:900;font-family:var(--mono)}.stat-big small{font-size:.85rem;font-family:var(--serif);font-weight:400;color:var(--ink-soft)}.stat-trend{font-size:.88rem;color:var(--ink-soft)}.history-head{font-size:1rem;letter-spacing:.4em;margin-bottom:.6rem;color:var(--ink-soft)}.history-list{list-style:none}.history-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.9rem;padding:.55rem 0;border-bottom:1px dashed var(--line);font-size:.85rem;align-items:center}.history-date{font-family:var(--mono);color:var(--cinnabar);flex-shrink:0;font-weight:700}.history-sets{font-family:var(--mono);color:var(--ink-soft);font-size:.78rem}.history-edit{padding-left:.55rem;padding-right:.55rem}.guide-meta{font-family:var(--mono);font-size:.7rem;color:var(--ink-faint);margin-bottom:1.2rem;padding-bottom:.6rem;border-bottom:1px dashed var(--line)}.guide-toc{margin-bottom:1.3rem;padding:.75rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.guide-toc>strong{display:block;margin-bottom:.25rem;color:var(--ink-soft);font-size:.76rem;letter-spacing:.16em}.guide-toc ol{list-style:none}.guide-toc button{width:100%;min-height:36px;padding:.25rem 0;border:0;background:transparent;color:var(--cinnabar-deep);text-align:left;font-size:.86rem}.guide-toc-sub button{padding-left:1rem;color:var(--ink-soft)}.guide-h{font-size:1.25rem;letter-spacing:.15em;margin:1.6rem 0 .6rem;display:flex;align-items:center;gap:.6rem}.guide-h:before{content:"";width:1.2rem;height:3px;background:var(--cinnabar)}.guide-h{scroll-margin-top:7rem}.guide-h-3{font-size:1.05rem;margin-top:1.2rem}.guide-p{font-size:.95rem;text-align:justify}.callout{margin:1.1rem 0;padding:.9rem 1rem;border:1px solid var(--line);background:var(--paper-deep);font-size:.88rem}.callout strong{display:block;letter-spacing:.2em;margin-bottom:.3rem;font-size:.8rem}.callout-tip{border-left:4px solid var(--jade)}.callout-tip strong{color:var(--jade)}.callout-warning{border-left:4px solid var(--cinnabar)}.callout-warning strong{color:var(--cinnabar)}.guide-steps{margin:.8rem 0;list-style:none;counter-reset:step}.guide-steps li{counter-increment:step;padding:.5rem 0 .5rem 2.4rem;position:relative;border-bottom:1px dashed var(--line);font-size:.92rem}.guide-steps li:before{content:counter(step,cjk-ideographic);position:absolute;left:.4rem;top:.5rem;font-weight:900;color:var(--cinnabar);font-size:1.05rem}.guide-list{list-style:none;margin:.6rem 0}.guide-list li{padding:.35rem 0 .35rem 1.4rem;position:relative;font-size:.92rem}.guide-list li:before{content:"◆";position:absolute;left:.2rem;color:var(--gold);font-size:.6rem;top:.7rem}.guide-edit-btn{width:100%;margin-top:2rem;flex:none}.guide-edit textarea{width:100%;font-family:var(--mono);font-size:.85rem;line-height:1.8;padding:1rem;border:1px solid var(--ink);background:#ffffff80;color:var(--ink);resize:vertical;border-radius:2px}.empty-state{text-align:center;padding:2.5rem 1.5rem;border:1px dashed var(--ink-faint);margin:1.5rem 0}.empty-state p{color:var(--ink-faint);font-size:.9rem}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:30rem;display:grid;grid-template-columns:repeat(3,1fr);background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -2px 8px #23211c0f;padding-bottom:env(safe-area-inset-bottom)}.tab{min-height:56px;background:transparent;border:none;border-top:3px solid transparent;margin-top:-1px;color:var(--ink-soft);display:flex;align-items:center;justify-content:center}.tab-label{font-size:.9rem;font-weight:600;letter-spacing:.18em}.tab-active{color:var(--cinnabar-deep);font-weight:900;border-top-color:var(--cinnabar)}@media (min-width: 40rem){.display{font-size:2.9rem}.chart{height:13rem}}@media (max-width: 24rem){.page{padding-left:1rem;padding-right:1rem}.form-grid{grid-template-columns:minmax(0,1fr)}.log-actions{flex-direction:column}.log-actions>*{width:100%;flex:none}.block-toolbar{grid-template-columns:repeat(2,1fr)}.title-action-row{align-items:stretch}.heading-action{align-self:flex-end}.template-targets{grid-template-columns:minmax(0,1fr)}.template-secondary-actions{flex-direction:column}.template-secondary-actions>*{width:100%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.btn-primary:active{transform:none}}
