@font-face{font-family:Inter;src:url(/fonts/Inter-Light.ttf)format("truetype");font-weight:300;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Bold.ttf)format("truetype");font-weight:700;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--background:#f2f2f2;--header-band:#e6e6e6;--week-strip-band:#d9d9d9;--idle-circle:#e6e6e6;--primary-text:#111;--secondary-text:#666;--accent:#3a5c6c;--accent-text:#3a5c6c;--violet:linear-gradient(90deg, #b72fec, #4a3fff);--ember:linear-gradient(90deg, #e71d47, #e3008f);--ocean:linear-gradient(90deg, #0c74e6, #008674);--moss:linear-gradient(90deg, #008935, #428600);--sun:linear-gradient(90deg, #c45400, #a36b00);--dusk:linear-gradient(90deg, #7a4dff, #d7376a);--display:"Inter", system-ui, sans-serif;--ui:ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", sans-serif;--gutter:16px;--card-radius:20px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--background:#141414;--header-band:#1e1e1e;--week-strip-band:#262626;--idle-circle:#2c2c2c;--primary-text:#f2f2f2;--secondary-text:#9a9a9a;--accent-text:#7b9f9f}}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--background);color:var(--primary-text);font-family:var(--ui);font-size:100%}body{background:var(--background);margin:0;font-size:1.0625rem;line-height:1.5}h1,h2,h3,h4,p,ul,ol{margin:0}ul[role=list],ol[role=list]{padding:0;list-style:none}a{color:var(--accent-text)}:focus-visible{outline:3px solid var(--accent-text);outline-offset:3px;border-radius:4px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--gutter);background:var(--accent);color:#fff;z-index:10;padding:12px 16px;font-weight:600;position:absolute;top:-100px}.skip-link:focus{top:8px}.wrap{max-width:1200px;padding:0 var(--gutter);margin:0 auto}main:focus{outline:none}.band{background:var(--header-band)}.header-row{justify-content:space-between;align-items:center;gap:var(--gutter);min-height:72px;display:flex}.brand{align-items:center;gap:12px;min-height:44px;text-decoration:none;display:inline-flex}.wordmark{height:auto;display:block}.wordmark-header{width:152px}.wordmark-large{width:280px}.signed-out-title{margin:0}.sign-out{align-items:center;min-height:44px;display:flex}.page-title{color:var(--accent-text)}.page-title,.page-name{font-family:var(--display);letter-spacing:-.01em;font-size:1.75rem;font-weight:700;line-height:1.2}.display-name{font-family:var(--display);letter-spacing:-.01em;font-weight:400}.display-name .first{font-weight:700}.roster-name{font-size:1.25rem}.body{white-space:pre-line;font-size:1.0625rem}.caption,.label,.section-caption{font-size:.8125rem;font-weight:400}.secondary{color:var(--secondary-text)}.page{flex-direction:column;gap:8px;padding:24px 0 48px;display:flex}.centered{text-align:center;align-items:center;gap:24px;padding-top:48px}.centered .body{max-width:34rem}.badge{border-radius:50%;display:block}.badge-header{width:40px;height:40px}.badge-empty{width:96px;height:96px}.badge-large{width:160px;height:160px}.sign-in{justify-content:center;min-height:50px;display:flex}.stand-in{color:#fff;min-width:220px;min-height:50px;font:inherit;background:#000;border:0;border-radius:25px;padding:0 24px;font-weight:600}.text-button{min-height:44px;color:var(--accent-text);font:inherit;background:0 0;border:0;padding:0;font-weight:600}.avatar{object-fit:cover;background:var(--idle-circle);border-radius:50%;flex:none}.avatar-row{width:66px;height:66px}.avatar-header{width:96px;height:96px}.avatar-empty{color:var(--secondary-text);font-family:var(--display);justify-content:center;align-items:center;font-weight:700;display:inline-flex}.avatar-row.avatar-empty{font-size:1.25rem}.avatar-header.avatar-empty{font-size:1.75rem}.roster{flex-direction:column;gap:8px;display:flex}.roster-row{border-radius:var(--card-radius);background:var(--header-band);min-height:44px;color:var(--primary-text);align-items:center;gap:16px;padding:12px 16px;text-decoration:none;display:flex}.roster-row:hover .roster-name{text-decoration:underline}.roster-text{flex-direction:column;gap:2px;min-width:0;display:flex}.empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 0;display:flex}.empty-title{font-family:var(--display);font-size:1.25rem;font-weight:700}.back-link{align-items:center;min-height:44px;font-weight:600;display:inline-flex}.athlete-header{border-radius:var(--card-radius);background:var(--header-band);align-items:center;gap:16px;margin-bottom:8px;padding:16px;display:flex}.athlete-header>div{flex-direction:column;gap:4px;min-width:0;display:flex}.text-container{border-radius:var(--card-radius);background:var(--header-band);flex-direction:column;gap:4px;padding:16px;display:flex}.g-violet{background:var(--violet)}.g-ember{background:var(--ember)}.g-ocean{background:var(--ocean)}.g-moss{background:var(--moss)}.g-sun{background:var(--sun)}.g-dusk{background:var(--dusk)}.focus-card{border-radius:var(--card-radius);color:#fff;flex-direction:column;gap:4px;padding:16px;display:flex}.focus-name{font-family:var(--display);letter-spacing:-.01em;font-size:1.25rem;font-weight:700}.focus-detail{font-size:.9375rem}.sessions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.section-caption{color:var(--secondary-text)}.section-caption.past{margin-top:8px}.session{flex-direction:column;gap:8px;margin-bottom:24px;display:flex}.session-card{border-radius:var(--card-radius);color:#fff;flex-direction:column;justify-content:center;gap:2px;min-height:72px;padding:12px 16px;display:flex}.session-title{font-family:var(--display);letter-spacing:-.01em;font-size:1.25rem;font-weight:700}.session-date{font-family:var(--display);font-size:.9375rem;font-weight:300}.session-body{flex-direction:column;gap:8px;padding-left:16px;display:flex}.note-block{flex-direction:column;gap:8px;padding:8px 0;display:flex}.plain-list{flex-direction:column;gap:4px;display:flex}.timeline-notes{flex-direction:column;gap:16px;display:flex}.timeline-note{padding-left:28px;position:relative}.timeline-note:before{content:"";background:var(--node,var(--accent));border-radius:50%;width:12px;height:12px;position:absolute;top:.45em;left:0}.timeline-note:not(:last-child):after{content:"";background:var(--week-strip-band);width:2px;position:absolute;top:calc(.45em + 14px);bottom:-14px;left:5px}.node-violet{--node:#b72fec}.node-ember{--node:#e71d47}.node-ocean{--node:#0c74e6}.node-moss{--node:#28c76f}.node-sun{--node:#c45400}@media (prefers-reduced-motion:no-preference){.session,.roster li{animation:.25s ease-out both rise}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}}[tabindex="-1"]:focus{outline:none}.focus-caption{font-size:.8125rem;font-weight:400}.text-link{align-items:center;text-decoration:none;display:inline-flex}.text-link:hover,.text-button:hover{text-decoration:underline}.text-button:disabled{color:var(--secondary-text);text-decoration:none}.page-actions{flex-wrap:wrap;gap:4px 24px;display:flex}.labeled-circle{min-width:44px;color:var(--primary-text);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-self:flex-start;align-items:center;gap:4px;padding:0;display:inline-flex}.circle{background:var(--header-band);border-radius:50%;width:44px;height:44px;display:block;position:relative}.plus:before,.plus:after{content:"";background:var(--accent-text);width:18px;height:2px;margin:-1px 0 0 -9px;position:absolute;top:50%;left:50%}.plus:after{transform:rotate(90deg)}.labeled-circle:hover .circle{background:var(--week-strip-band)}.roster-item{align-items:center;gap:8px;display:flex}.roster-item .roster-row{flex:1;min-width:0}.prep-circle{background:var(--header-band);width:44px;height:44px;color:var(--primary-text);border-radius:50%;flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.prep-circle:hover{background:var(--week-strip-band)}.edit-form{flex-direction:column;gap:8px;display:flex}.form-body{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.form-section{gap:12px}.section-legend{color:var(--primary-text)}.private-section .section-legend{font-weight:600}.form-title{font-size:1.0625rem;font-weight:600}.field-row{flex-direction:column;gap:4px;display:flex}.field-label{color:var(--primary-text)}.field{border:0;border-bottom:1px solid var(--secondary-text);background:var(--background);width:100%;min-height:44px;color:var(--primary-text);font:inherit;border-radius:12px;padding:10px 12px;font-size:1.0625rem}.field-multi{resize:vertical;min-height:96px;line-height:1.5}.field:disabled{color:var(--secondary-text)}.check-row{align-items:center;gap:12px;min-height:44px;display:flex}.check-row label{cursor:pointer;flex:1}.check{width:22px;height:22px;accent-color:var(--accent);flex:none;margin:0}.switch{appearance:none;background:var(--secondary-text);cursor:pointer;border-radius:16px;flex:none;width:51px;height:31px;margin:0;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:27px;height:27px;position:absolute;top:2px;left:2px}.switch:checked{background:var(--accent)}.switch:checked:after{left:22px}.form-error{flex-direction:column;gap:4px;padding:0 4px;display:flex}.form-actions{flex-wrap:wrap;align-items:center;gap:8px 24px;padding:8px 0;display:flex}.save-button{background:var(--accent);color:#fff;max-width:360px;min-height:50px;font:inherit;cursor:pointer;border:0;border-radius:25px;flex:240px;padding:0 24px;font-weight:600}.save-button:disabled{cursor:default}.sections-block,.session-sections{flex-direction:column;gap:8px;display:flex}.sections-block>.text-button{align-self:flex-start}.timeline-note>.text-button{margin-left:0}.plan-block{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.session:focus{outline:none}.prep-block{gap:8px}.prep-title{font-size:1.0625rem;font-weight:600}.prep-line{flex-direction:column;gap:2px;display:flex}.add-athlete-block{flex-direction:column;max-width:760px;margin-bottom:8px;display:flex}.invite-block{flex-direction:column;gap:8px;display:flex}.invite-block .form-title:focus{outline:none}.invite-actions{align-items:center}.copy-status:empty{display:none}.empty .add-athlete-block{text-align:start;align-self:stretch;width:100%;margin:8px auto 0}.empty .add-athlete-block>.labeled-circle{align-self:center;align-items:center}h2.label,h3.label,h4.label,.section-caption,.focus-caption{font-weight:600}h4.label,.section-caption{color:var(--secondary-text)}.page{gap:16px}.page>.page-title,.page>.caption{margin-bottom:0}.page.narrow{max-width:760px}.centered{max-width:760px;margin:0 auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;display:flex}.back{margin-bottom:-8px}.roster{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:8px;display:grid}@media (max-width:759px){.roster{grid-template-columns:1fr}}.two-column{flex-direction:column;gap:32px;display:flex}.side-column{flex-direction:column;gap:8px;min-width:0;display:flex}.athlete-header{margin-bottom:0}@media (min-width:1000px){.two-column{grid-template-columns:340px minmax(0,1fr);align-items:start;display:grid}}.sessions{gap:16px;min-width:0;margin-top:0}.sessions-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;display:flex}.sessions-title{font-size:1.0625rem;font-weight:600}.view-toggle{gap:24px;display:flex}.toggle{align-items:center;gap:8px;display:inline-flex}.toggle[aria-pressed=true]{color:var(--primary-text)}.toggle[aria-pressed=true]:before{content:"";background:var(--accent-text);border-radius:50%;width:8px;height:8px}.sessions-content,.session-list{flex-direction:column;gap:8px;display:flex}.session-actions{flex-wrap:wrap;gap:0 24px;display:flex}.session-athlete{font-weight:600}.note-block{padding:0}.session-body{gap:16px}.labeled-circle{align-items:flex-start}.calendar{flex-direction:column;gap:16px;display:flex}.calendar-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.calendar-title,.day-title{font-family:var(--display);letter-spacing:-.01em;font-size:1.25rem;font-weight:700}.calendar-nav{align-items:center;gap:8px;display:flex}.calendar-nav .text-button{margin-left:16px}.nav-circle{background:var(--header-band);cursor:pointer;border:0;border-radius:50%;width:44px;height:44px;padding:0;position:relative}.nav-circle:hover{background:var(--week-strip-band)}.chevron:before,.chevron:after{content:"";background:var(--accent-text);width:10px;height:2px;margin:-1px 0 0 -5px;position:absolute;top:50%;left:50%}.chevron-left .chevron:before{transform:translate(-1px,-3px)rotate(-45deg)}.chevron-left .chevron:after{transform:translate(-1px,3px)rotate(45deg)}.chevron-right .chevron:before{transform:translate(1px,-3px)rotate(45deg)}.chevron-right .chevron:after{transform:translate(1px,3px)rotate(-45deg)}.calendar-grid{border-radius:var(--card-radius);background:var(--header-band);flex-direction:column;gap:4px;padding:8px;display:flex}.weekdays,.week-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.weekdays span{text-align:center;width:32px;margin-left:4px}.day{cursor:pointer;flex-direction:column;gap:4px;min-width:0;min-height:96px;padding:4px;display:flex}.week-grid .day{min-height:240px}.day:focus-visible{outline-offset:-3px;border-radius:12px}.day-head{align-items:center;gap:8px;display:flex}.day-number{border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-weight:500;display:inline-flex}.day-name{display:none}.day.outside .day-number{color:var(--secondary-text)}.day:hover .day-number{background:var(--idle-circle)}.day.today .day-number{color:#111;border:2px solid var(--accent);background:#fff}.day.selected .day-number{background:var(--accent);color:#fff}.day.today.selected .day-number{outline:2px solid var(--accent);border-color:#fff}.day-items{flex-direction:column;gap:2px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.day-item{align-items:center;gap:6px;min-width:0;min-height:20px;font-size:.8125rem;line-height:1.3;display:flex}.week-grid .day-item{align-items:flex-start;margin-bottom:4px}.item-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.week-grid .item-text{white-space:normal;overflow-wrap:anywhere}.item-time{color:var(--secondary-text)}.day-more{color:var(--secondary-text);padding-left:4px;font-size:.8125rem}.item-mark{--mark:var(--accent);border-radius:50%;flex:none}.dot{width:10px;height:10px}.dot.fill{background:var(--mark)}.dot.ring{border:2px solid var(--mark)}.avatar-mark{width:20px;height:20px;font-family:var(--display);justify-content:center;align-items:center;font-size:.5625rem;font-weight:700;display:inline-flex;overflow:hidden}.avatar-mark img{object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar-mark.photo{border:2px solid var(--mark)}.avatar-mark.photo.ring{padding:2px}.avatar-mark.fill{background:var(--mark);color:#fff}.avatar-mark.ring{background:var(--background);color:var(--primary-text);border:2px solid var(--mark)}.c-violet{--mark:#b72fec}.c-ember{--mark:#e71d47}.c-ocean{--mark:#0c74e6}.c-moss{--mark:#008935}.c-sun{--mark:#c45400}.day-panel{flex-direction:column;gap:16px;padding-top:8px;display:flex}.day-panel>.labeled-circle{align-self:flex-start}@media (max-width:759px){.day{align-items:center;min-height:56px;padding:2px}.month-grid .day-items{flex-flow:wrap;justify-content:center;gap:2px}.month-grid .item-text{display:none}.month-grid .avatar-mark{width:12px;height:12px;font-size:0}.month-grid .day-more{padding:0;font-size:.6875rem}.more-word{display:none}.weekdays span{width:auto;margin:0}.week-grid .weekdays{display:none}.week-grid .week-row{grid-template-columns:1fr}.week-grid .day{flex-direction:row;align-items:flex-start;gap:12px;min-height:56px;padding:6px 4px}.week-grid .day-head{flex-direction:column;gap:0;width:40px}.week-grid .day-name{color:var(--secondary-text);font-size:.8125rem;display:block}.week-grid .day-items{flex:1;padding-top:6px}.calendar-nav .text-button{margin-left:8px}}.athlete-filter{border:0;min-width:0;margin:0}.filter-summary{cursor:pointer;align-items:center;min-height:44px;margin:-12px 0;font-weight:600;display:flex}.athlete-filter[open] .filter-summary{margin-bottom:0}.filter-fields{border:0;min-width:0;margin:0;padding:0}.athlete-filter .avatar-empty{background:var(--background)}.athlete-check{gap:12px}.athlete-check .check{order:3}.avatar-small{width:32px;height:32px}.avatar-small.avatar-empty{font-size:.8125rem}
