@font-face{font-family:Barlow Condensed;font-weight:700;font-display:swap;src:url(/fonts/BarlowCondensed-Bold.ttf)format("truetype")}@font-face{font-family:"Source Sans 3";font-weight:400;font-display:swap;src:url(/fonts/SourceSans3-Regular.ttf)format("truetype")}@font-face{font-family:"Source Sans 3";font-weight:600;font-display:swap;src:url(/fonts/SourceSans3-Semibold.ttf)format("truetype")}@font-face{font-family:"Source Sans 3";font-weight:700;font-display:swap;src:url(/fonts/SourceSans3-Bold.ttf)format("truetype")}:root{--background:#eef2f6;--surface:#fff;--ink:#162a43;--secondary-ink:#5b6b80;--line:#d6dee8;--accent:#244bff;--accent-fill:#244bff;--accent-ink:#fff;--accent-soft:#244bff1f;--shadow:#162a4326;--tappable-border:#5b6b80b8;--danger:#c4231a;--step-1:#0a84d6;--step-2:#11994b;--step-3:#db6b08;--step-4:#d92d20;--step-1-ink:#0f1720;--step-2-ink:#0f1720;--step-3-ink:#0f1720;--step-4-ink:#fff;--space-xxs:4px;--space-xs:8px;--space-s:10px;--space-m:12px;--space-l:16px;--space-xl:20px;--space-xxl:28px;--corner-radius:8px;--card-radius:24px;--pill-radius:20px;--row-min-height:50px;--body:19px;--label:17px;--font-sans:"Source Sans 3", system-ui, sans-serif;--font-display:"Barlow Condensed", "Arial Narrow", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--background:#0f1720;--surface:#182230;--ink:#eaf0f7;--secondary-ink:#93a3b8;--line:#2a3746;--accent:#6b8cff;--accent-soft:#6b8cff24;--shadow:#0000004d;--tappable-border:#93a3b899;--danger:#ff6b61;--step-1:#1fb6ff;--step-2:#27e06f;--step-3:#ff8a1f;--step-4:#ff4438;--step-4-ink:#0f1720;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--background:#0f1720;--surface:#182230;--ink:#eaf0f7;--secondary-ink:#93a3b8;--line:#2a3746;--accent:#6b8cff;--accent-soft:#6b8cff24;--shadow:#0000004d;--tappable-border:#93a3b899;--danger:#ff6b61;--step-1:#1fb6ff;--step-2:#27e06f;--step-3:#ff8a1f;--step-4:#ff4438;--step-4-ink:#0f1720;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--background);color:var(--ink);font-family:var(--font-sans);font-size:var(--body);margin:0;line-height:1.45}h1,h2,h3,p{margin:0}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.layout{background:linear-gradient(to right, var(--surface) 299px, var(--line) 299px 300px, transparent 300px);grid-template-columns:300px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:var(--space-xxl) var(--space-xl);gap:var(--space-l);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.logo{width:180px;height:auto;display:block}:root[data-theme=dark] .logo{content:url(/trainright-logo-reversed.svg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .logo{content:url(/trainright-logo-reversed.svg)}}.sidebar-heading,.field-label{font-size:var(--label);color:var(--secondary-ink);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.team-list,.team-pages,.row-list,.coach-list,.team-levels{margin:0;padding:0;list-style:none}.team-list{gap:var(--space-xs);flex-direction:column;display:flex}.team-link,.team-pages a,.nav-link{min-height:var(--row-min-height);padding:var(--space-xs) var(--space-m);border-radius:var(--corner-radius);color:var(--ink);align-items:center;font-weight:600;text-decoration:none;display:flex}.team-link:hover,.team-pages a:hover,.nav-link:hover{background:var(--accent-soft)}.team-list>li.selected>.team-link{background:var(--accent-soft);color:var(--accent)}.team-pages{margin:var(--space-xxs) 0 0 var(--space-l);border-left:2px solid var(--line)}.team-pages a{min-height:44px;font-weight:400}.sidebar a[aria-current=page]{box-shadow:inset 4px 0 0 var(--accent);font-weight:700}.sidebar-foot{gap:var(--space-xs);flex-direction:column;margin-top:auto;display:flex}.content{padding:var(--space-xxl) 48px 64px;gap:var(--space-xl);flex-direction:column;width:100%;max-width:1100px;display:flex}.centered{justify-content:center;align-items:center;gap:var(--space-xl);min-height:100vh;padding:var(--space-xl);text-align:center;flex-direction:column;display:flex}.narrow{max-width:560px;margin:0 auto}.page-header{gap:var(--space-xs);flex-direction:column;display:flex}.eyebrow{font-size:var(--label);color:var(--secondary-ink);font-weight:600}.page-title{font-family:var(--font-display);overflow-wrap:anywhere;font-size:52px;font-weight:700;line-height:1.05}.section-title{font-family:var(--font-display);margin:var(--space-l) 0 var(--space-m);font-size:30px;font-weight:700}.lead{font-size:21px}.muted{color:var(--secondary-ink)}.strong{font-weight:600}.truncate{overflow-wrap:anywhere;min-width:0}.metric{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:36px;font-weight:700;line-height:1}.error-text{color:var(--danger);font-weight:600}.card{background:var(--surface);border-radius:var(--card-radius);padding:var(--space-xl);box-shadow:0 6px 24px var(--shadow)}.error-card{justify-content:space-between;align-items:center;gap:var(--space-m);border:2px solid var(--danger);flex-wrap:wrap;display:flex}.button{min-height:52px;padding:0 var(--space-xl);border-radius:var(--pill-radius);border:2px solid var(--accent-fill);background:var(--accent-fill);color:var(--accent-ink);font:inherit;cursor:pointer;font-weight:600}.button.secondary{color:var(--accent);border-color:var(--tappable-border);background:0 0}.button.danger{background:var(--danger);border-color:var(--danger);color:#fff}.button:disabled{opacity:.5;cursor:default}.link-button{min-height:44px;padding:0 var(--space-xs);color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;font-weight:600;text-decoration:underline}.danger-text{color:var(--danger)}.input{min-height:var(--row-min-height);padding:0 var(--space-m);border-radius:var(--corner-radius);border:2px solid var(--tappable-border);background:var(--surface);color:var(--ink);font:inherit;width:100%}.create-team-toggle summary{min-height:48px;padding:0 var(--space-m);border-radius:var(--corner-radius);color:var(--accent);cursor:pointer;align-items:center;font-weight:600;display:flex}.create-team-toggle[open] summary{margin-bottom:var(--space-xs)}.create-team{gap:var(--space-xs);text-align:left;flex-direction:column;width:100%;display:flex}.back-link{font-weight:600;font-size:var(--label);align-self:flex-start;align-items:center;min-height:44px;display:inline-flex}.load-card{gap:var(--space-xxl);grid-template-columns:minmax(280px,380px) minmax(0,1fr);align-items:center;display:grid}.gauge{aspect-ratio:318/250;width:100%;position:relative}.gauge-arc{width:100%;position:absolute;inset:8% 0 auto;overflow:visible}.gauge-band{fill:none;stroke-width:18px;stroke-linecap:round}.stroke-1{stroke:var(--step-1)}.stroke-2{stroke:var(--step-2)}.stroke-3{stroke:var(--step-3)}.stroke-4{stroke:var(--step-4)}.gauge-tick{stroke:var(--ink);stroke-width:2px;stroke-linecap:round}.gauge-ring{fill:var(--surface);stroke:var(--ink);stroke-width:5px}.gauge-usual{color:var(--secondary-ink);font-size:var(--label);position:absolute;top:0;left:50%;transform:translate(-50%)}.gauge-center{align-items:center;gap:var(--space-xxs);flex-direction:column;display:flex;position:absolute;top:32%;left:0;right:0}.gauge-title{font-size:var(--label);color:var(--secondary-ink);letter-spacing:.04em;font-weight:600}.gauge-number{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:96px;font-weight:700;line-height:.95}.gauge-lower,.gauge-higher{color:var(--secondary-ink);font-size:var(--label);position:absolute;top:89%}.gauge-lower{left:4%}.gauge-higher{right:4%}.team-levels{gap:var(--space-l);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.team-levels li{gap:var(--space-xxs);flex-direction:column;display:flex}.level-line{border-radius:3px;height:6px}.level-line.step-1,.load-bar-fill.step-1{background:var(--step-1)}.level-line.step-2,.load-bar-fill.step-2{background:var(--step-2)}.level-line.step-3,.load-bar-fill.step-3{background:var(--step-3)}.level-line.step-4,.load-bar-fill.step-4{background:var(--step-4)}.load-bar-fill.step-none{background:var(--secondary-ink)}.badge{font-weight:600;font-size:var(--label);white-space:nowrap;border-radius:6px;padding:2px 10px;display:inline-block}.badge.step-1{background:var(--step-1);color:var(--step-1-ink)}.badge.step-2{background:var(--step-2);color:var(--step-2-ink)}.badge.step-3{background:var(--step-3);color:var(--step-3-ink)}.badge.step-4{background:var(--step-4);color:var(--step-4-ink)}.badge.step-none{border:1px solid var(--tappable-border)}.load-bar{background:var(--background);height:10px;margin-top:var(--space-xs);border-radius:5px;min-width:120px;position:relative}.load-bar-fill{border-radius:5px;height:100%}.load-bar-tick{background:var(--ink);border-radius:1px;width:2px;height:14px;margin-left:-1px;position:absolute;top:-2px;left:50%}.section-head{justify-content:space-between;align-items:center;gap:var(--space-m);margin-top:var(--space-s);flex-wrap:wrap;display:flex}.segmented{border:2px solid var(--tappable-border);border-radius:var(--corner-radius);display:inline-flex;overflow:hidden}.segmented button{min-height:48px;padding:0 var(--space-xl);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border:none;font-weight:600}.segmented button+button{border-left:2px solid var(--tappable-border)}.segmented button.selected{background:var(--accent-fill);color:var(--accent-ink)}.table-card{padding:var(--space-xs) var(--space-xl)}.roster{border-collapse:collapse;width:100%}.roster th{text-align:left;font-size:var(--label);color:var(--secondary-ink);padding:var(--space-m) var(--space-xs);border-bottom:2px solid var(--line);font-weight:600}.roster td{padding:var(--space-l) var(--space-xs);border-bottom:1px solid var(--line);vertical-align:middle}.roster tbody tr:last-child td{border-bottom:none}.sort-button{align-items:center;gap:var(--space-xs);min-height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;display:inline-flex}.sort-mark{color:var(--accent)}.athlete-cell{width:36%}.athlete-name{align-items:center;gap:var(--space-m);min-width:0;display:flex}.athlete-link{overflow-wrap:anywhere;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--tappable-border);text-decoration-color:var(--tappable-border);text-underline-offset:4px}.athlete-link:hover{color:var(--accent)}.initials{background:var(--background);width:44px;height:44px;font-size:var(--label);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.load-cell{min-width:160px}.action-cell{text-align:right}.invite-card{align-items:flex-start;gap:var(--space-m);flex-direction:column;display:flex}.invite-code{font-family:var(--font-display);letter-spacing:.06em;-webkit-user-select:all;user-select:all;font-size:48px}.coach-list{gap:var(--space-xs);flex-direction:column;display:flex}.coach-row{justify-content:space-between;align-items:center;gap:var(--space-m);padding:var(--space-m) var(--space-xl);display:flex}.rows{margin:0}.row{gap:var(--space-m);padding:var(--space-s) 0;border-bottom:1px solid var(--line);grid-template-columns:minmax(120px,30%) 1fr;display:grid}.row:last-child{border-bottom:none}.row dt{color:var(--secondary-ink);font-weight:600;font-size:var(--label);align-self:center}.row dd{overflow-wrap:anywhere;margin:0}.notes{white-space:pre-wrap}.row-list{gap:var(--space-s);margin-top:var(--space-m);flex-direction:column;display:flex}.link-card{color:var(--ink);padding:var(--space-l) var(--space-xl);border:2px solid #0000;flex-direction:column;gap:2px;text-decoration:none;display:flex}.link-card:hover{border-color:var(--accent)}.plan-row{justify-content:space-between;align-items:center;gap:var(--space-m);flex-direction:row}.plan-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.plan-status{white-space:nowrap;text-align:right;font-weight:600;font-size:var(--label);flex:none}.calendar-layout{gap:var(--space-xl);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;display:grid}.calendar{gap:var(--space-m);flex-direction:column;display:flex}.calendar-head{gap:var(--space-xs);grid-template-columns:1fr 1fr;display:grid}.calendar-head .button{padding:0 var(--space-m);min-height:48px}.month-title{font-family:var(--font-display);text-align:center;grid-area:1/1/auto/-1;font-size:30px}.month{border-collapse:collapse;table-layout:fixed;width:100%}.month th{font-size:var(--label);color:var(--secondary-ink);padding-bottom:var(--space-xs);font-weight:600}.month-cell{text-align:center;padding:2px}.day{border-radius:var(--corner-radius);width:100%;min-height:56px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-weight:600;display:flex;position:relative}.day:hover{border-color:var(--tappable-border)}.day.today{border-color:var(--accent)}.day.selected{background:var(--accent-fill);color:var(--accent-ink)}.dot{background:var(--accent);border-radius:50%;width:8px;height:8px}.day.selected .dot{background:var(--accent-ink)}.day-plans{gap:var(--space-xs);flex-direction:column;display:flex}.dialog{border-radius:var(--card-radius);padding:var(--space-xxl);background:var(--surface);max-width:520px;color:var(--ink);box-shadow:0 12px 48px var(--shadow);border:none}.dialog::backdrop{background:#0f172080}.dialog h2{font-family:var(--font-display);margin-bottom:var(--space-m);overflow-wrap:anywhere;font-size:30px}.dialog-actions{justify-content:flex-end;gap:var(--space-m);margin-top:var(--space-xl);flex-wrap:wrap;display:flex}.sign-in .cl-rootBox{margin:0 auto}.plan-form{gap:var(--space-xl);flex-direction:column;max-width:640px;display:flex}.field{gap:var(--space-xs);flex-direction:column;display:flex}.choice-group{border:none;min-width:0;margin:0;padding:0}.choice-group legend{margin-bottom:var(--space-xs);padding:0}.choice-group.nested{padding-left:var(--space-l)}.choice-list{gap:var(--space-xs);flex-wrap:wrap;display:flex}.choice{align-items:center;gap:var(--space-xs);min-height:48px;padding:0 var(--space-l);border-radius:var(--corner-radius);border:2px solid var(--tappable-border);background:var(--surface);cursor:pointer;display:inline-flex}.choice.selected{border-color:var(--accent);background:var(--accent-soft)}.choice input,.switch-row input{width:20px;height:20px;accent-color:var(--accent-fill)}.switch-row{align-items:center;gap:var(--space-m);cursor:pointer;min-height:48px;font-weight:600;display:flex}.switch-row:has(input:disabled){cursor:default}.narrow-input{max-width:280px}.count-input{max-width:120px}.notes-input{padding:var(--space-xs) var(--space-m);resize:vertical}.inline-fields{align-items:center;gap:var(--space-m);display:flex}.repeat-fields{gap:var(--space-l);padding-left:var(--space-l);border-left:2px solid var(--line);flex-direction:column;display:flex}.form-actions,.plan-actions{gap:var(--space-m);flex-wrap:wrap;display:flex}.plan-actions .button.danger-text{color:var(--danger)}.plan-actions .button{align-items:center;text-decoration:none;display:inline-flex}.plan-marks{gap:var(--space-xxs);flex-wrap:wrap;display:flex}.plan-mark{padding:0 var(--space-xs);border-radius:var(--corner-radius);background:var(--accent-soft);color:var(--ink);font-size:var(--label);font-weight:600}.notice{padding:var(--space-m) var(--space-l);border-radius:var(--corner-radius);background:var(--accent-soft);font-weight:600}.day-head{justify-content:space-between;align-items:center;gap:var(--space-m);flex-wrap:wrap;display:flex}.button.action-link{align-self:flex-start;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}@media (width<=820px){.layout{background:0 0;grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line);height:auto;padding:var(--space-l);gap:var(--space-m);position:static}.sidebar-foot{flex-flow:wrap;margin-top:0}.content{padding:var(--space-l) var(--space-l) 48px}.page-title{font-size:40px}.load-card,.calendar-layout{grid-template-columns:1fr}.team-levels{gap:var(--space-s)}.table-card{padding:var(--space-xs) var(--space-l)}.roster thead tr{gap:var(--space-xs) var(--space-l);flex-wrap:wrap;display:flex}.roster thead th{padding:var(--space-xs) 0;border-bottom:none}.roster thead th:not([aria-sort]){display:none}.roster tbody tr{gap:var(--space-xs) var(--space-m);padding:var(--space-l) 0;border-top:1px solid var(--line);grid-template-columns:1fr auto;display:grid}.roster td{border:none;padding:0;display:block}.roster .athlete-cell{grid-column:1/-1;width:auto}.roster td[data-label]{grid-column:1/-1}.roster .action-cell{text-align:left;grid-column:1/-1}.calendar-head .button{padding:0 var(--space-xs);white-space:nowrap;font-size:16px}.row{grid-template-columns:1fr;gap:2px}}
