@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg:#f6f4ef;--panel:#fff;--panel2:#f1eee7;--line:#e3ded3;--ink:#1d1f22;--ink-dim:#6b6f75;--accent:#d98a1c;--accent-ink:#fff;--accent-soft:#fbefdb;--ok:#2f8f5b;--ok-soft:#e3f3ea;--danger:#c2462b;--danger-soft:#fbe8e3;--radius:8px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:14px}h1,h2,h3{margin:0;font-family:Space Grotesk,sans-serif;font-weight:600}button{font:inherit;cursor:pointer;border:none;border-radius:6px}button:disabled{opacity:.55;cursor:default}input,select{font:inherit;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:7px 9px;font-size:13px}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}.btn{padding:8px 14px;font-weight:600}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-accent:hover:not(:disabled){filter:brightness(.95)}.btn-ghost{color:var(--ink-dim);background:0 0;padding:6px 10px}.btn-ghost:hover{color:var(--ink);background:var(--panel2)}.btn-sm{padding:5px 10px;font-size:12px}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.brand{align-items:center;gap:8px;font-family:Space Grotesk,sans-serif;font-size:17px;font-weight:700;display:flex}.brand-dot{background:var(--accent);border-radius:50%;width:10px;height:10px}.topbar-right{align-items:center;gap:10px;display:flex}.nav{gap:4px;display:flex}.nav a{color:var(--ink-dim);border-radius:6px;padding:6px 10px;font-weight:500;text-decoration:none}.nav a.active{color:var(--ink);background:var(--panel2)}.who{color:var(--ink-dim);font-size:12px}.center{flex:1;justify-content:center;align-items:center;padding:24px 16px;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:100%;max-width:360px;padding:24px}.card h1{margin-bottom:4px;font-size:22px}.card .sub{color:var(--ink-dim);margin:0 0 18px;font-size:13px}.field{margin-bottom:12px}.field label{color:var(--ink-dim);margin-bottom:4px;font-size:12px;display:block}.field input{width:100%}.msg{border-radius:6px;margin:8px 0;padding:8px 10px;font-size:12px}.msg-err{color:var(--danger);background:var(--danger-soft)}.msg-ok{color:var(--ok);background:var(--ok-soft)}.page{width:100%;max-width:1040px;margin:0 auto;padding:24px 20px 48px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.page-head h1{font-size:24px}.muted{color:var(--ink-dim);font-size:13px}.pills{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;display:flex}.pill{background:var(--panel);border:1px solid var(--line);color:var(--ink-dim);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600}.pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.pill-input{border-radius:999px;width:130px;padding:4px 10px;font-size:12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.roster{border-collapse:collapse;width:100%}.roster th{text-align:left;color:var(--ink-dim);letter-spacing:.03em;text-transform:uppercase;background:var(--panel2);border-bottom:1px solid var(--line);padding:10px 12px;font-size:11px;font-weight:600}.roster td{border-bottom:1px solid var(--line);vertical-align:middle;padding:6px 12px}.roster tr:last-child td{border-bottom:none}.roster tr.blank-row td{background:#fcfbf8}.cell-input{background:0 0;border-color:#0000;width:100%;padding:6px 8px}.cell-input:hover{border-color:var(--line)}.cell-input::placeholder{color:#a9a59c}.cell-select{width:100%;min-width:120px}.badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-idle{background:var(--panel2);color:var(--ink-dim)}.invite{align-items:center;gap:6px;display:flex}.invite input{flex:1;min-width:160px}.row-err{color:var(--danger);margin-top:4px;font-size:11px}.name-cell{align-items:center;gap:4px;display:flex}.name-cell .cell-input{flex:1;min-width:0}.row-action{color:var(--ink-dim);white-space:nowrap;opacity:.7;background:0 0;padding:3px 6px;font-size:11px;font-weight:600}.roster tr:hover .row-action,.row-action:focus-visible{opacity:1}.row-action:hover{color:var(--ink);background:var(--panel2)}.row-action-restore{color:var(--accent);opacity:1}.row-action-restore:hover{color:var(--accent);background:var(--accent-soft)}.archived-row .cell-input{color:var(--ink-dim)}.archived-note{color:var(--ink-dim);padding:0 8px 2px;font-size:11px}.pill-archived{margin-left:auto}.access{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.btn-link-danger{color:var(--danger);background:0 0;padding:4px 6px;font-size:12px;font-weight:600}.btn-link-danger:hover{background:var(--danger-soft)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.94)}.dialog{border:1px solid var(--line);background:var(--panel);width:min(420px,100vw - 32px);color:var(--ink);border-radius:12px;padding:22px;box-shadow:0 12px 40px #1d1f222e}.dialog::backdrop{background:#1d1f2259}.dialog h2{margin-bottom:8px;font-size:18px}.dialog p{color:var(--ink-dim);margin:0 0 16px;line-height:1.5}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.range{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.seg{background:var(--panel2);border-radius:7px;margin-right:6px;padding:2px;display:flex}.seg button{color:var(--ink-dim);background:0 0;border-radius:5px;padding:5px 12px;font-size:12px;font-weight:600}.seg button.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #1d1f2214}.icon-btn{background:var(--panel);border:1px solid var(--line);width:28px;height:28px;color:var(--ink);font-size:16px;line-height:1}.icon-btn:hover:not(:disabled){background:var(--panel2)}.range-label{text-align:center;min-width:150px;font-size:13px;font-weight:600}.dash-section{margin-bottom:14px}.dash-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:10px;padding:10px 14px;display:flex}.dash-head h2{font-size:14px}.dash-empty{padding:14px;font-size:13px}.dash-grid{grid-template-columns:1fr 1fr;align-items:start;gap:14px;display:grid}.dash-grid .dash-section{margin-bottom:0}table.dense{border-collapse:collapse;width:100%;font-size:13px}table.dense td{border-bottom:1px solid var(--line);vertical-align:top;padding:7px 14px}table.dense tr:last-child td{border-bottom:none}.who-cell{white-space:nowrap;width:1%;font-weight:600}.when-cell{color:var(--ink-dim);white-space:nowrap;text-align:right;width:1%;font-size:12px}.num-cell{white-space:nowrap;text-align:right;font-family:IBM Plex Mono,monospace;font-size:12px}.count-cell{white-space:nowrap;width:1%}.count{background:var(--panel2);border-radius:999px;padding:2px 7px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.count-full{background:var(--ok-soft);color:var(--ok)}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--line);background:var(--panel);white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:2px 8px 2px 6px;font-size:12px;display:inline-flex}.chip-mark{text-align:center;width:12px;font-weight:700}.chip-date{color:var(--ink-dim)}.chip-done{background:var(--ok-soft);border-color:#0000}.chip-done .chip-mark{color:var(--ok)}.chip-missed{background:var(--danger-soft);border-color:#0000}.chip-missed .chip-mark{color:var(--danger)}.chip-upcoming .chip-mark{color:var(--ink-dim)}@media (width<=860px){.dash-grid{grid-template-columns:1fr}}.crumb{color:var(--ink-dim);margin-bottom:8px;font-size:13px;text-decoration:none;display:inline-block}.crumb:hover{color:var(--ink)}.blocks a{color:var(--ink);text-decoration:none}.blocks a:hover{color:var(--accent)}.new-block{margin-top:14px;padding:14px}.new-block h2{margin-bottom:10px;font-size:14px}.new-block-fields{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.new-block .field{color:var(--ink-dim);flex-direction:column;gap:4px;margin:0;font-size:12px;display:flex}.new-block .field input[type=number]{width:80px}.day-picker{border:0;min-width:0;margin:12px 0 0;padding:0}.day-picker legend{color:var(--ink-dim);margin-bottom:4px;padding:0;font-size:12px}.day-chips{flex-wrap:wrap;gap:6px;display:flex}.day-chip{background:var(--panel);border:1px solid var(--line);min-width:48px;color:var(--ink-dim);border-radius:8px;padding:6px 10px;font-size:13px;font-weight:600}.day-chip:hover{border-color:var(--accent)}.day-chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.day-hint{margin-top:6px;font-size:12px;display:block}.bw-field{align-items:center;gap:6px;display:inline-flex}.bw-field input{text-align:right;width:70px;padding:4px 8px;font-family:IBM Plex Mono,monospace}.pg-bw{color:var(--ink-dim);border:1px dashed var(--line);border-radius:6px;padding:2px 8px;font-size:13px;text-decoration:none}.pg-bw:hover{border-color:var(--accent);color:var(--ink)}.pg-athlete-view{color:var(--accent);border:1px solid var(--accent);white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:13px;font-weight:600;text-decoration:none}.pg-athlete-view:hover{background:var(--accent-soft)}.pg-start{align-items:center;gap:6px;display:inline-flex}.pg-start input{padding:3px 6px;font-size:13px}.pg-day{padding:3px 6px;font-size:13px;font-weight:600}.row-action-link{color:var(--ink);opacity:1;text-decoration:none}.pg-page{padding:14px 16px 60px}.pg-toolbar{z-index:30;background:var(--bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;padding:8px 0 10px;display:flex;position:sticky;top:0}.pg-title{flex-wrap:wrap;align-items:baseline;gap:10px;min-width:0;display:flex}.pg-title .crumb{margin:0}.pg-title-in{field-sizing:content;background:0 0;border-color:#0000;width:auto;min-width:120px;padding:2px 6px;font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:600}.pg-title-in:hover{border-color:var(--line)}.pg-tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stepper{align-items:center;gap:4px;display:inline-flex}.stepper span{text-align:center;min-width:18px;font-size:12px;font-weight:600}.stepper.weeks span{min-width:64px;font-size:13px}.undo-btn{background:var(--panel);border:1px solid var(--line);color:var(--ink);align-items:center;gap:6px;display:inline-flex}.undo-count{background:var(--accent);color:#fff;border-radius:999px;padding:0 6px;font-size:11px;line-height:17px}.save{font-size:12px}.save-err{color:var(--danger);align-items:center;gap:6px;display:inline-flex}.mini{color:var(--ink-dim);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:600;line-height:16px}.mini:hover:not(:disabled){color:var(--ink);background:var(--panel2)}.mini-danger:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.mini.x{padding:0 4px;font-size:13px}.pg-session{margin-bottom:14px;overflow:visible}.pg-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.pg-h-name{border-color:#0000;width:150px;padding:3px 6px;font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:600}.pg-h-in{border-color:#0000;width:170px;padding:3px 6px;font-size:13px}.pg-h-name:hover,.pg-h-in:hover{border-color:var(--line)}.pg-scroll{overflow-x:auto}table.pg{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;font-size:12.5px}.pg col.w-grip,.pg col.w-order{width:44px}.pg col.w-name{width:210px}.pg col.w-tempo{width:56px}.pg col.w-side{width:48px}.pg col.w-sets{width:70px}.pg col.w-kind{width:88px}.pg col.w-cell{width:50px}.pg th,.pg td{border-bottom:1px solid var(--line);vertical-align:middle;background:var(--panel);border-right:1px solid #efebe3;height:28px;padding:0}.pg thead th{color:var(--ink-dim);background:var(--panel2);text-align:center;height:24px;font-size:11px;font-weight:600}.pg thead .pg-cols th{text-align:left;padding:0 6px}.pg thead .pg-cols th.c-cell{text-align:center;padding:0}.pg-week{border-left:2px solid var(--line)}.pg-week-in{white-space:nowrap;justify-content:space-between;align-items:center;gap:4px;padding:0 6px;display:flex}.pg-week-in strong{color:var(--ink)}.pg .wk-start{border-left:2px solid var(--line)}.pg .c-grip,.pg .c-order,.pg .c-name,.pg .c-tempo,.pg .c-side,.pg .c-sets,.pg .c-kind,.pg .c-section,.pg .sticky-left-block{z-index:2;position:sticky}.pg .c-grip,.pg .sticky-left-block{left:0}.pg .c-order,.pg .c-section{left:44px}.pg .c-name{left:88px}.pg .c-tempo{left:298px}.pg .c-side{left:354px}.pg .c-sets{left:402px}.pg .c-kind{box-shadow:2px 0 0 var(--line);left:472px;overflow:hidden}.pg thead th.c-kind,.pg thead .sticky-left-block{box-shadow:2px 0 0 var(--line)}.g-in{background:0 0;border:1px solid #0000;border-radius:0;width:100%;min-width:0;height:100%;padding:4px 6px;font-size:12.5px}.g-in:hover{background:#fcfbf8}.g-in:focus{outline:2px solid var(--accent);outline-offset:-2px;background:#fff;border-color:#0000}.g-num{text-align:center;padding:4px 2px;font-family:IBM Plex Mono,monospace}.pg .c-off{background:repeating-linear-gradient(135deg,#faf8f4 0 4px,#f3f0ea 4px 8px)}.name-wrap{align-items:center;height:100%;display:flex}.name-in{font-weight:600}.name-field{flex:1;min-width:0;height:100%;position:relative}.name-link{max-width:calc(100% - 34px);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;text-align:left;-webkit-text-decoration:underline dotted var(--accent);text-decoration:underline dotted var(--accent);text-underline-offset:3px;background:0 0;border-radius:0;padding:0;font-size:12.5px;font-weight:600;position:absolute;top:50%;left:7px;overflow:hidden;transform:translateY(-50%)}.name-link:hover{color:#9a5c08;text-decoration-style:solid}.name-field.has-video:not(:focus-within) .name-in{color:#0000;cursor:text}.name-field:focus-within .name-link{display:none}.video-btn,.star{color:var(--ink-dim);background:0 0;flex-shrink:0;padding:0 5px;font-size:13px;line-height:1}.video-btn{color:var(--accent);font-size:11px}.video-btn:hover{background:var(--accent-soft)}.star:hover,.star.on{color:var(--accent)}.c-kind{white-space:nowrap;padding:0!important}.fill-handle{z-index:1;background:var(--accent);cursor:crosshair;border:1px solid #fff;width:8px;height:8px;display:none;position:absolute;bottom:-1px;right:-1px}.pg td.c-cell:focus-within .fill-handle,.pg td.fill-source .fill-handle{display:block}.pg td.fill-preview{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.pg td.fill-source{box-shadow:inset 0 0 0 2px var(--accent)}body.fill-dragging,body.fill-dragging *{-webkit-user-select:none;user-select:none;cursor:crosshair!important}.pg .r-calc td{background:var(--panel2)}.pg td.c-calc{text-align:center;color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:12px}.calc-label{color:var(--ink-dim);padding:0 8px;font-size:12px;font-weight:600;display:block}.calc-missing{color:var(--danger,#c0392b);font-weight:500}.onerm{height:100%;color:var(--ink-dim);white-space:nowrap;align-items:center;gap:3px;padding:0 3px 0 8px;font-size:11px;font-weight:600;display:flex}.onerm input{text-align:right;border:1px solid var(--line);background:#fff;border-radius:4px;width:38px;min-width:0;height:20px;padding:0 3px;font-family:IBM Plex Mono,monospace;font-size:11.5px}.onerm.missing input{border-color:var(--danger,#c0392b)}.onerm.bad input{border-color:var(--danger,#c0392b);background:#fdf0ee}.kind-select{width:100%;height:100%;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:0;padding:0 4px 0 8px;font-size:12px;font-weight:600}.kind-select:hover{background:var(--accent-soft)}.kind-select:focus{outline:2px solid var(--accent);outline-offset:-2px}.stepper .mini{padding:0 6px;font-size:13px}.c-sets .stepper{justify-content:center;width:100%}.scheme-in{text-align:center;border:1px dashed var(--line);height:26px;margin-top:4px;padding:2px;font-family:IBM Plex Mono,monospace;font-size:11.5px;font-weight:600;display:block}.scheme-in::placeholder{font-family:inherit;font-weight:500}.name-stack{flex-direction:column;height:100%;display:flex}.name-stack>.name-wrap{flex:1;height:auto;min-height:30px}.name-adjust{flex-wrap:wrap;align-items:center;gap:3px 6px;padding:2px 7px 5px;display:flex}.adjust-tick{cursor:pointer;white-space:nowrap;align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.adjust-tick input{accent-color:var(--accent);margin:0}.adjust-off{color:var(--ink-dim);font-size:11px}.pg tbody.pg-alt td{background:#fffaf2}.pg tbody.pg-alt td.c-off{background:repeating-linear-gradient(135deg,#fbf6ec 0 4px,#f4eee2 4px 8px)}.pg tbody.pg-alt .name-in,.pg tbody.pg-alt .name-link{padding-left:14px}.pg tbody.pg-alt .name-wrap:before{content:"↳";color:var(--accent);pointer-events:none;margin-left:4px;font-weight:700;position:absolute}.pg tbody.pg-alt .name-wrap{position:relative}.alt-or{text-transform:uppercase;height:100%;color:var(--accent);justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex}.alt-remove{width:22px;height:22px;color:var(--ink-dim);background:0 0;border-radius:4px;padding:0;font-size:16px;line-height:1}.alt-remove:hover{background:var(--danger-soft);color:var(--danger)}.adjust-options{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.adjust-add{background:#fff;border:1px dashed #e0b56e;border-radius:999px;width:100%;min-width:0;padding:1px 7px;font-size:11.5px}.adjust-add.has-err{border-color:var(--danger)}.adjust-err{color:var(--danger);font-size:10.5px;line-height:1.2}.warmup-step{color:var(--ink-dim);white-space:nowrap;justify-content:center;align-items:center;gap:0;margin-top:4px;font-size:9.5px;display:flex}.warmup-step span{margin-right:1px}.warmup-step b{text-align:center;color:#2f6fb5;min-width:10px;font-size:11.5px}.warmup-step .mini{padding:0 3px}.pg td.c-cell.is-warmup{background:#eef4fb}.pg tr.r-reps td.c-cell.is-warmup:before{content:"W";color:#2f6fb5;pointer-events:none;font-size:8.5px;font-weight:800;position:absolute;top:1px;left:3px}.scheme-in.bad{border-color:var(--danger,#c0392b)}.pg-section td{background:#1f2124;height:26px}.pg-section .c-grip{background:#1f2124}.pg-section .grip{color:#9a9a9a}.section-in{color:var(--accent);letter-spacing:.02em;text-transform:none;font-weight:700}.section-in:hover{background:0 0}.section-in:focus,.pg-section .c-section-band{background:#2a2c30}.pg-blank td{background:#fcfbf8}.blank-in{color:var(--ink);font-weight:500}.blank-in::placeholder{color:#a9a59c;font-weight:400}.blank-hint{font-size:11px;padding:0 8px!important}.c-blank-band{background:#fcfbf8!important}.grip-wrap{justify-content:center;align-items:center;gap:1px;height:100%;display:flex;position:relative}.add-toggle{color:#b3ada2;background:0 0;border:1px solid #0000;border-radius:4px;width:18px;height:18px;padding:0;font-size:14px;font-weight:700;line-height:16px}.add-toggle:hover{color:var(--accent);background:var(--accent-soft)}.add-toggle.on{color:#fff;background:var(--accent)}.pg-section .add-toggle{color:#9a9a9a}.pg-section .add-toggle:hover{background:#2a2c30}.pg-foot-actions{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.grip{color:#b3ada2;cursor:grab;background:0 0;padding:2px;font-size:14px;line-height:1}.grip:hover{color:var(--ink);background:var(--panel2)}.grip:active{cursor:grabbing}.pg-item.drop-before>tr:first-child>td{box-shadow:inset 0 2px 0 var(--accent)}.pg-item.drop-after>tr:last-child>td{box-shadow:inset 0 -2px 0 var(--accent)}.row-menu{z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;min-width:190px;padding:4px;display:flex;position:fixed;box-shadow:0 8px 24px #1d1f2224}.row-menu button{text-align:left;color:var(--ink);background:0 0;border-radius:5px;padding:6px 10px;font-size:12.5px}.row-menu button:hover{background:var(--panel2)}.row-menu button.danger{color:var(--danger)}.row-menu button.danger:hover{background:var(--danger-soft)}.pg-foot{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.pg-comments{color:var(--ink-dim);flex-direction:column;flex:1;gap:4px;font-size:11px;font-weight:600;display:flex}.pg-comments textarea{font:inherit;color:var(--ink);border:1px solid var(--line);resize:vertical;border-radius:6px;min-height:38px;padding:6px 8px;font-size:13px}.pg-comments textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.add-session{border:1px dashed var(--line);width:100%;padding:10px}.vo{background:#0c0d0fd1;border:none;width:100vw;max-width:none;height:100vh;max-height:none;margin:0;padding:16px}.vo[open]{justify-content:center;align-items:center;display:flex}.vo::backdrop{background:0 0}.vo-panel{color:#fff;background:#111;border-radius:12px;flex-direction:column;width:min(860px,100%);max-height:100%;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000080}.vo-short{width:min(min(80vh,100vh - 150px)/1.77778,100%)}.vo-head{align-items:center;gap:12px;padding:8px 8px 8px 14px;display:flex}.vo-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.vo-x{color:#111;background:#fff;border-radius:8px;flex:none;width:40px;height:40px;font-size:26px;font-weight:700;line-height:1}.vo-x:hover{background:var(--accent);color:#fff}.vo-frame{aspect-ratio:16/9;background:#000;position:relative}.vo-short .vo-frame{aspect-ratio:9/16}.vo-frame iframe,.vo-frame video{border:0;width:100%;height:100%;position:absolute;inset:0}.vo-other{text-align:center;padding:28px 16px}.vo-other p{color:#ccc;margin:0 0 14px}.vo-close{color:#fff;background:#262626;border-radius:0;width:100%;padding:12px;font-size:14px;font-weight:600}.vo-close:hover{background:#333}.coach-invite{margin-bottom:16px;padding:14px 16px}.coach-invite h2{margin-bottom:10px;font-size:15px}.coach-invite-row{flex-wrap:wrap;gap:8px;display:flex}.coach-invite-row input{flex:200px;min-width:0}.coach-invite .msg{margin-bottom:0}.coach-badge{vertical-align:1px;margin-left:8px}.coach-actions{text-align:right}.cal-page{max-width:1240px}.cal-hidden{color:#8a5208;background:var(--accent-soft);flex-wrap:wrap;align-items:center;gap:4px;font-size:13px;display:flex}.cal-hidden .btn-ghost{color:#8a5208;background:#fff;border:1px solid #e9c48b;margin-left:auto;font-weight:600}.cal-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.cal-nav{border-bottom:1px solid var(--line);align-items:center;gap:4px;padding:10px 12px;display:flex}.cal-nav h2{text-align:center;min-width:150px;font-size:17px}.cal-nav .btn-ghost{padding:2px 10px;font-size:20px;line-height:1}.cal-nav .cal-today{border:1px solid var(--line);margin-left:auto;font-size:12px}.cal-head{background:var(--panel2);border-bottom:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-head div{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-dim);padding:5px 8px;font-size:11px;font-weight:600}.cal-week{border-bottom:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));row-gap:2px;min-height:96px;display:grid}.cal-day{background:var(--panel);border-right:1px solid var(--line);text-align:left;border-radius:0;grid-row:1/-1;align-items:flex-start;min-width:0;padding:4px 6px;display:flex}.cal-day:nth-child(7){border-right:none}.cal-day:hover{background:#fcfaf5}.cal-day:hover .cal-num:after{content:" +";color:var(--accent);font-weight:700}.cal-day.out{background:#faf8f4}.cal-day.out .cal-num{color:#b3afa6}.cal-day.picked{background:var(--accent-soft)}.cal-num{color:var(--ink-dim);white-space:nowrap;font-size:12px;font-weight:600}.cal-day.today .cal-num{background:var(--accent);color:#fff;border-radius:999px;padding:1px 7px}.cal-bar{z-index:1;text-align:left;white-space:nowrap;text-overflow:ellipsis;background:var(--panel2);height:22px;color:var(--ink);border-left:3px solid;border-radius:5px;margin:0 3px;padding:0 7px;font-size:11.5px;font-weight:600;position:relative;overflow:hidden}.cal-bar.cont-before{border-left-style:dashed;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.cal-bar.cont-after{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.cal-bar:hover{filter:brightness(.96)}.cal-bar.selected{outline:2px solid var(--ink);outline-offset:1px}.cal-who{opacity:.75;font-weight:400}.t-competition{--tc:#c2462b;--tb:#fbe3dc}.t-camp{--tc:#d98a1c;--tb:#fbefdb}.t-key_session{--tc:#2f6fb5;--tb:#e2edf9}.t-deload{--tc:#2f8f5b;--tb:#e3f3ea}.t-travel{--tc:#7a55b8;--tb:#eee7f8}.t-note{--tc:#8a8f96;--tb:#eeede9}.t-testing{--tc:#0d8a86;--tb:#d9f2f0}.cal-bar[class*=t-]{background:var(--tb);border-left-color:var(--tc)}.cal-legend{color:var(--ink-dim);flex-wrap:wrap;gap:4px 14px;padding:8px 12px;font-size:11px;display:flex}.cal-legend span{align-items:center;gap:5px;display:inline-flex}.cal-legend i,.cal-dot{background:var(--tc);border-radius:2px;flex:none;width:9px;height:9px;display:inline-block}.cal-upcoming{padding:14px 6px 8px}.cal-upcoming h2,.cal-form h2{padding:0 8px 8px;font-size:15px}.cal-upcoming p{margin:0 0 8px;padding:0 8px;font-size:13px}.cal-upcoming ul{margin:0;padding:0;list-style:none}.cal-upcoming li button{text-align:left;background:0 0;align-items:baseline;gap:9px;width:100%;padding:7px 8px;display:flex}.cal-upcoming li button:hover{background:var(--panel2)}.cal-up-main{flex-direction:column;min-width:0;display:flex}.cal-up-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.cal-up-main .muted{font-size:11.5px}.cal-form{flex-direction:column;gap:10px;padding:14px;display:flex}.cal-form h2{padding:0}.cal-form label{color:var(--ink-dim);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.cal-form label .muted{font-weight:400}.cal-form input,.cal-form select,.cal-form textarea{width:100%;font-weight:400}.cal-form textarea{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);resize:vertical;border-radius:6px;padding:7px 9px;font-size:13px}.cal-form textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}.cal-dates{grid-template-columns:1fr 1fr;gap:8px;display:grid}.cal-types{flex-wrap:wrap;gap:5px;display:flex}.cal-type{background:var(--panel);border:1px solid var(--line);color:var(--ink-dim);border-radius:999px;padding:4px 9px;font-size:12px}.cal-type.on{background:var(--tb);border-color:var(--tc);color:var(--ink);font-weight:600}.cal-form-actions{align-items:center;gap:6px;display:flex}.cal-form-actions .spacer{flex:1}@media (width<=900px){.cal-layout{grid-template-columns:1fr}.cal-week{min-height:72px}.cal-bar{margin:0 1px;padding:0 4px;font-size:10.5px}.cal-who{display:none}}.lib-page{max-width:1240px}.lib-tools{margin-bottom:10px}.lib-search{width:min(320px,100%)}.msg-dup{color:#8a3a22;background:var(--danger-soft)}.lib-panel{overflow-x:auto}.lib{border-collapse:collapse;table-layout:fixed;width:100%;min-width:760px}.lib th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-dim);background:var(--panel2);border-bottom:1px solid var(--line);padding:8px;font-size:11px;font-weight:600}.lib td{border-bottom:1px solid var(--line);vertical-align:top;padding:3px 6px}.lib td:first-child{padding-left:10px}.lib tr:last-child td{border-bottom:none}.lib .cell-input{padding:5px 6px}.lib-name{font-weight:600}.lib tr.draft-row td{background:#fcfbf8}.lib tr.draft-row .lib-name{font-weight:500}.lib tr.row-exact td{background:var(--danger-soft)}.lib tr.row-possible td{background:var(--accent-soft)}.side-toggle{border:1px solid var(--line);background:var(--panel);width:74px;color:var(--ink-dim);border-radius:6px;margin-top:2px;padding:4px 0;font-size:12px;font-weight:600}.side-toggle.one{border:2px solid var(--accent);color:#9a5c08;background:var(--accent-soft);padding:3px 0}.side-toggle:hover:not(:disabled){border-color:var(--accent)}.lib-hint{padding:0 6px 4px;font-size:11px}.hint-exact{color:var(--danger);font-weight:600}.hint-possible{color:#9a5c08}.hint-ok{color:var(--ok)}.hint-soft{color:var(--ink-dim)}.lib .row-err{margin-top:0;padding:0 6px 4px}.cell-input.needs-name{border-color:var(--danger)}.video-cell{align-items:center;gap:4px;display:flex}.video-cell .cell-input{min-width:0;color:var(--ink-dim);flex:1;font-size:12px}.video-cell .cell-input:focus{color:var(--ink)}.play-btn{background:var(--accent);color:#fff;border-radius:50%;flex:none;width:26px;height:26px;padding:0 0 0 2px;font-size:10px}.play-btn:hover{filter:brightness(.92)}.lib-actions{text-align:right;white-space:nowrap}.lib-status{color:var(--ink-dim);margin-right:4px;font-size:11px}.lib-status.saved{color:var(--ok)}.del-btn{width:28px;height:28px;color:var(--ink-dim);opacity:.45;background:0 0;border-radius:6px;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.lib tr:hover .del-btn,.del-btn:focus-visible{opacity:1}.del-btn:hover{background:var(--danger-soft);color:var(--danger)}.lib-actions .btn-sm{margin-top:2px}.empty{text-align:center;color:var(--ink-dim);padding:28px 16px}@media (width<=720px){.roster thead{display:none}.roster,.roster tbody,.roster tr,.roster td{width:100%;display:block}.roster tr{border-bottom:1px solid var(--line);padding:8px 4px}.roster td{border:none;padding:4px 8px}.topbar{flex-wrap:wrap;padding:10px 16px}.page{padding:18px 16px 40px}}.testing{margin-top:22px}.testing-h{margin-bottom:2px;font-size:16px}.testing-intro{margin-bottom:10px}.testing-cols{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));align-items:start;gap:14px;display:grid}.testing-panel{padding:14px}.testing-panel h3{margin-bottom:10px;font-size:14px}.testing-form{flex-wrap:wrap;align-items:flex-end;gap:8px 10px;margin-bottom:12px;display:flex}.testing-form .field{color:var(--ink-dim);flex-direction:column;gap:4px;margin:0;font-size:12px;display:flex}.testing-num{text-align:right;width:80px;font-family:IBM Plex Mono,monospace}.testing-notes{flex:1;min-width:120px}.testing-base{flex-basis:100%;font-size:12px}.testing-table td.num{white-space:nowrap;font-family:IBM Plex Mono,monospace}.testing-empty{padding:6px 0}.testing-met{color:var(--ok);font-weight:700}@media (width<=480px){.testing-cols{grid-template-columns:1fr}}.tests-intro{max-width:820px;margin:-4px 0 12px;line-height:1.5}.tests-common{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.tests-lib{min-width:980px}.dir-toggle{width:80px}.setting-cells{grid-template-columns:minmax(0,1fr) 54px 64px;gap:2px;display:grid}.setting-cells .cell-input:disabled{color:var(--ink-dim);cursor:not-allowed;background:0 0}.setting-unit,.setting-def{text-align:center}.pg-test td{background:#d9f2f0;height:34px}.pg-test .c-grip{background:#d9f2f0}.pg .pg-test td.c-test{background:#d9f2f0;box-shadow:inset 4px 0 #0d8a86}.test-row-in{align-items:center;gap:8px;height:100%;padding:0 8px;display:flex}.test-badge{letter-spacing:.06em;text-transform:uppercase;color:#fff;background:#0d8a86;border-radius:4px;flex:none;padding:2px 6px;font-size:10px;font-weight:800}.test-name{color:#0a5e5b;white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-weight:700;overflow:hidden}.test-unit{flex:none;font-size:11px}.test-note{flex:1;min-width:80px;font-size:12px}.pg td.c-test-week{text-align:center;background:#f3faf9;padding:2px 4px}.pg td.c-test-week.on{background:#bfe8e5}.test-week{color:#7aa9a6;white-space:nowrap;background:0 0;border:1px dashed #a8d8d4;border-radius:6px;width:100%;height:26px;padding:0 6px;font-size:11.5px;font-weight:700}.c-test-week.on .test-week{color:#fff;background:#0d8a86;border:1px solid #0d8a86}.test-week:hover{border-color:#0d8a86}.add-test{padding:2px 4px;font-size:12px}.add-test-link{text-decoration:none}.cal-tests{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;margin:0;padding:8px 10px 10px;display:flex}.cal-tests legend{color:var(--ink-dim);padding:0 4px;font-size:12px}.cal-test-chips{flex-wrap:wrap;gap:6px;display:flex}.cal-test-chip{background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.cal-test-chip.on{color:#0a5e5b;background:#d9f2f0;border-color:#0d8a86}.cal-tests-hint{font-size:11.5px}.cal-up-tests{color:#0a5e5b;font-size:12px;display:block}.pg-notice{justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px;font-size:13px;display:flex}.pg-sessions.side{align-items:start;gap:12px;display:grid}.pg-sessions.side .pg-session{min-width:0;margin-bottom:0}.pg-sessions.side .pg-h-in{width:130px}.pg-compact .pg col.w-grip{width:40px}.pg-compact .pg col.w-order{width:34px}.pg-compact .pg col.w-name{width:150px}.pg-compact .pg col.w-tempo{width:46px}.pg-compact .pg col.w-side{width:40px}.pg-compact .pg col.w-sets{width:64px}.pg-compact .pg col.w-kind{width:76px}.pg-compact .pg .c-order,.pg-compact .pg .c-section{left:40px}.pg-compact .pg .c-name{left:74px}.pg-compact .pg .c-tempo{left:224px}.pg-compact .pg .c-side{left:270px}.pg-compact .pg .c-sets{left:310px}.pg-compact .pg .c-kind{left:374px}.pg-compact .warmup-step span{display:none}.pg td.c-cell.is-test{box-shadow:inset 0 0 0 2px #2f6fb5}.pg td.c-cell.is-test:before{content:"T";color:#fff;pointer-events:none;z-index:1;background:#2f6fb5;border-bottom-right-radius:3px;padding:1px 2px;font-size:8px;font-weight:800;line-height:1;position:absolute;top:0;left:0}.pg td.c-cell{position:relative}.cell-menu button:disabled{color:var(--ink-dim);cursor:default;background:0 0}.pg td.c-actual{text-align:center;cursor:default;font-family:IBM Plex Mono,monospace;font-size:12.5px;font-weight:600}.pg td.c-actual .act{min-height:26px;padding:4px 2px;display:block}.act-on{color:#1f6e43;background:#e3f3ea!important}.act-over{color:#1f5590;background:#e2edf9!important}.act-under{color:#8a5208;background:#fbefdb!important}.act-adjusted{color:#9b3a22;background:#fbe3dc!important}.act-skipped{color:#8a8f96;background:#efede8!important}.act-none{color:#0000}.actuals-btn.on{color:#fff;background:#1f6e43;border-color:#1f6e43}.actuals-key{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 10px;padding:8px 10px;font-size:12px;display:flex}.actuals-key .key{border-radius:999px;padding:2px 8px;font-weight:600}.wk-status{text-transform:capitalize;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700}.wk-status.st-completed{color:#1f6e43;background:#e3f3ea}.wk-status.st-skipped{color:#9b3a22;background:#fbe3dc}.results-page{max-width:1240px}.results-summary{flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 14px;font-size:13px;display:flex}.results-summary .key{border-radius:999px;margin-left:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.results-upcoming{color:var(--ink-dim);align-items:center;gap:6px;margin-left:auto;display:inline-flex}.results-session{margin-bottom:12px}.results-session.st-skipped{opacity:.8}.results-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;display:flex}.status-chip{background:var(--panel2);color:var(--ink-dim);text-transform:capitalize;white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700}.status-chip.st-completed{color:#1f6e43;background:#e3f3ea}.status-chip.st-skipped{color:#9b3a22;background:#fbe3dc}.results-note{color:var(--ink-dim);margin:8px 12px 0;font-size:13px}.results-table{width:100%}.results-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-dim);padding:8px 10px 4px;font-size:11px;font-weight:600}.results-table td{vertical-align:top;padding:6px 10px;font-size:13px}.results-table td:first-child{width:22%;font-weight:600}.results-presc{color:var(--ink-dim);width:24%}.results-sets{flex-wrap:wrap;gap:4px;display:flex}.set-chip{cursor:default;border:1px solid #0000;border-radius:6px;padding:2px 7px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.set-chip.act-none{color:var(--ink-dim);border-color:var(--line);background:0 0}.set-chip.is-warmup{border-style:dashed;border-color:#b9d4f2}.set-chip small{opacity:.8;font-weight:500}.set-chip .set-test{color:#2f6fb5;font-weight:800}.results-section td{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);padding-top:10px;font-size:11px;font-weight:700}.results-test td{background:#f3faf9}.results-swap td:first-child{color:#9a5c08;font-weight:500}.dash-results thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-dim);padding:6px 10px;font-size:11px;font-weight:600}.who-btn{color:var(--ink);font-weight:600;font-size:inherit;white-space:nowrap;background:0 0;align-items:center;gap:4px;padding:2px 6px 2px 0;display:inline-flex}.who-btn:hover{color:var(--accent)}.who-caret{width:12px;color:var(--ink-dim);font-size:11px}.dash-results tr.is-open>td{background:var(--accent-soft)}.results-cell{white-space:nowrap;width:1%}.result-pills{flex-wrap:wrap;gap:4px;display:inline-flex}.result-pills .key{border-radius:999px;padding:1px 7px;font-size:11.5px;font-weight:700}.rpe-pill{background:var(--panel2);color:var(--ink-dim)}button.chip{font:inherit;color:var(--ink);cursor:pointer;font-size:12px}button.chip:hover{border-color:var(--accent)}.dash-detail>td{background:var(--bg);padding:10px 12px 14px!important}.dash-drill{flex-direction:column;gap:10px;display:flex}.dash-drill-head{flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.dash-drill-head .spacer{flex:1}.dash-drill .results-session{margin-bottom:0}.drill-focus .results-session{box-shadow:0 0 0 2px var(--accent)}.lift-summary{flex-wrap:wrap;gap:4px 6px;display:flex}.lift-pill{background:var(--panel2);white-space:nowrap;border-radius:6px;align-items:baseline;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.lift-pill-name{color:var(--ink-dim)}.lift-pill b{font-family:IBM Plex Mono,monospace;font-weight:700}.lift-change{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:700}.lift-change.up{color:#1f6e43}.lift-change.down{color:#8a5208}.results-cell{white-space:normal;width:auto;max-width:520px}.lifts-panel{margin-bottom:4px;overflow-x:auto}.lifts-table{width:max-content;min-width:100%}.lifts-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-dim);text-align:left;padding:8px 12px 4px;font-size:11px;font-weight:600}.lifts-table td{white-space:nowrap;padding:6px 12px;font-size:13px}.lifts-table .lift-name{font-weight:600}.lift-cell .lift-top{font-family:IBM Plex Mono,monospace;font-weight:600}.lift-cell .lift-change{margin-left:6px}.lifts-table .is-now{background:var(--accent-soft)}.lifts-empty{margin:0;font-size:13px}html.athlete-mode{--ok-strong:#23764a;--ath-done-bg:#e3f3ea;--ath-shadow:0 -6px 20px #00000014}@media (prefers-color-scheme:dark){html.athlete-mode{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121315;--panel:#1c1e21;--panel2:#26292d;--line:#34383d;--ink:#f1efe9;--ink-dim:#a5a9af;--accent:#f0a23a;--accent-ink:#1a1306;--accent-soft:#3a2a12;--ok:#5fcf8f;--ok-strong:#5fcf8f;--ok-soft:#173325;--danger:#ff8a70;--danger-soft:#3b1d17;--ath-done-bg:#173325;--ath-shadow:0 -6px 20px #00000080}html.athlete-mode input,html.athlete-mode textarea{background:var(--panel2);color:var(--ink);border-color:var(--line)}html.athlete-mode .ath-done[aria-pressed=true],html.athlete-mode .ath-tick.on,html.athlete-mode .ath-rest.is-done,html.athlete-mode .ath-rest.is-done .ath-rest-label{color:#0b1f14}}.ath-center{justify-content:center;align-items:center;min-height:70vh;padding:24px 16px;display:flex}.ath-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:420px;padding:22px}.ath-card h1{margin-bottom:8px;font-size:22px}.ath-card p{line-height:1.5}.ath-btn{background:var(--accent);min-height:48px;color:var(--accent-ink);border-radius:10px;justify-content:center;align-items:center;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}.ath-picker{margin:12px 0 0;padding:0;list-style:none}.ath-picker a{border-top:1px solid var(--line);color:var(--ink);padding:14px 4px;font-weight:600;text-decoration:none;display:block}.ath-preview{color:#fff;text-align:center;background:#2f6fb5;padding:6px 16px;font-size:12px}.ath-preview .btn-link{color:#fff;background:0 0;padding:0;font-size:12px;text-decoration:underline}.ath-page{width:100%;max-width:560px;margin:0 auto;padding:16px 16px 40px}.ath-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.ath-head h1{font-size:28px}.ath-kicker{color:var(--ink-dim);font-size:14px}.ath-pad{padding:12px 0}.ath-note{color:var(--ink-dim);background:var(--panel2);border-radius:8px;margin:8px 0;padding:8px 12px;font-size:13px}.ath-section{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-dim);margin:18px 0 8px;font-size:13px;font-weight:600}.ath-day{background:var(--panel);border:1px solid var(--line);min-height:72px;color:var(--ink);border-radius:12px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;text-decoration:none;display:flex}.ath-day:active{transform:scale(.99)}.ath-day.is-today{border:2px solid var(--accent);background:var(--accent-soft)}.ath-day-main{flex:1;min-width:0}.ath-day-date{color:var(--ink-dim);font-size:13px;font-weight:600}.ath-day.is-today .ath-day-date{color:var(--accent)}.ath-day-label{margin:2px 0;font-size:18px;font-weight:700}.ath-day-meta{color:var(--ink-dim);font-size:13px}.ath-chip{text-transform:capitalize;background:var(--panel2);color:var(--ink-dim);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.ath-chip.st-completed{background:var(--ok-soft);color:var(--ok-strong)}.ath-chip.st-skipped{background:var(--danger-soft);color:var(--danger)}.ath-earlier{margin-top:18px}.ath-earlier summary{min-height:48px;color:var(--ink-dim);cursor:pointer;align-items:center;font-weight:600;display:flex}.ath-signout{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink-dim);background:0 0;border-radius:10px;margin-top:28px}.ath-sync{white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:600}.ath-sync.is-ok{color:var(--ok-strong)}.ath-sync.is-local{color:var(--accent);background:var(--accent-soft)}.ath-sync.is-err{color:var(--danger);background:var(--danger-soft)}.ath-reject{background:var(--danger-soft);color:var(--danger);border-radius:10px;margin:8px 12px;padding:10px 12px;font-size:13px}.ath-reject-row{color:var(--ink);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.ath-reject-row button{background:var(--panel);min-height:40px;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:0 12px;font-weight:600}.ath-session{width:100%;max-width:640px;min-height:100dvh;margin:0 auto;padding-bottom:200px}.ath-sbar{z-index:5;padding:4px;padding-top:max(4px, env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:4px;display:flex;position:sticky;top:0}.ath-icon{width:48px;height:48px;color:var(--ink);background:0 0;border-radius:10px;flex:none;justify-content:center;align-items:center;font-size:28px;line-height:1;text-decoration:none;display:inline-flex}.ath-icon:active{background:var(--panel2)}.ath-sbar-title{flex:1;min-width:0;font-size:16px;font-weight:700}.ath-sbar-sub{color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.ath-session>.ath-note{margin:8px 12px}.ath-ex{padding:16px 12px 0}.ath-ex-section{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:4px;font-size:12px;font-weight:700}.ath-ex-name{text-align:left;color:var(--ink);background:0 0;border-radius:0;margin:0 0 6px;padding:0;font-family:Space Grotesk,sans-serif;font-size:28px;font-weight:700;line-height:1.15;display:block}.ath-ex-name.is-link{-webkit-text-decoration:underline dotted var(--accent);text-decoration:underline dotted var(--accent);text-underline-offset:5px;min-height:48px}.ath-play{background:var(--accent);width:30px;height:30px;color:var(--accent-ink);vertical-align:4px;border-radius:50%;justify-content:center;align-items:center;margin-left:4px;font-size:12px;display:inline-flex}.ath-ex-notes{color:var(--ink-dim);flex-wrap:wrap;gap:4px 12px;margin-bottom:14px;font-size:14px;line-height:1.4;display:flex}.ath-sets{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ath-set{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px}.ath-set.is-done{background:var(--ath-done-bg);border-color:var(--ok)}.ath-set.is-rejected{border-color:var(--danger)}.ath-set.is-warmup:not(.is-done){background:#eaf3fd;border-color:#b9d4f2}.ath-set.is-warmup .ath-set-no{color:#2f6fb5;letter-spacing:.02em;white-space:nowrap;font-size:10px;font-weight:800}@media (prefers-color-scheme:dark){html.athlete-mode .ath-set.is-warmup:not(.is-done){background:#16263a;border-color:#2c4a6e}html.athlete-mode .ath-set.is-warmup .ath-set-no{color:#8dbbef}}.ath-set-row{grid-template-columns:30px minmax(0,1fr) 58px 76px 56px;align-items:center;gap:6px;display:grid}.ath-set-no{text-align:center;color:var(--ink-dim);flex-direction:column;align-items:center;font-size:20px;font-weight:700;line-height:1.1;display:flex}.ath-side{color:var(--accent);font-size:11px;font-weight:800}.ath-chipbox{flex-direction:column;gap:2px;min-width:0;display:flex}.ath-presc{overflow-wrap:anywhere;font-size:15px;font-weight:700;line-height:1.2}.ath-presc-note{color:var(--danger);font-size:11px}.ath-test{letter-spacing:.06em;color:#fff;background:#2f6fb5;border-radius:4px;align-self:flex-start;padding:1px 5px;font-size:10px;font-weight:800}.ath-in{display:block;position:relative}.ath-in input{text-align:center;border-radius:10px;width:100%;height:52px;padding:0 2px 12px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:21px;font-weight:700}.ath-in span{text-align:center;color:var(--ink-dim);pointer-events:none;font-size:10px;position:absolute;bottom:4px;left:0;right:0}.ath-in.is-muted input{color:var(--ink-dim);font-style:italic;font-weight:500}.ath-done{background:var(--panel2);width:56px;height:56px;color:var(--ink-dim);border:2px solid var(--line);border-radius:14px;font-size:26px;font-weight:800}.ath-done[aria-pressed=true]{background:var(--ok);color:#fff;border-color:var(--ok)}.ath-done:active{transform:scale(.95)}.ath-set-extra{flex-wrap:wrap;gap:4px 12px;padding:6px 2px 0 32px;font-size:13px;font-weight:600;display:flex}.ath-best{color:var(--accent)}.ath-err{color:var(--danger)}.ath-rpe{align-items:center;gap:4px;padding:8px 0 0 32px;display:flex;overflow-x:auto}.ath-rpe>span{color:var(--ink-dim);margin-right:2px;font-size:12px;font-weight:700}.ath-rpe button{background:var(--panel);border:1px solid var(--line);width:34px;height:40px;color:var(--ink);border-radius:8px;flex:none;font-weight:700}.ath-rpe button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.ath-ex-actions{gap:8px;margin:0 0 12px;display:flex}.ath-ghost{background:var(--panel);min-height:44px;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:0 16px;font-weight:700}.ath-ghost:active{background:var(--panel2)}.ath-swapped{color:var(--accent);margin:-2px 0 6px;font-size:13px;font-weight:600}.ath-adjusted{background:var(--accent-soft);width:100%;min-height:48px;color:var(--ink);text-align:left;border-radius:10px;align-items:center;gap:8px;margin:0 0 12px;padding:8px 12px;font-size:14px;display:flex}.ath-adjusted>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ath-adjusted-tag,.ath-adjusted-small{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-size:11px;font-weight:800}.ath-adjust-change{color:var(--accent);font-size:13px;font-weight:700}.ath-adjust{background:var(--panel);border:2px solid var(--accent);border-radius:12px;flex-direction:column;gap:10px;margin:0 0 12px;padding:12px;display:flex}.ath-adjust-title{font-size:14px;font-weight:700}.ath-adjust-hint{color:var(--ink-dim);margin:0;font-size:13px}.ath-choices{flex-direction:column;gap:6px;display:flex}.ath-choice{background:var(--panel2);min-height:56px;color:var(--ink);text-align:left;border:2px solid #0000;border-radius:10px;grid-template-rows:auto auto;grid-template-columns:22px 1fr;align-items:center;column-gap:10px;padding:8px 12px;display:grid}.ath-choice.on{background:var(--accent-soft);border-color:var(--accent)}.ath-choice-dot{border:2px solid var(--ink-dim);border-radius:50%;grid-row:1/span 2;width:20px;height:20px}.ath-choice.on .ath-choice-dot{border-color:var(--accent);background:radial-gradient(var(--accent) 0 5px, transparent 6px)}.ath-choice-name{font-size:16px;font-weight:700}.ath-choice-name .muted{font-size:13px;font-weight:500}.ath-choice-presc{color:var(--ink-dim);font-size:13px}.ath-choice-presc:empty{display:none}.ath-adjust-actions{justify-content:flex-end;gap:8px;display:flex}.ath-adjust-actions .ath-btn:disabled{opacity:.45}.ath-reasons{flex-wrap:wrap;gap:6px;display:flex}.ath-reasons button{background:var(--panel2);min-height:40px;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:0 14px;font-size:14px;font-weight:600}.ath-reasons button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.ath-field{border-radius:10px;width:100%;min-height:48px;padding:0 12px;font-size:16px}.ath-set.is-skipped{opacity:.65;border-style:dashed}.ath-set.is-skipped .ath-in input{color:var(--ink-dim)}.ath-skipped-tag{color:var(--ink-dim);font-weight:700}.ath-skip-btn{border:1px dashed var(--line);width:100%;min-height:44px;color:var(--ink-dim);background:0 0;border-radius:10px;margin-top:10px;font-weight:600}.ath-banner{background:var(--danger-soft);color:var(--ink);border-radius:10px;align-items:center;gap:8px;margin:8px 12px;padding:10px 12px;font-size:14px;display:flex}.ath-banner span{flex:1}.ath-banner button{background:var(--panel);border:1px solid var(--line);min-height:40px;color:var(--ink);border-radius:8px;padding:0 12px;font-weight:700}.ath-session-actions{flex-direction:column;gap:8px;margin-top:12px;display:flex}.ath-session-actions .ath-secondary{margin-top:0}.ath-sheet-intro{margin:0 0 10px;font-size:14px;line-height:1.4}.ath-sheet-body>.ath-field,.ath-sheet-body>.ath-reasons{margin-bottom:12px}.ath-sheet-body>.ath-adjust-title{margin:4px 0 8px}.ath-sheet-body>.ath-primary:disabled{opacity:.5}.ath-ov-name em{color:var(--accent);font-size:12px;font-style:normal;font-weight:700}.ath-bottom{z-index:6;padding:10px 12px;padding-bottom:max(12px, env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line);box-shadow:var(--ath-shadow);flex-direction:column;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.ath-bottom>*{width:100%;max-width:616px;margin:0 auto}.ath-primary{background:var(--accent);width:100%;min-height:56px;color:var(--accent-ink);border-radius:14px;font-size:18px;font-weight:800}.ath-primary:active{filter:brightness(.95)}.ath-secondary{background:var(--panel2);width:100%;min-height:52px;color:var(--ink);border:1px solid var(--line);border-radius:12px;margin-top:14px;font-weight:700}.ath-rest{background:var(--panel2);border-radius:12px;align-items:center;gap:8px;padding:6px 6px 6px 14px;display:flex}.ath-rest-time{flex:1;align-items:baseline;gap:10px;display:flex}.ath-rest-label{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:700}.ath-rest-clock{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:30px;font-weight:700}.ath-rest-ctrl{gap:6px;display:flex}.ath-rest-ctrl button{background:var(--panel);min-width:52px;height:48px;color:var(--ink);border:1px solid var(--line);border-radius:10px;font-weight:700}.ath-rest.is-done{background:var(--ok);color:#fff;animation:.5s ease-in-out 3 ath-flash}.ath-rest.is-done .ath-rest-label{color:#fff}@keyframes ath-flash{50%{filter:brightness(1.35);transform:scale(1.02)}}@media (prefers-reduced-motion:reduce){.ath-rest.is-done{animation:none}}.ath-sheet{background:var(--panel);width:100%;max-width:100%;max-height:85vh;color:var(--ink);border:none;border-radius:18px 18px 0 0;margin:auto 0 0;padding:0}.ath-sheet::backdrop{background:#00000073}.ath-sheet-body{padding:8px 16px 20px;padding-bottom:max(20px, env(safe-area-inset-bottom));max-width:640px;margin:0 auto}.ath-sheet-head{justify-content:space-between;align-items:center;display:flex}.ath-sheet-head h2{font-size:20px}.ath-overview{margin:4px 0 0;padding:0;list-style:none}.ath-ov-section{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);padding:10px 4px 2px;font-size:11px;font-weight:700}.ath-overview button{width:100%;min-height:52px;color:var(--ink);text-align:left;background:0 0;border-radius:10px;align-items:center;gap:12px;padding:0 8px;display:flex}.ath-overview button.is-current{background:var(--panel2)}.ath-tick{border:2px solid var(--line);border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;font-weight:800;display:inline-flex}.ath-tick.on{background:var(--ok);border-color:var(--ok);color:#fff}.ath-ov-name{flex:1;font-weight:600}.ath-ov-count{color:var(--ink-dim);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px}.ath-summary{gap:20px;margin:8px 0 10px;font-size:16px;display:flex}.ath-summary strong{font-size:26px}.ath-comment{color:var(--ink-dim);flex-direction:column;gap:6px;margin:10px 0 14px;font-size:14px;font-weight:600;display:flex}.ath-comment textarea{font:inherit;color:var(--ink);border:1px solid var(--line);resize:vertical;border-radius:10px;padding:10px;font-size:16px}@media (width<=640px){.vo[open]{align-items:flex-end;padding:0}.vo-panel{border-radius:16px 16px 0 0;width:100%;max-height:92vh}.vo-short{width:100%}.vo-short .vo-frame{width:min(100%,39.375vh);margin:0 auto}.vo-close{padding-bottom:max(12px, env(safe-area-inset-bottom))}}@media (width<=360px){.ath-set-row{grid-template-columns:28px minmax(0,1fr) 52px 68px 52px;gap:4px}.ath-done{width:52px;height:52px}}.ath-page.ath-tabbed{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.ath-tabs{z-index:20;background:var(--panel);border-top:1px solid var(--line);box-shadow:var(--ath-shadow);padding-bottom:env(safe-area-inset-bottom);justify-content:center;gap:0;display:flex;position:fixed;bottom:0;left:0;right:0}.ath-tabs a{max-width:280px;min-height:60px;color:var(--ink-dim);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.ath-tabs a span{font-size:20px;line-height:1}.ath-tabs a.on{color:var(--accent)}.ath-target,.ath-metric{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:6px;margin-bottom:10px;padding:12px 14px;display:flex}.ath-target.is-reached{border-color:var(--ok)}.ath-target-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.ath-target-name{font-size:16px;font-weight:700}.ath-target-sub{color:var(--ink-dim);font-size:13px;line-height:1.4}.ath-target-nums{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.ath-big{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:34px;font-weight:700;line-height:1.1}.ath-target-of{color:var(--ink-dim);font-size:15px;font-weight:600}.ath-change{border-radius:999px;padding:2px 8px;font-size:14px;font-weight:800}.ath-change.is-up{background:var(--ok-soft);color:var(--ok-strong)}.ath-change.is-down{background:var(--danger-soft);color:var(--danger)}.ath-bar{background:var(--panel2);border-radius:999px;height:10px;overflow:hidden}.ath-bar span{background:var(--accent);border-radius:999px;height:100%;display:block}.ath-target.is-reached .ath-bar span{background:var(--ok)}.ath-chart{width:100%;height:auto;margin:4px 0;display:block}.ath-chart-axis{stroke:var(--line);stroke-width:1px}.ath-chart-tick{fill:var(--ink-dim);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px}.ath-chart-line{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.ath-chart-dot{fill:var(--accent);stroke:var(--panel);stroke-width:2px}.ath-chart-dot.is-marked{fill:var(--panel);stroke:var(--accent);stroke-width:2.5px}.ath-chart-target{stroke:var(--ok-strong);stroke-width:1.5px;stroke-dasharray:5 4}.ath-chart-target-label{fill:var(--ok-strong);font-size:10px;font-weight:700}.ath-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ath-row{background:var(--panel);border:1px solid var(--line);min-height:60px;color:var(--ink);border-radius:12px;align-items:center;gap:10px;padding:8px 12px;text-decoration:none;display:flex}.ath-row:not(.is-static):active{transform:scale(.99)}.ath-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ath-row-title{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;overflow:hidden}.ath-row-sub{color:var(--ink-dim);font-size:13px}.ath-row-value{white-space:nowrap;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:18px;font-weight:700}.ath-row-chevron{color:var(--ink-dim);font-size:24px;line-height:1}.ath-back{min-height:48px;color:var(--accent);align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.ath-detail-title{margin:0 0 12px;font-size:26px}.ath-test-link{min-height:40px;color:var(--ink);text-align:left;-webkit-text-decoration:underline dotted var(--accent);text-decoration:underline dotted var(--accent);text-underline-offset:4px;background:0 0;padding:0}.ath-test-link .ath-play{vertical-align:1px;width:26px;height:26px;font-size:11px}html.athlete-mode{--test:#0d8a86;--test-ink:#0a5e5b;--test-soft:#d9f2f0}@media (prefers-color-scheme:dark){html.athlete-mode{--test:#3cc4bd;--test-ink:#8be3dd;--test-soft:#10302e}}.ath-testing-badge{letter-spacing:.06em;text-transform:uppercase;background:var(--test);color:#fff;vertical-align:1px;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:800;display:inline-block}.ath-testing{background:var(--test-soft);border:2px solid var(--test);color:var(--ink);border-radius:12px;margin-bottom:8px;padding:12px 14px}.ath-testing-head{align-items:center;gap:8px;display:flex}.ath-testing .ath-day-date{color:var(--test-ink)}.ath-day.has-tests{border-left:6px solid var(--test)}.ath-day-tests{color:var(--test-ink);margin-top:4px;font-size:13px;font-weight:600}.ath-tests{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.ath-tests li{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.ath-test-name{font-size:16px;font-weight:700}.ath-test-setting{color:var(--test-ink);margin-top:2px;font-size:14px;font-weight:600}.ath-test-how{color:var(--ink-dim);margin-top:2px;font-size:13px;line-height:1.4}.ath-testing-strip{background:var(--test-soft);border:1px solid var(--test);width:calc(100% - 24px);min-height:48px;color:var(--ink);text-align:left;border-radius:10px;align-items:center;gap:8px;margin:8px 12px 0;padding:8px 12px;font-size:14px;display:flex}.ath-testing-names{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.ath-history-btn{background:var(--panel2);border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);text-align:left;border-radius:10px;align-items:center;gap:10px;margin:0 0 12px;padding:8px 12px;font-size:14px;display:flex}.ath-history-btn>span:nth-child(2){flex:1;min-width:0}.ath-history-btn b{font-family:IBM Plex Mono,ui-monospace,monospace}.ath-history-icon{color:var(--accent);font-size:18px}.ath-history{flex-direction:column;gap:10px;max-height:60vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.ath-history li{background:var(--panel2);border-radius:10px;padding:10px 12px}.ath-history-date{color:var(--ink-dim);margin-bottom:6px;font-size:13px;font-weight:700}.ath-history-sets{flex-wrap:wrap;gap:6px;display:flex}.ath-history-set{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:15px;font-weight:700}.ath-history-set small{color:var(--ink-dim);font-size:12px;font-weight:500}.ath-history-set.is-warmup{border-style:dashed}
