:root{--blue:#1466dd;--navy:#16304f;--muted:#586e87;--line:#dae6f1;--page:#f5f9fd;--surface:#fff;--radius:20px;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--navy);background:var(--page);font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,input[type=submit],a{touch-action:manipulation}button,a,input,select{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #1078ce;outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.8rem,5vw,2.4rem);line-height:1.15;letter-spacing:-.045em}h2{font-size:1.1rem;letter-spacing:-.02em}h3{font-size:1rem}p{color:var(--muted);line-height:1.6}.site-header{background:white;border-bottom:1px solid var(--line)}.header-inner{max-width:1000px;margin:auto;min-height:82px;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.03em;font-size:1.2rem}.brand-light{font-weight:450}.brand-mark{background:var(--blue);color:white;border-radius:12px;display:grid;place-items:center;width:40px;height:40px;font-size:34px;line-height:1;padding-bottom:5px}.page{max-width:860px;margin:0 auto;padding:34px 28px calc(40px + env(safe-area-inset-bottom))}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:32px 0 24px}.eyebrow,.small-label{font-size:.68rem;font-weight:750;letter-spacing:.11em;color:var(--muted)}.eyebrow{display:block;color:#1757a2;margin-bottom:9px}.button{border:1px solid transparent;background:var(--blue);color:white;border-radius:12px;min-height:48px;padding:12px 20px;display:inline-flex;justify-content:center;align-items:center;font-weight:650;font-size:.92rem;cursor:pointer;white-space:nowrap;box-shadow:0 3px 6px #1466dd14}.button:hover{background:#0d52b7}.button.secondary{background:#edf3fa;color:var(--navy);box-shadow:none}.full{width:100%}.quiet-button{border:0;background:transparent;color:var(--muted);font-size:.85rem;cursor:pointer;min-height:44px;padding:8px}.text-link{font-size:.85rem;font-weight:650;color:#145cba;min-height:44px;display:inline-flex;align-items:center}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.swimmer-strip{display:flex;align-items:center;gap:12px}.swimmer-strip .text-link{margin-left:auto}.swimmer-strip strong{display:block;font-size:1rem;margin-top:3px}.avatar{display:grid;place-items:center;width:46px;height:46px;background:#e5f2ff;border:1px solid #c5e2fc;color:#1460bc;border-radius:16px;font-size:1.2rem;font-weight:750}.pool-tabs{display:flex;gap:4px;background:#e9f0f8;padding:5px;border-radius:15px;margin-bottom:30px}.pool-tabs a{flex:1;text-align:center;padding:12px;border-radius:11px;color:var(--muted)}.pool-tabs a.selected{background:white;color:#1254ad;box-shadow:0 2px 5px #1d467010}.pool-tabs strong{display:block;font-size:.95rem}.pool-tabs span{display:block;font-size:.72rem;margin-top:4px}.records-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.records-heading .small-label{font-size:.6rem}.record-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px}.record-group{overflow:hidden;align-self:start;--stroke:#136be4}.record-group.backstroke{--stroke:#7b4bce}.record-group.breaststroke{--stroke:#c45d0c}.record-group.butterfly{--stroke:#098573}.record-group h3{display:flex;align-items:center;gap:9px;padding:18px 20px;background:#fbfdff;border-bottom:1px solid var(--line)}.stroke-dot{width:9px;height:9px;border-radius:50%;background:var(--stroke)}.record-row{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:16px 20px;border-bottom:1px solid #eaf0f6}.record-row:last-child{border-bottom:0}.record-row:hover{background:#f2f8ff}.record-row strong{font-size:1.15rem}.unit{font-size:.85rem;color:var(--muted)}.record-time{font-size:1.35rem;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.035em;display:flex;align-items:center;gap:20px}.chevron{font-size:1.4rem;color:var(--muted);font-weight:400}.empty-state{text-align:center;padding:38px 20px}.empty-mark{width:58px;height:58px;display:grid;place-items:center;background:#e7f4ff;color:var(--blue);border-radius:18px;font-size:40px;margin:0 auto 18px}.empty-state p{margin:10px 0 24px;font-size:.92rem}.form-panel{padding:26px;max-width:540px;margin:auto}.field{margin-bottom:22px}.field label,legend{display:block;font-size:.86rem;font-weight:650;margin-bottom:9px}.field input,.field select{width:100%;min-height:50px;border:1px solid #bacde0;border-radius:10px;background:white;color:var(--navy);padding:11px 13px}.field input::placeholder{color:#71849b}.field-hint{display:block;color:var(--muted);font-size:.77rem;margin-top:7px}.field .time-input{font-size:1.7rem;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:.02em;min-height:64px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:26px}fieldset{padding:0;margin:0 0 24px;border:0}.choices{display:flex;gap:10px}.choice{position:relative;display:flex;align-items:center;gap:10px;padding:14px;flex:1;border:1px solid #bacde0;border-radius:12px;cursor:pointer}.choice:has(input:checked){background:#eef6ff;border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.choice input{accent-color:var(--blue);width:17px;height:17px}.choice strong{display:block;font-size:1rem}.choice small{display:block;font-size:.75rem;color:var(--muted);margin-top:4px}.flash{padding:14px 18px;border-radius:12px;background:#e5f5ed;color:#165c3d;margin-bottom:20px;font-size:.9rem}.flash.alert,.errors{background:#fff0f0;color:#9a242d}.errors{border-radius:12px;padding:16px;margin-bottom:20px;font-size:.85rem}.errors ul{padding-left:20px;margin-bottom:0}.signin{max-width:480px;margin:32px auto}.intro{margin-bottom:30px}.intro h1{font-size:clamp(2.4rem,9vw,3.3rem);margin:16px 0;line-height:1.08}.signin-panel h2{margin-bottom:24px}.signin-panel{padding:28px}.signin .eyebrow{color:#1757a2}@media(max-width:600px){.header-inner{min-height:70px;padding:12px 20px}.page{padding:24px 20px calc(30px + env(safe-area-inset-bottom))}.page-heading{margin-top:27px}.page-heading .button{padding:12px 16px}.record-groups{grid-template-columns:1fr;gap:16px}.records-heading h2{font-size:1rem}.form-panel{padding:22px 18px}.signin{margin-top:20px}.record-row{min-height:70px}.choice{padding:12px 10px;gap:6px}.signin-panel{padding:24px 20px}}@media(prefers-reduced-motion:no-preference){.button,.record-row{transition:background .12s ease}}
.main-nav{display:flex;gap:6px;max-width:860px;margin:20px auto 0;padding:0 28px}.main-nav a{padding:12px 18px;border-radius:12px;font-size:.9rem;color:var(--muted);font-weight:650}.main-nav a[aria-current=page]{background:#e3efff;color:#1558b1}.competition-list{overflow:hidden}.competition-link{display:flex;gap:16px;align-items:center;padding:20px;border-bottom:1px solid var(--line)}.competition-link:last-child{border:0}.competition-link:hover{background:#f0f7ff}.date-tile{background:#eaf3ff;border-radius:12px;width:70px;flex-shrink:0;text-align:center;padding:10px 6px;color:#1654a3}.date-tile strong{display:block;font-size:1.4rem}.date-tile small{font-size:.65rem}.competition-description{display:grid;gap:5px;flex:1;min-width:0;overflow-wrap:anywhere}.competition-description>span{font-size:.85rem;color:var(--muted)}.competition-description small{font-size:.75rem;color:var(--muted)}.competition-heading{align-items:flex-start}.competition-heading h1{overflow-wrap:anywhere}.competition-heading p{margin-top:10px}.competition-heading>.text-link{flex-shrink:0}.race-card{padding:20px;margin-top:16px;scroll-margin-top:20px}.race-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.race-heading h3{font-size:1.15rem;margin-top:7px}.race-heading .text-link{white-space:nowrap}.race-comparison{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0}.race-comparison>span{font-size:.85rem;color:var(--muted)}.race-comparison strong{display:inline-block;margin-left:6px;color:var(--navy);font-variant-numeric:tabular-nums}.finish-time{font-size:1.8rem;letter-spacing:-.04em}.result-status{font-weight:700;font-size:.85rem;margin-bottom:14px}.improved{color:#087047}.slower{color:#b52a36}.matched{color:#175eae}.result-form{display:flex;align-items:center;gap:12px;margin-top:12px}.result-form .field{flex:1;min-width:0;margin:0}.result-form input[type=text]{font-size:1.2rem;font-variant-numeric:tabular-nums}.result-form .button{margin-top:0}.correct-result summary{font-size:.85rem;color:#1558b1;padding:10px 0;cursor:pointer}.record-source{display:block;max-width:190px;overflow-wrap:anywhere;color:var(--muted);font-size:.7rem;margin-top:5px;font-weight:400}.baseline-link{padding:0 20px;border-bottom:1px solid var(--line)}.baseline-link .text-link{font-size:.75rem}.form-panel .form-actions{flex-wrap:wrap}@media(max-width:600px){.main-nav{padding:0 20px;margin-top:12px}.main-nav a{flex:1;text-align:center;padding:12px}.race-card{padding:18px 16px}.competition-link{padding:16px;gap:12px}.record-source{max-width:170px}.race-heading h3{font-size:1.05rem}.result-form{gap:10px}.result-form .button{padding:12px}.competition-heading h1{font-size:1.8rem}}
.race-references{margin:12px 0}.race-reference{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.race-reference:last-child{border-bottom:0}.reference-label{font-size:.8rem}.reference-source{display:block;color:var(--muted);font-size:.73rem;line-height:1.5;margin-top:4px;overflow-wrap:anywhere}.reference-source:hover{text-decoration:underline}.reference-values{display:grid;gap:5px;justify-items:end;flex-shrink:0;font-variant-numeric:tabular-nums}.reference-values strong{font-size:1.05rem}.reference-values span{font-size:.8rem;font-weight:650}.race-references:empty{display:none}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.year-group-inputs{display:flex;align-items:center;gap:12px}.year-group-inputs>div{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.year-group-inputs input{width:100%;min-width:0;min-height:50px;border:1px solid #bacde0;border-radius:10px;background:white;color:var(--navy);padding:11px 13px}.year-group-badge{display:inline-block;vertical-align:middle;padding:4px 7px;border-radius:7px;background:#eaf3ff;color:#1757a2;font-size:.75rem;font-weight:650;letter-spacing:0}

.record-group.individual_medley{--stroke:#ba387c}

/* Competition pages prioritize quick scanning over spacious presentation. */
.page:has(.competition-detail){padding-top:14px}
.competition-detail>.page-heading{margin:10px 0 18px}
.competition-detail .competition-heading h1{font-size:clamp(1.55rem,4.5vw,2rem)}
.competition-detail .competition-heading .eyebrow{margin-bottom:6px;letter-spacing:.07em}
.competition-detail .competition-heading p{margin-top:6px;font-size:.9rem}
.competition-detail>.records-heading{margin-bottom:8px}
.competition-detail>.records-heading .button{min-height:44px;padding:10px 15px}
.race-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;padding:12px 16px;margin-top:10px;border-radius:16px}
.race-heading,.race-comparison,.race-references,.race-card>.errors,.race-card>.result-form{grid-column:1/-1}
.race-heading h3{font-size:1rem;margin-top:3px;line-height:1.45}
.race-heading .text-link{font-size:.78rem;min-height:44px}
.race-heading .small-label{font-size:.63rem;letter-spacing:.07em}
.race-comparison{padding:7px 0 3px}
.race-comparison .finish-time{font-size:1.5rem}
.race-card .result-status{margin:0;font-size:.8rem}
.correct-result{justify-self:end}
.correct-result summary{min-height:44px;display:flex;align-items:center;font-size:.78rem;padding:8px 0;list-style:none}
.correct-result summary::before{content:"▸";margin-right:6px}
.correct-result[open]{grid-column:1/-1;justify-self:stretch}
.correct-result[open] summary::before{content:"▾"}
.race-references{margin:4px 0}
.race-reference{padding:7px 0}
.reference-source{margin-top:2px;line-height:1.35}
.reference-values{gap:2px}
.reference-values strong{font-size:.95rem}
.year-group-badge{padding:3px 6px;font-size:.7rem}
@media(max-width:600px){.race-card{padding:10px 13px}.race-heading h3{font-size:.98rem}.race-heading{gap:8px}.competition-detail>.page-heading{margin:8px 0 16px}}

.baseline-profile{max-width:540px;margin:18px auto 0;padding:16px 20px}.baseline-profile .records-heading{margin-bottom:0}.baseline-profile-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.baseline-profile-row:last-child{border:0}.baseline-profile-row strong{font-size:.85rem}.baseline-profile-row small{display:block;color:var(--muted);margin-top:5px}.baseline-actions{display:flex;align-items:center;gap:12px}.remove-baseline{min-height:44px;border:0;background:transparent;color:#b52a36;cursor:pointer;font-size:.85rem;padding:8px 0}

.relay-bests{margin-top:22px;overflow:hidden}.relay-bests>h2{padding:16px 20px;border-bottom:1px solid var(--line)}

.latest-records{overflow:hidden}.latest-record{padding:14px 18px;border-bottom:1px solid var(--line)}.latest-record:last-child{border-bottom:0}.latest-record-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.latest-record-heading h2{font-size:1rem}.latest-record-heading .finish-time{font-size:1.45rem;white-space:nowrap}.latest-status{font-size:.85rem;font-weight:650;margin-top:7px;line-height:1.4}.relay-latest{margin-top:20px}.relay-latest>h2{padding:16px 18px;border-bottom:1px solid var(--line)}
@media(max-width:600px){.main-nav a{min-width:0;padding:12px 7px;font-size:.8rem;white-space:nowrap}.latest-record{padding:13px}.latest-record-heading h2{font-size:.92rem}}

.latest-record-heading h4{margin:0;font-size:1rem;font-weight:700}.latest-records .reference-source{margin-top:5px}

.latest-time{display:flex;align-items:center;gap:8px;flex-shrink:0}.pb-tag{display:inline-block;background:#e5f5ed;color:#087047;font-size:.7rem;font-weight:750;line-height:1.4;padding:3px 6px;border-radius:7px;white-space:nowrap}

.progress-picker{display:flex;gap:12px;align-items:center;margin-bottom:20px}.progress-picker .field{flex:1;margin-bottom:0;min-width:0}.progress-picker .button{margin-top:25px}.progress-panel{padding:18px;overflow:hidden}.progress-chart-scroll{overflow-x:auto}.progress-chart{position:relative;height:280px}.progress-events{margin:16px 0 0;padding-left:24px}.progress-events li{padding-left:4px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.progress-events a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;color:var(--navy)}.progress-events small{display:block;color:var(--muted);margin-top:4px}.progress-time{font-size:1.05rem;font-variant-numeric:tabular-nums;white-space:nowrap}.main-nav{overflow-x:auto}.main-nav a{flex-shrink:0}
@media(max-width:600px){.main-nav{gap:3px}.main-nav a{font-size:.72rem;padding:12px 5px;flex:1;white-space:nowrap}.progress-panel{padding:13px}.progress-panel .records-heading{align-items:flex-start}.progress-panel h2{font-size:1rem}.progress-panel .small-label{font-size:.58rem;white-space:nowrap}.progress-chart{height:250px}}

.progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.progress-grid>.progress-panel{min-width:0}.progress-section-title{margin:24px 0 12px}.progress-grid .progress-chart{height:240px}@media(max-width:650px){.progress-grid{grid-template-columns:1fr}}

.year-group-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.year-group-options .choice{font-size:.85rem;padding:12px}.year-group-inputs [hidden]{display:none}.year-group-inputs>[data-year-group-target=suffix]{white-space:nowrap}

.competition-year{margin-top:24px}.competition-year>h2{margin-bottom:12px;color:#1757a2;font-size:1.15rem}

.year-warning{padding:14px 16px;margin-bottom:20px;background:#fff6df;border:1px solid #e8ce86;border-radius:12px;color:#644707;font-size:.9rem}.year-warning p{margin-top:6px;color:inherit;font-size:.85rem}
/* Normalize Safari's compact native select control to the shared input size. */
.field select:not([multiple]){
  -webkit-appearance:none;
  appearance:none;
  display:block;
  height:50px;
  min-height:50px;
  line-height:1.3;
  padding:11px 42px 11px 13px;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23586e87' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:16px 16px;
}

.option-boxes{display:grid;gap:8px}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.distance-options{grid-template-columns:repeat(4,minmax(0,1fr))}.option-box.choice{min-height:44px;min-width:0;padding:10px 8px;gap:7px;font-size:.85rem}.option-box input{flex-shrink:0}.option-box[hidden],fieldset[hidden]{display:none}.option-box:has(input:focus-visible){outline:3px solid #1078ce;outline-offset:3px}@media(max-width:360px){.distance-options{grid-template-columns:repeat(3,minmax(0,1fr))}}

.year-group-inputs>.year-prefixed-input{position:relative;display:block}
.year-prefixed-input>span{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;user-select:none}
.year-group-inputs .year-prefixed-input input{padding-left:34px}
.year-group-inputs>.year-prefixed-input[hidden]{display:none}

.competition-incomplete{box-shadow:inset 3px 0 #d28b16;background:#fffcf5}.competition-incomplete:hover{background:#fff5df}.incomplete-badge{display:inline-block;margin:3px 0 0 7px;padding:3px 7px;background:#fff0cd;color:#805009;border-radius:7px;font-size:.7rem;font-weight:700}

.result-buttons{display:flex;flex-direction:column;gap:6px;align-self:center}.dq-button{background:#fff0cd;color:#805009;box-shadow:none;min-height:36px;padding:7px 12px}.dq-button:hover{background:#ffe4a2}.dq-status{color:#805009;grid-column:1;padding-top:10px}
.result-buttons{flex-direction:row;align-items:center}.result-buttons .dq-button{min-height:48px;padding:12px}
@media(max-width:420px){.result-form{flex-wrap:wrap}.result-form>.field{flex-basis:100%}.result-buttons{width:100%;justify-content:flex-end}}

.field input[type=search]{-webkit-appearance:none;appearance:none;min-height:50px;border-radius:10px}

.progress-view{display:flex;align-items:center;gap:5px;margin:0 0 20px;font-size:.85rem}.progress-view>span{color:var(--muted);margin-right:8px}.progress-view a{padding:10px 16px;min-height:44px;border-radius:10px;display:flex;align-items:center}.progress-view a.selected{background:#e3efff;color:#1558b1;font-weight:700}.progress-years{padding-left:43px}

.event-delete { max-width: 540px; margin: 16px auto 0; display: flex; justify-content: flex-end; }
.event-delete .button { color: #b42335; }


.year-group-none { margin-top: 12px; }

.record-group.kickboard { --stroke: #a87900; }
.training-note { margin-bottom: 18px; font-size: .85rem; }
.training-comparison { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.training-comparison small { display: block; margin-top: 4px; color: var(--muted); }
.training-comparison > div:last-child { text-align: right; flex-shrink: 0; }
.training-comparison small.improved { color: #087745; }
.training-comparison small.slower { color: #b42335; }

/* Reference redesign: mobile cards, desktop workspace and shared stroke palette. */
:root {
  --blue:#0783a6;
  --navy:#0b202a;
  --muted:#566b76;
  --line:#e2eaee;
  --page:#edf3f6;
  --radius:22px;
  font-family:Arial,Helvetica,sans-serif
}
body {
  background:var(--page)
}
h1 {
  font-size:32px;
  letter-spacing:-1.3px
}
h2 {
  font-size:19px
}
h3 {
  font-size:16px
}
.panel {
  border:0;
  border-radius:var(--radius);
  background:#fff;
  box-shadow:none
}
.button {
  background:var(--blue);
  border-radius:13px;
  box-shadow:none;
  font-size:14px;
  padding:14px 20px
}
.button.secondary {
  background:#e7eef2
}
.text-link {
  color:var(--blue);
  font-size:14px
}
.small-label,.eyebrow {
  letter-spacing:0;
  font-size:12px;
  font-weight:400;
  color:var(--muted)
}
.page {
  max-width:none;
  padding:28px;
  margin:0 0 0 216px
}
.page-heading {
  margin:0 0 22px;
  align-items:center
}
.page-heading .eyebrow {
  display:none
}
.page-heading p {
  font-size:14px;
  margin-top:6px
}
.records-heading {
  margin:18px 0 12px
}
.record-groups {
  gap:14px
}
.form-panel {
  max-width:680px;
  padding:24px
}
.event-delete {
  max-width:680px
}
.field input,.field select {
  background:#f6f9fa;
  border-color:#dce5e9;
  border-radius:13px;
  min-height:48px;
  font-size:15px
}
.field label,legend {
  font-size:13px;
  color:var(--muted);
  font-weight:500
}
.choice {
  border-color:#dce5e9
}
.option-box.choice {
  font-size:14px;
  min-height:44px
}
.choice:has(input:checked) {
  background:#0b202a;
  color:white;
  border-color:#0b202a;
  box-shadow:none
}
.choice input {
  accent-color:#0783a6
}
.option-box input {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px
}
.option-box:has(input:focus-visible) {
  outline-offset:3px
}
.option-box {
  justify-content:center
}
.field-hint {
  font-size:12px
}
.full {
  width:100%
}
.flash {
  font-size:14px
}
.app-sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:216px;
  border-right:1px solid #dfe8ec;
  padding:26px 15px;
  display:flex;
  flex-direction:column;
  z-index:30;
  background:var(--page)
}
.brand {
  font-size:16px;
  gap:9px;
  letter-spacing:-.5px;
  white-space:nowrap
}
.brand-mark {
  width:30px;
  height:30px;
  background:#096d88;
  border-radius:8px;
  display:grid;
  place-items:center
}
.brand-mark svg {
  width:22px;
  height:22px
}
.app-sidebar .brand {
  margin:0 8px 28px
}
.main-nav {
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:0;
  margin:0;
  overflow:visible
}
.main-nav a {
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 14px;
  font-size:14px;
  color:#415661;
  border-radius:12px;
  white-space:nowrap
}
.main-nav a svg {
  width:19px;
  height:19px;
  flex-shrink:0
}
.main-nav a[aria-current=page] {
  background:white;
  color:var(--navy);
  font-weight:700;
  box-shadow:0 1px 3px #0b202a0a
}
.main-nav a[aria-current=page] svg {
  color:#007f9f
}
.nav-short {
  display:none
}
.sidebar-add {
  margin-top:30px;
  background:var(--navy);
  text-align:center
}
.sidebar-profile {
  display:flex;
  gap:10px;
  align-items:center;
  margin: auto 8px 12px;
  font-size:13px
}
.sidebar-profile strong {
  font-weight:500;
  line-height:1.4
}
.sidebar-profile small {
  display:block;
  color:var(--muted);
  font-size:11px
}
.avatar {
  background:#ffd633;
  color:var(--navy);
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  flex-shrink:0;
  font-size:14px;
  font-weight:700
}
.sidebar-signout {
  font-size:11px;
  color:var(--muted);
  margin-left:8px;
  padding:4px
}
.mobile-header {
  display:none
}
.swimmer-strip {
  display:none
}
.pool-tabs {
  display:flex;
  gap:8px;
  margin-bottom:20px
}
.pool-tabs a {
  border:1px solid #dde6eb;
  border-radius:14px;
  background:white;
  padding:12px 16px;
  min-height:58px;
  flex:1;
  max-width:190px
}
.pool-tabs a strong {
  font-size:18px;
  letter-spacing:-.5px
}
.pool-tabs a span {
  font-size:11px;
  display:block;
  margin-top:3px
}
.pool-tabs a.selected {
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
  box-shadow:none
}
.pool-tabs a.selected span {
  color:#e3ebee
}
.pb-tag {
  background:#ffd633;
  color:#0b202a;
  border-radius:6px;
  font-size:9px;
  font-weight:700;
  padding:2px 6px
}
.improved {
  color:#00813d
}
.slower {
  color:#d61e25
}
.year-group-badge {
  background:#e8eff3;
  color:#536873;
  font-weight:500;
  font-size:11px
}
.record-group {
  --stroke:#3682fa;
  --tint:#eff3ff
}
.backstroke {
  --stroke:#07b4cc;
  --tint:#e5f7fa
}
.breaststroke {
  --stroke:#1ba36e;
  --tint:#eaf7f0
}
.butterfly {
  --stroke:#e4a500;
  --tint:#fff7dc
}
.individual_medley {
  --stroke:#8d58f9;
  --tint:#f4efff
}
.kickboard {
  --stroke:#ff7710;
  --tint:#fff2e6
}
.freestyle {
  --stroke:#3682fa;
  --tint:#eff3ff
}
.record-group.backstroke {
  --stroke:#07b4cc
}
.record-group.breaststroke {
  --stroke:#1ba36e
}
.record-group.butterfly {
  --stroke:#e4a500
}
.record-group.individual_medley {
  --stroke:#8d58f9
}
.record-group.kickboard {
  --stroke:#ff7710
}
.record-group h3 {
  background:white;
  border:0;
  padding:18px 16px 10px
}
.stroke-dot {
  background:var(--stroke);
  width:9px;
  height:9px
}
.record-group.latest-records {
  padding:0 14px 14px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px
}
.latest-records h3 {
  grid-column:1/-1;
  padding:18px 0 4px
}
.latest-record {
  background:var(--tint);
  border:0;
  border-radius:14px;
  padding:13px;
  min-width:0
}
.latest-record-heading {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px
}
.latest-record-heading h4 {
  margin:0;
  font-size:13px;
  color:var(--navy)
}
.latest-time {
  display:flex;
  flex-direction:row-reverse;
  flex-wrap:wrap;
  align-items:center;
  gap:6px
}
.latest-time .finish-time {
  font-size:26px;
  letter-spacing:-1px
}
.latest-record .reference-source {
  font-size:11px;
  line-height:1.3;
  margin-top:6px
}
.latest-status {
  font-size:12px;
  line-height:1.3;
  margin-top:5px
}
.record-row {
  padding:14px 18px;
  border:0;
  gap:16px;
  min-height:80px
}
.record-source {
  font-size:11px;
  margin-top:4px
}
.record-time {
  font-size:25px;
  gap:14px
}
.record-row strong {
  font-size:15px
}
.record-row .record-time {
  font-size:25px
}
.record-row .chevron {
  font-size:22px;
  color:#a8b7be
}
.record-row:hover {
  background:#f7fafb
}
.record-matrix {
  padding:16px;
  overflow:auto
}
.record-matrix table {
  width:100%;
  border-collapse:separate;
  border-spacing:5px;
  table-layout:fixed
}
.record-matrix th {
  text-align:left;
  font-size:12px;
  color:var(--muted);
  padding:4px
}
.record-matrix th:first-child {
  width:145px
}
.record-matrix td {
  vertical-align:top
}
.matrix-stroke {
  font-size:14px;
  display:flex;
  align-items:center;
  gap:8px;
  min-height:78px
}
.matrix-cell {
  display:block;
  border-radius:14px;
  padding:12px;
  background:var(--tint);
  min-height:80px
}
.matrix-cell strong {
  font-size:23px;
  letter-spacing:-1px;
  font-variant-numeric:tabular-nums
}
.matrix-cell small {
  display:block;
  font-size:11px;
  color:var(--muted);
  line-height:1.3;
  margin-top:4px
}
.matrix-empty {
  border:1px dashed var(--line);
  background:white;
  display:grid;
  place-items:center;
  color:#9db0ba
}
.desktop-records {
  display:block
}
.mobile-records {
  display:none
}
.record-detail {
  padding:22px;
  background:white;
  border-left:1px solid var(--line)
}
.record-detail h2 {
  font-size:24px;
  margin:12px 0
}
.detail-metrics {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:18px 0
}
.detail-metrics>div {
  background:#f2f7fa;
  border-radius:16px;
  padding:14px
}
.detail-metrics>div:last-child {
  background:#fff8d9
}
.detail-metrics strong {
  display:block;
  font-size:29px;
  margin:6px 0
}
.detail-metrics small {
  font-size:12px;
  color:var(--muted)
}
.latest-workspace {
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:24px
}
.latest-workspace>.record-detail {
  border-radius:22px;
  min-width:0
}
.record-detail .progress-chart {
  height:180px
}
.record-detail .progress-events {
  padding-left:20px
}
.record-detail .progress-events a {
  font-size:12px
}
.record-detail .progress-events strong {
  font-size:13px
}
.record-detail .progress-events small {
  font-size:11px
}
.record-detail .progress-panel {
  padding:0
}
.record-detail .progress-panel>.records-heading {
  display:none
}
.competition-list {
  overflow:hidden
}
.competition-year h2 {
  font-size:13px;
  font-weight:500;
  color:var(--muted);
  margin-bottom:8px
}
.competition-link {
  padding:16px;
  gap:14px;
  border:0
}
.date-tile {
  background:#e0f4f8;
  width:44px;
  min-width:44px;
  height:50px;
  border-radius:11px;
  color:#007594;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center
}
.date-tile strong {
  font-size:21px
}
.date-tile small {
  font-size:9px;
  text-transform:uppercase
}
.competition-description>strong {
  font-size:15px
}
.competition-description>span {
  font-size:12px
}
.competition-description small {
  font-size:11px
}
.competition-link:hover {
  background:#f7fafb
}
.competition-incomplete {
  background:transparent
}
.incomplete-badge {
  font-size:10px
}
.competition-detail>.text-link {
  display:inline-block;
  margin-bottom:18px
}
.competition-heading h1 {
  font-size:32px
}
.competition-heading .eyebrow {
  display:block;
  font-size:13px;
  margin-bottom:8px
}
.competition-heading p {
  font-size:14px
}
.competition-heading {
  margin-top:0
}
.competition-detail .race-card {
  padding:18px;
  margin:0
}
.race-heading {
  gap:12px;
  margin-bottom:10px
}
.race-heading .small-label {
  font-size:11px
}
.race-heading h3 {
  font-size:16px;
  margin-top:5px
}
.race-heading .text-link {
  font-size:12px
}
.race-comparison {
  margin:12px 0;
  display:flex;
  justify-content:space-between;
  align-items:center
}
.race-comparison>span {
  font-size:12px;
  color:var(--muted)
}
.race-comparison .finish-time {
  font-size:38px;
  letter-spacing:-1.5px
}
.race-reference {
  padding:10px 0;
  border-top:1px solid #edf2f5
}
.reference-label {
  font-size:12px
}
.reference-source {
  font-size:11px
}
.reference-values {
  font-size:12px
}
.result-status {
  font-size:12px;
  display:inline-block;
  border-radius:20px;
  background:#fff5c8;
  padding:5px 9px;
  margin:10px 0;
  color:#0b202a
}
.result-status.slower,.dq-status {
  background:#fee9e9;
  color:#c12028
}
.correct-result {
  border-top:1px solid var(--line);
  padding-top:12px;
  margin-top:10px;
  font-size:12px;
  text-align:right
}
.correct-result summary {
  color:var(--blue)
}
#competition_results {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:start
}
#competition_results>.flash,#competition_results>.empty-state {
  grid-column:1/-1
}
.result-form {
  flex-wrap:wrap
}
.result-form>.field {
  min-width:130px
}
.competition-workspace {
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:26px
}
.meet-rail {
  background:white;
  margin:-28px 0 -28px -28px;
  padding:25px 14px;
  min-height:100vh;
  border-right:1px solid var(--line)
}
.meet-rail h2 {
  margin:0 6px 15px
}
.meet-rail .competition-link {
  padding:12px 6px;
  gap:8px;
  border-radius:9px
}
.meet-rail .date-tile {
  background:transparent;
  width:34px;
  min-width:34px
}
.meet-rail .date-tile strong {
  font-size:16px
}
.meet-rail .competition-description strong {
  font-size:12px
}
.meet-rail .competition-description>span,.meet-rail .competition-description>small {
  display:none
}
.meet-rail .competition-link[aria-current=page] {
  background:var(--navy);
  color:white
}
.meet-rail .competition-link[aria-current=page] .date-tile {
  color:white
}
.meet-rail .competition-year {
  margin-top:18px
}
.progress-grid {
  grid-template-columns:1fr
}
.progress-panel {
  padding:20px
}
.progress-chart {
  height:260px
}
.progress-events {
  font-size:13px
}
.progress-events a {
  padding:12px 0
}
.progress-events strong {
  font-size:14px
}
.progress-events small {
  font-size:12px
}
.progress-section-title {
  font-size:14px
}
.progress-view a.selected {
  background:var(--navy);
  border-color:var(--navy)
}
.training-workspace {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  gap:18px;
  align-items:start
}
.training-workspace .page-heading {
  display:none
}
.training-workspace .form-panel {
  max-width:none
}
.training-workspace .training-note {
  display:none
}
.training-workspace .race-card {
  padding:20px;
  margin-bottom:14px
}
.training-workspace .form-actions .button {
  width:100%;
  text-align:center
}
.training-workspace .form-actions .secondary {
  display:none
}
.training-workspace .field input {
  background:#f5f9fa
}
.training-workspace .field .field-hint {
  font-size:11px
}
.training-workspace .finish-time {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:13px
}
.training-workspace .finish-time strong {
  font-size:28px
}
.training-workspace .form-actions {
  margin-top:16px
}
.training-workspace .form-actions input {
  max-width:none
}
.auth-shell .page {
  margin:0;
  padding:0
}
.signin {
  display:grid;
  grid-template-columns:45.5% 54.5%;
  max-width:none;
  margin:0;
  min-height:100vh
}
.signin-story {
  background:#096d88;
  color:white;
  padding:48px;
  display:flex;
  flex-direction:column
}
.signin-story .brand {
  font-size:21px
}
.signin-story .brand-mark {
  background:white;
  color:#096d88;
  width:36px;
  height:36px
}
.signin .intro {
  margin:auto 0
}
.signin .intro h1 {
  font-size:clamp(38px,4.8vw,64px);
  line-height:1.05;
  letter-spacing:-2px;
  margin:30px 0 20px
}
.signin .intro p {
  color:#d1eaf3;
  font-size:18px;
  max-width:430px;
  line-height:1.5
}
.signin-strokes {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-top:40px
}
.signin-strokes span {
  background:#ffffff1a;
  border-radius:20px;
  padding:6px 10px;
  font-size:12px;
  display:flex;
  gap:6px;
  align-items:center
}
.signin-strokes i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--stroke)
}
.signin-form-wrap {
  display:grid;
  place-items:center;
  padding:32px
}
.signin-panel {
  width:100%;
  max-width:395px;
  padding:30px;
  box-shadow:0 10px 30px #15334208
}
.signin-panel h2 {
  font-size:26px;
  margin:0 0 7px
}
.signin-panel>p {
  font-size:14px;
  margin-bottom:22px
}
.signin-panel .field {
  margin-bottom:20px
}
.signin-panel .button {
  background:var(--navy)
}
.password-input {
  position:relative
}
.password-input input {
  padding-right:65px
}
.password-input button {
  position:absolute;
  right:12px;
  top:0;
  height:100%;
  border:0;
  background:none;
  color:#007f9f;
  font-weight:600;
  font-size:13px
}
.auth-shell .flash {
  position:absolute;
  top:15px;
  right:20px;
  z-index:2;
  max-width:400px
}
.record-detail .progress-events li {
  margin:0
}
.record-detail .progress-events {
  margin-top:15px
}
.records-subtitle {
  font-size:14px;
  margin:-12px 0 20px;
  color:var(--muted)
}
@media(min-width:1400px) {
  .latest-workspace {
    grid-template-columns:minmax(0,1fr) 360px
  }
  .page {
    padding:30px
  }
  .record-matrix .matrix-cell strong {
    font-size:26px
  }
}
@media(max-width:1150px) and (min-width:761px) {
  .app-sidebar {
    width:184px;
    padding:24px 10px
  }
  .page {
    margin-left:184px;
    padding:24px
  }
  .brand {
    font-size:14px
  }
  .latest-workspace {
    grid-template-columns:minmax(0,1fr)
  }
  .latest-workspace .record-detail {
    display:none
  }
  .competition-workspace {
    grid-template-columns:205px minmax(0,1fr);
    gap:18px
  }
  .meet-rail {
    margin:-24px 0 -24px -24px
  }
  .record-matrix th:first-child {
    width:110px
  }
  .matrix-cell {
    padding:9px
  }
  .matrix-cell strong {
    font-size:19px
  }
  #competition_results {
    grid-template-columns:1fr
  }
  .training-workspace {
    grid-template-columns:1fr
  }
  .training-workspace .form-panel {
    width:100%
  }
}
@media(max-width:760px) {
  .page {
    margin:0;
    padding:20px 16px 110px
  }
  .app-sidebar {
    position:static;
    width:auto;
    padding:0;
    border:0
  }
  .app-sidebar>.brand,.sidebar-add,.sidebar-profile,.sidebar-signout {
    display:none
  }
  .app-sidebar>form {
    display:none
  }
  .main-nav {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:50;
    background:#ffffffed;
    backdrop-filter:blur(10px);
    display:flex;
    flex-direction:row;
    justify-content:space-around;
    margin:0;
    padding:9px 8px calc(12px + env(safe-area-inset-bottom));
    border-top:1px solid #e4ecef;
    gap:0;
    max-width:none;
    overflow:visible
  }
  .main-nav a {
    flex:1;
    display:flex;
    flex-direction:column;
    gap:5px;
    padding:0 2px;
    font-size:10px;
    border-radius:0;
    white-space:nowrap;
    min-height:52px;
    justify-content:center
  }
  .main-nav a svg {
    width:45px;
    height:28px;
    padding:4px 12px;
    border-radius:20px
  }
  .main-nav a[aria-current=page] {
    box-shadow:none;
    background:none;
    color:#007795
  }
  .main-nav a[aria-current=page] svg {
    background:#d5f0f6
  }
  .nav-long {
    display:none
  }
  .nav-short {
    display:block
  }
  .mobile-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:16px 20px 0
  }
  .mobile-profile {
    display:flex;
    align-items:center;
    gap:8px;
    font-size:12px;
    background:white;
    padding:4px 12px 4px 4px;
    border-radius:30px;
    font-weight:600
  }
  .mobile-profile .avatar {
    width:32px;
    height:32px
  }
  .quick-add {
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    background:var(--navy);
    color:white;
    border-radius:50%;
    font-size:26px;
    font-weight:300
  }
  .page-heading {
    margin:0 0 18px
  }
  .page-heading h1 {
    font-size:30px
  }
  .page-heading .button {
    padding:10px 13px;
    font-size:12px
  }
  .pool-tabs {
    gap:8px;
    margin-bottom:20px
  }
  .pool-tabs a {
    max-width:none;
    padding:12px;
    border-radius:15px
  }
  .pool-tabs a strong {
    font-size:19px
  }
  .record-groups {
    grid-template-columns:1fr;
    gap:12px
  }
  .desktop-records {
    display:none
  }
  .mobile-records {
    display:block
  }
  .latest-workspace {
    display:block
  }
  .latest-workspace .record-detail {
    display:none
  }
  .record-group.latest-records {
    padding:0 14px 14px;
    gap:8px
  }
  .record-group h3 {
    font-size:17px
  }
  .latest-time .finish-time {
    font-size:28px
  }
  .latest-record {
    padding:13px
  }
  .latest-record .reference-source {
    font-size:11px
  }
  .record-row {
    padding:12px 18px;
    min-height:85px
  }
  .record-row>span:first-child {
    max-width:none
  }
  .record-group:not(.latest-records) h3 {
    padding-bottom:8px
  }
  .record-row .record-time {
    font-size:25px
  }
  .record-source {
    max-width:180px
  }
  .form-panel {
    padding:20px 18px;
    border-radius:22px
  }
  .competition-workspace {
    display:block
  }
  .meet-rail {
    display:none
  }
  .competition-link {
    padding:16px 14px;
    gap:12px
  }
  .competition-description>span {
    font-size:11px
  }
  .competition-description>strong {
    font-size:14px
  }
  .competition-link>span:last-child {
    display:none
  }
  .date-tile {
    height:48px
  }
  .competition-heading h1 {
    font-size:28px
  }
  .competition-heading .eyebrow {
    font-size:12px
  }
  .competition-heading p {
    font-size:12px
  }
  .competition-detail>.text-link {
    margin-bottom:16px
  }
  .competition-detail .records-heading h2 {
    font-size:15px
  }
  #competition_results {
    grid-template-columns:1fr
  }
  .race-comparison .finish-time {
    font-size:40px
  }
  .race-card {
    padding:18px
  }
  .race-heading .small-label {
    font-size:11px
  }
  .progress-chart {
    height:230px
  }
  .progress-panel {
    padding:18px
  }
  .training-workspace {
    display:block
  }
  .training-workspace .form-panel {
    margin-bottom:14px
  }
  .training-workspace .option-box {
    font-size:13px
  }
  .signin {
    display:block;
    min-height:100vh
  }
  .signin-story {
    padding:48px 24px 66px;
    min-height:335px
  }
  .signin-story .brand {
    font-size:18px
  }
  .signin .intro {
    margin:25px 0 0
  }
  .signin .intro h1 {
    font-size:38px;
    letter-spacing:-1.5px;
    margin:0 0 15px
  }
  .signin .intro p {
    font-size:15px
  }
  .signin-strokes {
    margin:24px 0 0;
    gap:5px
  }
  .signin-strokes span {
    font-size:0;
    padding:0;
    width:25px;
    height:5px;
    background:var(--stroke)
  }
  .signin-strokes i {
    display:none
  }
  .signin-form-wrap {
    padding:0 16px 50px;
    margin-top:-36px;
    position:relative
  }
  .signin-panel {
    padding:25px 20px;
    max-width:440px;
    box-shadow:0 12px 25px #1632420a
  }
  .signin-panel h2 {
    font-size:21px;
    margin-bottom:22px
  }
  .signin-panel>p {
    display:none
  }
  .auth-shell .page {
    padding:0
  }
  .auth-shell .flash {
    position:relative;
    margin:0;
    top:0;
    right:0;
    max-width:none;
    border-radius:0
  }
  .records-subtitle {
    font-size:13px;
    line-height:1.4
  }
  .training-note {
    font-size:13px
  }
  .training-workspace .page-heading {
    display:none
  }
}
.pb-pools {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}
.pb-pools>section {
  min-width:0
}
.pb-pools h2 {
  font-size:17px;
  margin:8px 0 12px
}
.pb-pools h2 small {
  font-size:12px;
  font-weight:400;
  color:var(--muted)
}
.pb-pools .record-matrix th:first-child {
  width:100px
}
.pb-pools .record-matrix table {
  min-width:440px
}
.matrix-status.improved {
  color:#00813d
}
.matrix-status.slower {
  color:#d61e25
}
@media(min-width:761px) and (max-width:1250px) {
  .pb-pools {
    grid-template-columns:1fr
  }
}
.progress-workspace {
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:24px
}
.progress-picker {
  background:white;
  border-radius:20px;
  padding:16px;
  align-self:start
}
.progress-picker h2 {
  font-size:18px;
  margin-bottom:12px
}
.progress-picker button {
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  text-align:left;
  border:0;
  border-radius:10px;
  background:white;
  padding:13px 10px;
  font-size:13px;
  color:var(--navy);
  cursor:pointer
}
.progress-picker button[aria-pressed=true] {
  background:var(--navy);
  color:white
}
.progress-workspace .progress-section-title {
  display:none
}
.progress-panel[hidden],.progress-stroke[hidden] {
  display:none
}
.progress-summary>span {
  font-size:13px;
  color:var(--muted)
}
.progress-summary>strong {
  display:block;
  font-size:46px;
  letter-spacing:-2px;
  margin:5px 0 14px
}
.progress-summary>div {
  display:flex;
  gap:10px;
  margin-bottom:20px
}
.progress-summary>div>span {
  background:#f2f7fa;
  flex:1;
  border-radius:14px;
  padding:14px
}
.progress-summary b {
  display:block;
  font-size:23px
}
.progress-summary small {
  display:block;
  font-size:12px;
  color:var(--muted);
  margin-top:4px
}
.progress-summary+.records-heading {
  display:none
}
.progress-panel>.records-heading {
  margin-top:0
}
.progress-panel .progress-chart-scroll {
  margin-top:15px
}
.training-workspace .form-panel .page-heading {
  display:none
}
.training-workspace .panel.form-panel::before {
  content:'Log a training time';
  display:block;
  font-size:18px;
  font-weight:700;
  margin-bottom:22px
}
@media(max-width:760px) {
  .progress-workspace {
    display:block
  }
  .progress-picker {
    display:flex;
    overflow:auto;
    gap:8px;
    padding:0 0 12px;
    background:transparent;
    margin-bottom:10px;
    border-radius:0
  }
  .progress-picker h2 {
    display:none
  }
  .progress-picker button {
    width:auto;
    flex-shrink:0;
    border-radius:30px;
    white-space:nowrap;
    padding:11px 15px
  }
  .progress-summary>strong {
    font-size:44px
  }
  .progress-workspace .progress-panel {
    padding:18px
  }
  .progress-summary>div>span {
    padding:12px
  }
  .progress-summary b {
    font-size:21px
  }
  .training-workspace .form-panel .page-heading {
    display:none
  }
}
.pool-tabs {
  background:none;
  border:0;
  padding:0
}
.record-matrix .matrix-cell {
  min-height:83px
}
.record-matrix .matrix-cell small {
  overflow:hidden;
  text-overflow:ellipsis
}
.record-matrix th {
  border-bottom:1px solid #edf2f5
}
.record-matrix td {
  border-bottom:1px solid #edf2f5;
  padding-bottom:5px
}
.record-detail .progress-chart {
  min-width:0!important
}
.record-detail .progress-chart-scroll {
  overflow:hidden
}
.record-detail .progress-events {
  list-style:none;
  padding:0
}
.record-detail .progress-events a {
  gap:8px
}
.record-detail .progress-events strong {
  font-weight:600
}
.record-detail .progress-events .progress-time {
  white-space:nowrap
}
.record-group h3 {
  line-height:1.25
}
.screen-personal_bests .mobile-records .pool-tabs {
  background:#dfe9ed;
  border-radius:13px;
  padding:3px;
  gap:0
}
.screen-personal_bests .mobile-records .pool-tabs a {
  border:0;
  background:none;
  min-height:40px;
  padding:10px
}
.screen-personal_bests .mobile-records .pool-tabs a strong {
  font-size:13px
}
.screen-personal_bests .mobile-records .pool-tabs a span {
  display:none
}
.screen-personal_bests .mobile-records .pool-tabs a.selected {
  background:#fff;
  color:var(--navy);
  border-radius:10px;
  box-shadow:0 1px 3px #14313d1a
}
.pb-record-row {
  justify-content:flex-start;
  gap:20px;
  padding:14px 18px
}
.pb-distance {
  font-size:13px;
  color:var(--muted);
  font-weight:600;
  width:38px;
  flex-shrink:0
}
.pb-record-content {
  flex:1;
  min-width:0
}
.pb-record-row .pb-record-content>strong {
  font-size:26px;
  letter-spacing:-1px
}
.pb-record-row .record-source {
  font-size:12px;
  max-width:none
}
.pb-record-difference {
  display:block;
  font-size:12px;
  margin-top:3px
}
.pb-record-row .chevron {
  color:#a1b2ba
}
.screen-latest_records .mobile-records>.records-heading,.screen-personal_bests .mobile-records>.records-heading {
  display:none
}
.screen-personal_bests .mobile-records .record-group h3 {
  font-size:14px
}
.screen-personal_bests .mobile-records .record-group h3 .stroke-dot {
  width:7px;
  height:7px
}
.latest-status {
  font-weight:500
}
.training-preview {
  padding:14px;
  border-radius:14px;
  background:#f1f7fa;
  font-size:13px;
  line-height:1.5;
  margin-top:8px;
  color:var(--navy)
}
.relay-bests.desktop-records {
  margin-top:18px;
  padding:18px
}
.relay-bests.desktop-records .record-row {
  padding:12px 0
}
.relay-bests.desktop-records h2 {
  font-size:16px
}
.relay-latest {
  margin-top:20px
}
.progress-workspace .progress-chart {
  min-width:0!important
}
.progress-view a.selected {
  color:white
}
.progress-picker .stroke-dot {
  flex-shrink:0
}
.screen-progress .mobile-header,.screen-competitions .mobile-header,.screen-training_records .mobile-header {
  display:none
}
@media(min-width:761px) {
  .screen-progress .page>.page-heading {
    margin-bottom:16px
  }
  .screen-progress .progress-workspace .progress-panel {
    min-width:0
  }
  .progress-workspace>div {
    min-width:0
  }
}
.training-strokes .option-boxes {
  display:flex;
  flex-wrap:wrap
}
.training-strokes .option-box.choice {
  flex:0 0 auto;
  border-radius:30px;
  padding:11px 13px;
  gap:6px
}
.training-stroke-short {
  display:none
}
.training-strokes .stroke-dot {
  width:7px;
  height:7px;
  flex-shrink:0
}
.training-workspace .training-strokes .option-boxes {
  display:flex
}
.training-workspace fieldset:first-of-type .option-boxes {
  background:#e1e8ed;
  border-radius:12px;
  gap:3px;
  padding:3px
}
.training-workspace fieldset:first-of-type .option-box {
  border:0;
  background:none;
  color:var(--muted)
}
.training-workspace fieldset:first-of-type .option-box:has(input:checked) {
  background:white;
  color:var(--navy);
  box-shadow:0 1px 3px #102f3b22
}
.training-workspace .form-panel .field {
  margin-bottom:20px
}
@media(max-width:760px) {
  .training-stroke-long {
    display:none
  }
  .training-stroke-short {
    display:inline
  }
  .training-strokes .option-box.choice {
    min-height:39px;
    padding:9px 12px
  }
  .training-workspace .form-panel {
    padding:22px 18px
  }
  .training-workspace .form-panel .field input#training_record_time {
    font-size:22px
  }
  .training-workspace fieldset {
    margin-bottom:22px
  }
}
.competition-detail .race-card {
  position:relative
}
.competition-detail .race-comparison {
  justify-content:flex-start;
  margin:12px 0 16px
}
.competition-detail .race-comparison>span {
  display:none
}
.competition-detail .race-comparison .finish-time {
  font-size:38px
}
.competition-detail .race-card>.result-status {
  position:absolute;
  right:18px;
  top:84px;
  max-width:47%;
  margin:0;
  line-height:1.2
}
.competition-detail .race-card>.result-status.dq-status {
  position:static
}
.competition-detail .race-card>.correct-result {
  display:block;
  text-align:right;
  clear:both;
  margin-top:14px
}
.competition-detail .race-reference .reference-source {
  max-width:230px
}
.race-heading .text-link {
  font-size:11px
}
.race-reference .reference-values {
  min-width:55px
}
.result-status.improved {
  background:#ffd633
}
.competition-detail .race-card {
  display:block
}
.competition-detail .correct-result {
  width:100%;
  border-top:1px solid var(--line)
}
.competition-detail .correct-result summary {
  justify-content:flex-end;
  min-height:28px;
  padding:5px 0;
  font-size:12px
}
.competition-detail .race-reference {
  min-height:52px
}
.competition-detail .race-references {
  margin:0
}
.pb-record-row .record-time {
  display:block
}
.combined-pbs table {
  min-width:900px
}
.combined-pbs th:first-child {
  width:140px
}
.combined-pbs .matrix-cell {
  min-height:83px;
  padding:10px
}
.combined-pbs .matrix-cell strong {
  font-size:23px;
  white-space:nowrap
}
.combined-pbs .matrix-cell small {
  white-space:nowrap;
  text-overflow:ellipsis;
  overflow:hidden;
  font-size:11px
}
.combined-pbs .pool-column {
  font-size:16px;
  color:var(--navy);
  padding:4px 6px 10px
}
.pool-column small {
  font-size:11px;
  font-weight:400;
  color:var(--muted)
}
.combined-pbs .matrix-stroke {
  min-height:83px
}
.combined-pbs td {
  padding-bottom:5px
}
.record-matrix .stroke-dot {
  flex-shrink:0
}
.meet-filters {
  display:flex;
  background:#dfe9ed;
  border-radius:13px;
  padding:3px;
  margin-bottom:22px;
  max-width:450px
}
.meet-filters a {
  flex:1;
  text-align:center;
  padding:11px;
  font-size:13px;
  color:var(--muted);
  border-radius:10px
}
.meet-filters a[aria-current=page] {
  background:white;
  color:var(--navy);
  box-shadow:0 1px 3px #14313d16;
  font-weight:600
}
.mobile-signout {
  display:none
}
@media(max-width:760px) {
  .mobile-signout {
    display:block;
    max-width:680px;
    text-align:right;
    margin:18px auto
  }
  .meet-filters {
    max-width:none
  }
}
.meet-rail .competition-description {
  min-width:0;
  flex:1
}
.meet-rail .competition-description strong {
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.meet-rail .competition-link {
  min-width:0
}
.meet-summary {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:0 0 20px
}
.meet-summary span {
  background:white;
  border-radius:20px;
  padding:7px 12px;
  font-size:12px;
  font-weight:600
}
.meet-summary .improved {
  background:#ffd633;
  color:var(--navy)
}
.matrix-selected {
  outline:2px solid var(--navy);
  outline-offset:-2px
}
.competition-detail>.page-heading {
  margin-bottom:16px
}
.training-comparison-preview{padding:22px;margin-bottom:16px}.training-comparison-preview h2{font-size:13px;color:var(--muted);margin-bottom:14px}.training-comparison-preview>p{font-size:13px;font-weight:600;color:#007795;margin-bottom:12px}.training-comparison-preview>div{padding:18px;border-radius:15px;background:#fff8d9}.training-comparison-preview strong{display:block;font-size:36px;letter-spacing:-1px;margin:6px 0}.training-comparison-preview small{font-size:12px;color:var(--muted)}
@media(min-width:1151px){.training-workspace form{display:grid;grid-template-columns:1fr 1fr;column-gap:14px}.training-workspace form>*{grid-column:1/-1}.training-workspace form>.field:has(input[type=date]){grid-column:1;grid-row:1}.training-workspace form>fieldset:first-of-type{grid-column:2;grid-row:1}.training-workspace .distance-options{grid-template-columns:repeat(7,minmax(0,1fr))}.training-workspace .distance-options .option-box{padding:10px 4px;font-size:13px}.training-workspace .training-preview{display:none}}
@media(max-width:760px){.training-comparison-preview{display:none}}
.progress-pb-source{display:block;color:var(--muted);font-size:13px;margin:-8px 0 18px;line-height:1.4}
@media(min-width:761px){.progress-picker{display:block;margin-bottom:0}.progress-picker button{white-space:normal;justify-content:flex-start}}
