@charset "UTF-8";
:root{color-scheme:dark;--bg:#171916;--surface:#222520;--surface2:#2a2d27;--line:#363a31;--text:#f2f2e9;--muted:#a5aa9b;--dim:#7d8475;--accent:#ff9b6b;--accent-dark:#231810;--green:#c2d6a3;--danger:#ffb0a4;--radius:22px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}a{color:inherit;text-decoration:none}button,input,select{touch-action:manipulation}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button svg{pointer-events:none}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.3;letter-spacing:-.04em;font-weight:650}h2{font-size:21px;line-height:1.4;font-weight:650;letter-spacing:-.025em}h3{font-size:16px;font-weight:600}small{font-size:12px}.app-shell{width:min(1020px,100%);margin:auto;padding:0 28px 118px}.topbar{height:104px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:11px}.brand strong{font-size:21px;letter-spacing:-.06em;font-weight:700;display:block;line-height:1.2}.brand small{display:block;font-size:9px;letter-spacing:.25em;color:var(--muted);margin-top:5px}.brand-dot{color:var(--accent);margin-left:2px}.brand-mark{width:37px;height:37px;display:flex;align-items:center;justify-content:center;gap:4px;transform:rotate(-15deg)}.brand-mark i{display:block;width:5px;height:24px;background:var(--accent);border-radius:2px}.brand-mark i:nth-child(2){height:34px}.save-status{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap}.save-status>span{width:5px;height:5px;background:var(--green);border-radius:50%}.save-status.has-error{color:var(--danger)}.save-status.has-error>span{background:var(--danger)}.storage-banner{border:1px solid #705242;background:#34281f;color:#ffd1b7;padding:13px 16px;border-radius:12px;margin-bottom:15px;font-size:13px}.storage-banner button{background:transparent;text-decoration:underline;padding:6px;font-weight:600}.ongoing-banner{width:100%;border-radius:14px;background:#34392d;color:var(--green);padding:13px 18px;margin-bottom:18px;text-align:left;min-height:48px;font-size:13px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:16px 0 28px}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:600;color:var(--muted);margin-bottom:8px;text-transform:uppercase}.heading-sub{color:var(--muted);font-size:13px;margin-top:8px}.date-label{font-size:12px;color:var(--muted);white-space:nowrap;padding-bottom:5px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.hero-card{position:relative;overflow:hidden;background:var(--accent);color:var(--accent-dark);padding:28px;border-radius:var(--radius);min-height:260px;display:flex;flex-direction:column;justify-content:space-between}.hero-card .eyebrow{color:#7c442b}.hero-card h2{font-size:31px;line-height:1.35;letter-spacing:-.055em;max-width:250px;position:relative;z-index:1}.hero-card p{font-size:13px;color:#74452e;max-width:250px;margin-top:12px;position:relative;z-index:1}.hero-art{position:absolute;width:180px;height:180px;border:1px solid #dc784e;border-radius:50%;right:-54px;bottom:24px}.hero-art:before,.hero-art:after{content:"";position:absolute;inset:18px;border:1px solid #dc784e;border-radius:50%}.hero-art:after{inset:37px}.hero-footer{display:flex;align-items:center;justify-content:space-between;margin-top:25px;font-size:11px;font-weight:600;letter-spacing:.08em}.hero-arrow{width:34px;height:34px;background:#282219;color:var(--accent);display:grid;place-items:center;border-radius:50%}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:25px 0}.metric{padding:0 16px;border-right:1px solid var(--line)}.metric:first-child{padding-left:0}.metric:last-child{border-right:0;padding-right:0}.metric strong{font-size:28px;line-height:1.3;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.metric strong em{font-size:12px;color:var(--muted);font-style:normal;font-weight:400;margin-left:4px}.metric span{display:block;font-size:11px;color:var(--muted);margin-top:5px}.section-caption{font-size:11px;color:var(--muted);margin-top:4px}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.card-heading{padding:22px 22px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.card-heading p{font-size:12px;color:var(--muted);margin-top:5px}.text-button{min-height:48px;min-width:48px;padding:0 4px;background:transparent;color:var(--accent);font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.icon-button{width:48px;height:48px;border-radius:50%;background:var(--surface2);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon-button.small{width:48px;height:48px}.exercise-list{list-style:none;padding:0 22px;margin:0}.exercise-row{display:flex;align-items:center;gap:13px;padding:16px 0;border-top:1px solid var(--line)}.exercise-number{font-size:11px;line-height:1;color:var(--dim);font-variant-numeric:tabular-nums;min-width:21px}.exercise-info{flex:1;min-width:0}.exercise-info strong{display:block;font-size:14px;font-weight:500;overflow-wrap:anywhere}.exercise-info span{font-size:11px;color:var(--muted);display:block;margin-top:4px}.exercise-side{font-size:10px;color:var(--muted);padding:4px 7px;border:1px solid var(--line);border-radius:6px;white-space:nowrap}.card-footnote{padding:17px 22px;font-size:11px;color:var(--dim);border-top:1px solid var(--line)}.button{min-height:54px;padding:13px 20px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:600;text-align:center;line-height:1.4}.button.primary{background:var(--accent);color:var(--accent-dark)}.button.secondary{background:var(--surface2);color:var(--text);border:1px solid var(--line)}.button.ghost{background:transparent;color:var(--muted)}.button.danger{background:#47302b;color:#ffd2c8;border:1px solid #6c443b}.button.full{width:100%}.button .button-right{margin-left:auto}.start-area{margin-top:22px}.start-area .button{height:62px;font-size:16px}.start-area small{display:block;color:var(--dim);text-align:center;margin-top:10px;font-size:11px}.quiet-note{display:flex;gap:10px;color:var(--muted);font-size:12px;margin:20px 0;padding:0 3px;align-items:flex-start}.quiet-note svg{width:17px;height:17px;margin-top:2px}.desktop-footer{display:flex;align-items:center;justify-content:space-between;margin-top:50px;color:var(--dim);font-size:10px;letter-spacing:.03em}.bottom-nav{position:fixed;z-index:20;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:36px;padding:12px 20px max(12px,env(safe-area-inset-bottom));background:rgba(23,25,22,.96);border-top:1px solid var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.nav-item{background:transparent;min-width:84px;min-height:49px;padding:3px 15px;color:var(--dim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:10px}.nav-item svg{width:23px;height:23px}.nav-item.is-active{color:var(--accent)}.nav-item.is-active:after{content:"";width:4px;height:4px;background:var(--accent);border-radius:50%;position:absolute;top:5px}.progress-label{display:inline-flex;align-items:center;gap:6px;color:var(--green);border:1px solid #48513d;background:#2b3225;border-radius:99px;padding:6px 10px;font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}.session-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:10px 0 22px}.session-clock{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.session-clock svg{width:16px;height:16px}.session-top-actions{display:flex;gap:8px;align-items:center}.training-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px;align-items:start}.current-card{padding:25px 25px 22px}.current-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.current-title{font-size:29px;font-weight:600;letter-spacing:-.045em;line-height:1.3;overflow-wrap:anywhere}.set-badge{font-size:11px;white-space:nowrap;color:var(--accent);background:#403025;padding:6px 9px;border-radius:7px;margin-top:5px}.side-note{font-size:11px;color:var(--muted);margin-top:12px}.last-record{margin:23px 0 20px;padding:12px 14px;background:#191c18;border-radius:11px;display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:62px}.last-record small{color:var(--dim);display:block;font-size:10px}.last-record strong{font-size:13px;font-weight:500;display:block;margin-top:3px;font-variant-numeric:tabular-nums}.last-record .text-button{font-size:12px}.last-record.empty strong{color:var(--muted);font-size:12px;font-weight:400}.input-pair{display:grid;grid-template-columns:1.1fr 1fr;gap:14px}.input-label{display:block;font-size:11px;color:var(--muted);margin-bottom:9px}.input-label span{color:var(--dim);margin-left:4px}.number-input{position:relative;background:var(--bg);border:1px solid #41463b;border-radius:12px;display:flex;align-items:center;overflow:hidden;height:66px}.number-input:focus-within{border-color:var(--accent)}.number-input input{width:100%;min-width:0;border:0;background:transparent;color:var(--text);font-size:27px;font-weight:500;text-align:center;font-variant-numeric:tabular-nums;padding:10px 0;outline:none;appearance:textfield;-moz-appearance:textfield}.number-input input::-webkit-inner-spin-button,.number-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-input input::placeholder{font-size:16px;color:#747b6a;font-weight:400}.number-input button{background:transparent;color:var(--muted);height:62px;width:48px;flex-shrink:0;display:grid;place-items:center;font-size:24px;padding:0}.number-input button:hover{color:var(--text)}.bodyweight-value{display:flex;align-items:center;justify-content:center;width:100%;color:var(--muted);font-size:22px;font-weight:500}.input-help{font-size:10px;color:var(--dim);margin-top:7px}.complete-button{margin-top:23px;min-height:64px;font-size:16px;width:100%}.complete-button svg{width:22px;height:22px}.card-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px}.card-actions .text-button{font-size:11px;color:var(--muted)}.recorded-sets{margin-top:22px;padding-top:17px;border-top:1px solid var(--line)}.recorded-sets-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--dim);margin-bottom:9px}.set-chips{display:flex;flex-wrap:wrap;gap:7px}.set-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 8px;background:var(--surface2);border:1px solid var(--line);border-radius:7px;font-size:10px;font-variant-numeric:tabular-nums;color:var(--muted)}.set-chip b{font-weight:500;color:var(--green)}.queue-header{display:flex;justify-content:space-between;align-items:center;margin:0 0 15px;padding:0 3px}.queue-header h3{font-size:14px}.queue-header span{font-size:10px;color:var(--dim)}.queue-list{display:flex;flex-direction:column;gap:8px}.queue-item{padding:14px 15px;min-height:73px;border:1px solid var(--line);background:var(--surface);border-radius:13px;display:flex;align-items:center;gap:12px;text-align:left;width:100%}.queue-item.selected{background:#302a23;border-color:#986342}.queue-item.complete{background:#252c21}.queue-item .queue-name{font-size:13px;display:block;font-weight:500;overflow-wrap:anywhere}.queue-item .queue-meta{font-size:10px;color:var(--muted);margin-top:4px;display:block}.queue-icon{font-size:11px;color:var(--dim);min-width:17px;display:grid;place-items:center}.queue-icon svg{width:16px;height:16px;color:var(--green)}.queue-content{flex:1;min-width:0}.set-dots{display:flex;gap:3px;flex-wrap:wrap;max-width:76px;justify-content:flex-end}.set-dots i{width:6px;height:6px;border-radius:50%;background:var(--line)}.set-dots i.done{background:var(--green)}.queue-item.selected .set-dots i.done{background:var(--accent)}.session-foot{display:flex;justify-content:space-between;align-items:center;margin:20px 2px;font-size:11px;color:var(--dim)}.session-foot button{font-size:12px;min-height:48px;background:transparent;color:var(--muted);padding:0 4px}.rest-card{background:#d3ddba;color:#242b1b;border-radius:var(--radius);padding:23px 24px;margin-bottom:18px;position:relative;overflow:hidden}.rest-top{display:flex;justify-content:space-between;align-items:center}.rest-top h3{font-size:14px;font-weight:600}.rest-top span{font-size:10px;letter-spacing:.08em;color:#67734e}.rest-main{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:5px 0 10px}.rest-clock{font-size:66px;line-height:1.25;letter-spacing:-.065em;font-weight:450;font-variant-numeric:tabular-nums}.rest-ring{width:64px;height:64px;transform:rotate(-90deg);stroke-width:3}.rest-ring .track{stroke:#bcc8a3}.rest-ring .progress{stroke:#54633e;stroke-dasharray:175.93;transition:stroke-dashoffset .3s linear}.rest-next{font-size:11px;color:#55613e;margin-bottom:17px}.rest-controls{display:flex;gap:9px}.rest-controls button{min-height:48px;padding:10px 17px;border-radius:10px;font-size:12px;font-weight:600;background:#becba2;color:#2d361f}.rest-controls button:last-child{flex:1;background:#2c3424;color:#e9efde}.rest-caveat{font-size:10px;color:#65714f;margin-top:12px;line-height:1.6}.paused-banner{background:#343124;border:1px solid #5e5638;color:#e1d6ac;padding:14px 18px;border-radius:12px;font-size:13px;margin-bottom:16px;display:flex;align-items:center;gap:10px}.done-card{padding:35px 25px;text-align:center;background:#292c23;border:1px solid #454d38;border-radius:var(--radius)}.done-symbol{width:54px;height:54px;display:grid;place-items:center;background:var(--green);color:#24301c;border-radius:50%;margin:0 auto 20px}.done-symbol svg{width:28px;height:28px}.done-card h2{font-size:25px;line-height:1.4}.done-card p{font-size:12px;color:var(--muted);margin-top:9px}.done-card .metrics{text-align:left;margin:26px 0}.done-card .metric strong{font-size:25px}.done-card .button{margin-top:5px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:55px 24px;background:var(--surface);border:1px dashed #43483b;border-radius:var(--radius);min-height:310px}.empty-icon{width:68px;height:68px;display:grid;place-items:center;border:1px solid var(--line);border-radius:19px;color:var(--accent);background:#2d2c23;margin-bottom:22px}.empty-icon svg{width:32px;height:32px}.empty-state h2{font-size:22px}.empty-state p{color:var(--muted);font-size:13px;margin:10px 0 24px;max-width:290px}.history-metrics{display:grid;grid-template-columns:repeat(3,1fr);padding:22px 25px;margin-bottom:27px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.history-group-heading{font-size:11px;letter-spacing:.08em;color:var(--dim);margin:25px 0 12px}.history-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.history-card{padding:20px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:17px;min-height:132px}.history-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted);margin-bottom:15px}.history-card-top svg{width:16px;height:16px;color:var(--dim)}.history-card strong{display:block;font-size:17px;line-height:1.4;overflow-wrap:anywhere;font-weight:550}.history-card-bottom{display:flex;gap:14px;align-items:center;font-size:11px;color:var(--muted);margin-top:13px}.history-card-bottom b{font-weight:500;color:var(--text);font-variant-numeric:tabular-nums}.partial-tag{padding:2px 5px;background:#383229;color:#cbbda7;border-radius:4px;font-size:9px;margin-left:auto}.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.settings-section{margin-bottom:23px}.settings-section h2{font-size:13px;letter-spacing:.02em;color:var(--muted);margin:0 0 12px 3px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--line);min-height:94px}.setting-row:last-child{border-bottom:0}.setting-copy strong{display:block;font-size:14px;font-weight:500}.setting-copy span{display:block;font-size:11px;color:var(--muted);margin-top:5px;max-width:270px;line-height:1.65}.toggle{position:relative;width:46px;height:28px;flex-shrink:0;display:inline-flex;align-items:center}.toggle input{position:absolute;opacity:0;width:46px;height:28px;margin:0;cursor:pointer}.toggle span{width:46px;height:28px;border-radius:20px;background:#454b3d;transition:background .2s;pointer-events:none}.toggle span:before{content:"";position:absolute;left:4px;top:4px;width:20px;height:20px;background:#c4cabc;border-radius:50%;transition:transform .2s}.toggle input:checked+span{background:var(--accent)}.toggle input:checked+span:before{transform:translateX(18px);background:#2a2119}.toggle input:focus-visible+span{outline:3px solid var(--accent);outline-offset:4px}.setting-button{display:flex;width:100%;align-items:center;gap:13px;text-align:left;padding:19px 20px;min-height:83px;background:transparent;border-bottom:1px solid var(--line)}.setting-button:last-child{border-bottom:0}.setting-button>svg{color:var(--muted);width:20px;height:20px}.setting-button .setting-copy{flex:1;min-width:0}.setting-button .arrow{width:16px;height:16px;color:var(--dim)}.settings-note{font-size:11px;color:var(--muted);line-height:1.9;padding:15px 4px}.about-card{background:#24291e;border:1px solid #3c4532;border-radius:var(--radius);padding:25px}.about-card h2{font-size:21px;color:var(--green);margin-bottom:12px}.about-card p{font-size:12px;color:var(--muted);line-height:1.9}.about-card small{display:block;font-size:9px;letter-spacing:.13em;color:var(--dim);margin-top:24px}.sheet{width:min(600px,calc(100% - 32px));max-height:88dvh;border:1px solid #464d3d;border-radius:24px;background:#22251f;color:var(--text);padding:0;overflow:auto;overscroll-behavior:contain;box-shadow:0 25px 100px #0008}.sheet::backdrop{background:rgba(7,9,6,.7);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.sheet-header{position:sticky;top:0;background:#22251ff5;backdrop-filter:blur(10px);padding:22px 24px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);z-index:2}.sheet-header h2{font-size:20px}.sheet-header p{font-size:11px;color:var(--muted);margin-top:4px}.sheet-body{padding:23px 24px}.sheet-actions{position:sticky;bottom:0;display:flex;gap:10px;padding:16px 24px max(20px,env(safe-area-inset-bottom));background:#22251ff5;border-top:1px solid var(--line);z-index:2}.sheet-actions .button{flex:1;min-height:50px;font-size:13px}.confirm-copy{color:var(--muted);font-size:14px;line-height:1.9}.confirm-summary{margin-top:15px;padding:13px 15px;background:var(--bg);border-radius:10px;color:var(--text);font-size:13px;line-height:1.9;overflow-wrap:anywhere}.field{margin-bottom:18px}.field>label{display:block;font-size:12px;color:var(--muted);margin-bottom:7px}.field input,.field select,.field textarea{width:100%;background:#171a15;border:1px solid #414939;border-radius:10px;padding:12px 13px;color:var(--text);min-height:48px;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field input[type=number]{font-variant-numeric:tabular-nums}.field-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.field-row.two{grid-template-columns:1fr 1fr}.field-note{font-size:11px;line-height:1.7;color:var(--dim);margin-top:7px}.plan-editor-exercise{margin-bottom:18px;border:1px solid var(--line);border-radius:15px;padding:16px;background:#282c24}.plan-editor-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px;font-size:11px;color:var(--muted)}.editor-moves{display:flex;gap:3px}.editor-moves button{min-width:48px;min-height:48px;background:transparent;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;color:var(--muted)}.editor-moves button svg{width:17px;height:17px}.editor-moves button.delete{color:var(--danger)}.plan-editor-exercise .field{margin-bottom:11px}.plan-editor-exercise .field:last-child{margin-bottom:0}.check-line{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);min-height:48px;cursor:pointer}.check-line input{accent-color:var(--accent);width:18px;height:18px}.detail-exercise{margin-top:22px}.detail-exercise h3{margin-bottom:11px;display:flex;gap:10px;align-items:center;font-size:14px}.detail-exercise h3 small{color:var(--dim);font-weight:400;font-size:10px}.record-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;font-variant-numeric:tabular-nums}.record-table th{font-size:10px;font-weight:400;color:var(--dim);padding:0 0 8px;border-bottom:1px solid var(--line)}.record-table td{padding:11px 0;color:var(--muted);border-bottom:1px solid #30352a}.record-table td:last-child,.record-table th:last-child{text-align:right}.record-table tr:last-child td{border-bottom:0}.detail-date{font-size:12px;color:var(--muted)}.detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);padding:22px 0;border-bottom:1px solid var(--line)}.detail-metrics .metric strong{font-size:25px}.detail-note{margin-top:18px;font-size:11px;line-height:1.8;color:var(--dim)}.toast{position:fixed;z-index:100;bottom:calc(102px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,12px);background:#edf1e4;color:#23291d;border:1px solid #d3ddbd;border-radius:12px;padding:12px 17px;font-size:12px;font-weight:500;box-shadow:0 8px 30px #0004;max-width:calc(100% - 36px);width:max-content;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.is-visible{opacity:1;transform:translate(-50%,0)}.loading-message{padding:60px 20px;text-align:center;color:var(--muted)}.noscript{margin:20px;padding:20px;background:#442c21;color:#ffd1b7;border-radius:12px}.inline-error{color:var(--danger);font-size:12px;margin-top:12px;line-height:1.7}.text-wrap{overflow-wrap:anywhere}.saved-panel{margin:18px 0 24px;border:1px solid #4b5a3b;background:#293322;padding:17px 20px;border-radius:14px;display:flex;align-items:center;gap:12px}.saved-panel>svg{color:var(--green);width:22px;height:22px}.saved-panel strong{display:block;font-size:13px;font-weight:500}.saved-panel span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.saved-panel .text-button{margin-left:auto;color:var(--green)}.intro-kicker{font-size:12px;color:var(--muted);margin-bottom:13px}.section-divider{border:0;border-top:1px solid var(--line);margin:20px 0}.muted{color:var(--muted)}.mb-0{margin-bottom:0!important}.hidden{display:none!important}[hidden]{display:none!important}
@media(min-width:720px){.bottom-nav{left:50%;transform:translateX(-50%);right:auto;bottom:18px;width:340px;gap:14px;border:1px solid var(--line);border-radius:19px;padding:9px 15px;box-shadow:0 12px 50px #0005}.nav-item{min-width:80px}.sheet{margin:auto}.nav-item.is-active:after{top:3px}.training-layout>aside{position:sticky;top:24px}}
@media(max-width:719px){.app-shell{padding:0 20px 112px}.topbar{height:90px}.brand strong{font-size:20px}.brand-mark{width:31px;height:33px}.brand-mark i{height:22px;width:4px}.brand-mark i:nth-child(2){height:29px}.save-status{font-size:10px}.page-heading{margin:12px 0 23px;align-items:flex-start}.page-heading h1{font-size:29px;letter-spacing:-.05em}.date-label{font-size:10px;padding-top:7px}.heading-sub{font-size:12px}.dashboard-grid,.training-layout,.settings-layout{display:block}.hero-card{min-height:225px;padding:24px}.hero-card h2{font-size:28px}.hero-card p{font-size:12px;max-width:230px}.hero-footer{margin-top:22px}.hero-art{width:160px;height:160px;right:-55px;bottom:30px}.metrics{margin:24px 0}.metric strong{font-size:28px}.metric span{font-size:10px}.card-heading{padding:20px 20px 16px}.card-heading h2{font-size:19px}.exercise-list{padding:0 20px}.exercise-row{padding:15px 0}.exercise-info strong{font-size:13px}.exercise-info span{font-size:10px}.card-footnote{padding:14px 20px;font-size:10px}.dashboard-grid>.home-secondary{margin-top:25px}.home-primary .start-area{display:block}.mobile-start{display:none}.desktop-footer{margin-top:35px;font-size:9px}.desktop-footer span:last-child{display:none}.bottom-nav{gap:25px;padding-top:10px}.nav-item{min-width:74px}.session-top{margin:3px 0 18px}.session-top-actions{gap:5px}.session-top-actions .icon-button{width:48px;height:48px}.progress-label{font-size:10px}.current-card{padding:22px 20px 18px}.current-title{font-size:27px}.current-top .eyebrow{font-size:9px}.set-badge{font-size:10px}.last-record{margin:20px 0 18px;padding:11px 12px}.input-pair{gap:12px}.number-input{height:66px}.number-input input{font-size:27px}.number-input button{width:48px}.complete-button{min-height:64px;font-size:15px;margin-top:21px}.training-layout>aside{margin-top:28px}.queue-list{gap:7px}.queue-item{min-height:65px;padding:12px 14px}.queue-name{font-size:12px}.rest-card{padding:21px 22px;margin-bottom:16px}.rest-clock{font-size:65px}.rest-ring{width:58px;height:58px}.rest-caveat{font-size:9px}.rest-next{font-size:10px}.rest-controls button{min-height:48px}.session-foot{margin:14px 1px}.history-metrics{padding:20px 18px;margin-bottom:23px}.history-metrics .metric{padding:0 12px}.history-metrics .metric:first-child{padding-left:0}.history-metrics .metric strong{font-size:25px}.history-list{grid-template-columns:1fr;gap:10px}.history-card{min-height:130px;padding:18px 20px}.history-card strong{font-size:17px}.history-group-heading{margin-top:24px}.settings-section{margin-bottom:25px}.settings-layout>aside{margin-top:20px}.setting-row{padding:18px;min-height:91px}.setting-copy strong{font-size:13px}.setting-copy span{font-size:10px;line-height:1.8}.setting-button{padding:18px;min-height:80px}.about-card{padding:23px}.sheet{margin:auto auto 0;width:100%;max-height:93dvh;border-radius:24px 24px 0 0;border-bottom:0}.sheet-header{padding:20px 20px 14px}.sheet-body{padding:21px 20px}.sheet-actions{padding-left:20px;padding-right:20px}.sheet-header h2{font-size:19px}.field-row{gap:8px}.field label{font-size:10px}.field input,.field select{font-size:14px;padding:11px 10px}.plan-editor-exercise{padding:13px}.editor-moves button{min-width:48px;min-height:48px}.sheet .field input,.sheet .field select{font-size:16px}.detail-metrics .metric{padding:0 13px}.detail-metrics .metric:first-child{padding-left:0}.done-card{padding:28px 20px}.done-card h2{font-size:23px}.done-card .metric strong{font-size:25px}.saved-panel{padding:14px;gap:9px}.saved-panel strong{font-size:12px}.saved-panel span{font-size:10px}.saved-panel .text-button{font-size:11px}.toast{font-size:11px;bottom:calc(91px + env(safe-area-inset-bottom))}}
@media(min-width:720px){.mobile-start{display:none}}
@media(max-width:360px){.app-shell{padding-left:15px;padding-right:15px}.current-card{padding-left:16px;padding-right:16px}.current-title{font-size:24px}.number-input button{width:48px}.number-input input{font-size:24px}.bottom-nav{gap:15px}.date-label{font-size:9px}.brand strong{font-size:18px}.save-status{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Readable labels and generous touch targets on a gym floor. */
.toggle{width:48px;height:48px}.toggle input{width:48px;height:48px}.toggle span{position:absolute;top:10px;left:1px}.toggle span:before{top:4px}.storage-banner button{min-height:48px}.nav-item,.last-record small,.input-help,.recorded-sets-heading,.set-chip,.queue-header span,.queue-item .queue-meta,.rest-top span,.rest-caveat,.exercise-side,.detail-exercise h3 small,.record-table th{font-size:11px}
@media(max-width:719px){.save-status,.date-label,.metric span,.exercise-info span,.card-footnote,.progress-label,.set-badge,.current-top .eyebrow,.rest-caveat,.rest-next,.field label,.setting-copy span,.saved-panel span{font-size:11px}.page-heading{flex-wrap:wrap;gap:8px}.page-heading .date-label{padding:0}.number-input input{font-size:25px}.input-pair{grid-template-columns:1.1fr 1fr;gap:10px}.session-clock{max-width:210px;flex-wrap:wrap}.session-clock>span:last-child{overflow-wrap:anywhere}.partial-tag{font-size:10px}}
@media(max-width:360px){.number-input input{font-size:22px}.input-pair{gap:8px}.current-card{padding-left:13px;padding-right:13px}.session-clock{max-width:160px}}

/* Keep navigation outside the scrolling content, including short iPhone pages. */
html{scroll-behavior:auto}
.nav-item{position:relative;line-height:1.4;transition:color .18s ease,background-color .18s ease;border-radius:12px}
.nav-item:after,.nav-item.is-active:after{content:"";position:absolute;top:0;left:50%;width:4px;height:4px;border-radius:50%;background:var(--accent);transform:translateX(-50%);opacity:0;transition:opacity .18s ease}
.nav-item.is-active:after{opacity:1}
.nav-item:active{background:rgba(255,155,107,.08)}
.button,.icon-button,.queue-item,.history-card,.setting-button{transition:transform .14s ease,background-color .18s ease,border-color .18s ease}
.button:active:not(:disabled),.icon-button:active:not(:disabled){transform:scale(.98)}
.queue-item:active:not(:disabled),.history-card:active,.setting-button:active{background:var(--surface2)}
@media(max-width:719px){
  html{height:100%;overflow:hidden}
  body{position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr) max-content}
  .app-shell{height:100%;min-height:0;margin:0 auto;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;padding-top:env(safe-area-inset-top,0px);padding-bottom:28px;scroll-padding-bottom:24px;-webkit-overflow-scrolling:touch}
  .bottom-nav{position:relative;inset:auto;align-self:end;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%;padding:8px max(16px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none}
  .nav-item{min-width:0;width:100%;height:54px;min-height:54px;padding:6px 0;gap:4px}
}
/* Installed iPhone apps can under-report dvh by the status-bar safe area.
   Use the full viewport without a fixed root that would clip its bottom. */
@media(max-width:719px) and (display-mode:standalone){body{height:100vh}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(min-width:720px){html{overflow-y:scroll}}
