:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--sans:Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--paper:#f7f5ef;--paper-deep:#f3efe4;--surface:#fff;--ink:#1b1a17;--muted:#5f5b50;--faint:#6f6a5d;--hair:#cdc7bb;--hover:#1b1a170d;--accent:#5f654d;--accent-soft:#7e8470;--good:#5f654d;--warn:#a3462d;--warn-bg:#d95e3c1a;--trace:#75dac1;--zone-1:#bfc1b8;--zone-2:#7a7ebb;--zone-3:#75dac1;--zone-4:#df7c60;--zone-5:#a3462d;--ride-zone-1:#76a8bb;--ride-zone-2:#72a98e;--ride-zone-3:#d4b239;--ride-zone-4:#b9784c;--ride-zone-5:#aa6266;--ride-zone-6:#8b444d;--ride-zone-7:#5e2f3c;--ride-heartRate:#aa6266;--ride-power:#d4b239;--ride-pace:#76a8bb;--ride-speed:#76a8bb;--ride-cadence:#585eab;--ride-wbal:#8b444d;--ride-elevation:#72a98e;--ride-curve:#3f3b35;--sport-cycling:var(--ride-power);--sport-running:var(--ride-pace);--sport-swimming:var(--ride-cadence);--sport-strength:var(--ride-heartRate);--sport-other:var(--zone-1);--chart-easy:#7a7ebb;--chart-tempo:#27806b;--chart-hard:#b8553a;--chart-on-tempo:#fff;--chart-trace:#27806b;--chart-best20:var(--accent);--chart-anchor:var(--warn);--chart-detected:var(--chart-easy);--chart-axis:var(--faint);--chart-grid:var(--hair);--r-chip:.5rem;--r-ctl:.6rem;--r-panel:.75rem;--r-card:1rem;--gap-xs:.3rem;--gap-sm:.5rem;--gap-md:.8rem;--gap-lg:1.2rem;--doc-w:960px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#1b1a17;--paper-deep:#14130f;--surface:#34312a;--ink:#fff;--muted:#b3ad9d;--faint:#8a8477;--hair:#4a463c;--hover:#ffffff0f;--accent:#9fa394;--accent-soft:#bfc1b8;--good:#9fa394;--warn:#df7c60;--warn-bg:#df7c6024;--ride-curve:#e1ddd4;--chart-tempo:#75dac1;--chart-hard:#df7c60;--chart-on-tempo:#1b1a17;--chart-trace:#75dac1}}*{box-sizing:border-box}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0}.shell-doc{background:linear-gradient(180deg, var(--paper), var(--paper-deep)) fixed;min-height:100vh;padding:2rem 1rem 4rem;line-height:1.55}.shell-doc__col{max-width:var(--doc-w);margin-inline:auto}h1{letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.6rem;font-weight:800}.sub{color:var(--muted);margin:0 0 1.5rem;font-size:.95rem}a{color:var(--ink)}code{background:var(--hover);border-radius:var(--r-chip);font-family:var(--mono);padding:.08rem .35rem}.spacer{flex:1}.backlink{font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--ink);border-radius:var(--r-ctl);box-shadow:3px 3px 0 var(--ink);align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.82rem;font-weight:600;text-decoration:none;transition:transform 80ms,box-shadow 80ms,background .12s;display:inline-flex}.backlink:hover{background:var(--hover)}.backlink:active{box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}.topbar{align-items:stretch;gap:.6rem;margin-bottom:1.5rem;display:flex}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stack{gap:var(--gap-md);flex-direction:column;min-width:0;display:flex}.row{align-items:center;gap:var(--gap-sm);flex-wrap:wrap;min-width:0;display:flex}.stack>*,.row>*{margin-block:0}.callout,.card,.empty,.panel,.stats,.tablewrap,.toolbar{margin-block:var(--gap-lg)}.stack--xs{gap:var(--gap-xs)}.stack--sm{gap:var(--gap-sm)}.stack--lg{gap:var(--gap-lg)}.row--between{justify-content:space-between}.row--top{align-items:flex-start}.btn,.field{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-ctl);padding:.45rem .8rem;font-size:.85rem;transition:border-color .12s,background .12s}.btn{cursor:pointer}.btn:hover{border-color:var(--ink);background:var(--hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:hover{border-color:var(--hair);background:var(--surface)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--paper)}.btn--primary:hover{background:var(--accent-soft);border-color:var(--accent-soft)}.btn--danger{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}.field::placeholder{color:var(--faint)}.field--multiline{resize:vertical;width:100%;line-height:1.45}.toolbar{gap:var(--gap-sm);flex-wrap:wrap;align-items:center;display:flex}.card{border:1px solid var(--hair);border-radius:var(--r-card);background:var(--surface);padding:1.1rem 1.2rem}.card--col{flex-direction:column;display:flex}.panel{border:1px solid var(--hair);border-radius:var(--r-panel);background:var(--surface);padding:.7rem .8rem}.badge{letter-spacing:.02em;text-transform:uppercase;border-radius:var(--r-chip);background:var(--hover);color:var(--muted);white-space:nowrap;padding:.12rem .45rem;font-size:.68rem;font-weight:600}.badge--warn{background:var(--warn-bg);color:var(--warn)}.badge--good{background:var(--hover);color:var(--good)}.chip{font:inherit;cursor:pointer;border:1px solid var(--hair);background:var(--surface);color:var(--muted);border-radius:999px;padding:.34rem .85rem;font-size:.82rem;font-weight:600;line-height:1;transition:border-color .12s,background .12s,color .12s}.chip:hover{border-color:var(--ink);color:var(--ink)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.callout{border:1px solid var(--hair);border-radius:var(--r-panel);padding:.7rem 1rem;font-size:.9rem}.callout--warn,.callout--err{border-color:var(--warn);background:var(--warn-bg);color:var(--warn)}.stats{color:var(--muted);flex-wrap:wrap;align-items:center;gap:1.1rem;font-size:.85rem;display:flex}.stats b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.stats--pills{gap:.6rem}.stats--pills .stat{border:1px solid var(--hair);background:var(--surface);border-radius:var(--r-panel);padding:.5rem .9rem;font-size:.9rem}.stats--pills .stat b{margin-right:.35rem;font-size:1.05rem}.meter{border-radius:999px;width:100%;height:6px;display:block;overflow:hidden}.meter__rail{fill:var(--hover)}.meter__fill{fill:var(--accent)}.meter__fill--warn{fill:var(--warn)}.tablewrap{border:1px solid var(--hair);border-radius:var(--r-panel);background:var(--surface);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.85rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--hair);white-space:nowrap;padding:.55rem .8rem}.table th{background:var(--paper);-webkit-user-select:none;user-select:none;padding-block:.7rem;position:sticky;top:0}.tablewrap>.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--hover)}.table--numeric td{text-align:right;font-variant-numeric:tabular-nums;padding:.12rem .5rem}.table--numeric th{text-align:right}.table--numeric th.l,.table--numeric td.l{text-align:left}.table--numeric td.l{color:var(--muted)}.hint{color:var(--muted);font-size:.85rem}.muted{color:var(--muted)}.empty{color:var(--faint);font-style:italic}.loading{color:var(--muted);padding:2rem 0}.sectitle{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:.55rem;margin:2.1rem 0 .7rem;font-size:.78rem;font-weight:700;display:flex}.sectitle__sub{text-transform:none;letter-spacing:0;color:var(--faint);font-size:.82rem;font-weight:400}.sectitle:after{content:"";background:var(--hair);flex:1;min-width:2rem;height:1px}.sub+.sectitle{margin-top:.4rem}.callout__actions{margin-top:var(--gap-sm)}.coach ul.plain{margin:var(--gap-sm) 0 0;color:var(--muted);gap:var(--gap-xs);padding-left:0;list-style:none;display:grid}.coach .perf__head{align-items:baseline;gap:var(--gap-xs) var(--gap-sm);flex-wrap:wrap;display:flex}.coach .perf__title{margin:0;font-size:1rem;font-weight:700}.coach .perf__sub{color:var(--faint);font-size:.86rem}.coach .perf__fact{color:var(--muted);font-size:.86rem}.coach .perf .chart{margin:0}.coach .memories{gap:var(--gap-sm);margin:0;padding:0;list-style:none;display:grid}.coach .memories li{align-items:baseline;gap:var(--gap-sm);grid-template-columns:auto 1fr auto;display:grid}.coach .memories__since{color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem}.coach .chart{margin:var(--gap-md) 0}.coach .chart__note{margin:var(--gap-sm) 0 0;color:var(--muted);font-size:.86rem}.coach .legend{gap:var(--gap-md);margin-bottom:var(--gap-sm);color:var(--muted);flex-wrap:wrap;font-size:.8rem;display:flex}.coach .legend__item{align-items:center;gap:var(--gap-xs);display:inline-flex}.coach .legend__swatch{flex:none;width:10px;height:10px}.coach .chart__svg{width:100%;height:auto;display:block}.coach td.n,.coach th.n{text-align:right;font-variant-numeric:tabular-nums}.coach td.wrap{white-space:normal;max-width:24rem}.coach .mono{font-family:var(--mono);color:var(--muted);font-size:.8rem}.coach .sub-line{color:var(--faint);white-space:normal;font-size:.76rem;display:block}.coach .warn-text,.coach .miss{color:var(--warn)}.coach tr.row--flag td{background:var(--warn-bg)}.coach td a{color:var(--ink);border-bottom:1px solid var(--hair);font-weight:600;text-decoration:none}.coach td a:hover{border-bottom-color:var(--ink)}.coach .events{margin:var(--gap-md) 0;gap:var(--gap-sm);padding:0;list-style:none;display:grid}.coach .events li{gap:var(--gap-md);grid-template-columns:4.5rem 1fr;align-items:baseline;display:grid}.coach .events__date{color:var(--faint);font-variant-numeric:tabular-nums;font-size:.86rem}.coach .note-item{border:1px solid var(--hair);border-radius:var(--r-panel);background:var(--surface);padding:var(--gap-md);gap:var(--gap-sm);display:grid}.coach .note-item__body{white-space:pre-wrap;margin:0}.coach .note-item__meta{align-items:center;gap:var(--gap-sm);color:var(--faint);font-size:.78rem;display:flex}.coach .kv{gap:var(--gap-md);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.coach .kv__k{text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-size:.72rem;display:block}.coach .kv__v{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:600}.coach .ride{gap:var(--gap-sm);margin:var(--gap-sm) 0 var(--gap-md);-webkit-user-select:none;user-select:none;grid-template-columns:minmax(0,1fr);display:grid}.coach .ride .card{min-width:0;margin:0;padding:.7rem .9rem .4rem;overflow:hidden}.coach .ride__svg{display:block;overflow:visible}.coach .ride__head{justify-content:space-between;align-items:center;gap:var(--gap-md);white-space:nowrap;height:1.4rem;font-size:.8rem;line-height:1;display:flex;overflow:hidden}.coach .ride__name{text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-size:.72rem}.coach .ride__unit{text-transform:none;letter-spacing:0}.coach .ride__readout{font-variant-numeric:tabular-nums;font-weight:600}.coach .ride__at,.coach .ride__max{color:var(--faint);font-weight:400}.coach .ride .ride__selection{padding:var(--gap-md)}.coach .ride__selection-head{margin-bottom:var(--gap-sm);font-variant-numeric:tabular-nums}.coach .ride__zones{gap:var(--gap-sm);margin:var(--gap-sm) 0 var(--gap-md);grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));display:grid}.coach .ride__zones .card{margin:0}.coach .ride__zonecol{align-content:start;gap:var(--gap-xs);display:grid}.coach .zonebar{align-items:center;gap:var(--gap-sm);font-variant-numeric:tabular-nums;grid-template-columns:1.8rem 6.5rem 1fr 3.8rem 2.8rem;font-size:.8rem;display:grid}.coach .zonebar__z{font-weight:600}.coach .zonebar__range,.coach .zonebar__pct{color:var(--faint)}.coach .zonebar__pct,.coach .zonebar__time{text-align:right}.coach .zonebar__track{border-radius:3px;width:100%;height:10px;display:block;overflow:hidden}.coach .zonebar__rail{fill:var(--hover)}.coach .zonebar__fill--z1{fill:var(--ride-zone-1)}.coach .zonebar__fill--z2{fill:var(--ride-zone-2)}.coach .zonebar__fill--z3{fill:var(--ride-zone-3)}.coach .zonebar__fill--z4{fill:var(--ride-zone-4)}.coach .zonebar__fill--z5{fill:var(--ride-zone-5)}.coach .zonebar__fill--z6{fill:var(--ride-zone-6)}.coach .zonebar__fill--z7{fill:var(--ride-zone-7)}.coach .ride-chart__hit{cursor:crosshair;touch-action:pan-y}.coach .ride-strip__window{cursor:pointer}.coach .foot{margin-top:var(--gap-lg);color:var(--faint);font-size:.82rem}@media (width<=640px){.coach .events li,.coach .memories li{gap:var(--gap-xs);grid-template-columns:1fr}.coach .memories .badge{justify-self:start}.coach td.wrap{max-width:14rem}.coach .zonebar{grid-template-columns:1.8rem 1fr 3.6rem 2.6rem}.coach .zonebar__range{display:none}.shell-doc{padding-inline:1rem}}.coach td a.chat-link{align-items:center;gap:var(--gap-xs);display:inline-flex}.coach .chat__list{gap:var(--gap-sm);min-height:12rem;max-height:60vh;margin-block:var(--gap-lg) var(--gap-md);padding:var(--gap-md);border:1px solid var(--hair);border-radius:var(--r-panel);background:var(--paper-deep);flex-direction:column;display:flex;overflow-y:auto}.coach .chat__older{justify-content:center;display:flex}.coach .chat__empty{color:var(--faint);margin:auto}.coach .chat__bubble{max-width:min(34rem,85%);padding:var(--gap-sm) var(--gap-md);border:1px solid var(--hair);border-radius:var(--r-panel);background:var(--surface);gap:var(--gap-xs);cursor:pointer;display:grid}.coach .chat__bubble--theirs{border-bottom-left-radius:var(--r-chip);align-self:flex-start}.coach .chat__bubble--mine{border-bottom-right-radius:var(--r-chip);border-color:var(--accent-soft);background:var(--hover);align-self:flex-end}.coach .chat__bubble--pending{cursor:default;opacity:.75}.coach .chat__text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.coach .chat__quote{padding-left:var(--gap-sm);border-left:2px solid var(--hair);color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;display:-webkit-box;overflow:hidden}.coach .chat__voice{align-items:center;gap:var(--gap-xs);letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:600;display:inline-flex}.coach .chat__image{border-radius:var(--r-chip);max-width:100%;max-height:18rem;display:block}.coach .chat__image--loading{background:var(--hover);width:12rem;height:8rem}.coach .chat__meta{align-items:center;gap:var(--gap-sm);color:var(--faint);font-size:.74rem;display:flex}.coach .chat__link{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:.74rem;font-weight:600}.coach .chat__link:hover{color:var(--ink)}.coach .chat__link:disabled{opacity:.5;cursor:not-allowed}.coach .chat__composer{gap:var(--gap-sm);display:grid}.coach .chat__replying,.coach .chat__attachment{align-items:center;gap:var(--gap-sm);padding:var(--gap-sm) var(--gap-md);border-left:2px solid var(--accent);background:var(--hover);border-radius:var(--r-chip);font-size:.85rem;display:flex}.coach .chat__replying>div{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.coach .chat__thumb{border-radius:var(--r-chip);height:4rem}.coach .chat__recording{padding:var(--gap-sm) var(--gap-md);border:1px solid var(--warn);border-radius:var(--r-ctl);background:var(--warn-bg);color:var(--warn);font-variant-numeric:tabular-nums}.coach .chat__rec-dot{background:var(--warn);border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite alternate chat-pulse}@keyframes chat-pulse{0%{opacity:1}to{opacity:.3}}@media (prefers-reduced-motion:reduce){.coach .chat__rec-dot{animation:none}}.coach .athlete-head .sub{margin-bottom:var(--gap-md)}.coach .tabs{gap:var(--gap-xs);margin:var(--gap-lg) 0;border-bottom:1px solid var(--hair);display:flex;overflow-x:auto}.coach .tab{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.5rem .9rem;font-size:.92rem;font-weight:600;text-decoration:none}.coach .tab:hover{color:var(--ink)}.coach .tab--active{color:var(--ink);border-bottom-color:var(--ink)}.coach .weeks{gap:var(--gap-md);flex-direction:column;display:flex}.coach .week{scroll-margin-top:var(--gap-lg);border:1px solid var(--hair);border-radius:var(--r-card);background:var(--surface);padding:var(--gap-md) var(--gap-lg)}.coach .week--future{background:0 0;border-style:dashed}.coach .week--current{border-color:var(--ink)}.coach .week--empty{align-items:center;gap:var(--gap-sm);padding-block:var(--gap-sm);color:var(--muted);flex-wrap:wrap;font-size:.88rem;display:flex}.coach .week__none{color:var(--faint)}.coach .week__head{gap:var(--gap-sm);display:grid}.coach .week__title{align-items:center;gap:var(--gap-sm);flex-wrap:wrap;display:flex}.coach .week__range{font-weight:700}.coach .week__iso{color:var(--faint);font-variant-numeric:tabular-nums;font-size:.82rem}.coach .week__facts{gap:var(--gap-xs) var(--gap-md);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;font-size:.86rem;display:flex}.coach .week__chips,.coach .week__status{align-items:center;gap:var(--gap-xs);flex-wrap:wrap;display:flex}.coach .sport-chip,.coach .status{background:var(--hover);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;padding:.12rem .5rem;font-size:.78rem}.coach .status--completed{color:var(--good)}.coach .status--modified,.coach .status--missed{background:var(--warn-bg);color:var(--warn)}.coach .status--unplanned{border:1px dashed var(--hair);background:0 0}.coach .volume-bars{width:100%;height:14px;display:block}.coach .volume-bars__rail{fill:var(--hover)}.coach .volume-bars__planned{fill:#0000;stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke}.coach .volume-bars__done{fill:var(--accent)}.coach .week__days{margin:var(--gap-md) 0 0;gap:2px;padding:0;list-style:none;display:grid}.coach .day{gap:var(--gap-sm);border-top:1px solid var(--hover);grid-template-columns:5.5rem 1fr;align-items:start;padding:.2rem 0;display:grid}.coach .day__date{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:.2rem;font-size:.82rem}.coach .day--rest .day__date{color:var(--faint)}.coach .day__entries{gap:var(--gap-xs);flex-wrap:wrap;display:flex}.coach .entry{align-items:center;gap:var(--gap-xs);border-radius:var(--r-chip);border:1px solid var(--hair);max-width:100%;color:var(--ink);background:0 0;padding:.2rem .6rem;font-size:.85rem;text-decoration:none;display:inline-flex}.coach a.entry:hover{border-color:var(--ink)}.coach .entry__title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.coach .entry__meta{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.coach .entry--completed,.coach .entry--modified,.coach .entry--activity{background:var(--hover);border-color:#0000}.coach .entry--missed{border-color:var(--warn);color:var(--warn)}.coach .entry--missed .entry__title{text-decoration:line-through}.coach .entry--missed .entry__meta{color:var(--warn)}.coach .entry--unplanned{color:var(--muted);border-style:dashed}.coach .entry--race{border-color:var(--warn)}.coach .entry--cycling{--sport:var(--sport-cycling)}.coach .entry--running{--sport:var(--sport-running)}.coach .entry--swimming{--sport:var(--sport-swimming)}.coach .entry--strength{--sport:var(--sport-strength)}.coach .entry--other{--sport:var(--sport-other)}.coach .entry--cycling,.coach .entry--running,.coach .entry--swimming,.coach .entry--strength,.coach .entry--other{border-left:3px solid var(--sport)}.coach .phase-chip{letter-spacing:.02em;text-transform:uppercase;border-radius:var(--r-chip);color:#1b1a17;background:var(--hair);padding:.12rem .45rem;font-size:.68rem;font-weight:600}.coach .phase-chip--base{background:var(--zone-2)}.coach .phase-chip--build{background:var(--zone-4)}.coach .phase-chip--peak{background:var(--zone-5);color:#fff}.coach .phase-chip--taper{background:var(--zone-3)}.coach .phase-chip--recovery{background:var(--zone-1)}.coach .today-line{align-items:center;gap:var(--gap-sm);color:var(--warn);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:700;display:flex}.coach .today-line:before,.coach .today-line:after{content:"";background:var(--warn);flex:1;height:1px}.coach .weeks__more{padding:var(--gap-lg) 0;justify-content:center;display:flex}.coach .calendar__bar{align-items:center;gap:var(--gap-sm);margin-bottom:var(--gap-md);flex-wrap:wrap}.coach .calendar__title{margin:0 0 0 var(--gap-sm);font-size:1.1rem}.coach .calendar__views{gap:var(--gap-xs);display:inline-flex}.coach .calendar[aria-busy=true] .cal-month,.coach .calendar[aria-busy=true] .cal-weekview{opacity:.7}.coach .cal-month{--cal-sum-w:8.5rem;border:1px solid var(--hair);border-radius:var(--r-card);background:var(--surface);display:grid;overflow:hidden}.coach .cal-row{grid-template-columns:repeat(7, minmax(0, 1fr)) var(--cal-sum-w);scroll-margin-top:var(--gap-lg);display:grid}.coach .cal-row+.cal-row{border-top:1px solid var(--hair)}.coach .cal-head{padding:var(--gap-xs) var(--gap-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:600}.coach .cal-day{gap:var(--gap-xs);min-width:0;min-height:5.5rem;padding:var(--gap-xs);border-left:1px solid var(--hover);flex-direction:column;display:flex}.coach .cal-day:first-child{border-left:0}.coach .cal-day--outside{background:var(--paper-deep)}.coach .cal-day--outside .cal-day__num,.coach .cal-day--outside .cal-day__entries{opacity:.55}.coach .cal-day__num{min-width:1.6rem;color:var(--muted);font-variant-numeric:tabular-nums;text-align:center;border-radius:999px;align-self:flex-start;padding:.05rem .35rem;font-size:.8rem}.coach .cal-day--today{box-shadow:inset 0 0 0 2px var(--ink)}.coach .cal-day--today .cal-day__num{background:var(--ink);color:var(--paper);font-weight:700}.coach .cal-day__entries{flex-direction:column;gap:2px;min-width:0;display:flex}.coach .entry--compact{padding:.1rem .4rem;font-size:.76rem;display:flex}.coach .cal-sum{padding:var(--gap-xs) var(--gap-sm);border-left:1px solid var(--hair);background:var(--paper);align-items:center;display:flex}.coach .cal-row--current .cal-sum{background:var(--hover)}.coach .week-sum{gap:var(--gap-xs);width:100%;display:grid}.coach .week-sum__facts{gap:0 var(--gap-sm);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;font-size:.78rem;display:flex}.coach .cal-weeksum{gap:var(--gap-sm);margin-bottom:var(--gap-md);min-height:2.5rem;display:grid}.coach .cal-weekview{gap:var(--gap-xs);grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.coach .cal-col{gap:var(--gap-xs);min-width:0;min-height:8rem;padding:var(--gap-sm) var(--gap-xs);border:1px solid var(--hair);border-radius:var(--r-panel);background:var(--surface);flex-direction:column;display:flex}.coach .cal-col--today{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.coach .cal-col__date{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:600}.coach .cal-col--rest .cal-col__date{color:var(--faint)}.coach .cal-col__entries{gap:var(--gap-xs);flex-direction:column;display:flex}.coach .cal-col .entry{flex-direction:column;align-items:flex-start;gap:.1rem}.coach .cal-col .entry__title{white-space:normal;overflow-wrap:anywhere}.coach .session-panel{z-index:20;background:var(--paper);border-left:1px solid var(--hair);flex-direction:column;width:min(640px,55vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 24px #0000001f}.coach .session-panel__bar{align-items:center;gap:var(--gap-sm);padding:var(--gap-sm) var(--gap-md);border-bottom:1px solid var(--hair);background:var(--surface);display:flex}.coach .session-panel__body{overscroll-behavior:contain;padding:var(--gap-lg);flex:1;overflow-y:auto}@media (width<=767px){.coach .session-panel{width:auto;box-shadow:none;border-left:0;left:0}.coach .session-panel__body{padding:var(--gap-md)}.coach .day{gap:var(--gap-xs);grid-template-columns:1fr}.coach .cal-row{grid-template-columns:repeat(7,minmax(0,1fr))}.coach .cal-head--sum{display:none}.coach .cal-sum{border-left:0;border-top:1px solid var(--hover);grid-column:1/-1}.coach .cal-day{align-items:center;min-height:3.2rem;padding:.2rem .1rem}.coach .cal-day__num{align-self:center;min-width:0;padding:.05rem .3rem}.coach .cal-day__entries{flex-flow:wrap;justify-content:center;gap:3px}.coach .entry--compact{border-left-width:1px;border-color:var(--sport,var(--hair));border-radius:50%;width:.6rem;height:.6rem;padding:0}.coach .entry--compact.entry--completed,.coach .entry--compact.entry--modified,.coach .entry--compact.entry--activity{background:var(--sport,var(--muted))}.coach .entry--compact.entry--missed{border-color:var(--warn);background:var(--warn-bg)}.coach .entry--compact.entry--race{border-color:var(--warn);background:var(--warn)}.coach .entry--compact .entry__title{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.coach .cal-weekview{grid-template-columns:1fr}.coach .cal-col{min-height:0}}
