:root {
  --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --text-xs:   clamp(0.75rem,  0.7rem  + 0.25vw, 0.875rem);
  --text-sm:   clamp(0.875rem, 0.8rem  + 0.35vw, 1rem);
  --text-base: clamp(1rem,     0.95rem + 0.25vw, 1.125rem);
  --text-lg:   clamp(1.125rem, 1rem    + 0.75vw, 1.5rem);
  --text-xl:   clamp(1.5rem,   1.2rem  + 1.25vw, 2.25rem);
  --text-2xl:  clamp(2.2rem,   1.4rem  + 2.6vw,  4.2rem);

  --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.25rem;
  --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem; --space-12:3rem; --space-16:4rem;

  /* Brand palette — из лендинга */
  --bg:            #F6F2EA;
  --bg-deep:       #EFE8DE;
  --surface:       rgba(255,255,255,.68);
  --surface-solid: #FFFFFF;
  --surface-2:     rgba(255,255,255,.45);
  --text:          #2B2F33;
  --muted:         #5F646C;
  --faint:         #99938B;
  --border:        #DDD4CA;
  --divider:       rgba(221,212,202,.65);
  --petrol:        #0D7A83;
  --petrol-strong: #095B62;
  --petrol-soft:   rgba(13,122,131,.09);
  --coral:         #E38A72;
  --coral-soft:    #F6E1DA;
  --coral-text:    #C66F58;
  --success:       #4A7B4B;
  --success-soft:  #EBF4EC;
  --error:         #C0392B;
  --error-soft:    #FDECEA;

  --radius-md:  .75rem;
  --radius-lg:  1.35rem;
  --radius-xl:  1.9rem;
  --radius-full:999px;

  --shadow-sm: 0 8px 22px rgba(32,37,40,.06);
  --shadow-md: 0 22px 60px rgba(32,37,40,.12);
  --shadow-lg: 0 32px 80px rgba(32,37,40,.18);

  --sidebar-w: 230px;
  --topbar-h:  60px;
  --transition: .2s ease;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
[hidden]{display:none !important;}
html { -webkit-font-smoothing:antialiased; scroll-behavior:smooth; }

body {
  font-family:var(--font-sans);
  font-size:var(--text-base);
  color:var(--text);
  background:
    radial-gradient(circle at 8% 0%,  rgba(255,255,255,.92), transparent 34%),
    radial-gradient(circle at 86% 8%, rgba(227,138,114,.08), transparent 26%),
    radial-gradient(circle at 72% 20%,rgba(13,122,131,.06),  transparent 28%),
    linear-gradient(180deg, #FCF8F3 0%, #F8F3EC 52%, #F3ECE3 100%);
  background-attachment: fixed;
  min-height:100dvh;
}

a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; height:auto; }
button { cursor:pointer; border:none; background:none; font:inherit; color:inherit; }
ul { list-style:none; }
h1,h2,h3,h4 { line-height:1.15; }

::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--border); border-radius:99px; }

/* ===== BUTTONS ===== */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:56px; padding:0 20px; border-radius:var(--radius-full);
  font-size:var(--text-sm); font-weight:700; border:1px solid transparent;
  transition:var(--transition); white-space:nowrap; cursor:pointer;
}
.btn i { width:15px; height:15px; }
.btn-primary { background:var(--petrol); color:#fff; box-shadow:0 10px 24px rgba(13,122,131,.2); }
.btn-primary:hover { background:var(--petrol-strong); transform:translateY(-1px); }
.btn-primary:active { transform:scale(.98); }
.btn-secondary { background:var(--surface-solid); border-color:var(--border); color:var(--text); }
.btn-secondary:hover { background:var(--bg); }
.btn-danger{color:var(--coral-text);border-color:rgba(185,80,60,.28)}
.btn-danger:hover{background:var(--coral-soft)}
.btn-ghost { color:var(--muted); padding:0 12px; }
.btn-ghost:hover { background:rgba(255,255,255,.55); color:var(--text); }
.btn-strava{padding:0;border:none;background:transparent;box-shadow:none}
.btn-strava:hover{background:transparent;transform:translateY(-1px)}
.btn-strava:focus-visible{outline:2px solid rgba(252,76,2,.35);outline-offset:4px}
.strava-logo{display:block;width:237px;max-width:100%;height:48px}
.btn-sm { min-height:44px; padding:0 14px; font-size:var(--text-xs); }
.btn-full { width:100%; }
.btn:disabled { opacity:.5; pointer-events:none; }

/* ===== GLASS CARD ===== */
.card {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.card-pad { padding:var(--space-6); }
.card-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-5); }
.card-title { font-size:var(--text-base); font-weight:700; letter-spacing:-.01em; }

/* ===== BADGE / CHIP ===== */
.chip { display:inline-flex; align-items:center; padding:4px 10px; border-radius:var(--radius-full); font-size:var(--text-xs); font-weight:700; }
.chip-coral { background:var(--coral-soft); color:var(--coral-text); }
.chip-petrol { background:var(--petrol-soft); color:var(--petrol); }
.chip-success { background:var(--success-soft); color:var(--success); }
.chip-neutral { background:rgba(110,114,122,.1); color:var(--muted); }

/* Eyebrow label */
.eyebrow {
  display:inline-flex; align-items:center; gap:8px; padding:6px 12px;
  border-radius:var(--radius-full); background:rgba(255,255,255,.65);
  border:1px solid var(--border); color:var(--muted);
  font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.08em;
}
.eyebrow::before { content:""; width:7px; height:7px; border-radius:99px; background:var(--coral); box-shadow:0 0 0 5px rgba(227,138,114,.15); }
.hero-slogan{ color:#8B2E2E; margin:2.4rem 0 14px; font-size:clamp(1.9rem, 1.2rem + 1.6vw, 2.95rem) !important; line-height:1.0 !important; letter-spacing:-.03em !important; max-width:13.2ch !important; }
.hero-slogan br{ display:block; }
.hero-brand{ display:block; font-family:var(--font-sans); font-weight:800; text-transform:uppercase; letter-spacing:.01em; margin:0 0 -4px 0; }
.hero-line{ white-space:nowrap; }
.auth-copy.auth-lead-compact{ margin-top:18px !important; }
.hero-subslogan{ color:var(--text); font-size:clamp(1.52rem, 1.22rem + 0.62vw, 2rem); font-weight:700; line-height:1.18; max-width:none; margin-top:3.6rem !important; word-spacing:.56em; }

/* ===== FORMS ===== */
.form-group { margin-bottom:var(--space-4); }
.form-group-tight { margin:0; }
.form-label { display:block; font-size:var(--text-sm); font-weight:600; margin-bottom:.45rem; color:var(--text); }
.form-input {
  width:100%; padding:.75rem 1rem; border:1px solid var(--border);
  border-radius:var(--radius-md); background:rgba(255,255,255,.82);
  font-size:var(--text-sm); font-family:inherit; color:var(--text);
  transition:border-color var(--transition), box-shadow var(--transition);
  outline:none;
}
.form-input:focus { border-color:var(--petrol); box-shadow:0 0 0 3px rgba(13,122,131,.14); }
.form-input::placeholder { color:var(--faint); }
select.form-input { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236E727A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:36px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }
.form-row-single{grid-template-columns:1fr}
.form-row-compact { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
.form-row--cooper{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
.form-row--cooper .form-group{display:flex;flex-direction:column}
.form-row--cooper .form-label{min-height:2.8em;display:flex;align-items:flex-end}
.duration-fields-compact{display:none;grid-template-columns:repeat(3,minmax(0,1fr))}
.time-field{
  font-size:15px;
  font-weight:850;
  letter-spacing:.02em;
  font-variant-numeric:tabular-nums;
}
.race-review-textarea{
  min-height:118px;
  resize:vertical;
  line-height:1.45;
}
.feedback-layout{max-width:860px}
.diagnostics-results{margin-top:var(--space-5)}
.diagnostics-empty,
.diagnostics-summary{
  display:flex;
  align-items:flex-start;
  gap:12px;
  border-radius:var(--radius-md);
  padding:14px 16px;
  border:1px solid var(--border);
  background:var(--surface-2);
}
.diagnostics-empty i,
.diagnostics-summary i{
  width:22px;
  height:22px;
  flex:0 0 auto;
  color:var(--petrol);
}
.diagnostics-empty strong,
.diagnostics-summary strong{
  display:block;
  font-size:var(--text-base);
  color:var(--text);
  margin-bottom:4px;
}
.diagnostics-empty span,
.diagnostics-summary span{
  display:block;
  color:var(--muted);
  line-height:1.45;
}
.diagnostics-summary--good{
  border-color:rgba(44,145,107,.28);
  background:var(--success-soft);
}
.diagnostics-summary--good i{color:var(--success)}
.diagnostics-summary--warn{
  border-color:rgba(228,182,44,.34);
  background:rgba(228,182,44,.12);
}
.diagnostics-summary--warn i{color:#9a6d00}
.diagnostics-summary--bad{
  border-color:rgba(213,94,75,.28);
  background:var(--error-soft);
}
.diagnostics-summary--bad i{color:var(--error)}
.diagnostics-list{display:grid;gap:10px;margin-top:12px}
.diagnostics-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:12px;
  align-items:center;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:#fff;
}
.diagnostics-row--ok{border-color:rgba(44,145,107,.18)}
.diagnostics-row--fail{border-color:rgba(213,94,75,.25);background:rgba(213,94,75,.04)}
.diagnostics-row__main{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.diagnostics-row__main strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text);
}
.diagnostics-method{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  min-height:26px;
  padding:0 8px;
  border-radius:999px;
  background:var(--petrol-soft);
  color:var(--petrol);
  font-size:var(--text-xs);
  font-weight:800;
}
.diagnostics-row__meta{
  display:flex;
  gap:8px;
  color:var(--muted);
  font-size:var(--text-sm);
  white-space:nowrap;
}
.diagnostics-row__status{
  color:var(--muted);
  font-weight:800;
  font-size:var(--text-sm);
  white-space:nowrap;
}
.diagnostics-row--ok .diagnostics-row__status{color:var(--success)}
.diagnostics-row--fail .diagnostics-row__status{color:var(--error)}
.diagnostics-row p{
  grid-column:1 / -1;
  margin:0;
  color:var(--muted);
  font-size:var(--text-sm);
  line-height:1.45;
}
@media (max-width: 640px){
  .diagnostics-row{
    grid-template-columns:1fr auto;
    gap:8px 10px;
    padding:12px;
  }
  .diagnostics-row__main{
    grid-column:1 / -1;
  }
  .diagnostics-row__meta{
    justify-content:flex-start;
  }
  .diagnostics-row__status{
    text-align:right;
  }
}
.feedback-card{width:100%}
.feedback-textarea{min-height:180px;resize:vertical;line-height:1.45}
.feedback-counter{text-align:right}
@media (min-width: 641px){
  #wModal .form-row:has(#wDistKm){
    grid-template-columns:minmax(120px,.58fr) minmax(0,1.42fr);
    align-items:end;
  }
  #wModal .form-row:has(#wDistKm) > .form-group{
    margin-bottom:0;
  }
  #wModal .form-row:has(#wDistKm) .duration-fields-compact{
    align-items:end;
  }
}
.race-plan-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(150px,.85fr);gap:12px;align-items:end}
.race-plan-block{display:grid;gap:6px;min-width:0}
.race-plan-caption{color:var(--muted);font-size:12px;font-weight:800;line-height:1.2}
.race-goal-fields{display:none;grid-template-columns:repeat(3,minmax(0,1fr))}
.race-goal-pace-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.race-result-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(260px,1.25fr);gap:12px;align-items:start}
.manual-race-distance-row{grid-template-columns:minmax(180px,1.25fr) minmax(130px,.95fr)}
.my-race-insight{margin-top:10px;display:grid;gap:10px}
.my-race-insight__label{font-size:15px;font-weight:800;color:var(--text);display:inline-flex;align-items:center;gap:8px}
.my-race-insight__goal-line,
.my-race-insight__pace-line{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.my-race-insight__goal-line strong,
.my-race-insight__pace-line strong{font-variant-numeric:tabular-nums}
.my-race-insight__label i{width:16px;height:16px;color:var(--petrol)}
.my-race-insight__splits{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:flex-start}
.my-race-insight__split{display:inline-grid;grid-template-columns:auto auto;grid-template-areas:"label time";gap:5px;align-items:center;padding:0;text-align:left;justify-items:start}
.my-race-insight__split-head{grid-area:label;display:flex;align-items:center;justify-content:flex-start;gap:4px;font-size:11px;font-weight:800;color:var(--petrol)}
.my-race-insight__split-head i{width:12px;height:12px}
.my-race-insight__split strong{grid-area:time;font-size:9px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.my-race-insight__comparison{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:rgba(1,105,111,.08);color:var(--petrol);font-size:11px;font-weight:800;line-height:1.15}
.my-race-insight__summary{display:grid;grid-template-columns:1fr;gap:10px;align-items:start;padding:10px 12px;border:1px solid rgba(13,122,131,.14);border-left:4px solid rgba(13,122,131,.58);border-radius:12px;background:linear-gradient(135deg, rgba(232,248,247,.82), rgba(255,255,255,.70));box-shadow:0 8px 18px rgba(13,122,131,.05)}
.my-race-insight__forecast{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;justify-self:end;align-self:start}
.my-race-insight__forecast-prefix{font-size:16px;font-weight:900;color:var(--text);display:inline-flex;align-items:center;gap:8px}
.my-race-insight__forecast-word{font-size:15px;font-weight:700;color:var(--text)}
.my-race-insight__forecast-brand-text{font-size:15px;font-weight:900;letter-spacing:.06em;color:var(--petrol)}
.my-race-insight__forecast-brand img{width:24px;height:24px;object-fit:contain;display:block}
.my-race-insight__forecast strong{font-size:15px;font-weight:800;color:var(--text)}
.my-race-insight__forecast-value{display:inline-flex;align-items:center;position:relative;padding-right:26px}
.my-race-insight__assessment{text-align:left;display:grid;gap:4px;align-content:start;justify-items:start}
.my-race-insight__assessment-title{font-size:15px;font-weight:900}
.my-race-insight__assessment-detail{font-size:15px;line-height:1.4;display:inline-flex;align-items:center;gap:8px}
.my-race-insight__assessment-detail strong{font-size:15px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.my-race-insight__assessment--very-aggressive .my-race-insight__assessment-title,
.my-race-insight__assessment--very-aggressive .my-race-insight__assessment-detail{color:#a9472d}
.my-race-insight__summary:has(.my-race-insight__assessment--very-aggressive){border-left-color:#c85a38;background:linear-gradient(135deg, rgba(255,241,238,.88), rgba(255,255,255,.72))}
.my-race-insight__assessment--aggressive .my-race-insight__assessment-title,
.my-race-insight__assessment--aggressive .my-race-insight__assessment-detail{color:#b65b2a}
.my-race-insight__summary:has(.my-race-insight__assessment--aggressive){border-left-color:#d9822f;background:linear-gradient(135deg, rgba(255,245,232,.90), rgba(255,255,255,.72))}
.my-race-insight__assessment--slightly-ambitious .my-race-insight__assessment-title,
.my-race-insight__assessment--slightly-ambitious .my-race-insight__assessment-detail{color:#b98600}
.my-race-insight__summary:has(.my-race-insight__assessment--slightly-ambitious){border-left-color:#d4a21f;background:linear-gradient(135deg, rgba(255,249,225,.90), rgba(255,255,255,.72))}
.my-race-insight__assessment--realistic .my-race-insight__assessment-title,
.my-race-insight__assessment--realistic .my-race-insight__assessment-detail{color:#1b7f50}
.my-race-insight__summary:has(.my-race-insight__assessment--realistic){border-left-color:#2b9a62;background:linear-gradient(135deg, rgba(232,248,239,.90), rgba(255,255,255,.72))}
.my-race-insight__assessment--cautious .my-race-insight__assessment-title,
.my-race-insight__assessment--cautious .my-race-insight__assessment-detail{color:#6b7f2a}
.my-race-insight__summary:has(.my-race-insight__assessment--cautious){border-left-color:#9cab35;background:linear-gradient(135deg, rgba(248,250,229,.90), rgba(255,255,255,.72))}
.my-race-insight__assessment--conservative .my-race-insight__assessment-title,
.my-race-insight__assessment--conservative .my-race-insight__assessment-detail{color:#1b7f50}
.my-race-insight__summary:has(.my-race-insight__assessment--conservative){border-left-color:#2b9a62;background:linear-gradient(135deg, rgba(232,248,239,.90), rgba(255,255,255,.72))}
.my-race-insight--empty{
  gap:7px;
}
.my-race-insight__empty-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 10px;
  border:1px solid rgba(13,122,131,.12);
  border-radius:12px;
  background:rgba(255,255,255,.60);
}
.my-race-insight__empty-head div{
  display:grid;
  gap:3px;
  min-width:0;
}
.my-race-insight__empty-head strong{
  color:var(--text);
  font-size:14px;
  line-height:1.15;
}
.my-race-insight__empty-action{
  min-height:34px;
  padding:0 11px;
  flex:0 0 auto;
}
.my-race-insight__placeholder-value{
  color:var(--faint);
}
.my-race-insight--empty .my-race-insight__comparison{
  background:rgba(110,114,122,.08);
  color:var(--muted);
}
.my-race-insight--empty .my-race-insight__forecast{
  justify-self:start;
}
.my-race-insight__forecast--empty{
  justify-self:start;
  justify-content:flex-start;
  text-align:left;
}
.my-race-outcome{
  display:grid;
  gap:8px;
  align-items:stretch;
  margin-top:10px;
  padding:10px 12px;
  border:1px solid rgba(74,123,75,.18);
  border-left:4px solid rgba(74,123,75,.62);
  border-radius:12px;
  background:linear-gradient(135deg, rgba(235,244,236,.88), rgba(255,255,255,.72));
}
.my-race-outcome--pending{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-color:rgba(212,162,31,.24);
  border-left-color:#d4a21f;
  background:linear-gradient(135deg, rgba(255,249,225,.88), rgba(255,255,255,.72));
}
.my-race-outcome__action{
  flex:0 0 auto;
}
.my-race-outcome--neutral{
  border-color:rgba(110,114,122,.18);
  border-left-color:rgba(110,114,122,.52);
  background:linear-gradient(135deg, rgba(246,248,248,.88), rgba(255,255,255,.72));
}
.my-race-outcome span{
  color:var(--muted);
  font-size:11px;
  line-height:1.1;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.my-race-outcome strong{
  display:block;
  margin-top:3px;
  color:var(--text);
  font-size:17px;
  line-height:1.12;
  font-weight:950;
}
.my-race-outcome em{
  display:block;
  margin-top:2px;
  color:var(--success);
  font-size:12px;
  font-style:normal;
  font-weight:900;
}
.my-race-outcome p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.3;
}
.my-race-outcome__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.my-race-outcome__head p{
  max-width:50%;
  text-align:right;
}
.my-race-outcome__verdict{
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr);
  align-items:center;
  gap:6px;
  min-width:0;
}
.my-race-outcome__verdict i{
  width:15px;
  height:15px;
  color:var(--success);
}
.my-race-outcome__verdict span{
  color:var(--muted);
  font-size:10px;
}
.my-race-outcome__verdict strong{
  margin-top:0;
  min-width:0;
  overflow-wrap:anywhere;
  color:#2e6f43;
  font-size:15px;
}
.my-race-outcome__verdict--worse i,
.my-race-outcome__verdict--worse strong{
  color:var(--coral-text);
}
.my-race-outcome__verdict--neutral i,
.my-race-outcome__verdict--neutral strong{
  color:var(--petrol);
}
.my-race-outcome__metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.my-race-outcome__metrics--4{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.my-race-outcome__metric{
  min-width:0;
  padding:8px 9px;
  border:1px solid rgba(74,123,75,.12);
  border-radius:10px;
  background:rgba(255,255,255,.62);
}
.my-race-outcome__metric span{
  display:block;
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.my-race-outcome__metric strong{
  display:block;
  margin-top:4px;
  color:var(--text);
  font-size:15px;
  line-height:1.1;
  font-weight:950;
  font-variant-numeric:tabular-nums;
}
.my-race-outcome__metric em{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-style:normal;
  font-weight:850;
}
.my-race-outcome__metric--better strong,
.my-race-outcome__metric--better em{
  color:var(--success);
}
.my-race-outcome__metric--worse strong,
.my-race-outcome__metric--worse em{
  color:var(--coral-text);
}
.my-race-outcome p.my-race-outcome__note{
  margin:0;
}
.race-recovery-signal{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:start;
  gap:9px;
  padding:9px 10px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:11px;
  background:linear-gradient(135deg, rgba(232,248,247,.82), rgba(255,255,255,.70));
}
.race-recovery-signal > i{
  width:34px;
  height:34px;
  padding:8px;
  border-radius:11px;
  background:rgba(13,122,131,.10);
  color:var(--petrol);
}
.race-recovery-signal__label,
.my-race-outcome .race-recovery-signal__label{
  display:block;
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.race-recovery-signal strong,
.my-race-outcome .race-recovery-signal strong,
.dashboard-post-race .race-recovery-signal strong{
  display:block;
  margin-top:3px;
  color:var(--petrol);
  font-size:14px;
  line-height:1.18;
  font-weight:950;
}
.race-recovery-signal p,
.my-race-outcome .race-recovery-signal p,
.dashboard-post-race .race-recovery-signal p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.3;
}
.race-recovery-signal--medium{
  border-color:rgba(212,162,31,.22);
  background:linear-gradient(135deg, rgba(255,249,225,.82), rgba(255,255,255,.70));
}
.race-recovery-signal--medium > i{
  background:rgba(212,162,31,.14);
  color:#9a6d00;
}
.race-recovery-signal--medium strong,
.my-race-outcome .race-recovery-signal--medium strong,
.dashboard-post-race .race-recovery-signal--medium strong{
  color:#9a6d00;
}
.race-recovery-signal--long{
  border-color:rgba(195,103,61,.22);
  background:linear-gradient(135deg, rgba(255,245,232,.84), rgba(255,255,255,.70));
}
.race-recovery-signal--long > i{
  background:rgba(195,103,61,.13);
  color:#a9472d;
}
.race-recovery-signal--long strong,
.my-race-outcome .race-recovery-signal--long strong,
.dashboard-post-race .race-recovery-signal--long strong{
  color:#a9472d;
}
.race-post-review{
  display:grid;
  gap:5px;
  min-width:0;
  padding:9px 10px;
  border:1px solid rgba(13,122,131,.12);
  border-radius:11px;
  background:rgba(255,255,255,.62);
  text-align:left;
}
.race-post-review__head{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--petrol);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.race-post-review__head i{
  width:13px;
  height:13px;
}
.race-post-review p,
.my-race-outcome .race-post-review p,
.dashboard-post-race .race-post-review p{
  margin:0;
  color:var(--text);
  font-size:13px;
  line-height:1.35;
}
.race-post-review--empty{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:7px;
  width:max-content;
  max-width:100%;
  color:var(--petrol);
  font-family:inherit;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  transition:var(--transition);
}
.race-post-review--empty i{
  width:15px;
  height:15px;
}
.race-post-review--empty:hover,
.race-post-review--empty:focus-visible{
  border-color:rgba(13,122,131,.28);
  background:rgba(232,248,247,.78);
  box-shadow:0 8px 18px rgba(13,122,131,.08);
}
.race-post-review--compact{
  width:100%;
}

.race-next-step{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  padding:10px 12px;
  border:1px solid rgba(13,122,131,.12);
  border-radius:11px;
  background:rgba(232,248,247,.58);
}
.race-next-step--season{
  border-color:rgba(212,162,31,.22);
  background:rgba(255,249,225,.72);
}
.race-next-step div{
  min-width:0;
}
.race-next-step span{
  display:block;
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.race-next-step strong,
.my-race-outcome .race-next-step strong{
  margin-top:3px;
  color:var(--petrol-strong);
  font-size:14px;
  line-height:1.15;
}
.race-next-step--season strong,
.my-race-outcome .race-next-step--season strong{
  color:#9a6d00;
}
.race-next-step p,
.my-race-outcome .race-next-step p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.25;
}
.race-next-step .btn{
  flex:0 0 auto;
}
.my-race-photo-action{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  min-width:0;
  padding:9px 10px;
  border:1px solid rgba(13,122,131,.13);
  border-radius:11px;
  background:rgba(255,255,255,.66);
}
.my-race-photo-action__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:34px;
  padding:7px 11px;
  border:1px solid rgba(13,122,131,.20);
  border-radius:10px;
  color:var(--petrol-strong);
  background:rgba(232,248,247,.78);
  font-size:12px;
  font-weight:950;
  text-decoration:none;
  transition:var(--transition);
  white-space:nowrap;
}
.my-race-photo-action__button:hover,
.my-race-photo-action__button:focus-visible{
  border-color:rgba(13,122,131,.36);
  background:rgba(232,248,247,.95);
  box-shadow:0 8px 18px rgba(13,122,131,.08);
}
.my-race-photo-action__button i{
  width:15px;
  height:15px;
}
@media (min-width: 900px){
  .my-race-outcome:not(.my-race-outcome--pending):not(.my-race-outcome--neutral){
    grid-template-columns:minmax(0,1fr) minmax(180px,.85fr);
  }
  .my-race-outcome:not(.my-race-outcome--pending):not(.my-race-outcome--neutral) .my-race-outcome__verdict{
    grid-column:1;
  }
  .my-race-outcome:not(.my-race-outcome--pending):not(.my-race-outcome--neutral) > .race-post-review{
    grid-column:2;
    grid-row:1;
  }
  .my-race-outcome:not(.my-race-outcome--pending):not(.my-race-outcome--neutral) .my-race-outcome__metrics,
  .my-race-outcome:not(.my-race-outcome--pending):not(.my-race-outcome--neutral) > .race-recovery-signal,
  .my-race-outcome:not(.my-race-outcome--pending):not(.my-race-outcome--neutral) > .race-next-step{
    grid-column:1 / -1;
  }
}
.form-hint { font-size:var(--text-xs); color:var(--muted); margin-top:.3rem; }
.workout-date-mobile{display:none}
.manual-race-date-mobile{display:none}
.cooper-date-mobile{display:none}
.diagnostic-date-mobile{display:none}
.field-attention{
  border-color:var(--petrol) !important;
  box-shadow:0 0 0 4px rgba(13,122,131,.16) !important;
  background:rgba(255,255,255,.96);
}

/* ===== ALERT ===== */
.alert { display:flex; align-items:center; gap:.5rem; padding:.75rem 1rem; border-radius:var(--radius-md); font-size:var(--text-sm); margin-bottom:var(--space-4); }
.alert i { width:15px; height:15px; flex-shrink:0; }
.alert-error   { background:var(--error-soft);   color:var(--error); }
.alert-success { background:var(--success-soft); color:var(--success); }

/* Spinner */
.spinner { width:16px; height:16px; border:2px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:spin .7s linear infinite; }
.spinner-white{border-top-color:#fff}
.icon-spin { animation:spin 1s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

/* Skeleton */
.skeleton { background:linear-gradient(90deg,rgba(221,212,202,.6) 25%,rgba(255,255,255,.7) 50%,rgba(221,212,202,.6) 75%); background-size:200% 100%; animation:shimmer 1.6s ease-in-out infinite; border-radius:var(--radius-md); }
.skeleton-kpi { height:2rem; margin-top:6px; }
.skeleton-kpi-xs { width:56px; }
.skeleton-kpi-sm { width:60px; }
.skeleton-kpi-md { width:80px; }
@keyframes shimmer { 0%{background-position:-200% 0}100%{background-position:200% 0} }

/* ===== AUTH ===== */
.auth-wrap {
  min-height:100dvh; display:flex; align-items:center; justify-content:center;
  padding:var(--space-4);
}
.auth-stage {
  position:relative;
  width:100%;
  max-width:1040px;
  display:grid;
  grid-template-columns: 1.02fr .98fr;
  gap:var(--space-10);
  align-items:center;
}
.auth-device-shell {
  position:relative;
  margin-left:auto;
  width:min(100%,465px);
  background:linear-gradient(180deg,#4A4F55 0%, #363B41 100%);
  padding:14px;
  border-radius:38px;
  box-shadow:var(--shadow-md);
}
.auth-device-screen {
  min-height:560px;
  border-radius:28px;
  overflow:hidden;
  background:linear-gradient(180deg,#FCF8F3 0%, #F4EEE5 100%);
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  padding:12px var(--space-6) var(--space-6);
}
.auth-device-glow{ display:none !important; }
.auth-stage::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("../img/logoYellow.png");
  background-repeat:no-repeat;
  background-position:center calc(50% + 32px);
  background-size:min(78vw,980px) auto;
  opacity:.07;
  filter:grayscale(1) contrast(.9);
  pointer-events:none;
  z-index:0;
}
.auth-device-shell, .auth-marketing{ position:relative; z-index:1; }

@media(max-width:900px){
  .auth-stage::before{ display:none; }
  .auth-stage { grid-template-columns:1fr; max-width:420px; }
  .auth-device-glow { display:none; }
  .auth-device-shell {
    display:block;
    width:100%;
    max-width:420px;
    margin:0 auto;
    padding:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .auth-device-screen {
    min-height:auto;
    padding:0;
    background:transparent;
    border-radius:0;
  }
  .auth-card{ display:block !important; }
}
.auth-card {
  width:100%; max-width:400px;
  background:transparent;
  border:none;
  border-radius:var(--radius-xl);
  padding:var(--space-8);
  box-shadow:none;
  backdrop-filter:blur(18px);
}
.auth-logo { display:flex; justify-content:center; margin-bottom:var(--space-4); padding:0 0 var(--space-2); }
.auth-logo img { height:280px; width:auto; max-width:100%; object-fit:contain; background:transparent !important; }
.auth-tabs { display:flex; gap:2px; background:rgba(221,212,202,.4); border-radius:var(--radius-full); padding:3px; margin-bottom:var(--space-6); }
.auth-tab { flex:1; padding:.5rem; border-radius:var(--radius-full); font-size:var(--text-sm); font-weight:700; text-align:center; cursor:pointer; transition:var(--transition); color:var(--muted); }
.auth-tab.active { background:var(--surface-solid); color:var(--text); box-shadow:var(--shadow-sm); }
.login-actions-row{display:flex;justify-content:flex-end;margin-top:8px}
.forgot-link{font-size:.82rem;color:var(--petrol);text-decoration:underline;text-underline-offset:2px}
.auth-marketing-shell{display:flex;flex-direction:column;gap:var(--space-6);padding-top:clamp(120px,18vh,230px)}
.auth-marketing-copy{max-width:420px}

/* ===== APP LAYOUT ===== */
.app { display:flex; min-height:100dvh; }
.topbar-left{display:flex;align-items:center;gap:.75rem}
.card-section-gap{margin-bottom:var(--space-6)}
.card-title-gap{margin-bottom:var(--space-4)}

.main{
  min-width:0;
  width:100%;
  height:100dvh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.sidebar {
  width:var(--sidebar-w); min-width:var(--sidebar-w);
  position:sticky; top:0; height:100dvh;
  background:rgba(248,243,236,.88);
  border-right:1px solid var(--border);
  backdrop-filter:blur(16px);
  display:flex; flex-direction:column;
  z-index:100; transition:transform var(--transition);
}
.sidebar-head {
  padding:var(--space-5) var(--space-5) var(--space-4);
  border-bottom:1px solid var(--divider);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.sidebar-home {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  background:transparent;
  border:0;
  padding:0;
  cursor:pointer;
}
.sidebar-home:hover { opacity:.92; }
.sidebar-logo { height:144px; width:auto; }

.sidebar-nav { flex:1; padding:var(--space-4) var(--space-3); overflow-y:auto; }
.nav-section { margin-bottom:var(--space-5); }
.nav-label {
  font-size:var(--text-xs); font-weight:700; letter-spacing:.09em;
  text-transform:uppercase; color:var(--faint); padding:0 var(--space-3);
  margin-bottom:.4rem;
}
.nav-item {
  display:flex; align-items:center; gap:.65rem;
  padding:.5rem var(--space-3); border-radius:var(--radius-lg);
  font-size:var(--text-sm); font-weight:500; color:var(--muted);
  cursor:pointer; transition:var(--transition); margin-bottom:2px;
  width:100%; text-align:left;
}
.nav-item i { width:16px; height:16px; flex-shrink:0; }
.nav-item:hover { background:rgba(255,255,255,.6); color:var(--text); }
.nav-item.active { background:rgba(255,255,255,.78); color:var(--petrol); font-weight:700; box-shadow:var(--shadow-sm); }

.sidebar-foot {
  padding:var(--space-4) var(--space-3);
  border-top:1px solid var(--divider);
}
.user-row {
  display:flex; align-items:center; gap:.75rem;
  padding:.5rem var(--space-3); border-radius:var(--radius-lg);
  cursor:pointer; transition:var(--transition);
}
.user-row:hover { background:rgba(255,255,255,.6); }
.avatar {
  width:38px; height:38px; border-radius:var(--radius-full);
  background:linear-gradient(135deg,var(--petrol),var(--coral));
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:var(--text-xs); color:#fff; flex-shrink:0;
}
.user-info { flex:1; min-width:0; }
.user-name { font-size:var(--text-sm); font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-email { font-size:var(--text-xs); color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Main */
.main {
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  position:relative;
  isolation:isolate;
}

.main::before {
  content:"";
  position:absolute;
  inset:0;
  background-image:url("../img/logoYellow.png?v=20260502b");
  background-repeat:no-repeat;
  background-position:center calc(50% + 60px);
  background-size:clamp(470px, 62%, 980px) auto;
  opacity:.08;
  pointer-events:none;
  z-index:0;
}

.topbar {
  height:var(--topbar-h); padding:0 var(--space-8);
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid var(--divider);
  background:rgba(248,243,236,.72);
  backdrop-filter:blur(16px);
  position:sticky; top:0; z-index:50;
}
.topbar-title { font-size:var(--text-lg); font-weight:800; letter-spacing:-.02em; }
.topbar-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-right { display:flex; align-items:center; gap:.5rem; }
.icon-btn { width:34px; height:34px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; color:var(--muted); transition:var(--transition); cursor:pointer; }
.icon-btn:hover { background:rgba(255,255,255,.7); color:var(--text); }
.icon-btn i { width:16px; height:16px; }

.topbar,
.content {
  position:relative;
  z-index:1;
}

.content {
  flex:1;
  width:100%;
  padding:var(--space-8);
  max-width:1140px;
  margin:0 auto;
  overflow-y:auto;
  scrollbar-gutter:stable;
}

/* Pages */
.page { display:none; animation:fadeUp .18s ease; }
.page.active { display:block; }
@keyframes fadeUp { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:translateY(0)} }

/* ===== DASHBOARD ===== */
.dashboard-hero{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);
  gap:var(--space-6);
  align-items:stretch;
  margin-bottom:var(--space-6);
}
.dashboard-hero__copy{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-width:0;
}
.dashboard-hero__title{
  margin-top:var(--space-4);
  font-size:clamp(1.55rem,1.2rem + 1vw,2.35rem);
  line-height:1.02;
  letter-spacing:0;
}
.dashboard-hero__meta{
  margin-top:var(--space-3);
  max-width:56ch;
  color:var(--muted);
  font-size:var(--text-sm);
  line-height:1.45;
}
.dashboard-hero__meta span{
  display:block;
}
.dashboard-hero__meta span + span{
  margin-top:4px;
}
.dashboard-hero__countdown{
  display:inline-flex !important;
  align-items:baseline;
  gap:5px;
  color:var(--muted);
}
.dashboard-hero__countdown-label{
  display:inline !important;
}
.dashboard-hero__countdown-value{
  display:inline !important;
  color:var(--petrol);
  font-size:1.08em;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
.dashboard-hero__countdown-unit{
  display:inline !important;
  font-weight:800;
}
.dashboard-hero__countdown.is-active .dashboard-hero__countdown-value{
  color:#0d7a83;
}
.dashboard-hero__countdown.is-warm .dashboard-hero__countdown-value{
  color:#b98600;
  font-size:1.14em;
}
.dashboard-hero__countdown.is-hot .dashboard-hero__countdown-value{
  color:var(--coral-text);
  font-size:1.2em;
}
.dashboard-hero__race-meta{
  display:inline !important;
}
.dashboard-hero__side{
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
}
.dashboard-onboarding{
  margin-bottom:var(--space-6);
}
.dashboard-onboarding__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:var(--space-5);
  align-items:start;
  margin-bottom:var(--space-5);
}
.dashboard-onboarding__head h2{
  font-size:var(--text-lg);
  letter-spacing:0;
  margin-bottom:6px;
}
.dashboard-onboarding__head p{
  max-width:70ch;
  font-size:var(--text-sm);
  line-height:1.5;
  color:var(--muted);
}
.dashboard-onboarding__progress{
  min-width:58px;
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  border-radius:var(--radius-full);
  background:var(--petrol-soft);
  color:var(--petrol-strong);
  font-size:var(--text-sm);
  font-weight:800;
}
.dashboard-onboarding__steps{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.dashboard-onboarding-step{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  min-width:0;
  padding:14px;
  border:1px solid var(--divider);
  border-radius:16px;
  background:rgba(255,255,255,.54);
}
.dashboard-onboarding-step__status{
  width:36px;
  height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:var(--radius-full);
  background:var(--surface-solid);
  color:var(--petrol);
  border:1px solid rgba(13,122,131,.16);
}
.dashboard-onboarding-step__status i{
  width:17px;
  height:17px;
}
.dashboard-onboarding-step__body{
  display:grid;
  gap:3px;
  min-width:0;
}
.dashboard-onboarding-step__body strong{
  font-size:var(--text-sm);
  line-height:1.25;
}
.dashboard-onboarding-step__body span{
  font-size:var(--text-xs);
  line-height:1.35;
  color:var(--muted);
}
.dashboard-onboarding-step.is-done{
  background:rgba(235,244,236,.66);
  border-color:rgba(74,123,75,.22);
}
.dashboard-onboarding-step.is-done .dashboard-onboarding-step__status{
  background:var(--success-soft);
  border-color:rgba(74,123,75,.18);
  color:var(--success);
}
.dashboard-onboarding-step.is-done .btn:disabled{
  opacity:1;
  color:var(--success);
  border-color:rgba(74,123,75,.22);
  background:var(--success-soft);
}
.dashboard-onboarding__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:var(--space-5);
}

/* ===== SEASON PROTOTYPE ===== */
.season-prototype-hero{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);
  gap:var(--space-6);
  align-items:end;
  margin-bottom:var(--space-6);
  background:linear-gradient(135deg, rgba(232,248,247,.88), rgba(255,252,240,.78));
}
.season-kicker{
  color:var(--petrol);
  font-size:var(--text-xs);
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.season-prototype-hero h2{
  font-size:clamp(1.6rem,1.1rem + 1.5vw,2.5rem);
  line-height:1.05;
  margin-bottom:10px;
}
.season-prototype-hero p{
  max-width:64ch;
  color:var(--muted);
  line-height:1.5;
}
.season-hero-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.season-hero-stats div,
.season-primary-meta div{
  min-width:0;
  display:grid;
  gap:3px;
  padding:12px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:12px;
  background:rgba(255,255,255,.72);
}
.season-hero-stats strong,
.season-primary-meta strong{
  min-width:0;
  color:var(--text);
  font-size:clamp(15px,1.6vw,20px);
  line-height:1.08;
  font-weight:900;
  overflow-wrap:anywhere;
}
.season-hero-stats span,
.season-primary-meta span,
.season-panel__head span{
  color:var(--muted);
  font-size:var(--text-xs);
  font-weight:800;
}
.season-dashboard-preview{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);
  gap:var(--space-5);
  align-items:stretch;
  margin-bottom:var(--space-5);
  border-color:rgba(13,122,131,.18);
  background:linear-gradient(135deg, rgba(255,255,255,.76), rgba(232,248,247,.78));
}
.season-dashboard-preview__main{
  display:grid;
  align-content:center;
  gap:8px;
}
.season-dashboard-preview__main h3{
  font-size:clamp(1.25rem,1rem + .8vw,1.8rem);
  line-height:1.12;
}
.season-dashboard-preview__main p{
  color:var(--muted);
  line-height:1.45;
}
.season-dashboard-preview__cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.season-dashboard-preview__cards div{
  display:grid;
  align-content:center;
  gap:8px;
  min-height:92px;
  padding:12px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:14px;
  background:rgba(255,255,255,.74);
}
.season-dashboard-preview__cards span{
  color:var(--muted);
  font-size:var(--text-xs);
  font-weight:800;
}
.season-dashboard-preview__cards strong{
  color:var(--text);
  font-size:15px;
  line-height:1.15;
}
.season-section-label{
  margin:var(--space-5) 0 var(--space-3);
  color:var(--muted);
  font-size:var(--text-xs);
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.season-prototype-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:var(--space-6);
}
.season-panel{
  display:grid;
  gap:14px;
  align-content:start;
}
.season-panel--wide{
  grid-column:1 / -1;
}
.season-panel__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.season-panel__head h3{
  font-size:var(--text-lg);
  line-height:1.2;
  margin-top:4px;
}
.season-panel__head i{
  width:24px;
  height:24px;
  color:var(--petrol);
}
.season-panel p{
  color:var(--muted);
  line-height:1.45;
}
.season-primary-meta{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(92px,1fr));
  gap:10px;
}
.season-panel--primary .season-primary-meta{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.season-panel--primary .season-primary-meta div:nth-child(3){
  grid-column:1 / -1;
}
.season-panel--primary .season-primary-meta strong{
  white-space:normal;
  word-break:break-word;
}
.season-race-options{
  display:grid;
  gap:8px;
}
.season-race-option{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  padding:10px 12px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:12px;
  background:rgba(255,255,255,.66);
  color:var(--text);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.season-race-option span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:800;
}
.season-race-option strong{
  color:var(--petrol);
  white-space:nowrap;
}
.season-race-option.is-active{
  border-color:rgba(13,122,131,.34);
  background:rgba(232,248,247,.94);
  box-shadow:0 8px 18px rgba(13,122,131,.08);
}
.season-phase-strip{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:8px;
}
.season-phase{
  display:grid;
  gap:7px;
  min-width:0;
}
.season-phase span{
  height:8px;
  border-radius:999px;
  background:rgba(110,114,122,.16);
}
.season-phase strong{
  color:var(--muted);
  font-size:11px;
  line-height:1.2;
}
.season-phase.is-active span{
  background:linear-gradient(90deg,var(--petrol),var(--coral));
}
.season-phase.is-active strong{
  color:var(--text);
}
.season-progress{
  height:10px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(110,114,122,.13);
}
.season-progress span{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,var(--petrol),var(--coral));
}
.season-week-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  align-items:baseline;
}
.season-week-detail{
  padding-top:2px;
}
.season-subhead{
  color:var(--text);
  font-size:13px;
  font-weight:900;
  margin-top:2px;
}
.season-next-inline{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-top:4px;
  padding:12px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:12px;
  background:rgba(232,248,247,.62);
}
.season-next-inline div{
  display:grid;
  gap:4px;
  min-width:0;
}
.season-next-inline span{
  color:var(--muted);
  font-size:var(--text-xs);
  font-weight:900;
  text-transform:uppercase;
}
.season-next-inline strong{
  color:var(--text);
  font-size:15px;
  line-height:1.2;
}
.season-next-inline p{
  margin:0;
  font-size:12px;
  line-height:1.35;
}
.season-week-meta strong{
  font-size:20px;
}
.season-week-meta span{
  color:var(--muted);
  font-size:var(--text-xs);
  font-weight:800;
}
.season-panel--next{
  border-color:rgba(13,122,131,.22);
  background:linear-gradient(135deg, rgba(232,248,247,.78), rgba(255,255,255,.70));
}
.season-timeline{
  display:grid;
  gap:12px;
}
.season-timeline__group{
  display:grid;
  gap:8px;
}
.season-timeline__group-title{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.season-timeline__group-title i{
  width:14px;
  height:14px;
}
.season-timeline__list{
  display:grid;
  gap:8px;
}
.season-timeline__item{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:10px 12px;
  border:1px solid rgba(13,122,131,.10);
  border-radius:12px;
  background:rgba(255,255,255,.62);
}
.season-timeline__item.is-primary{
  border-color:rgba(212,162,31,.36);
  background:linear-gradient(135deg, rgba(255,249,225,.82), rgba(255,255,255,.68));
  box-shadow:0 10px 22px rgba(212,162,31,.08);
}
.season-timeline__item.is-past{
  border-color:rgba(74,123,75,.16);
  background:rgba(247,251,248,.72);
}
.season-timeline__item--link{
  color:inherit;
  text-decoration:none;
  cursor:pointer;
}
.season-timeline__item--link:hover,
.season-timeline__item--link:focus-visible{
  border-color:rgba(13,122,131,.24);
  background:rgba(232,248,247,.78);
}
.season-timeline__item--link:hover strong,
.season-timeline__item--link:focus-visible strong{
  color:var(--petrol);
}
.season-timeline__dot{
  display:flex;
  align-items:center;
  justify-content:center;
  width:12px;
  height:12px;
  margin-top:4px;
  border-radius:999px;
  background:var(--petrol);
}
.season-timeline__dot i{
  width:10px;
  height:10px;
  color:#fff;
  stroke-width:3;
}
.season-timeline__item.is-past .season-timeline__dot{
  background:var(--success);
}
.season-timeline__dot--primary{
  width:18px;
  height:18px;
  margin-top:1px;
  background:#d4a21f;
}
.season-timeline__dot--done{
  width:17px;
  height:17px;
  margin-top:1px;
  color:#fff;
}
.season-timeline__dot--done i{
  width:11px;
  height:11px;
  stroke-width:3.2;
}
.season-timeline__item.is-near .season-timeline__dot{
  background:var(--coral);
}
.season-timeline__body{
  display:grid;
  gap:4px;
  min-width:0;
}
.season-timeline__title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}
.season-timeline__item strong{
  display:block;
  min-width:0;
  overflow-wrap:anywhere;
}
.season-timeline__meta-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
}
.season-timeline__meta-row .status-chip{
  justify-self:end;
  padding:3px 8px;
  font-size:10px;
}
.season-timeline__meta-row > span,
.season-prototype-empty{
  min-width:0;
  overflow:hidden;
  color:var(--muted);
  font-size:var(--text-sm);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.season-timeline__primary-chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  flex:0 0 auto;
  padding:3px 7px;
  border:1px solid rgba(212,162,31,.28);
  border-radius:999px;
  background:rgba(255,249,225,.92);
  color:#8b6207;
  font-size:10px;
  line-height:1.1;
  font-style:normal;
  font-weight:900;
  white-space:nowrap;
}
.season-timeline__primary-chip i{
  width:11px;
  height:11px;
}
.season-timeline__fact{
  display:inline-flex;
  justify-self:end;
  color:var(--success);
  font-size:12px;
  font-style:normal;
  font-weight:900;
  white-space:nowrap;
}
.season-timeline__fact--muted{
  color:var(--muted);
}
.season-current-dashboard-note{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-4);
  margin-top:var(--space-3);
}
.season-current-dashboard-note div{
  display:grid;
  gap:5px;
}
.season-current-dashboard-note span{
  color:var(--muted);
  font-size:var(--text-sm);
}
.season-clean-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,340px);
  gap:var(--space-5);
  align-items:stretch;
  margin-bottom:var(--space-5);
}
.season-clean-user-title{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px 12px;
}
.season-clean-user-title small{
  color:var(--muted);
  font-size:var(--text-sm);
  font-weight:800;
}
.season-clean-hero__main,
.season-clean-now,
.season-clean-summary,
.season-clean-panel{
  border:1px solid rgba(13,122,131,.14);
  border-radius:var(--radius-lg);
  background:rgba(255,255,255,.84);
  box-shadow:var(--shadow-sm);
}
.season-clean-hero__main{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:10px;
  align-content:stretch;
  min-width:0;
  min-height:178px;
  padding:14px 24px 20px 46px;
  background:linear-gradient(135deg, rgba(232,248,247,.88), rgba(255,252,240,.76));
  color:inherit;
  text-decoration:none;
  cursor:pointer;
}
.season-clean-hero__main--static{
  cursor:default;
}
.season-clean-hero__main:hover{
  border-color:rgba(13,122,131,.24);
  box-shadow:0 10px 26px rgba(13,122,131,.08);
}
.season-clean-hero__main--static:hover{
  border-color:rgba(13,122,131,.14);
  box-shadow:var(--shadow-sm);
}
.season-clean-hero__kicker{
  align-self:start;
  margin-bottom:0;
  color:var(--coral-text);
  font-size:14px;
}
.season-clean-hero__content{
  display:grid;
  align-self:end;
  gap:11px;
  min-width:0;
}
.season-clean-hero__main h2{
  max-width:none;
  color:var(--text);
  font-size:30px;
  line-height:1.08;
  overflow-wrap:anywhere;
}
.season-clean-hero__main--selected h2{
  color:var(--petrol-strong);
}
.season-clean-hero__main p{
  max-width:62ch;
  margin:0;
  color:var(--muted);
  line-height:1.5;
}
.season-clean-hero__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.season-clean-hero__meta span,
.season-clean-hero__meta a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
  max-width:100%;
  padding:6px 10px;
  border:1px solid rgba(13,122,131,.12);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-decoration:none;
}
.season-clean-hero__meta .season-clean-hero__meta-action{
  border-color:rgba(13,122,131,.40);
  background:var(--petrol);
  color:#fff;
  box-shadow:0 10px 22px rgba(13,122,131,.14);
}
.season-clean-hero__meta i{
  flex:0 0 auto;
  width:14px;
  height:14px;
  color:var(--petrol);
}
.season-clean-hero__meta .season-clean-hero__meta-action i{
  color:#fff;
}
.season-clean-hero__meta .season-clean-hero__meta-action:hover,
.season-clean-hero__meta .season-clean-hero__meta-action:focus-visible{
  background:var(--petrol-strong);
  box-shadow:0 12px 26px rgba(13,122,131,.20);
}
.season-clean-now{
  display:grid;
  align-content:space-between;
  gap:10px;
  min-width:0;
  padding:18px 20px;
  border-color:rgba(227,138,114,.22);
  background:linear-gradient(180deg, rgba(255,255,255,.9), rgba(255,243,239,.82));
}
.season-clean-now > span,
.season-clean-now > strong{
  justify-self:end;
  text-align:right;
}
.season-clean-now .btn,
.season-clean-now__recommendation{
  justify-self:start;
  text-align:left;
}
.season-clean-now span,
.season-clean-summary span,
.season-clean-panel__head span{
  color:var(--muted);
  font-size:var(--text-xs);
  font-weight:900;
  text-transform:uppercase;
}
.season-clean-now strong{
  color:var(--coral-text);
  font-size:38px;
  line-height:1;
  overflow-wrap:anywhere;
}
.season-clean-now__recommendation{
  display:grid;
  gap:5px;
  min-width:0;
}
.season-clean-now__recommendation span{
  color:var(--petrol);
}
.season-clean-now__recommendation b{
  color:var(--text);
  font-size:var(--text-base);
  font-weight:900;
  line-height:1.24;
  overflow-wrap:anywhere;
}
.season-clean-now__recommendation small{
  display:inline-flex;
  align-items:flex-start;
  gap:6px;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}
.season-clean-now__recommendation small i{
  flex:0 0 auto;
  width:14px;
  height:14px;
  color:#d4a21f;
  stroke-width:2.7;
}
.season-clean-now--empty .season-clean-now__recommendation small{
  color:var(--text);
  font-size:16px;
  font-weight:900;
  line-height:1.28;
}
.season-clean-now--empty .season-clean-now__recommendation small i{
  width:18px;
  height:18px;
}
.season-clean-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  overflow:hidden;
  margin-bottom:var(--space-5);
  background:rgba(13,122,131,.12);
}
.season-clean-summary div{
  display:grid;
  gap:5px;
  place-items:center;
  align-content:center;
  min-width:0;
  padding:14px;
  text-align:center;
  background:rgba(255,255,255,.88);
}
.season-clean-summary strong{
  min-width:0;
  color:var(--text);
  font-size:clamp(16px,1.3vw,22px);
  line-height:1.08;
  font-weight:900;
  overflow-wrap:anywhere;
}
.season-clean-summary__item--distance strong{color:var(--petrol-strong)}
.season-clean-summary__item--forecast strong{color:var(--coral-text)}
.season-clean-summary__item--pace strong{color:var(--success)}
.season-clean-summary__item--season strong{color:#8a6a12}
.season-clean-summary strong small{
  color:var(--muted);
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
}
.season-clean-summary__hint{
  display:block;
  max-width:100%;
  color:var(--muted);
  font-size:12px;
  line-height:1.16;
  font-style:normal;
  font-weight:900;
  overflow-wrap:anywhere;
}
.season-clean-summary__hint--realistic,
.season-clean-summary__hint--high{color:var(--success)}
.season-clean-summary__hint--slightly-ambitious,
.season-clean-summary__hint--ambitious,
.season-clean-summary__hint--medium{color:#9b7410}
.season-clean-summary__hint--very-aggressive,
.season-clean-summary__hint--aggressive,
.season-clean-summary__hint--low{color:var(--coral-text)}
.season-clean-summary__hint--calm,
.season-clean-summary__hint--cautious,
.season-clean-summary__hint--conservative{color:var(--petrol-strong)}
.season-goal-assessment{
  position:relative;
  z-index:5;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) auto;
  gap:14px;
  align-items:start;
  margin:-8px 0 var(--space-5);
  padding:16px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(247,252,251,.92));
  box-shadow:0 16px 42px rgba(17,43,45,.07);
}
.season-goal-assessment__main{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:12px;
  align-items:center;
  min-width:0;
}
.season-goal-assessment__icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:14px;
  color:var(--petrol-strong);
  background:rgba(13,122,131,.10);
}
.season-goal-assessment__icon i{
  width:22px;
  height:22px;
  stroke-width:2.8;
}
.season-goal-assessment span,
.season-goal-assessment__facts span{
  color:var(--muted);
  font-size:11px;
  line-height:1.1;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.season-goal-assessment strong{
  display:block;
  margin-top:4px;
  color:var(--text);
  font-size:20px;
  line-height:1.12;
  font-weight:950;
  overflow-wrap:anywhere;
}
.season-goal-assessment p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.32;
}
.season-goal-reason{
  position:relative;
  z-index:40;
  margin-top:10px;
}
.season-goal-reason summary{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--petrol-strong);
  font-size:13px;
  line-height:1.2;
  font-weight:950;
  cursor:pointer;
  list-style:none;
}
.season-goal-reason summary::-webkit-details-marker{
  display:none;
}
.season-goal-reason summary::after{
  content:"";
  width:7px;
  height:7px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  transition:transform .16s ease;
}
.season-goal-reason[open] summary::after{
  transform:rotate(225deg) translateY(-1px);
}
.season-goal-reason__body{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  z-index:90;
  width:min(580px, calc(100vw - 48px));
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  padding:10px;
  border-radius:14px;
  background:rgba(255,255,255,.98);
  border:1px solid rgba(13,122,131,.10);
  box-shadow:0 18px 42px rgba(17,43,45,.16);
}
.season-goal-reason__body div{
  min-width:0;
}
.season-goal-reason__item--wide{
  grid-column:1 / -1;
  padding:8px 9px;
  border-radius:11px;
  background:rgba(13,122,131,.06);
}
.season-goal-reason__body span{
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.season-goal-reason__body p{
  margin:4px 0 0;
  color:var(--text);
  font-size:12px;
  line-height:1.25;
  font-weight:800;
}
.season-goal-assessment__facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  min-width:0;
}
.season-goal-assessment__facts div{
  min-width:0;
  padding:11px 12px;
  border-radius:14px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(13,122,131,.10);
}
.season-goal-assessment__facts strong{
  font-size:17px;
}
.season-goal-assessment__facts small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:12px;
  line-height:1.22;
  font-weight:800;
}
.season-goal-assessment .btn{
  white-space:nowrap;
}
.season-goal-assessment--realistic .season-goal-assessment__icon{color:var(--success);background:rgba(74,123,75,.12)}
.season-goal-assessment--slightly-ambitious .season-goal-assessment__icon,
.season-goal-assessment--ambitious .season-goal-assessment__icon{color:#9b7410;background:rgba(212,162,31,.14)}
.season-goal-assessment--very-aggressive .season-goal-assessment__icon,
.season-goal-assessment--aggressive .season-goal-assessment__icon{color:var(--coral-text);background:rgba(227,138,114,.14)}
.season-goal-assessment--calm .season-goal-assessment__icon,
.season-goal-assessment--cautious .season-goal-assessment__icon,
.season-goal-assessment--conservative .season-goal-assessment__icon{color:var(--petrol-strong);background:rgba(13,122,131,.11)}
.season-goal-assessment--realistic .season-goal-assessment__main strong{color:var(--success)}
.season-goal-assessment--slightly-ambitious .season-goal-assessment__main strong,
.season-goal-assessment--ambitious .season-goal-assessment__main strong{color:#9b7410}
.season-goal-assessment--very-aggressive .season-goal-assessment__main strong,
.season-goal-assessment--aggressive .season-goal-assessment__main strong{color:var(--coral-text)}
.season-goal-assessment--calm .season-goal-assessment__main strong,
.season-goal-assessment--cautious .season-goal-assessment__main strong,
.season-goal-assessment--conservative .season-goal-assessment__main strong{color:var(--petrol-strong)}

.season-race-week{
  display:grid;
  gap:14px;
  margin:var(--space-5) 0;
  padding:20px;
  border:1px solid rgba(212,162,31,.24);
  border-radius:18px;
  background:#fffaf1;
  box-shadow:0 12px 32px rgba(122,89,18,.08);
}
.season-race-week__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  min-width:0;
}
.season-race-week__head div{
  min-width:0;
}
.season-race-week__head span,
.season-race-week__tile > span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#9b7410;
  font-size:11px;
  line-height:1.15;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.season-race-week__tile > span i{
  width:15px;
  height:15px;
}
.season-race-week__head strong{
  display:block;
  margin-top:5px;
  color:var(--text);
  font-size:21px;
  line-height:1.15;
  font-weight:950;
  overflow-wrap:anywhere;
}
.season-race-week__head p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
  font-weight:800;
}
.season-race-week__head em{
  flex:0 0 auto;
  padding:8px 12px;
  border-radius:999px;
  background:#d4a21f;
  color:#fff;
  font-size:13px;
  line-height:1.1;
  font-style:normal;
  font-weight:950;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(212,162,31,.22);
}
.season-race-week__grid{
  display:grid;
  grid-template-columns:1.1fr .9fr 1fr 1.15fr;
  gap:12px;
  align-items:stretch;
}
.season-race-week__tile,
.season-race-week__weather{
  min-width:0;
  padding:14px;
  border:1px solid rgba(13,122,131,.10);
  border-radius:16px;
  background:rgba(255,255,255,.72);
}
.season-race-week__tile{
  display:grid;
  gap:8px;
  align-content:start;
}
.season-race-week__tile strong{
  color:var(--text);
  font-size:22px;
  line-height:1.08;
  font-weight:950;
}
.season-race-week__tile p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
  font-weight:800;
}
.season-race-week__tile--focus{
  background:rgba(232,248,247,.70);
  border-color:rgba(13,122,131,.16);
}
.season-race-week__tile--focus > span,
.season-race-week__tile--focus > span i{
  color:var(--petrol-strong);
}
.season-race-week__tile--muted,
.season-race-week__tile--action{
  background:rgba(255,255,255,.62);
}
.season-race-week__weather .race-weather{
  height:100%;
  margin:0;
  box-shadow:none;
}
.season-race-week__weather .race-weather__head{
  margin-bottom:8px;
}
.season-race-week__weather .race-weather__summary,
.season-race-week__weather .race-weather__note{
  max-width:100%;
}
.season-race-week__checklist{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.season-race-week__checklist div{
  min-width:0;
  padding:9px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.70);
  border:1px solid rgba(212,162,31,.12);
}
.season-race-week__checklist i{
  width:16px;
  height:16px;
  color:#9b7410;
}
.season-race-week__checklist span{
  display:block;
  margin-top:5px;
  color:var(--text);
  font-size:12px;
  line-height:1.15;
  font-weight:950;
}
.season-race-week__checklist em{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-style:normal;
  font-weight:800;
}
.season-race-week__actions{
  display:flex;
  justify-content:flex-end;
}

.season-clean-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--space-5);
  align-items:stretch;
}
.season-clean-panel{
  display:grid;
  gap:14px;
  align-content:start;
  min-width:0;
  height:100%;
  padding:var(--space-6);
}
.season-clean-panel--wide{
  grid-column:1 / -1;
  align-items:center;
}
.season-clean-panel--wide p{
  max-width:70ch;
}
.season-clean-panel--phase{
  align-self:start;
  height:auto;
  gap:10px;
  padding:18px;
}
.season-clean-panel__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  min-width:0;
}
.season-clean-panel__head div{
  min-width:0;
}
.season-clean-panel__head h3{
  margin-top:4px;
  color:var(--text);
  font-size:var(--text-lg);
  line-height:1.18;
  overflow-wrap:anywhere;
}
.season-clean-panel__title-inline{
  display:inline-flex;
  align-items:center;
  gap:8px;
  position:relative;
}
.season-clean-panel__label-inline{
  display:inline-flex;
  align-items:center;
  gap:8px;
  position:relative;
}
.season-clean-panel__title-inline .inline-tooltip,
.season-clean-panel__label-inline .inline-tooltip{
  position:relative;
  top:auto;
  right:auto;
  flex:0 0 auto;
}
.season-clean-panel__title-inline .inline-tooltip__bubble,
.season-clean-panel__label-inline .inline-tooltip__bubble{
  right:auto;
  left:0;
  width:min(300px, calc(100vw - 48px));
  background:#111827;
  color:#fff;
  font-weight:500;
  font-size:12px;
  line-height:1.35;
  letter-spacing:0;
  text-transform:none;
  transform:translate(0,4px);
}
.season-clean-panel__label-inline .inline-tooltip,
.season-clean-panel__label-inline .inline-tooltip__trigger{
  letter-spacing:0;
  text-transform:none;
}
.season-clean-panel__title-inline .inline-tooltip:hover .inline-tooltip__bubble,
.season-clean-panel__title-inline .inline-tooltip:focus-within .inline-tooltip__bubble,
.season-clean-panel__title-inline .inline-tooltip.is-open .inline-tooltip__bubble,
.season-clean-panel__label-inline .inline-tooltip:hover .inline-tooltip__bubble,
.season-clean-panel__label-inline .inline-tooltip:focus-within .inline-tooltip__bubble,
.season-clean-panel__label-inline .inline-tooltip.is-open .inline-tooltip__bubble{
  transform:translate(0,0);
}
.season-clean-panel__head i{
  flex:0 0 auto;
  width:24px;
  height:24px;
  color:var(--petrol);
}
.season-clean-panel p{
  color:var(--muted);
  line-height:1.45;
}
.season-clean-next-row{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
}
.season-clean-race-list{
  display:grid;
  gap:8px;
}
.season-clean-race-link{
  color:inherit;
  font:inherit;
  font-weight:inherit;
  text-decoration:none;
  text-underline-offset:3px;
}
.season-clean-race-link:hover,
.season-clean-race-link:focus-visible{
  color:var(--petrol);
  text-decoration:underline;
}
.season-phase-rail{
  position:relative;
  display:grid;
  gap:8px;
}
.season-phase-rail::before{
  content:"";
  position:absolute;
  right:9px;
  top:12px;
  bottom:12px;
  width:2px;
  border-radius:999px;
  background:rgba(110,114,122,.16);
}
.season-phase-rail__item{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 20px;
  gap:10px;
  align-items:start;
  min-width:0;
}
.season-phase-rail__item > span{
  position:relative;
  z-index:1;
  grid-column:2;
  grid-row:1;
  width:20px;
  height:20px;
  border:2px solid rgba(110,114,122,.22);
  border-radius:999px;
  background:#fff;
}
.season-phase-rail__item div{
  grid-column:1;
  grid-row:1;
  min-width:0;
  padding:9px 12px;
  border:1px solid rgba(13,122,131,.10);
  border-radius:12px;
  background:rgba(255,255,255,.64);
}
.season-phase-rail__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}
.season-phase-rail__item strong{
  display:block;
  color:var(--text);
  font-size:16px;
  line-height:1.16;
}
.season-phase-rail__item em{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  gap:6px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(13,122,131,.08);
  color:var(--muted);
  font-size:12px;
  font-style:normal;
  font-weight:900;
  line-height:1.1;
}
.season-phase-rail__item small{
  display:block;
  margin-top:1px;
  color:var(--muted);
  font-size:13px;
  line-height:1.25;
}
.season-phase-rail__item em i{
  width:13px;
  height:13px;
  color:var(--petrol);
}
.season-phase-rail__item.is-active > span{
  border-color:var(--petrol);
  background:var(--petrol);
  box-shadow:0 0 0 5px rgba(13,122,131,.12);
}
.season-phase-rail__item--base > span{border-color:rgba(13,122,131,.36);background:#e8f8f7}
.season-phase-rail__item--build > span{border-color:rgba(74,123,75,.40);background:#ebf4ec}
.season-phase-rail__item--peak > span{border-color:rgba(198,111,88,.50);background:#f6e1da}
.season-phase-rail__item--taper > span{border-color:rgba(212,162,31,.48);background:#fff3c8}
.season-phase-rail__item--race-week > span{border-color:rgba(13,122,131,.48);background:#d9f0f2}
.season-phase-rail__item--recovery > span{border-color:rgba(95,100,108,.34);background:#eef0ef}
.season-phase-rail__item--base div{background:rgba(232,248,247,.54)}
.season-phase-rail__item--build div{background:rgba(235,244,236,.56)}
.season-phase-rail__item--peak div{background:rgba(246,225,218,.62)}
.season-phase-rail__item--taper div{background:rgba(255,243,200,.58)}
.season-phase-rail__item--race-week div{background:rgba(217,240,242,.62)}
.season-phase-rail__item--recovery div{background:rgba(238,240,239,.58)}
.season-phase-rail__item--base em{background:rgba(13,122,131,.09);color:var(--petrol-strong)}
.season-phase-rail__item--build em{background:rgba(74,123,75,.10);color:var(--success)}
.season-phase-rail__item--peak em{background:rgba(227,138,114,.14);color:var(--coral-text)}
.season-phase-rail__item--taper em{background:rgba(212,162,31,.14);color:#8a6a12}
.season-phase-rail__item--race-week em{background:rgba(13,122,131,.12);color:var(--petrol)}
.season-phase-rail__item--recovery em{background:rgba(95,100,108,.10);color:var(--muted)}
.season-phase-rail__item.is-active div{
  border-color:rgba(13,122,131,.22);
  background:rgba(232,248,247,.82);
}
.season-phase-rail__item--peak.is-active div{
  border-color:rgba(198,111,88,.30);
  background:rgba(246,225,218,.86);
}
.season-phase-rail__item--taper.is-active div{
  border-color:rgba(212,162,31,.32);
  background:rgba(255,243,200,.86);
}
.season-phase-rail__item--recovery.is-active div{
  border-color:rgba(95,100,108,.22);
  background:rgba(238,240,239,.86);
}
.season-phase-rail__item.is-active strong{
  color:var(--petrol-strong);
}
.season-phase-rail__item--peak.is-active strong{color:var(--coral-text)}
.season-phase-rail__item--taper.is-active strong{color:#8a6a12}
.season-phase-rail__item--recovery.is-active strong{color:var(--muted)}
.season-clean-panel .goals-progress{
  align-self:start;
}
.season-clean-panel .goals-progress__item{
  gap:10px;
  padding:16px 18px;
}
.season-clean-panel .goals-progress__head strong{
  font-size:17px;
}
.season-clean-panel .goals-progress__percent{
  font-size:18px;
}
.season-clean-panel .goals-progress__meta{
  font-size:14px;
}
.season-clean-panel--goals .goals-progress__bar{
  height:14px;
}
.season-clean-panel--dashboard-focus .dashboard-focus-card{
  gap:12px;
}
@media (max-width: 900px){
  .season-prototype-hero,
  .season-dashboard-preview,
  .season-prototype-grid,
  .season-clean-hero,
  .season-clean-grid{
    grid-template-columns:1fr;
  }
  .season-race-week__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .season-prototype-hero{
    gap:var(--space-4);
  }
  .season-hero-stats,
  .season-primary-meta{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  .season-panel--primary .season-primary-meta{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .season-hero-stats div,
  .season-primary-meta div{
    padding:10px;
  }
  .season-hero-stats strong,
  .season-primary-meta strong{
    font-size:17px;
  }
  .season-phase-strip{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .season-current-dashboard-note{
    align-items:flex-start;
    flex-direction:column;
  }
  .season-clean-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .season-goal-assessment{
    grid-template-columns:1fr;
    align-items:start;
  }
  .season-goal-assessment .btn{
    justify-self:start;
  }
  .season-clean-panel--wide{
    grid-template-columns:1fr;
  }
  .season-clean-next-row{
    justify-content:flex-start;
  }
  .dashboard-onboarding__head,
  .dashboard-onboarding__steps{
    grid-template-columns:1fr;
  }
  .dashboard-onboarding__progress{
    justify-self:start;
  }
  .dashboard-onboarding-step{
    grid-template-columns:36px minmax(0,1fr);
  }
  .dashboard-onboarding-step .btn{
    grid-column:2;
    justify-self:start;
  }
}
@media (max-width: 640px){
  .season-prototype-hero,
  .season-panel,
  .season-clean-hero__main,
  .season-clean-now,
  .season-clean-panel{
    padding:14px;
  }
  .season-prototype-hero h2{
    font-size:1.45rem;
  }
  .season-prototype-hero p,
  .season-panel p{
    font-size:13px;
  }
  .season-hero-stats,
  .season-primary-meta,
  .season-dashboard-preview__cards,
  .season-clean-summary{
    grid-template-columns:1fr;
  }
  .season-clean-hero{
    gap:12px;
  }
  .season-clean-hero__main h2{
    max-width:none;
    font-size:1.55rem;
  }
  .season-clean-hero__main{
    min-height:auto;
  }
  .season-phase-rail__item strong{
    font-size:16px;
  }
  .season-phase-rail__top{
    display:grid;
    gap:6px;
  }
  .season-phase-rail__item em{
    justify-self:start;
    font-size:12px;
    white-space:normal;
  }
  .season-clean-now{
    gap:10px;
  }
  .season-clean-now strong{
    font-size:34px;
  }
  .season-clean-summary div{
    padding:12px 14px;
  }
  .season-goal-assessment{
    gap:12px;
    margin:-4px 0 var(--space-4);
    padding:14px;
    border-radius:14px;
  }
  .season-goal-assessment__main{
    grid-template-columns:36px minmax(0,1fr);
    gap:10px;
  }
  .season-goal-assessment__icon{
    width:36px;
    height:36px;
    border-radius:12px;
  }
  .season-goal-assessment__facts{
    grid-template-columns:1fr;
  }
  .season-goal-reason__body{
    grid-template-columns:1fr;
    width:min(100%, calc(100vw - 42px));
  }
  .season-goal-assessment strong{
    font-size:18px;
  }
  .season-goal-assessment p{
    font-size:13px;
  }
  .season-race-week{
    padding:16px;
    border-radius:16px;
  }
  .season-race-week__head{
    display:grid;
    gap:10px;
  }
  .season-race-week__head strong{
    font-size:18px;
  }
  .season-race-week__head em{
    justify-self:start;
  }
  .season-race-week__grid{
    grid-template-columns:1fr;
  }
  .season-race-week__tile,
  .season-race-week__weather{
    padding:12px;
    border-radius:14px;
  }
  .season-race-week__checklist{
    grid-template-columns:1fr;
  }
  .season-race-week__actions{
    justify-content:stretch;
  }
  .season-race-week__actions .btn{
    width:100%;
  }
  .season-panel__head h3{
    font-size:1rem;
  }
  .season-race-option{
    padding:9px 10px;
  }
  .season-timeline__item{
    padding:9px 10px;
  }
  .season-timeline__title-row{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
  .season-timeline__primary-chip{
    width:max-content;
  }
  .season-next-inline{
    align-items:flex-start;
    flex-direction:column;
  }
  .dashboard-onboarding__head{
    gap:10px;
    margin-bottom:12px;
  }
  .dashboard-onboarding__head h2{
    font-size:1rem;
    margin-bottom:4px;
  }
  .dashboard-onboarding__head p{
    font-size:12px;
    line-height:1.4;
  }
  .dashboard-onboarding__progress{
    min-width:50px;
    min-height:34px;
    font-size:12px;
  }
  .dashboard-onboarding__steps{
    gap:8px;
  }
  .dashboard-onboarding-step{
    grid-template-columns:32px minmax(0,1fr) auto;
    gap:8px;
    padding:10px;
    border-radius:12px;
  }
  .dashboard-onboarding-step__status{
    width:32px;
    height:32px;
  }
  .dashboard-onboarding-step__status i{
    width:15px;
    height:15px;
  }
  .dashboard-onboarding-step__body strong{
    font-size:13px;
  }
  .dashboard-onboarding-step__body span{
    font-size:11px;
  }
  .dashboard-onboarding-step .btn{
    grid-column:3;
    justify-self:end;
    min-height:34px;
    padding:0 10px;
    font-size:11px;
  }
  .dashboard-onboarding__actions{
    display:none;
  }
}
@media (max-width: 520px){
  .dashboard-onboarding-step{
    grid-template-columns:30px minmax(0,1fr) minmax(76px,auto);
    padding:10px;
  }
  .dashboard-onboarding-step__status{
    width:30px;
    height:30px;
  }
  .dashboard-onboarding-step__body span{
    display:none;
  }
  .dashboard-onboarding-step .btn{
    grid-column:3;
    width:auto;
  }
}
.dashboard-week-strip{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:10px;
}
.dashboard-week-strip__loading{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:96px;
}
.dashboard-day-pill{
  display:block;
  min-height:112px;
  padding:14px;
  border:1px solid var(--divider);
  border-radius:16px;
  background:rgba(255,255,255,.55);
  position:relative;
  overflow:hidden;
}
.dashboard-day-pill.is-today{
  border-color:rgba(13,122,131,.28);
  background:rgba(13,122,131,.09);
}
.dashboard-day-pill.is-weekend{
  background:rgba(227,138,114,.09);
  border-color:rgba(227,138,114,.2);
}
.dashboard-day-pill.has-run .dashboard-day-pill__dot{
  opacity:0;
}
.dashboard-day-pill.has-run::after{
  display:none;
}
.dashboard-day-pill__top{
  position:absolute;
  top:12px;
  left:10px;
  right:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:auto;
}
.dashboard-day-pill__label{
  font-size:13px;
  font-weight:700;
  color:var(--muted);
  text-transform:uppercase;
}
.dashboard-day-pill__date{
  position:absolute;
  top:42px;
  left:50%;
  transform:translateX(-50%);
  font-size:30px;
  line-height:1;
  font-weight:800;
  letter-spacing:0;
  margin-top:0;
  text-align:center;
  min-width:2ch;
}
.dashboard-day-pill__distance{
  position:absolute;
  right:10px;
  bottom:8px;
  font-size:14px;
  line-height:1;
  font-weight:800;
  color:var(--petrol);
  text-align:right;
}
.dashboard-day-pill__race-logo{
  position:absolute;
  left:50%;
  bottom:2px;
  transform:translateX(-50%);
  width:24px;
  height:24px;
  object-fit:contain;
  display:block;
}
.dashboard-day-pill__dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:rgba(110,114,122,.22);
}
.dashboard-kpi-shell{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-5);
  align-items:stretch;
  margin-bottom:var(--space-6);
}
.dashboard-kpi-shell__month{
  font-size:var(--text-sm);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--petrol-strong);
  opacity:.82;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  border-bottom:1px solid var(--divider);
  padding-bottom:var(--space-3);
}
.dashboard-kpi-grid{margin-bottom:0}
.dashboard-card-subtitle{
  margin-top:4px;
  font-size:var(--text-xs);
  color:var(--muted);
}
@media (min-width: 641px){
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card:not(.k-sky){
    min-height:132px;
    padding-bottom:46px;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card:not(.k-sky) .kpi-mainline{
    position:static;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card:not(.k-sky) .kpi-sub--inline{
    position:absolute;
    left:var(--space-5);
    right:var(--space-5);
    bottom:var(--space-5);
    margin:0;
    padding:0;
    line-height:1.25;
  }
}
.card-title-button{
  display:inline-flex;
  align-items:center;
  padding:0;
  background:transparent;
  border:0;
  color:inherit;
  font:inherit;
  font-weight:700;
  text-align:left;
}
.card-title-button:hover{
  color:var(--petrol);
}
.dashboard-charts-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--space-6);
  margin-bottom:var(--space-6);
}
.volume-chart-legend,
.dashboard-line-chart__legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-bottom:10px;
  font-size:14px;
  color:var(--muted);
}
.volume-chart-legend span,
.dashboard-line-chart__legend span{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.volume-chart-legend--top-right{
  justify-content:flex-end;
  margin-left:auto;
  white-space:nowrap;
}
#workoutsVolumeChart{
  display:flex;
  flex-direction:column;
  align-items:stretch;
}
#workoutsVolumeChart > .volume-chart-legend{
  display:inline-flex;
  align-self:flex-end;
  justify-content:flex-end;
  width:auto;
  margin-left:0;
}
.volume-chart-legend__swatch,
.dashboard-line-chart__legend-swatch{
  width:16px;
  height:16px;
  border-radius:3px;
  display:inline-block;
  border:2px solid rgba(255,255,255,.92);
  box-shadow:0 0 0 1px rgba(95,100,108,.18);
}
.volume-chart-legend__swatch-fact{background:var(--coral)}
.volume-chart-legend__swatch-target{background:var(--petrol);position:relative}
.volume-chart-legend__swatch-target::after{
  content:"";
  position:absolute;
  inset:5px -5px auto;
  border-top:2px dashed #E4B62C;
}
.volume-svg-chart{
  width:100%;
  margin-top:6px;
}
.volume-svg-chart svg{
  display:block;
  width:100%;
  height:320px;
}
.volume-svg-chart__grid-line{
  stroke:rgba(110,114,122,.22);
  stroke-dasharray:4 4;
}
.volume-svg-chart__axis-label,
.volume-svg-chart__x-label,
.volume-svg-chart__value{
  fill:var(--muted);
  font-size:14px;
  font-family:var(--font-sans);
}
.volume-svg-chart__target{
  fill:none;
  stroke:#E4B62C;
  stroke-width:3;
  stroke-dasharray:6 6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.volume-svg-chart__bar{
  fill:#E58A6E;
}
.volume-svg-chart__bar-hit{
  fill:var(--petrol);
}
.volume-svg-chart__bar-empty{
  fill:rgba(110,114,122,.2);
}
.dashboard-bottom-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--space-6);
}
.dashboard-secondary-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--space-6);
  margin-top:var(--space-6);
}
.dashboard-chart-shell{
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  gap:12px;
  align-items:stretch;
}
.dashboard-chart-axis{
  height:320px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:8px 0 22px;
  font-size:11px;
  color:var(--muted);
}
.dashboard-chart{
  position:relative;
  display:flex;
  align-items:flex-end;
  gap:10px;
  height:320px;
  min-height:320px;
  padding:8px 0 22px;
}
.dashboard-chart__grid{
  position:absolute;
  inset:8px 0 22px;
  display:grid;
  grid-template-rows:repeat(4,1fr);
  pointer-events:none;
}
.dashboard-chart__grid span{
  border-top:1px dashed rgba(110,114,122,.22);
}
.dashboard-chart__target{
  position:absolute;
  inset:8px 0 22px;
  pointer-events:none;
  color:#E4B62C;
}
.dashboard-chart__target-line,
.volume-chart__target-line{
  width:100%;
  height:100%;
  display:block;
}
.dashboard-chart__bar{
  position:relative;
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  height:100%;
}
.dashboard-chart__value{
  font-size:11px;
  color:var(--muted);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.dashboard-chart__plot{
  width:100%;
  height:228px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.dashboard-chart__column{
  width:100%;
  max-width:36px;
  min-height:10px;
  border-radius:12px 12px 4px 4px;
  background:linear-gradient(180deg,#E58A6E 0%, rgba(227,138,114,.55) 100%);
  box-shadow:0 8px 20px rgba(227,138,114,.18);
}
.dashboard-chart__bar.is-hit .dashboard-chart__column{
  background:linear-gradient(180deg,var(--petrol) 0%, rgba(13,122,131,.55) 100%);
  box-shadow:0 8px 20px rgba(13,122,131,.18);
}
.dashboard-chart__bar.is-empty .dashboard-chart__column{
  background:rgba(110,114,122,.18);
  box-shadow:none;
}
.dashboard-chart__label{
  font-size:11px;
  color:var(--muted);
}
.dashboard-line-chart{
  position:relative;
  min-height:400px;
  padding-top:4px;
}
.dashboard-line-chart--matrix{
  min-height:0;
}
.dashboard-hero__club{
  display:inline-flex;
  align-items:center;
  margin-left:10px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--divider);
  background:rgba(255,255,255,.62);
  font-size:var(--text-sm);
  font-weight:700;
  color:var(--petrol-strong);
  vertical-align:middle;
}
.dashboard-line-chart svg{
  display:block;
  width:100%;
  height:320px;
}
.dashboard-pace-point{
  cursor:pointer;
}
.dashboard-pace-tooltip{
  position:absolute;
  z-index:6;
  max-width:220px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(43,47,51,.96);
  color:#fff;
  font-size:12px;
  line-height:1.4;
  box-shadow:var(--shadow-md);
  pointer-events:none;
  opacity:0;
  transform:translateY(4px);
  transition:opacity var(--transition),transform var(--transition);
}
.dashboard-pace-tooltip.is-visible{
  opacity:1;
  transform:translateY(0);
}
.dashboard-pace-tooltip__title{
  font-size:11px;
  font-weight:700;
  color:rgba(255,255,255,.72);
  text-transform:uppercase;
  letter-spacing:.06em;
}
.dashboard-pace-tooltip__value{
  margin-top:3px;
  font-size:16px;
  font-weight:800;
  color:#fff;
}
.dashboard-pace-tooltip__meta{
  margin-top:6px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:11px;
  color:rgba(255,255,255,.78);
}
.dashboard-pace-tooltip__note{
  margin-top:6px;
  font-size:11px;
  color:rgba(255,255,255,.88);
}
.dashboard-line-chart text{
  font-family:var(--font-sans);
}
.dashboard-line-chart__legend{
  align-items:center;
  justify-content:flex-start;
  gap:18px;
  margin-bottom:12px;
  flex-wrap:wrap;
}
.dashboard-line-chart__legend span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:700;
}
.dashboard-line-chart__summary{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:12px;
  font-size:var(--text-xs);
  color:var(--muted);
}
.inline-tooltip{
  position:relative;
  top:auto;
  right:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:4px;
  vertical-align:middle;
  z-index:20;
}
.inline-tooltip__trigger{
  width:18px;
  height:18px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(13,122,131,.12);
  color:var(--petrol);
  font-family:inherit;
  font-size:11px;
  font-weight:800;
  letter-spacing:normal;
  line-height:1;
}
.inline-tooltip__bubble{
  position:absolute;
  right:0;
  bottom:calc(100% + 12px);
  width:260px;
  padding:10px 12px;
  border-radius:12px;
  background:#111827;
  color:#fff;
  font-family:inherit;
  font-size:12px;
  font-weight:600;
  letter-spacing:normal;
  line-height:1.35;
  text-align:left;
  text-transform:none;
  white-space:normal;
  box-shadow:var(--shadow-md);
  opacity:0;
  pointer-events:none;
  transform:translateY(4px);
  transition:opacity var(--transition),transform var(--transition);
  z-index:500;
}
.inline-tooltip__bubble *{
  color:#fff;
}
.kpi-label:has(.inline-tooltip),
.dashboard-forecast-label:has(.inline-tooltip),
.my-race-insight__forecast-prefix:has(.inline-tooltip),
.my-race-insight__assessment-detail:has(.inline-tooltip){
  position:relative;
  padding-right:26px;
}
.inline-tooltip:hover .inline-tooltip__bubble,
.inline-tooltip:focus-within .inline-tooltip__bubble,
.inline-tooltip.is-open .inline-tooltip__bubble{
  opacity:1;
  transform:translateY(0);
}
.dashboard-focus-card{
  display:grid;
  gap:14px;
}
.dashboard-focus-card--past{
  border-radius:14px;
}
.dashboard-focus-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.dashboard-focus-card__name{
  font-size:var(--text-base);
  font-weight:800;
  letter-spacing:-.02em;
}
.dashboard-focus-card__meta{
  margin-top:4px;
  font-size:var(--text-xs);
  color:var(--muted);
}
.dashboard-focus-card__stats,
.dashboard-last-workout__stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.dashboard-stat-tile{
  position:relative;
  padding:12px;
  border:1px solid var(--divider);
  border-radius:14px;
  background:rgba(255,255,255,.52);
  min-width:0;
}
.dashboard-stat-tile strong{
  display:block;
  font-size:var(--text-base);
  letter-spacing:-.02em;
  overflow-wrap:anywhere;
}
.dashboard-stat-tile span{
  display:block;
  margin-top:4px;
  font-size:var(--text-xs);
  color:var(--muted);
}
.dashboard-stat-tile em{
  display:inline-flex;
  margin-top:7px;
  color:var(--muted);
  font-size:12px;
  font-style:normal;
  font-weight:800;
  line-height:1.15;
}
.dashboard-stat-tile--better strong,
.dashboard-stat-tile--better em{
  color:var(--success);
}
.dashboard-stat-tile--worse strong,
.dashboard-stat-tile--worse em{
  color:var(--coral-text);
}
.dashboard-stat-tile--plan em{
  display:inline-flex;
  margin-top:7px;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(13,122,131,.08);
  color:var(--petrol);
  font-size:12px;
  font-style:normal;
  font-weight:800;
  line-height:1.15;
}
.dashboard-stat-tile--action{
  display:block;
  width:100%;
  text-align:left;
  cursor:pointer;
  transition:var(--transition);
}
.dashboard-stat-tile--action:hover,
.dashboard-stat-tile--action:focus-visible{
  border-color:rgba(13,122,131,.28);
  background:rgba(232,248,247,.70);
  box-shadow:0 8px 18px rgba(13,122,131,.08);
}
.dashboard-stat-tile--action em{
  display:inline-flex;
  margin-top:8px;
  color:var(--petrol);
  font-size:12px;
  font-style:normal;
  font-weight:900;
}
.dashboard-stat-tile--forecast .dashboard-forecast-label{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:18px;
  gap:6px;
  text-align:left;
}
.dashboard-stat-tile--forecast{
  position:relative;
  padding-right:34px;
}
.dashboard-stat-tile--forecast .dashboard-forecast-label:has(.inline-tooltip){
  position:static;
  padding-right:0;
}
.dashboard-stat-tile--forecast .inline-tooltip{
  position:absolute;
  top:8px;
  right:8px;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  margin:0;
  padding:0;
  line-height:1;
}
.dashboard-stat-tile--forecast .inline-tooltip__trigger{
  width:18px;
  height:18px;
  flex:0 0 18px;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  padding:0;
  font-size:11px;
  line-height:1;
  text-align:center;
}
.dashboard-focus-card__weather .race-weather{
  width:100%;
  margin-left:0;
}
.dashboard-focus-card__actions{
  display:flex;
  justify-content:flex-end;
}
.dashboard-post-race{
  display:grid;
  gap:12px;
  padding:12px;
  border:1px solid rgba(74,123,75,.18);
  border-left:4px solid rgba(74,123,75,.62);
  border-radius:14px;
  background:linear-gradient(135deg, rgba(235,244,236,.88), rgba(255,255,255,.72));
}
.dashboard-post-race--pending{
  grid-template-columns:40px minmax(0,1fr) auto;
  align-items:center;
  border-color:rgba(212,162,31,.24);
  border-left-color:#d4a21f;
  background:linear-gradient(135deg, rgba(255,249,225,.88), rgba(255,255,255,.72));
}
.dashboard-post-race--neutral{
  grid-template-columns:40px minmax(0,1fr) auto;
  align-items:center;
  border-color:rgba(110,114,122,.18);
  border-left-color:rgba(110,114,122,.52);
  background:linear-gradient(135deg, rgba(246,248,248,.88), rgba(255,255,255,.72));
}
.dashboard-post-race--neutral .race-post-review{
  grid-column:1 / -1;
}
.dashboard-post-race--neutral > .btn{
  grid-column:3;
  grid-row:1;
  align-self:center;
}
.dashboard-post-race__icon{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:rgba(255,255,255,.72);
  color:var(--petrol);
}
.dashboard-post-race__icon i{
  width:20px;
  height:20px;
}
.dashboard-post-race strong{
  display:block;
  color:var(--text);
  font-size:16px;
  line-height:1.2;
  font-weight:950;
}
.dashboard-post-race p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
}
.dashboard-post-race__verdict{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:"icon label" "icon title";
  align-items:center;
  gap:2px 8px;
}
.dashboard-post-race__verdict i{
  grid-area:icon;
  width:22px;
  height:22px;
  color:var(--success);
}
.dashboard-post-race__verdict span{
  grid-area:label;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.dashboard-post-race__verdict strong{
  grid-area:title;
  color:#2e6f43;
}
.dashboard-post-race__verdict--worse i,
.dashboard-post-race__verdict--worse strong{
  color:var(--coral-text);
}
.dashboard-post-race__verdict--neutral i,
.dashboard-post-race__verdict--neutral strong{
  color:var(--petrol);
}
.dashboard-focus-card__stats--post{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.dashboard-stat-tile--forecast .inline-tooltip__bubble{
  top:auto;
  right:auto;
  left:0;
  bottom:calc(100% + 10px);
  width:260px;
  max-width:min(260px, calc(100vw - 32px));
  transform:translateY(4px);
}
.dashboard-stat-tile--forecast .inline-tooltip:hover .inline-tooltip__bubble,
.dashboard-stat-tile--forecast .inline-tooltip:focus-within .inline-tooltip__bubble{
  transform:translateY(0);
}
.dashboard-stat-tile--forecast .dashboard-forecast-label span{
  font-weight:900;
  letter-spacing:.06em;
  color:var(--petrol);
}
.dashboard-stat-tile--forecast .dashboard-forecast-label .inline-tooltip__bubble{
  color:#fff;
}
.dashboard-stat-tile--icon-metric{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  text-align:center;
}
.dashboard-metric-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  color:var(--petrol);
}
.dashboard-metric-icon svg{
  width:16px;
  height:16px;
}
.dashboard-stat-tile--icon-metric strong{
  margin:0;
}
.dashboard-last-workout{
  display:grid;
  gap:10px;
}
.dashboard-last-workout__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px 12px;
  align-items:start;
}
.dashboard-last-workout__head strong{
  display:block;
  font-size:var(--text-base);
}
.dashboard-last-workout__head-main{
  display:grid;
  gap:4px;
}
.dashboard-last-workout__note-inline{
  display:block;
  font-size:var(--text-xs);
  line-height:1.35;
  color:var(--muted);
}
.dashboard-last-workout__head span{
  display:block;
  margin-top:4px;
  font-size:var(--text-xs);
  color:var(--muted);
}
.dashboard-last-workout__head span:empty{display:none}
.dashboard-note{
  display:grid;
  gap:3px;
  padding:12px 14px;
  border-radius:14px;
  background:rgba(13,122,131,.08);
  color:var(--petrol-strong);
  font-size:var(--text-sm);
  line-height:1.4;
}
.dashboard-note__title{
  display:block;
  font-weight:800;
}
.dashboard-note__detail{
  display:block;
}
.dashboard-note br{
  display:none;
}
.dashboard-note--very-aggressive,
.dashboard-note--aggressive{
  background:rgba(227,138,114,.14);
  color:#9a4f35;
}
.dashboard-note--slightly-ambitious{
  background:rgba(228,182,44,.16);
  color:#8a6800;
}
.dashboard-note--realistic,
.dashboard-note--conservative{
  background:rgba(27,127,80,.12);
  color:#226946;
}
.dashboard-note--cautious{
  background:rgba(178,190,82,.14);
  color:#647428;
}
.dashboard-empty-note{
  padding:12px 14px;
  border-radius:14px;
  background:rgba(110,114,122,.08);
  color:var(--muted);
  font-size:var(--text-sm);
}
.dashboard-pr-list{
  display:grid;
  gap:10px;
}
.dashboard-pr-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:12px 14px;
  border:1px solid var(--divider);
  border-radius:14px;
  background:rgba(255,255,255,.56);
}
.dashboard-pr-item__label{
  font-size:var(--text-sm);
  font-weight:700;
}
.dashboard-pr-item__meta{
  margin-top:4px;
  font-size:var(--text-xs);
  color:var(--muted);
}
.dashboard-pr-item__time{
  text-align:right;
  font-size:var(--text-base);
  font-weight:800;
  letter-spacing:-.02em;
}
.dashboard-mix-card{
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:22px;
  align-items:center;
}
.dashboard-mix-chart{
  position:relative;
  width:180px;
  height:180px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.dashboard-mix-chart__svg{
  width:180px;
  height:180px;
  display:block;
}
.dashboard-mix-chart__center{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.dashboard-mix-chart__center strong{
  font-size:28px;
  line-height:1;
  font-weight:800;
}
.dashboard-mix-chart__center span{
  margin-top:4px;
  font-size:var(--text-xs);
  color:var(--muted);
}
.dashboard-mix-legend{
  display:grid;
  gap:10px;
}
.dashboard-mix-legend__item{
  display:grid;
  grid-template-columns:14px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--divider);
  border-radius:12px;
  background:rgba(255,255,255,.56);
}
.dashboard-mix-legend__swatch{
  width:14px;
  height:14px;
  display:block;
}
.dashboard-mix-legend__label{
  font-size:var(--text-sm);
  font-weight:700;
}
.dashboard-mix-legend__value{
  font-size:var(--text-xs);
  color:var(--muted);
  white-space:nowrap;
}
.workout-kind-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:3px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  background:var(--coral-soft);
  color:var(--coral-text);
  white-space:nowrap;
}
.workout-kind-chip img{
  width:14px;
  height:14px;
  object-fit:contain;
}
.workout-kind-chip-training{
  background:rgba(1,105,111,.10);
  color:var(--petrol);
}
.workout-kind-chip--race{
  background:var(--coral-soft);
  color:var(--coral-text);
}
.workout-kind-chip--control{
  background:rgba(42,112,170,.13);
  color:#24699d;
}
.workout-kind-chip--long{
  background:rgba(27,127,80,.12);
  color:#1b7f50;
}
.workout-kind-chip--tempo{
  background:rgba(13,122,131,.12);
  color:var(--petrol);
}
.workout-kind-chip--sprints{
  background:rgba(199,142,35,.16);
  color:#8a5c00;
}
.workout-kind-chip--easy{
  background:rgba(122,127,135,.12);
  color:#5f646c;
}
.icon-action.is-active{
  background:var(--coral-soft);
  border-color:rgba(185,80,60,.24);
  color:var(--coral-text);
}
.icon-action-finish{
  padding:0;
}
.icon-action-finish img{
  width:18px;
  height:18px;
  object-fit:contain;
  display:block;
}
.icon-action-finish.is-active img{
  transform:scale(1.06);
}

/* ===== KPI GRID ===== */
.kpi-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:var(--space-4); margin-bottom:var(--space-8); }
.kpi-card {
  background:rgba(255,255,255,.68); border:1px solid var(--border);
  border-radius:var(--radius-lg); padding:var(--space-5);
  box-shadow:var(--shadow-sm); backdrop-filter:blur(10px);
  position:relative; overflow:visible;
}
.kpi-card[data-go],
.kpi-card[data-action]{cursor:pointer;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}
.kpi-card[data-go]:hover,
.kpi-card[data-action]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:rgba(13,122,131,.22)}
.kpi-card::after { content:""; position:absolute; right:-18px; bottom:-18px; width:80px; height:80px; border-radius:99px; opacity:.5; z-index:0; }
.kpi-card > *{position:relative;z-index:1}
.kpi-card.k-petrol::after { background:rgba(13,122,131,.12); }
.kpi-card.k-coral::after { background:rgba(227,138,114,.18); }
.kpi-card.k-neutral::after { background:rgba(110,114,122,.08); }
.kpi-card.k-amber::after { background:rgba(228,182,44,.18); }
.kpi-card.k-violet::after { background:rgba(116,97,178,.16); }
.kpi-card.k-sky::after { background:rgba(65,137,222,.14); }
.kpi-label { font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); margin-bottom:.5rem; }
.kpi-value { font-size:var(--text-xl); font-weight:800; letter-spacing:-.03em; line-height:1; font-variant-numeric:tabular-nums; }
.kpi-mainline{display:block}
.kpi-card.k-petrol .kpi-value { color:var(--petrol); }
.kpi-card.k-coral .kpi-value  { color:var(--coral-text); }
.kpi-card.k-neutral .kpi-value { color:var(--text); }
.kpi-card.k-amber .kpi-value { color:#B98600; }
.kpi-card.k-violet .kpi-value { color:#6F52BA; }
.kpi-card.k-sky .kpi-value { color:#2F73C8; }
.kpi-sub { font-size:var(--text-xs); color:var(--muted); margin-top:.9rem; padding-top:8px; }
.kpi-sub--inline{margin-top:0;padding-top:0}

/* ===== 2-col grid ===== */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); margin-bottom:var(--space-6); }
.section-header-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}
.section-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}
.workouts-summary-shell{margin-bottom:var(--space-6)}
.workouts-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}
.workouts-grid-main{align-items:start}
.workouts-grid-paired{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);margin-bottom:var(--space-6);align-items:stretch}
.workouts-parked-dashboard{display:grid;gap:var(--space-6);margin-bottom:var(--space-6)}
.workouts-dashboard-bottom{grid-template-columns:minmax(0,1fr)}
.workouts-dashboard-kpi-shell{margin-bottom:var(--space-6)}
.workouts-dashboard-kpi-shell .dashboard-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-4)}
.workouts-dashboard-kpi-shell .kpi-card{min-width:0}
.workouts-volume-pair-card{margin-bottom:var(--space-6)}
.workouts-volume-pair-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);align-items:stretch}
.workouts-chart-panel{min-width:0;display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid rgba(13,122,131,.12);border-radius:14px;background:rgba(255,255,255,.52)}
.workouts-chart-panel__title{color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.workouts-chart-panel #workoutsVolumeChart,
.workouts-chart-panel #workoutsDashboardVolumeChart{min-height:300px;display:flex;flex-direction:column;justify-content:center}
.workouts-grid-pace-goals{align-items:stretch}
.workouts-grid-pace-goals > .card{height:100%}
.workouts-pace-card{display:flex;flex-direction:column}
.workouts-pace-card #workoutsDashboardPaceChart{flex:1;min-height:330px}
.workouts-structure-card--wide{margin-bottom:var(--space-6)}
.workouts-structure-card__title{
  display:inline-flex;
  align-items:center;
  gap:6px;
  position:relative;
  min-width:0;
}
.workouts-charts-stack{display:grid;gap:var(--space-6);height:100%;grid-template-rows:repeat(2,minmax(0,1fr))}
.workouts-starts-card .stack-list{margin-top:0}
.workouts-volume-card{min-height:320px;display:flex;flex-direction:column}
.workouts-structure-card{min-height:0;display:flex;flex-direction:column;position:relative;z-index:40;overflow:visible}
.workouts-structure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.workouts-structure-panel{display:grid;gap:6px;min-width:0}
.workouts-structure-legend{margin-top:auto;padding-top:24px;display:flex;justify-content:center}
.workouts-structure-legend-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;justify-content:center}
.workouts-structure-legend-item{display:grid;grid-template-columns:14px minmax(0,1fr);gap:10px;align-items:center;padding:4px 0}
.workouts-structure-legend-item__swatch{width:14px;height:14px;display:block}
.workouts-structure-legend-item__label{font-size:14px;font-weight:700;color:var(--text)}
.workouts-structure-compact{display:grid;gap:8px}
.workouts-structure-compact__title{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-align:center}
.workouts-structure-compact__body{display:flex;align-items:center;justify-content:center}
.workouts-structure-compact__chart{position:relative;width:176px;height:176px;display:flex;align-items:center;justify-content:center}
.workouts-structure-compact__svg{width:176px;height:176px;display:block}
.workouts-structure-compact__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.workouts-structure-compact__center strong{font-size:30px;line-height:1;font-weight:800}
.workouts-structure-compact__center span{margin-top:4px;font-size:12px;font-weight:800;color:var(--muted);line-height:1}
.volume-chart-shell{margin-top:6px;display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:stretch}
.volume-chart-axis{height:320px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 0 22px;font-size:11px;color:var(--muted)}
.volume-chart{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;align-items:end;height:320px;padding:8px 0 22px}
.volume-chart__grid{position:absolute;inset:8px 0 22px;display:grid;grid-template-rows:repeat(4,1fr);pointer-events:none}
.volume-chart__grid span{border-top:1px dashed rgba(110,114,122,.22)}
.volume-chart__target{position:absolute;inset:8px 0 22px;pointer-events:none;color:#E4B62C}
.volume-bar{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;height:100%}
.volume-bar__value{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.volume-bar__plot{width:100%;height:228px;display:flex;align-items:flex-end;justify-content:center}
.volume-bar__column{width:100%;max-width:84px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#E58A6E 0%, rgba(227,138,114,.55) 100%);box-shadow:0 6px 18px rgba(227,138,114,.18);min-height:10px}
.volume-bar.is-hit .volume-bar__column{background:linear-gradient(180deg,var(--petrol) 0%, rgba(13,122,131,.55) 100%);box-shadow:0 6px 18px rgba(13,122,131,.18)}
.volume-bar.is-empty .volume-bar__column{background:rgba(110,114,122,.2);box-shadow:none}
.volume-bar__label{font-size:11px;color:var(--muted);text-transform:lowercase}
.volume-chart-empty{display:flex;align-items:center;justify-content:center;min-height:220px}
.workouts-goals-card{margin-bottom:0;height:100%}
.dashboard-last-workout__status{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 2px}
.dashboard-last-workout__status .workout-kind-chip{align-self:flex-start}
.workouts-goals-summary{margin-bottom:var(--space-5)}
.goals-progress{
  display:grid;
  gap:12px;
}
.goals-progress__item{
  display:grid;
  gap:6px;
  padding:12px 14px;
  border:1px solid rgba(222,214,204,.78);
  border-left:5px solid #b8c1c8;
  border-radius:16px;
  background:#fbfaf7;
  box-shadow:0 4px 14px rgba(40,37,29,.04);
}
.goals-progress__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:var(--text-xs);
  color:var(--muted);
}
.goals-progress__head strong{
  color:var(--text);
  font-size:var(--text-sm);
}
.goals-progress__percent{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:62px;
  padding:6px 12px;
  border-radius:999px;
  font-size:14px;
  font-weight:800;
  color:#39515a;
  background:#e7eef1;
}
.goals-progress__bar{
  height:12px;
  border-radius:999px;
  background:#ece8e1;
  overflow:hidden;
}
.goals-progress__bar span{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#8aa5b0 0%, #b7c9cf 100%);
}
.goals-progress__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:11px;
  color:#6b6f75;
}
.goals-progress__status{
  font-weight:700;
  text-align:right;
}
.goals-progress__item.is-started{
  border-left-color:#8ea3ad;
}
.goals-progress__item.is-started .goals-progress__bar span{
  background:linear-gradient(90deg,#93aab4 0%, #b7c9cf 100%);
}
.goals-progress__item.is-started .goals-progress__percent{
  color:#526872;
  background:#e3ebee;
}
.goals-progress__item.is-active{
  border-left-color:#1ca3ad;
  background:#f5fbfb;
}
.goals-progress__item.is-active .goals-progress__bar span{
  background:linear-gradient(90deg,#0d7a83 0%, #39bdc4 100%);
}
.goals-progress__item.is-active .goals-progress__percent{
  color:#06555c;
  background:#d8f4f5;
}
.goals-progress__item.is-complete{
  border-color:rgba(64,154,110,.24);
  border-left-color:#2e9d66;
  background:#f2fbf5;
}
.goals-progress__item.is-complete .goals-progress__bar span{
  background:linear-gradient(90deg,#22985f 0%, #5fd486 100%);
}
.goals-progress__item.is-complete .goals-progress__percent{
  color:#166f46;
  background:#daf6e4;
}
.goals-progress__item.is-complete .goals-progress__status{
  color:#1b7f50;
}
.u-w-0{width:0%}.u-w-1{width:1%}.u-w-2{width:2%}.u-w-3{width:3%}.u-w-4{width:4%}.u-w-5{width:5%}.u-w-6{width:6%}.u-w-7{width:7%}.u-w-8{width:8%}.u-w-9{width:9%}.u-w-10{width:10%}
.u-w-11{width:11%}.u-w-12{width:12%}.u-w-13{width:13%}.u-w-14{width:14%}.u-w-15{width:15%}.u-w-16{width:16%}.u-w-17{width:17%}.u-w-18{width:18%}.u-w-19{width:19%}.u-w-20{width:20%}
.u-w-21{width:21%}.u-w-22{width:22%}.u-w-23{width:23%}.u-w-24{width:24%}.u-w-25{width:25%}.u-w-26{width:26%}.u-w-27{width:27%}.u-w-28{width:28%}.u-w-29{width:29%}.u-w-30{width:30%}
.u-w-31{width:31%}.u-w-32{width:32%}.u-w-33{width:33%}.u-w-34{width:34%}.u-w-35{width:35%}.u-w-36{width:36%}.u-w-37{width:37%}.u-w-38{width:38%}.u-w-39{width:39%}.u-w-40{width:40%}
.u-w-41{width:41%}.u-w-42{width:42%}.u-w-43{width:43%}.u-w-44{width:44%}.u-w-45{width:45%}.u-w-46{width:46%}.u-w-47{width:47%}.u-w-48{width:48%}.u-w-49{width:49%}.u-w-50{width:50%}
.u-w-51{width:51%}.u-w-52{width:52%}.u-w-53{width:53%}.u-w-54{width:54%}.u-w-55{width:55%}.u-w-56{width:56%}.u-w-57{width:57%}.u-w-58{width:58%}.u-w-59{width:59%}.u-w-60{width:60%}
.u-w-61{width:61%}.u-w-62{width:62%}.u-w-63{width:63%}.u-w-64{width:64%}.u-w-65{width:65%}.u-w-66{width:66%}.u-w-67{width:67%}.u-w-68{width:68%}.u-w-69{width:69%}.u-w-70{width:70%}
.u-w-71{width:71%}.u-w-72{width:72%}.u-w-73{width:73%}.u-w-74{width:74%}.u-w-75{width:75%}.u-w-76{width:76%}.u-w-77{width:77%}.u-w-78{width:78%}.u-w-79{width:79%}.u-w-80{width:80%}
.u-w-81{width:81%}.u-w-82{width:82%}.u-w-83{width:83%}.u-w-84{width:84%}.u-w-85{width:85%}.u-w-86{width:86%}.u-w-87{width:87%}.u-w-88{width:88%}.u-w-89{width:89%}.u-w-90{width:90%}
.u-w-91{width:91%}.u-w-92{width:92%}.u-w-93{width:93%}.u-w-94{width:94%}.u-w-95{width:95%}.u-w-96{width:96%}.u-w-97{width:97%}.u-w-98{width:98%}.u-w-99{width:99%}.u-w-100{width:100%}
.goals-group{display:grid;grid-template-columns:160px minmax(0,1fr);gap:var(--space-4);align-items:start;padding-top:var(--space-4);margin-top:var(--space-4);border-top:1px solid var(--divider)}
.goals-group:first-of-type{padding-top:0;margin-top:0;border-top:none}
.goals-group__label{font-size:var(--text-sm);font-weight:700;line-height:1.4;color:var(--text)}
.goals-group__inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.workout-tools-grid{display:grid;gap:var(--space-5)}
.workout-tool{padding:16px 18px;border:1px solid var(--divider);border-radius:18px;background:rgba(255,255,255,.52)}
.tool-title{font-size:var(--text-sm);font-weight:700;letter-spacing:-.01em;margin-bottom:var(--space-4)}
.tool-fields{display:grid;gap:var(--space-3);margin-bottom:var(--space-4)}
.tool-fields-compact{grid-template-columns:repeat(4,minmax(0,1fr))}
.calc-result{padding:12px 14px;border-radius:14px;background:rgba(13,122,131,.08);color:var(--petrol-strong);font-size:var(--text-sm);line-height:1.35}
.calc-result.is-muted{background:rgba(110,114,122,.08);color:var(--muted)}
.focus-race-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}
.focus-race-name{font-size:var(--text-base);font-weight:700;letter-spacing:-.01em}
.focus-race-meta{font-size:var(--text-xs);color:var(--muted);margin-top:4px}
.focus-race-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.focus-race-stat{padding:12px;border:1px solid var(--divider);border-radius:14px;background:rgba(255,255,255,.54)}
.focus-race-stat strong{display:block;font-size:var(--text-base);letter-spacing:-.02em}
.focus-race-stat span{display:block;font-size:var(--text-xs);color:var(--muted);margin-top:4px}
.kpi-split{display:flex;align-items:flex-end;gap:10px;line-height:1}
.kpi-split .kpi-sep{font-size:var(--text-xl);color:var(--muted);font-weight:800;line-height:1}
.kpi-foot{display:flex;justify-content:space-between;gap:8px;margin-top:.5rem;font-size:var(--text-xs);color:var(--muted)}
.kpi-foot-right{text-align:right}
.delta-pos{color:var(--success)}
.delta-neg{color:var(--error)}
.delta-flat{color:var(--muted)}
.csv-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:132px;padding:18px;border:1.5px dashed var(--border);border-radius:18px;background:rgba(255,255,255,.52);text-align:center;cursor:pointer;transition:border-color var(--transition),background var(--transition),transform var(--transition);margin-bottom:12px}
.csv-dropzone:hover,.csv-dropzone.is-dragover{border-color:var(--petrol);background:rgba(13,122,131,.08);transform:translateY(-1px)}
.csv-dropzone__title{font-size:var(--text-sm);font-weight:700;color:var(--text)}
.csv-dropzone__meta{font-size:var(--text-xs);color:var(--muted)}
#wImportFile{position:absolute;left:-9999px;opacity:0;pointer-events:none}
.weekly-workouts{display:grid;gap:16px}
.weekly-workouts__footer{display:flex;justify-content:center;margin-top:4px}
.workouts-list-filter{display:flex;flex-wrap:wrap;gap:8px}
.workout-filter-btn{width:38px;height:38px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.72);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm)}
.workout-filter-btn:hover{background:var(--bg);color:var(--text);transform:translateY(-1px)}
.workout-filter-btn i{width:16px;height:16px}
.workout-filter-btn img{width:16px;height:16px;object-fit:contain;display:block}
.workout-filter-btn--race img{width:22px;height:22px}
.workout-filter-btn--control img{width:22px;height:22px}
.workout-filter-btn--race{background:rgba(185,80,60,.08);border-color:rgba(185,80,60,.16);color:var(--coral-text)}
.workout-filter-btn--control{background:rgba(42,112,170,.09);border-color:rgba(42,112,170,.18);color:#24699d}
.workout-filter-btn--long{background:rgba(27,127,80,.08);border-color:rgba(27,127,80,.16);color:#1b7f50}
.workout-filter-btn--tempo{background:rgba(13,122,131,.08);border-color:rgba(13,122,131,.16);color:var(--petrol)}
.workout-filter-btn--sprints{background:rgba(199,142,35,.10);border-color:rgba(199,142,35,.18);color:#8a5c00}
.workout-filter-btn.is-active{transform:translateY(-1px);box-shadow:0 12px 28px rgba(13,122,131,.16);border-width:2px}
.workout-filter-btn--race.is-active{background:rgba(185,80,60,.22);border-color:rgba(185,80,60,.34);color:var(--coral-text)}
.workout-filter-btn--control.is-active{background:rgba(42,112,170,.24);border-color:rgba(42,112,170,.42);color:#174f78}
.workout-filter-btn--long.is-active{background:rgba(27,127,80,.20);border-color:rgba(27,127,80,.34);color:#176843}
.workout-filter-btn--tempo.is-active{background:rgba(13,122,131,.20);border-color:rgba(13,122,131,.34);color:#0b5e65}
.workout-filter-btn--sprints.is-active{background:rgba(199,142,35,.22);border-color:rgba(199,142,35,.36);color:#7a4d00}
.week-card{border:1px solid var(--divider);border-radius:18px;background:rgba(255,255,255,.58);overflow:hidden}
.week-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--divider);background:rgba(255,255,255,.42)}
.week-card__title{font-size:var(--text-sm);font-weight:700;letter-spacing:-.01em}
.week-card__meta{font-size:var(--text-xs);color:var(--muted);margin-top:4px}
.week-card__stats{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.week-card__stat{padding:8px 10px;border:1px solid var(--divider);border-radius:999px;background:rgba(255,255,255,.72);font-size:var(--text-xs);color:var(--muted)}
.workout-row{display:grid;grid-template-columns:120px 96px 96px 96px 88px 88px minmax(150px,1fr) 282px;gap:12px;padding:12px 16px;border-bottom:1px solid var(--divider);align-items:start}
.workout-row > *{min-width:0}
.workout-row:last-child{border-bottom:none}
.workout-row--header{background:rgba(255,255,255,.48);padding-top:10px;padding-bottom:10px}
.workout-row--header .workout-cell-main,.workout-actions-cell--header{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.workout-cell-label{display:none}
.workout-cell-main{font-size:var(--text-sm)}
.workout-cell--metric .workout-cell-main{display:block;text-align:center}
.workout-cell-sub{font-size:var(--text-xs);color:var(--muted);margin-top:3px}
.workout-cell--icon{display:flex;align-items:center;justify-content:center}
.workout-cell--metric{text-align:center}
.workout-row--metric-legend .workout-cell--metric{
  display:flex;
  align-items:center;
  justify-content:center;
}
.workout-row--metric-legend .workout-cell-label--icon{
  display:flex;
  align-items:center;
  justify-content:center;
}
.workout-row--metric-legend .workout-col-icon{width:24px;height:24px}
.workout-row--metric-legend .workout-col-icon svg{width:14px;height:14px}
.workout-col-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:rgba(13,122,131,.08);color:var(--petrol)}
.workout-col-icon svg{width:15px;height:15px}
.workout-note-cell{min-width:0}
.workout-note-cell .workout-cell-main{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}
.workout-note-text{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workout-note-status{flex:0 0 auto;display:flex;align-items:center;gap:4px;min-width:0}
.workout-actions-cell{display:flex;justify-content:flex-end;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0}
.icon-action{width:34px;height:34px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.7);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}
.icon-action:hover{background:var(--bg);color:var(--text)}
.icon-action i{width:15px;height:15px}
.icon-action-danger:hover{background:var(--coral-soft);border-color:rgba(185,80,60,.25);color:var(--coral-text)}
.icon-action-season-primary{position:relative;color:#a9790c;border-color:rgba(212,162,31,.26);background:rgba(255,249,225,.74)}
.icon-action-season-primary:hover,
.icon-action-season-primary.is-active{color:#fff;border-color:#c49112;background:#d4a21f;box-shadow:0 0 0 3px rgba(212,162,31,.20),0 10px 22px rgba(212,162,31,.26)}
.icon-action-season-primary.is-active::after{content:"";position:absolute;right:5px;top:5px;width:6px;height:6px;border-radius:999px;background:#fff;box-shadow:0 0 0 2px rgba(140,95,0,.18)}
.icon-action-season-primary.is-active i{stroke-width:3}
.workout-type-action{width:34px;height:34px;flex:0 0 34px}
.workout-type-action img{width:15px;height:15px;object-fit:contain}
.workout-type-action--race img{width:21px;height:21px}
.workout-type-action--control img{width:21px;height:21px}
.workout-type-action i{width:15px;height:15px}
.workout-type-action--race{background:rgba(185,80,60,.08);border-color:rgba(185,80,60,.16);color:var(--coral-text)}
.workout-type-action--control{background:rgba(42,112,170,.09);border-color:rgba(42,112,170,.18);color:#24699d}
.workout-type-action--long{background:rgba(27,127,80,.08);border-color:rgba(27,127,80,.16);color:#1b7f50}
.workout-type-action--tempo{background:rgba(13,122,131,.08);border-color:rgba(13,122,131,.16);color:var(--petrol)}
.workout-type-action--sprints{background:rgba(199,142,35,.10);border-color:rgba(199,142,35,.18);color:#8a5c00}
.workout-type-action.is-active{transform:translateY(-1px) scale(1.06);box-shadow:0 12px 28px rgba(13,122,131,.18);border-width:2px}
.workout-type-action.is-active i,.workout-type-action.is-active img{transform:scale(1.08)}
.workout-type-action--race.is-active{background:rgba(185,80,60,.52);border-color:rgba(185,80,60,.76);color:#7f2412;box-shadow:0 14px 28px rgba(185,80,60,.24)}
.workout-type-action--control.is-active{background:rgba(42,112,170,.54);border-color:rgba(42,112,170,.78);color:#123d5d;box-shadow:0 14px 28px rgba(42,112,170,.24)}
.workout-type-action--long.is-active{background:rgba(27,127,80,.50);border-color:rgba(27,127,80,.74);color:#0c502b;box-shadow:0 14px 28px rgba(27,127,80,.22)}
.workout-type-action--tempo.is-active{background:rgba(13,122,131,.50);border-color:rgba(13,122,131,.74);color:#063f44;box-shadow:0 14px 28px rgba(13,122,131,.22)}
.workout-type-action--sprints.is-active{background:rgba(199,142,35,.56);border-color:rgba(199,142,35,.78);color:#5d3b00;box-shadow:0 14px 28px rgba(199,142,35,.24)}
.workout-type-action.is-active img{filter:none}
/* ===== TABLE ===== */
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:var(--text-sm); }
thead th { padding:.78rem var(--space-4); text-align:left; font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); border-bottom:1px solid var(--divider); }
tbody td { padding:.82rem var(--space-4); line-height:1.4; border-bottom:1px solid var(--divider); }
tbody tr:last-child td { border-bottom:none; }
tbody tr:hover td { background:rgba(255,255,255,.45); }
.tabular { font-variant-numeric:tabular-nums; }
.entity-title { display:flex; flex-direction:column; gap:4px; }
.entity-sub { color:var(--muted); font-size:var(--text-xs); }
.race-source-badge{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  min-height:22px;
  padding:0 8px;
  border-radius:999px;
  border:1px solid rgba(13,122,131,.18);
  background:rgba(13,122,131,.08);
  color:var(--petrol-strong);
  font-size:11px;
  font-weight:800;
  letter-spacing:.03em;
  white-space:nowrap;
}
.race-source-badge--official{
  border-color:rgba(13,122,131,.18);
  background:rgba(13,122,131,.08);
  color:var(--petrol-strong);
}
.race-source-badge--russiarunning{
  border-color:rgba(200,142,37,.24);
  background:rgba(243,194,74,.16);
  color:#845a00;
}
.race-source-mark{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
}
.race-source-mark__logo{
  width:18px;
  height:18px;
  display:block;
  object-fit:contain;
}
.race-mass-index{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:5px 7px;
  width:max-content;
  max-width:100%;
  margin-top:5px;
  padding:5px 8px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:999px;
  background:rgba(232,248,247,.72);
  color:var(--petrol-strong);
  font-size:11px;
  font-weight:850;
  line-height:1.1;
}
.race-mass-index > i{
  flex:0 0 auto;
  width:13px;
  height:13px;
}
.race-mass-index__stars{
  display:inline-flex;
  gap:1px;
  color:#c3c9cb;
  letter-spacing:0;
}
.race-mass-index__star.is-active{
  color:#d4a21f;
}
.race-mass-index strong{
  color:var(--text);
  font-size:11px;
}
.race-mass-index em{
  color:var(--muted);
  font-size:10px;
  font-style:normal;
  font-weight:800;
}
.race-mass-index__trend{
  width:12px;
  height:12px;
  color:var(--success);
}
.race-mass-index--unknown{
  background:rgba(244,246,246,.78);
  color:var(--muted);
}
.race-mass-index--unknown strong{
  color:var(--muted);
}
.meta-stack { display:flex; flex-direction:column; gap:4px; }
.link-row { display:flex; flex-wrap:wrap; gap:8px; }
.text-link { color:var(--petrol); text-decoration:none; font-weight:700; }
.text-link--strong { display:inline-block; }
.text-link:hover { text-decoration:underline; }
.form-label-with-tooltip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  position:relative;
  width:max-content;
  max-width:100%;
}
.form-label-with-tooltip label{
  color:inherit;
  font:inherit;
  cursor:pointer;
}
.form-label-with-tooltip .inline-tooltip{
  position:relative;
  top:auto;
  right:auto;
  z-index:12;
}
.form-label-with-tooltip .inline-tooltip__bubble{
  right:auto;
  left:0;
  bottom:calc(100% + 10px);
}
#page-races .card-section-gap{
  position:relative;
  z-index:300;
  overflow:visible;
}
#page-races .card-section-gap + .card{
  position:relative;
  z-index:1;
}
.form-group--bsi-filter{
  position:relative;
  z-index:60;
  overflow:visible;
}
.form-group--bsi-filter:hover,
.form-group--bsi-filter:focus-within{
  z-index:260;
}
.form-label-with-tooltip--bsi{
  z-index:261;
}
.form-label-with-tooltip .inline-tooltip--bsi-filter{
  position:relative;
  top:auto !important;
  right:auto !important;
  left:auto !important;
  z-index:262;
}
.form-label-with-tooltip .inline-tooltip--bsi-filter .inline-tooltip__bubble{
  right:0;
  left:auto;
  top:calc(100% + 10px);
  bottom:auto;
  width:320px;
  max-width:min(320px, calc(100vw - 32px));
  transform:translateY(-4px);
  z-index:263;
}
.form-label-with-tooltip .inline-tooltip--bsi-filter:hover .inline-tooltip__bubble,
.form-label-with-tooltip .inline-tooltip--bsi-filter:focus-within .inline-tooltip__bubble,
.form-label-with-tooltip .inline-tooltip--bsi-filter.is-open .inline-tooltip__bubble{
  transform:translateY(0);
}
.races-toolbar { display:grid; grid-template-columns:minmax(220px, 1.2fr) minmax(140px, 180px) minmax(160px, 200px) minmax(200px, 250px) minmax(180px, 220px); gap:var(--space-4); align-items:end; }
.races-pagination{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-top:14px;
  margin-top:14px;
  border-top:1px solid var(--divider);
}
.races-pagination__summary,
.races-pagination__page{
  color:var(--muted);
  font-size:var(--text-sm);
  font-weight:700;
}
.races-pagination__controls{
  display:flex;
  align-items:center;
  gap:10px;
}
.check-card { display:flex; align-items:center; gap:10px; min-height:48px; padding:0 14px; border:1px solid var(--border); border-radius:var(--radius-lg); background:rgba(255,255,255,.72); font-size:var(--text-sm); }
.check-card input { width:16px; height:16px; accent-color:var(--petrol); }
.cell-nowrap { white-space:nowrap; }
.cell-center { text-align:center; }
#page-races thead th:last-child { text-align:center; }
.race-add-btn {
  min-width:88px;
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  border:1px solid rgba(13,122,131,.18);
  border-radius:999px;
  background:rgba(13,122,131,.08);
  color:var(--petrol);
  cursor:pointer;
  font-size:12px;
  font-weight:800;
  letter-spacing:.01em;
  transition:var(--transition);
}
.race-add-btn:hover {
  background:rgba(13,122,131,.16);
  border-color:rgba(13,122,131,.30);
  color:#0b5e65;
}
.race-presence-mark {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:none;
  background:transparent;
  cursor:pointer;
}
.race-presence-mark img {
  width:56px;
  height:56px;
  object-fit:contain;
  display:block;
}

.my-races-calendar{
  display:grid;
  gap:18px;
}
.my-races-calendar__months{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  align-items:start;
}
.my-races-calendar__more{
  display:none;
  justify-self:center;
}
.my-races-calendar__month{
  display:grid;
  align-content:start;
  grid-template-rows:auto auto;
  gap:8px;
  padding:14px;
  border:1px solid var(--divider);
  border-radius:16px;
  background:rgba(255,255,255,.62);
  box-shadow:0 10px 24px rgba(43,47,51,.06);
}
.my-races-calendar__title{
  font-size:12px;
  font-weight:700;
  color:var(--muted);
}
.my-races-calendar__grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px;
}
.my-races-calendar__weekday{
  text-align:center;
  font-size:9px;
  font-weight:700;
  color:var(--muted);
  text-transform:uppercase;
}
.my-races-calendar__day{
  min-height:44px;
  padding:5px 4px;
  border:1px solid var(--divider);
  border-radius:8px;
  background:rgba(255,255,255,.52);
  display:block;
  position:relative;
  text-decoration:none;
  transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.my-races-calendar__day.is-empty{
  background:rgba(110,114,122,.05);
  border-style:dashed;
}
.my-races-calendar__day.is-weekend{
  background:rgba(227,138,114,.1);
  border-color:rgba(227,138,114,.18);
}
.my-races-calendar__day.is-race{
  border-color:rgba(13,122,131,.24);
  background:rgba(13,122,131,.08);
}
.my-races-calendar__day.is-race.is-weekend{
  background:linear-gradient(180deg, rgba(13,122,131,.1) 0%, rgba(227,138,114,.09) 100%);
}
.my-races-calendar__day.is-link{
  cursor:pointer;
}
.my-races-calendar__day.is-link:hover{
  border-color:rgba(13,122,131,.38);
  box-shadow:0 6px 16px rgba(13,122,131,.12);
  transform:translateY(-1px);
}
.my-races-calendar__daynum{
  position:relative;
  z-index:1;
  font-size:11px;
  font-weight:800;
  color:var(--text);
}
.my-races-calendar__day.is-weekend .my-races-calendar__daynum{
  color:var(--coral-text);
}
.my-races-calendar__badge{
  position:absolute;
  right:4px;
  bottom:4px;
  width:24px;
  height:24px;
  object-fit:contain;
  pointer-events:none;
}
.my-races-table__link{
  color:var(--petrol);
  text-decoration:none;
  text-underline-offset:3px;
}
.my-races-table__link:hover{
  text-decoration:underline;
}
.my-races-table{
  border-collapse:separate;
  border-spacing:0 10px;
}
.my-races-section-card{
  display:grid;
  gap:var(--space-4);
}
.my-races-list-header{
  margin-bottom:0;
}
.my-races-list-header .entity-sub{
  margin-top:3px;
}
.my-races-table thead th{
  padding:0 16px 2px;
  border-bottom:none;
}
.my-races-table tbody td{
  padding:14px 16px;
  vertical-align:middle;
  background:rgba(255,255,255,.68);
  border-top:1px solid rgba(13,122,131,.18);
  border-bottom:1px solid rgba(13,122,131,.18);
}
.my-races-table tbody tr:hover td{
  background:rgba(255,255,255,.86);
  border-top-color:rgba(13,122,131,.28);
  border-bottom-color:rgba(13,122,131,.28);
}
.my-races-table tbody td:first-child{
  border-left:1px solid rgba(13,122,131,.18);
  border-radius:14px 0 0 14px;
}
.my-races-table tbody td:last-child{
  border-right:1px solid rgba(13,122,131,.18);
  border-radius:0 14px 14px 0;
}
.my-races-table__row--season-primary td{
  background:rgba(255,249,225,.72);
  border-top-color:rgba(212,162,31,.30);
  border-bottom-color:rgba(212,162,31,.30);
}
.my-races-table__row--season-primary td:first-child{
  border-left-color:rgba(212,162,31,.34);
}
.my-races-table__row--season-primary td:last-child{
  border-right-color:rgba(212,162,31,.34);
}
.my-races-table__row--past td{
  background:rgba(247,251,248,.76);
  border-top-color:rgba(74,123,75,.20);
  border-bottom-color:rgba(74,123,75,.20);
}
.my-races-table__row--past td:first-child{
  border-left-color:rgba(74,123,75,.26);
}
.my-races-table__row--past td:last-child{
  border-right-color:rgba(74,123,75,.26);
}
.my-races-table__main .entity-title strong{
  font-size:var(--text-base);
  line-height:1.35;
}
.my-races-table__topline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.my-races-table__topmeta{
  display:none;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}
.my-races-table__topmeta-row{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}
.my-races-table__main .entity-sub{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  align-items:center;
  margin-top:2px;
}
.my-race-completion-prompt{
  display:inline-flex;
  align-items:center;
  gap:7px;
  width:auto;
  max-width:100%;
  margin-top:8px;
  padding:7px 10px;
  border:1px solid rgba(13,122,131,.16);
  border-radius:10px;
  background:rgba(13,122,131,.07);
  color:var(--petrol-strong);
  font:inherit;
  font-size:12px;
  font-weight:800;
  line-height:1.25;
  text-align:left;
  cursor:pointer;
}
.my-race-completion-prompt svg{
  flex:0 0 auto;
  width:15px;
  height:15px;
}
.my-race-completion-prompt:hover{
  border-color:rgba(13,122,131,.28);
  background:rgba(13,122,131,.11);
}
.my-races-table__status,
.my-races-table__distance{
  width:1%;
  white-space:nowrap;
  vertical-align:top;
  padding-top:14px;
}
.my-races-table tbody td.my-races-table__distance,
.my-races-table tbody td.my-races-table__status,
.my-races-table tbody td.my-races-table__actions{
  vertical-align:top;
  padding-top:14px;
}
.my-races-table__status{
  text-align:left;
}
.my-races-table__distance{
  text-align:left;
}
.my-races-table__actions{
  text-align:right;
  width:292px;
  white-space:nowrap;
  vertical-align:top;
  padding-top:12px;
}
.my-races-table__action-buttons{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.my-races-table__mobile-weather{
  display:none;
}
.my-races-table__distance-chip{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(1,105,111,.10);
  color:var(--petrol);
  font-size:var(--text-xs);
  font-weight:700;
  white-space:nowrap;
}
.my-races-table__season-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  width:max-content;
  margin-top:7px;
  padding:5px 10px;
  border:1px solid rgba(212,162,31,.32);
  border-radius:999px;
  background:rgba(255,249,225,.84);
  color:#8b6207;
  font-size:11px;
  font-weight:900;
  line-height:1.1;
  white-space:nowrap;
}
.my-races-table__season-badge i{
  width:13px;
  height:13px;
  stroke-width:2.7;
}
.my-races-table__topmeta .my-races-table__season-badge{
  margin-top:0;
}
.race-weather{
  position:relative;
  margin-left:auto;
  display:grid;
  gap:6px;
  width:min(280px,100%);
  padding:9px 10px;
  border:1px solid rgba(13,122,131,.24);
  border-radius:12px;
  background:linear-gradient(135deg, rgba(232,248,247,.98), rgba(255,252,240,.96));
  color:var(--ink);
  text-align:left;
  white-space:normal;
  box-shadow:0 10px 22px rgba(13,122,131,.08);
}
.race-weather__head{
  display:flex;
  align-items:center;
  gap:6px;
  padding-right:22px;
  color:#01696f;
  font-size:var(--text-xs);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.race-weather__head i{
  width:15px;
  height:15px;
}
.race-weather__info{
  display:none;
}
.race-weather__metrics{
  display:flex;
  flex-wrap:wrap;
  gap:6px 10px;
  font-size:var(--text-xs);
  color:var(--muted);
}
.race-weather__metrics span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
  font-weight:800;
}
.race-weather__metrics i{
  width:14px;
  height:14px;
}
.race-weather__metric--temp{color:#d35f2d}
.race-weather__metric--temp i{color:#e06a2c}
.race-weather__metric--temp strong{color:#b84820}
.race-weather__metric--wind{color:#0d7a83}
.race-weather__metric--wind i{color:#0d7a83}
.race-weather__metric--rain{color:#3f75c8}
.race-weather__metric--rain i{color:#3f75c8}
.race-weather__metrics strong{
  font-size:var(--text-sm);
}
.race-weather__summary{
  font-size:var(--text-xs);
  font-weight:800;
  color:#2f5f25;
}
.race-weather__note{
  color:#5a6468;
  font-size:var(--text-xs);
  line-height:1.35;
}
.race-weather--medium{
  border-color:rgba(224,154,31,.42);
  background:linear-gradient(135deg, rgba(255,248,224,.98), rgba(255,239,219,.96));
}
.race-weather--high{
  border-color:rgba(212,89,79,.42);
  background:linear-gradient(135deg, rgba(255,241,238,.98), rgba(255,231,224,.96));
}
.race-weather--muted{
  border-color:rgba(126,139,145,.22);
  background:linear-gradient(135deg, rgba(246,248,248,.96), rgba(239,244,245,.92));
}
.my-races-table__actions .race-weather{
  margin-top:4px;
}
.my-races-season-row td{
  padding:0 0 2px !important;
  background:transparent !important;
  border:0 !important;
}
.my-races-table tbody tr.my-races-season-row:hover td{
  background:transparent !important;
}
.my-races-season-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  min-height:44px;
  padding:10px 14px;
  border:1px solid rgba(13,122,131,.18);
  border-radius:14px;
  background:linear-gradient(135deg, rgba(232,248,247,.82), rgba(255,252,240,.76));
  color:var(--petrol-strong);
  font:inherit;
  font-weight:900;
  cursor:pointer;
  text-align:left;
}
.my-races-season-toggle em{
  margin-left:auto;
  color:var(--muted);
  font-size:12px;
  font-style:normal;
  font-weight:850;
}
.my-races-season-toggle i{
  width:17px;
  height:17px;
  transition:transform var(--transition);
}
.my-races-season-toggle.is-open i{
  transform:rotate(180deg);
}
.my-races-season-summary-row td{
  padding:0 0 4px !important;
  background:transparent !important;
  border:0 !important;
}
.my-races-table tbody tr.my-races-season-summary-row:hover td{
  background:transparent !important;
}
.my-races-season-summary{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:8px;
  padding:10px 12px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:14px;
  background:linear-gradient(135deg, rgba(255,255,255,.86), rgba(232,248,247,.62));
  box-shadow:0 8px 18px rgba(13,122,131,.05);
}
.my-races-season-summary__item{
  min-width:0;
  display:grid;
  align-content:start;
  gap:3px;
  padding:8px 9px;
  border-radius:10px;
  background:rgba(255,255,255,.58);
}
.my-races-season-summary__item span{
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.my-races-season-summary__item strong{
  overflow:hidden;
  color:var(--petrol-strong);
  font-size:15px;
  line-height:1.16;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.my-races-season-summary__item em{
  overflow:hidden;
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-style:normal;
  font-weight:750;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.my-races-table__row.is-focus-pulse{
  outline:2px solid rgba(227,138,114,.72);
  outline-offset:2px;
  box-shadow:0 0 0 6px rgba(227,138,114,.12), 0 12px 28px rgba(13,122,131,.10);
}
.my-races-table__row[hidden]{
  display:none !important;
}

/* ===== SECTION HEADER ===== */
.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-6); }
.section-title { font-size:var(--text-lg); font-weight:800; letter-spacing:-.02em; }

/* ===== EMPTY STATE ===== */
.empty-state { display:flex; flex-direction:column; align-items:center; text-align:center; padding:var(--space-12) var(--space-8); color:var(--muted); }
.empty-state-compact { padding:var(--space-8); }
.empty-state-roomy { padding:var(--space-10); }
.empty-icon { width:42px; height:42px; color:var(--faint); margin-bottom:var(--space-4); }
.empty-state h3 { font-size:var(--text-base); font-weight:700; color:var(--text); margin-bottom:.4rem; }
.empty-state p { font-size:var(--text-sm); max-width:32ch; margin-bottom:var(--space-5); }

/* ===== MODAL ===== */
.overlay { position:fixed; inset:0; background:rgba(43,47,51,.4); display:flex; align-items:center; justify-content:center; z-index:999; padding:var(--space-4); opacity:0; pointer-events:none; transition:opacity var(--transition); backdrop-filter:blur(4px); }
.overlay.open { opacity:1; pointer-events:all; }
.modal {
  width:100%; max-width:480px;
  background:rgba(255,255,255,.92); border:1px solid var(--border);
  border-radius:var(--radius-xl); padding:var(--space-6);
  box-shadow:var(--shadow-lg);
  transform:translateY(10px); transition:transform var(--transition);
  backdrop-filter:blur(18px);
}
.overlay.open .modal { transform:translateY(0); }
.modal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-5); }
.modal-head--end{justify-content:flex-end}
.modal-title { font-size:var(--text-lg); font-weight:800; letter-spacing:-.01em; }
.modal-foot { display:flex; gap:.75rem; justify-content:flex-end; margin-top:var(--space-6); }

.status-chip { display:inline-flex; align-items:center; padding:5px 10px; border-radius:999px; font-size:var(--text-xs); font-weight:700; white-space:nowrap; }
.status-open, .status-finished_confirmed, .status-registered, .status-registered_unconfirmed, .status-registered_confirmed { background:var(--success-soft); color:var(--success); }
.status-unknown, .status-registration_started, .status-finished_unconfirmed, .status-bib_assigned { background:var(--petrol-soft); color:var(--petrol); }
.status-interested, .status-planned { background:rgba(228,182,44,.16); color:#9a6d00; }
.status-closed, .status-sold_out, .status-skipped, .status-dns, .status-dnf { background:var(--coral-soft); color:var(--coral-text); }
.workouts-goals-actions{display:flex;justify-content:flex-end;margin-top:var(--space-5)}

/* ===== PROFILE ===== */
.profile-avatar { width:72px; height:72px; border-radius:var(--radius-full); background:linear-gradient(135deg,var(--petrol),var(--coral)); display:flex; align-items:center; justify-content:center; font-size:var(--text-xl); font-weight:800; color:#fff; flex-shrink:0; }
.profile-layout{display:grid;gap:var(--space-6);max-width:1120px;margin-left:0}
.profile-top-grid,.profile-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6);align-items:start}
.profile-card{max-width:none}
.profile-integrations-card{max-width:none}
@media (min-width: 901px){
  .profile-integrations-card{
    width:100%;
    max-width:calc((1120px - var(--space-6)) / 2);
  }
}
.profile-head{display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-6)}
.profile-name{font-size:var(--text-lg);font-weight:800;letter-spacing:-.02em}
.profile-email{font-size:var(--text-sm);color:var(--muted)}
.profile-loc{font-size:var(--text-sm);color:var(--muted);margin-top:2px}
.profile-club{font-size:var(--text-sm);font-weight:700;color:var(--text);margin-top:8px}
.profile-club-link{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--text-xs);color:var(--petrol);text-decoration:underline;text-underline-offset:3px;margin-top:4px}
.profile-actions{display:flex;gap:.75rem;margin-top:var(--space-2)}
.profile-actions-tight{margin-top:var(--space-4);flex-wrap:wrap}
@media (min-width: 641px){
  #page-my-data .profile-actions .btn,
  #page-profile .profile-actions .btn,
  #page-profile #pwdBtn{
    min-height:44px;
    padding:0 14px;
    font-size:var(--text-xs);
  }
}
.profile-records-block{
  margin-top:var(--space-5);
  padding-top:var(--space-5);
  border-top:1px solid var(--divider);
}
.profile-records-block__title{
  margin-bottom:var(--space-4);
  font-size:var(--text-sm);
  font-weight:800;
}
.profile-records-block--flush{
  margin-top:0;
  padding-top:0;
  border-top:none;
}
.profile-danger-card{border-color:rgba(185,80,60,.24);background:rgba(255,255,255,.58)}
.profile-danger-copy p{font-size:var(--text-sm);line-height:1.55;color:var(--muted)}
.profile-integration-card{margin-top:var(--space-2);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:rgba(255,255,255,.58)}
.profile-integration-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.profile-integration-logo{display:block;width:190px;max-width:100%;height:auto}
.profile-integration-sub{font-size:var(--text-sm);color:var(--muted);margin-top:4px;max-width:42ch}
.profile-divider{border:none;border-top:1px solid var(--divider);margin:var(--space-6) 0}
.visually-hidden-input{position:absolute;left:-9999px;opacity:0;width:1px;height:1px}

/* ===== MOBILE ===== */
.sidebar-backdrop { display:none; position:fixed; inset:0; background:rgba(43,47,51,.35); z-index:99; backdrop-filter:blur(2px); }
.hamburger { display:none; }

@media(max-width:900px){
  .page.active#page-dashboard{
    display:grid;
    gap:var(--space-4);
  }
  #page-dashboard > *{
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
  #page-dashboard .card.card-pad{
    padding:var(--space-4);
  }
  .main::before {
    background-size:min(70vw, 540px) auto;
    background-position:center 54%;
    opacity:.08;
  }
  .sidebar { position:fixed; left:0; top:0; transform:translateX(-110%); }
  .sidebar.open { transform:translateX(0); box-shadow:var(--shadow-lg); }
  .sidebar-backdrop.open { display:block; }
  .dashboard-mix-card{grid-template-columns:1fr;justify-items:center}
  .dashboard-mix-legend{width:100%}
  .hamburger { display:flex; }
  .content { padding:var(--space-4); }
  .topbar { padding:0 var(--space-4); }
  .kpi-grid { grid-template-columns:1fr 1fr; }
  .grid-2 { grid-template-columns:1fr; }
  .dashboard-hero{
    grid-template-columns:1fr;
    gap:var(--space-4);
  }
  .dashboard-hero__copy{
    gap:10px;
  }
  .dashboard-hero__title{
    margin-top:0;
    font-size:clamp(1.45rem,1.15rem + 1vw,2rem);
  }
  .dashboard-hero__meta{
    margin-top:0;
    max-width:none;
  }
  .dashboard-hero__side{
    gap:var(--space-3);
  }
  .dashboard-kpi-shell{grid-template-columns:1fr}
  .dashboard-kpi-shell__month{border-right:none;border-bottom:1px solid var(--divider);padding-right:0;padding-bottom:var(--space-3);justify-content:flex-start}
  .dashboard-kpi-grid .kpi-card:not(.k-sky){
    min-height:108px;
    display:flex;
    flex-direction:column;
    padding-bottom:42px;
  }
  .dashboard-kpi-grid .kpi-card:not(.k-sky) .kpi-mainline{
    display:block;
    margin-top:0;
  }
  .dashboard-kpi-grid .kpi-card:not(.k-sky) .kpi-sub--inline{
    position:absolute;
    right:var(--space-5);
    bottom:var(--space-5);
    max-width:58%;
    margin-top:0;
    padding-top:0;
    text-align:right;
    line-height:1.35;
  }
  .dashboard-kpi-grid .kpi-card:not(.k-sky) .kpi-value{
    position:static;
  }
  .dashboard-charts-grid,
  .dashboard-bottom-grid,
  .dashboard-secondary-grid{
    grid-template-columns:1fr;
    gap:var(--space-4);
  }
  .volume-chart-legend,
  .dashboard-line-chart__legend{
    margin-bottom:8px;
    gap:12px;
  }
  .volume-svg-chart{
    margin-top:2px;
  }
  .volume-svg-chart svg{
    height:292px;
  }
  .dashboard-line-chart{
    min-height:332px;
    padding-top:0;
  }
  .dashboard-line-chart svg{
    height:276px;
  }
  .dashboard-mix-card{
    gap:14px;
  }
  .dashboard-mix-chart,
  .dashboard-mix-chart__svg{
    width:168px;
    height:168px;
  }
  .dashboard-mix-chart__center strong{
    font-size:26px;
  }
  .dashboard-mix-legend{
    gap:8px;
  }
  .dashboard-mix-legend__item{
    padding:8px 10px;
  }
  .dashboard-focus-card,
  .dashboard-last-workout,
  .dashboard-pr-list{
    gap:10px;
  }
  .dashboard-focus-card__head,
  .dashboard-last-workout__head{
    gap:6px 10px;
  }
  .dashboard-focus-card__head{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
  }
  .dashboard-focus-card__name{
    font-size:15px;
    line-height:1.2;
  }
  .dashboard-focus-card__meta{
    margin-top:2px;
    line-height:1.3;
  }
  .dashboard-focus-card__stats,
  .dashboard-last-workout__stats{
    gap:8px;
  }
  .dashboard-stat-tile{
    padding:10px;
  }
  .dashboard-stat-tile strong{
    font-size:15px;
  }
  .dashboard-stat-tile span{
    margin-top:3px;
  }
  .dashboard-note,
  .dashboard-empty-note{
    padding:10px 12px;
    font-size:13px;
  }
  .dashboard-pr-item{
    padding:10px 12px;
    gap:12px;
  }
  .dashboard-pr-item__time{
    font-size:15px;
  }
  .dashboard-last-workout__head strong{
    font-size:15px;
  }
  .dashboard-last-workout__note-inline{
    line-height:1.3;
  }
  .dashboard-last-workout__status{
    gap:5px;
    margin:0;
  }
  .dashboard-week-strip{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
  }
  .dashboard-day-pill{
    min-height:78px;
    padding:9px;
    border-radius:12px;
  }
  .dashboard-day-pill__top{
    top:8px;
    left:8px;
    right:8px;
  }
  .dashboard-day-pill__label{
    font-size:11px;
  }
  .dashboard-day-pill__date{
    top:28px;
    font-size:22px;
  }
  .dashboard-day-pill__distance{
    right:8px;
    bottom:7px;
    font-size:11px;
  }
  .dashboard-day-pill__race-logo{
    left:auto;
    right:6px;
    bottom:5px;
    transform:none;
    width:40px;
    height:40px;
  }
  .dashboard-day-pill__race-logo + .dashboard-day-pill__distance{
    right:auto;
    left:8px;
    text-align:left;
  }
  .workouts-grid-paired{grid-template-columns:1fr}
  .workouts-kpi-grid{grid-template-columns:1fr 1fr}
  .page.active#page-workouts{
    display:grid;
    gap:var(--space-4);
  }
  #page-workouts > *{
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
  #page-workouts .card.card-pad{
    padding:var(--space-4);
  }
  #page-workouts .section-header{
    margin-bottom:0;
  }
  #page-workouts .section-actions{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  #page-workouts .section-actions .btn{
    min-width:0;
    justify-content:center;
  }
  .workouts-summary-shell{
    margin-bottom:0;
  }
  .workouts-summary-shell .card-title{
    margin-bottom:10px;
  }
  .workouts-goals-summary{
    margin-bottom:var(--space-4);
  }
  .goals-group{
    gap:12px;
    padding-top:12px;
    margin-top:12px;
  }
  .goals-group__label{
    font-size:13px;
  }
  .goals-group__inputs{
    gap:12px;
  }
  .workouts-goals-actions{
    margin-top:var(--space-4);
  }
  .workouts-charts-stack{
    gap:var(--space-4);
  }
  .workouts-volume-card{
    min-height:0;
  }
  .workouts-volume-card .card-title,
  .workouts-structure-card .card-title{
    margin-bottom:10px;
  }
  .workouts-volume-card .volume-chart-legend{
    margin-bottom:8px;
    gap:12px;
  }
  .workouts-volume-card .volume-chart-legend--top-right{
    justify-content:flex-end;
  }
  .workouts-volume-card .volume-svg-chart{
    margin-top:2px;
  }
  .workouts-volume-card .volume-svg-chart svg{
    height:286px;
  }
  .workouts-structure-grid{
    gap:10px;
  }
  .workouts-structure-compact{
    gap:6px;
  }
  .workouts-structure-compact__chart,
  .workouts-structure-compact__svg{
    width:164px;
    height:164px;
  }
  .workouts-structure-compact__center strong{
    font-size:28px;
  }
  .workouts-structure-legend{
    margin-top:8px;
    padding-top:8px;
  }
  .workouts-structure-legend-list{
    gap:8px 16px;
  }
  .workouts-structure-legend-item{
    gap:8px;
    padding:2px 0;
  }
  .my-races-calendar__months{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .my-races-calendar-header{flex-direction:row;align-items:center;justify-content:space-between}
  .my-races-calendar-header .btn{order:0;margin-left:auto}
  .page.active#page-races,
  .page.active#page-my-races{
    display:grid;
    gap:var(--space-4);
  }
  #page-races > *,
  #page-my-races > *{
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
  #page-races .card.card-pad,
  #page-my-races .card.card-pad{
    padding:var(--space-4);
  }
  .races-toolbar{ gap:12px; }
  .races-table__row{ row-gap:5px; }
  .races-table__action{ width:88px; }
  .my-races-calendar{ gap:14px; }
  .workouts-list-filter{width:100%}
  .my-races-calendar__month{padding:12px}
  .my-races-calendar__grid{gap:6px}
  .my-races-calendar__day{min-height:40px;padding:4px}
  .goals-group{grid-template-columns:1fr}
  .goals-group__inputs{grid-template-columns:1fr 1fr}
  .tool-fields-compact{grid-template-columns:1fr 1fr}
  .focus-race-stats{grid-template-columns:1fr}
  .workout-row{grid-template-columns:1fr 1fr}
  .races-toolbar { grid-template-columns:1fr; }
  .page.active#page-my-data,
  .page.active#page-profile{
    display:grid;
    gap:var(--space-4);
  }
  #page-my-data > *,
  #page-profile > *{
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
  #page-my-data .card.card-pad,
  #page-profile .card.card-pad{
    padding:var(--space-4);
  }
  .profile-top-grid,.profile-bottom-grid{grid-template-columns:1fr}
  .profile-actions{flex-wrap:wrap}
  .profile-actions .btn{min-width:0}
  .profile-integration-head{flex-direction:column;align-items:flex-start}
  #page-my-data .profile-top-grid,
  #page-profile .profile-top-grid,
  #page-profile .profile-bottom-grid,
  #page-profile .profile-layout{
    gap:var(--space-4);
  }
  #page-my-data .profile-card,
  #page-profile .profile-card,
  #page-profile .profile-integrations-card{
    align-self:start;
  }
  #page-my-data .form-row,
  #page-profile .form-row{
    gap:12px;
  }
  #page-my-data .form-group,
  #page-profile .form-group{
    margin-bottom:12px;
  }
  #page-my-data .profile-actions,
  #page-profile .profile-actions{
    margin-top:10px;
  }
  #page-profile .profile-integration-card{
    margin-top:0;
    padding:var(--space-4);
  }
  #page-profile .profile-bottom-grid{
    max-width:100%;
  }
}
@media(max-width:480px){
  .page.active#page-dashboard{
    gap:12px;
  }
  #page-dashboard .card.card-pad{
    padding:14px;
  }
  .kpi-grid { grid-template-columns:1fr; }
  .kpi-mainline{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px;
  }
  .kpi-mainline .kpi-value{
    flex:0 0 auto;
  }
  .kpi-mainline .kpi-sub--inline{
    flex:1 1 auto;
    text-align:right;
  }
  .dashboard-kpi-grid .kpi-card:not(.k-sky){
    min-height:100px;
    padding-bottom:40px;
  }
  .dashboard-kpi-grid .kpi-card:not(.k-sky) .kpi-mainline{
    display:block;
    margin-top:0;
  }
  .dashboard-kpi-grid .kpi-card:not(.k-sky) .kpi-value{
    font-size:1.5rem;
  }
  .dashboard-kpi-grid .kpi-card:not(.k-sky) .kpi-sub--inline{
    line-height:1.3;
    right:14px;
    bottom:14px;
    max-width:56%;
  }
  .dashboard-hero{
    gap:12px;
  }
  .dashboard-hero__title{
    font-size:1.45rem;
  }
  .volume-chart-legend,
  .dashboard-line-chart__legend{
    font-size:13px;
    gap:10px;
  }
  .volume-svg-chart svg{
    height:268px;
  }
  .dashboard-line-chart{
    min-height:304px;
  }
  .dashboard-line-chart svg{
    height:248px;
  }
  .dashboard-mix-chart,
  .dashboard-mix-chart__svg{
    width:154px;
    height:154px;
  }
  .dashboard-mix-chart__center strong{
    font-size:24px;
  }
  .dashboard-focus-card__stats,
  .dashboard-last-workout__stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .dashboard-focus-card{
    gap:8px;
  }
  .dashboard-focus-card__head{
    gap:8px;
  }
  .dashboard-focus-card__name{
    font-size:14px;
  }
  .dashboard-focus-card__meta{
    font-size:11px;
  }
  .dashboard-focus-card__head .status-chip{
    padding:4px 8px;
    font-size:11px;
  }
  .dashboard-stat-tile{
    padding:9px;
    border-radius:12px;
  }
  .dashboard-stat-tile strong{
    font-size:14px;
  }
  .dashboard-stat-tile span{
    font-size:11px;
  }
  .dashboard-pr-item{
    padding:9px 10px;
  }
  .dashboard-pr-item__label{
    font-size:13px;
  }
  .dashboard-pr-item__time{
    font-size:14px;
  }
  .dashboard-note,
  .dashboard-empty-note{
    padding:9px 10px;
    font-size:12px;
  }
  .dashboard-last-workout__head{
    grid-template-columns:1fr;
  }
  .dashboard-last-workout__head > span{
    display:none;
  }
  .dashboard-week-strip{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .dashboard-day-pill{
    min-height:68px;
    padding:8px;
  }
  .dashboard-day-pill__top{
    top:7px;
  }
  .dashboard-day-pill__label{
    font-size:10px;
  }
  .dashboard-day-pill__date{
    top:24px;
    font-size:20px;
  }
  .dashboard-day-pill__distance{
    font-size:10px;
  }
  .dashboard-day-pill__race-logo{
    right:5px;
    bottom:4px;
    width:38px;
    height:38px;
  }
  .page.active#page-workouts{
    gap:12px;
  }
  #page-workouts .card.card-pad{
    padding:14px;
  }
  #page-workouts .section-header{
    gap:10px;
  }
  #page-workouts .section-actions{
    gap:6px;
  }
  #page-workouts .section-actions .btn{
    min-height:40px;
    padding:0 10px;
    font-size:12px;
  }
  .workouts-kpi-grid{
    gap:10px;
  }
  .goals-group{
    gap:10px;
    padding-top:10px;
    margin-top:10px;
  }
  .goals-group__inputs{
    gap:10px;
  }
  .goals-group__label{
    font-size:12px;
  }
  .workouts-goals-summary{
    margin-bottom:12px;
  }
  .workouts-goals-actions .btn{
    width:100%;
  }
  .workouts-volume-card .volume-chart-legend{
    font-size:13px;
    gap:10px;
  }
  .workouts-volume-card .volume-chart-legend--top-right{
    justify-content:flex-end;
  }
  .workouts-volume-card .volume-svg-chart svg{
    height:264px;
  }
  .workouts-structure-grid{
    gap:8px;
  }
  .workouts-structure-compact__chart,
  .workouts-structure-compact__svg{
    width:150px;
    height:150px;
  }
  .workouts-structure-compact__center strong{
    font-size:25px;
  }
  .workouts-structure-legend-list{
    gap:8px 12px;
  }
  .workouts-structure-legend-item__label{
    font-size:13px;
  }
  .dashboard-focus-card__stats{grid-template-columns:1fr}
  .dashboard-last-workout__stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .workouts-kpi-grid{grid-template-columns:1fr}
  .page.active#page-races,
  .page.active#page-my-races{
    gap:12px;
  }
  #page-races .card.card-pad,
  #page-my-races .card.card-pad{
    padding:14px;
  }
  .my-races-calendar__months{grid-template-columns:1fr}
  .my-races-calendar__grid{gap:4px}
  .my-races-calendar__month{padding:10px}
  .my-races-calendar__month.is-mobile-hidden{display:none}
  .my-races-calendar__day{min-height:34px;padding:3px}
  .my-races-calendar__badge{width:18px;height:18px;right:3px;bottom:3px}
  .my-races-calendar{gap:12px}
  .my-races-calendar__more{
    display:inline-flex;
    width:100%;
    justify-content:center;
  }
  .my-races-calendar-header{gap:10px}
  .my-races-calendar-header .btn{
    min-height:38px;
    padding:0 12px;
    font-size:12px;
  }
  .races-toolbar{gap:10px}
  .races-table__row{
    grid-template-columns:minmax(0,1fr) 84px;
    column-gap:10px;
    row-gap:5px;
  }
  .races-table__action{width:84px}
  .races-table__action .race-add-btn{
    min-width:84px;
    min-height:36px;
    font-size:10px;
    padding:0 8px;
  }
  .races-table__action .race-presence-mark img{
    width:44px;
    height:44px;
  }
  .page.active#page-my-data,
  .page.active#page-profile{
    gap:12px;
  }
  #page-my-data .card.card-pad,
  #page-profile .card.card-pad{
    padding:14px;
  }
  #page-my-data .section-header{
    margin-bottom:0;
  }
  #page-my-data .profile-top-grid,
  #page-profile .profile-top-grid,
  #page-profile .profile-bottom-grid,
  #page-profile .profile-layout{
    gap:12px;
  }
  #page-my-data #profilePersonalDataCard .form-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  #page-my-data #profilePersonalDataCard .form-row + .form-row{
    margin-top:0;
  }
  #page-my-data .profile-records-card .form-row--cooper,
  #page-profile .form-row{
    grid-template-columns:minmax(0,1fr);
    gap:10px;
  }
  #page-my-data .profile-records-card .form-row--cooper,
  #page-my-data .profile-records-block .form-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  #page-my-data .profile-records-block .form-row:nth-of-type(2) .form-group:nth-child(3){
    grid-column:1 / -1;
  }
  #page-my-data .form-group,
  #page-profile .form-group{
    margin-bottom:10px;
  }
  #page-my-data .form-label,
  #page-profile .form-label{
    margin-bottom:5px;
    font-size:12px;
  }
  #page-my-data .form-input,
  #page-profile .form-input{
    min-height:42px;
    padding:.62rem .78rem;
    font-size:16px;
  }
  #page-my-data .card-title-gap,
  #page-profile .card-title-gap{
    margin-bottom:12px;
  }
  #page-my-data .form-row--cooper .form-label{
    min-height:2.7em;
    align-items:flex-end;
  }
  #page-my-data .profile-records-block{
    display:grid;
    gap:10px;
  }
  #page-my-data .profile-records-block .form-row,
  #page-my-data .profile-records-block .form-group{
    margin-bottom:0;
  }
  #page-my-data .profile-actions,
  #page-profile .profile-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:10px;
  }
  #page-my-data .profile-actions{
    grid-template-columns:1fr;
  }
  .profile-head{
    gap:12px;
    margin-bottom:12px;
    align-items:center;
  }
  .profile-avatar{
    width:52px;
    height:52px;
    font-size:1.25rem;
  }
  .profile-name{
    font-size:1rem;
  }
  .profile-email,
  .profile-loc,
  .profile-club{
    font-size:12px;
  }
  .profile-actions .btn,
  #page-profile #pwdBtn{
    width:100%;
    min-height:40px;
    font-size:12px;
  }
  #page-profile #pwdBtn,
  #page-profile .profile-actions-tight .btn,
  #page-profile .profile-danger-card .profile-actions .btn{
    grid-column:auto;
  }
  #page-profile form .btn:not(.btn-strava){
    width:100%;
  }
  #page-profile .password-wrap .form-input{
    padding-right:88px;
  }
  #page-profile .pwd-toggle{
    right:7px;
    height:30px;
    padding:0 9px;
    font-size:11px;
  }
  #page-profile .profile-integration-card{
    padding:12px;
    border-radius:14px;
  }
  #page-profile .profile-integration-head{
    gap:8px;
  }
  .profile-integration-logo{
    width:150px;
  }
  #page-profile .profile-integration-sub{
    font-size:12px;
    line-height:1.4;
  }
  #page-profile .strava-logo{
    width:190px;
    height:auto;
  }
  #page-profile .profile-danger-card .profile-actions{
    grid-template-columns:1fr 1fr;
  }
  .topbar-title{font-size:.94rem !important}
  .form-row { grid-template-columns:1fr; }
  .auth-card { padding:var(--space-6); }
  .week-card{
    border-radius:16px;
  }
  .week-card__head{
    flex-direction:column;
    gap:8px;
    padding:12px 14px;
  }
  .week-card__title{
    font-size:13px;
  }
  .week-card__meta{
    margin-top:2px;
  }
  .week-card__stats{
    justify-content:flex-start;
    gap:6px;
  }
  .week-card__stat{
    padding:6px 8px;
    font-size:11px;
  }
  .workouts-list-filter{
    justify-content:flex-end;
    gap:4px;
    margin-left:auto;
  }
  .workout-filter-btn{
    width:28px;
    height:28px;
    border-radius:9px;
  }
  .workout-filter-btn i,
  .workout-filter-btn img{
    width:12px;
    height:12px;
  }
  .workout-filter-btn--race img,
  .workout-filter-btn--control img{
    width:21px;
    height:21px;
  }
  .workout-row--header{display:none}
  .workout-row{
    grid-template-columns:repeat(5,minmax(0,1fr)) 30px;
    column-gap:6px;
    row-gap:4px;
    align-items:start;
    padding:10px 14px;
  }
  .workout-cell{
    display:grid;
    grid-template-columns:96px minmax(0,1fr);
    gap:10px;
    grid-column:1;
  }
  .workout-row > .workout-cell:first-child{
    grid-column:1 / 6;
    grid-row:1;
  }
  .workout-row > .workout-note-cell{
    grid-column:1 / 6;
    grid-row:2;
  }
  .workout-row > .workout-cell:nth-child(2){grid-column:1;grid-row:3}
  .workout-row > .workout-cell:nth-child(3){grid-column:2;grid-row:3}
  .workout-row > .workout-cell:nth-child(4){grid-column:3;grid-row:3}
  .workout-row > .workout-cell:nth-child(5){grid-column:4;grid-row:3}
  .workout-row > .workout-cell:nth-child(6){grid-column:5;grid-row:3}
  .workout-row > .workout-cell.workout-cell--metric{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:5px;
    grid-template-columns:none;
    text-align:center;
    min-width:0;
  }
  .workout-row > .workout-cell.workout-cell--metric .workout-cell-main{
    font-size:12px;
    font-weight:700;
    line-height:1.1;
    text-align:center;
    min-width:0;
  }
  .workout-actions-cell{
    grid-column:2;
    grid-column:6;
    grid-row:1 / span 3;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    align-items:flex-end;
    gap:4px;
    width:30px;
  }
  .workout-actions-cell .icon-action,
  .workout-actions-cell .workout-type-action{
    width:26px;
    height:26px;
    flex:0 0 26px;
    border-radius:8px;
  }
  .workout-actions-cell .icon-action i,
  .workout-actions-cell .workout-type-action i,
  .workout-actions-cell .workout-type-action img{
    width:11px;
    height:11px;
  }
  .workout-cell-label{display:block;font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
  .workout-cell-label--icon{
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:2px;
  }
  .workout-cell-label--icon .workout-col-icon{
    width:30px;
    height:30px;
  }
  .workout-cell-label--icon .workout-col-icon svg{
    width:16px;
    height:16px;
  }
  .workout-row > .workout-cell:first-child,
  .workout-row > .workout-note-cell{
    display:grid;
    grid-template-columns:96px minmax(0,1fr);
    gap:10px;
    justify-items:start;
  }
  .workout-row > .workout-cell:first-child{
    grid-template-columns:minmax(0,1fr);
    gap:0;
  }
  .workout-row > .workout-cell:first-child .workout-cell-label{
    display:none;
  }
  .workout-row > .workout-cell:first-child .workout-cell-main{
    text-align:left;
    justify-self:start;
    font-weight:800;
    line-height:1.15;
  }
  .workout-row > .workout-note-cell{
    grid-template-columns:minmax(0,1fr);
    gap:1px;
  }
  .workout-note-cell .workout-cell-label{
    display:none;
  }
  .workout-note-cell .workout-cell-main{
    display:flex;
    align-items:flex-start;
    flex-direction:column;
    gap:1px;
    width:100%;
    text-align:center;
  }
  .workout-note-text{
    width:100%;
    text-align:left;
    font-size:12px;
    line-height:1.25;
    overflow:visible;
    text-overflow:clip;
    white-space:normal;
  }
  .workout-note-status{
    display:flex;
    flex-wrap:wrap;
    gap:3px;
    justify-content:flex-start;
    width:100%;
  }
  .workout-note-cell .workout-kind-chip{
    align-self:flex-start;
    width:fit-content;
  }
  .my-races-table{
    border-spacing:0 12px;
  }
  .my-races-table thead{
    display:none;
  }
  .my-races-table tbody td{
    background:transparent;
    border:none;
    padding:0 !important;
  }
  .my-races-table tbody tr:hover td{
    background:transparent;
  }
  .my-races-season-row{
    display:block !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0;
    background:transparent !important;
    box-shadow:none !important;
    margin:14px 0 6px;
  }
  .my-races-season-row td{
    padding:0 !important;
  }
  .my-races-season-toggle{
    min-height:42px;
    padding:9px 12px;
  }
  .my-races-season-summary-row{
    display:block !important;
    margin:0 0 8px;
  }
  .my-races-season-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    padding:8px;
  }
  .my-races-season-summary__item,
  .my-races-season-summary__item--wide{
    grid-column:auto;
    padding:7px 8px;
  }
  .my-races-season-summary__item strong{
    font-size:14px;
  }
  .my-races-table__row{
    position:relative;
    display:grid !important;
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"main";
    column-gap:8px;
    row-gap:8px;
    padding:12px !important;
    border:1px solid rgba(13,122,131,.18);
    border-radius:16px;
    background:rgba(255,255,255,.72);
    box-shadow:0 10px 22px rgba(43,47,51,.05);
  }
  .my-races-table__row--season-primary{
    border-color:rgba(212,162,31,.44);
    background:rgba(255,249,225,.76);
    box-shadow:0 10px 24px rgba(212,162,31,.10);
  }
  .my-races-table__row--past{
    border-color:rgba(74,123,75,.24);
    background:rgba(247,251,248,.78);
  }
  .my-races-table__main .entity-title strong{
    line-height:1.3;
  }
  .my-races-table__topline{
    align-items:flex-start;
  }
  .my-races-table__topmeta{
    display:flex;
  }
  .my-races-table__main .entity-title > .my-races-table__season-badge{
    display:none;
  }
  .my-races-table__topmeta .my-races-table__season-badge{
    padding:0;
    border:0;
    background:transparent;
    color:#9a6c05;
    font-size:0;
  }
  .my-races-table__topmeta .my-races-table__season-badge i{
    width:15px;
    height:15px;
  }
  .my-races-table__topmeta .icon-action{
    width:30px;
    height:30px;
    border-radius:9px;
  }
  .my-races-table__topmeta .icon-action i{
    width:14px;
    height:14px;
  }
  .my-races-table__mobile-weather{
    display:block;
    position:absolute;
    right:10px;
    top:88px;
    transform:none;
    z-index:3;
    pointer-events:auto;
  }
  .my-races-table__row--no-goal .my-races-table__mobile-weather{
    top:88px;
    right:10px;
    bottom:auto;
    transform:none;
  }
  .my-races-table__mobile-weather .race-weather{
    width:auto;
    min-width:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .my-races-table__mobile-weather .race-weather__head,
  .my-races-table__mobile-weather .race-weather__summary,
  .my-races-table__mobile-weather .race-weather__note{
    display:none;
  }
  .my-races-table__mobile-weather .race-weather__metrics{
    display:grid;
    grid-template-columns:1fr;
    justify-items:end;
    gap:5px;
    font-size:9px;
  }
  .my-races-table__mobile-weather .race-weather__metric{
    display:inline-flex;
    align-items:center;
    gap:3px;
    white-space:nowrap;
  }
  .my-races-table__mobile-weather .race-weather__metric i{
    width:11px;
    height:11px;
  }
  .my-races-table__mobile-weather .race-weather__metric strong{
    font-size:10px;
  }
  .my-race-insight{
    margin-top:10px;
    display:grid;
    gap:10px;
  }
  .my-race-insight__empty-head{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
    padding:8px 9px;
  }
  .my-race-insight__empty-action{
    min-height:32px;
    width:auto;
    padding:0 10px;
  }
  .my-race-outcome{
    padding:8px 10px;
  }
  .my-race-outcome--pending{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .my-race-outcome__action{
    width:100%;
  }
  .my-race-outcome__head{
    display:grid;
    gap:5px;
  }
  .my-race-outcome__head p{
    max-width:none;
    text-align:left;
  }
  .my-race-outcome strong{
    font-size:15px;
  }
  .my-race-outcome__metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  .my-race-outcome__metrics--3{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .my-race-outcome__metrics--4{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .my-race-outcome__metric{
    padding:7px 6px;
  }
  .my-race-outcome__metric strong{
    font-size:13px;
  }
  .my-race-outcome__metric em{
    font-size:10px;
  }
  .race-recovery-signal{
    grid-template-columns:28px minmax(0,1fr);
    gap:7px;
    padding:8px 9px;
  }
  .race-recovery-signal > i{
    width:28px;
    height:28px;
    padding:6px;
    border-radius:9px;
  }
  .race-recovery-signal strong,
  .my-race-outcome .race-recovery-signal strong,
  .dashboard-post-race .race-recovery-signal strong{
    font-size:12.5px;
  }
  .race-recovery-signal p,
  .my-race-outcome .race-recovery-signal p,
  .dashboard-post-race .race-recovery-signal p{
    font-size:10.5px;
  }
  .race-post-review{
    padding:8px 9px;
    border-radius:10px;
  }
  .race-post-review p,
  .my-race-outcome .race-post-review p,
  .dashboard-post-race .race-post-review p{
    font-size:11px;
  }
  .race-post-review--empty{
    width:100%;
    justify-content:center;
    min-height:32px;
  }
  .race-next-step{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
    padding:9px 10px;
  }
  .race-next-step .btn{
    width:100%;
  }
  .my-race-insight__splits{
    display:flex;
  }
  .my-race-insight__summary{
    grid-template-columns:1fr;
    gap:8px;
    padding:8px 10px;
    border-radius:10px;
  }
  .my-race-insight__assessment{
    order:1;
  }
  .my-race-insight__forecast{
    order:2;
    justify-self:end;
    justify-content:flex-start;
  }
  .my-races-table__row td::before{display:none}
  .my-races-table__main{grid-area:main}
  .my-races-table__distance,
  .my-races-table__status,
  .my-races-table__actions{display:none}
  .my-races-table__main .entity-title strong{
    font-size:var(--text-sm);
  }
  .my-races-table__main .entity-sub{
    gap:3px;
  }
  .my-races-table__distance-chip{
    padding:6px 11px;
  }
  .my-races-table__actions .icon-action{
    width:28px;
    height:28px;
  }
  .my-races-table__actions .icon-action i{
    width:13px;
    height:13px;
  }
}

/* Registration hero text tuning */
.auth-lead-compact{
  font-size: clamp(0.9rem, 0.84rem + 0.18vw, 1rem) !important;
  line-height: 1.45 !important;
  max-width: 26ch !important;
  margin-inline: auto;
  text-wrap: balance;
}
.auth-slogan{
  font-size: clamp(1.1rem, 1rem + 0.5vw, 1.45rem) !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em;
  color: var(--text) !important;
  max-width: 18ch;
  margin-inline: auto;
}
@media (max-width: 480px){
  .auth-lead-compact{
    font-size: 0.92rem !important;
    max-width: 24ch !important;
  }
  .auth-slogan{
    font-size: 1.22rem !important;
  }
}


/* Minimal auth cleanup */
.auth-card{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.auth-copy:last-of-type{
  margin-bottom: 0 !important;
}


/* Hide residual bottom labels in auth hero */
.auth-card > :nth-child(n+7),
.auth-card .chip-row,
.auth-card .tag-row,
.auth-card .auth-highlights,
.auth-card .auth-meta,
.auth-card .auth-stats,
.auth-card .auth-inline,
.auth-card .auth-pills,
.auth-card .auth-bottom,
.auth-card .mini-kpis,
.auth-card .micro-tags {
  display: none !important;
}


/* Final auth hero cleanup */
.auth-card p + div,
.auth-card .auth-slogan + div,
.auth-card .auth-copy + div,
.auth-card .auth-slogan + .auth-copy + div,
.auth-card .auth-copy:last-of-type + div,
.auth-card .auth-copy:last-of-type ~ div {
  display: none !important;
}
.auth-lead-compact,
.auth-copy.auth-lead-compact {
  font-size: clamp(0.82rem, 0.78rem + 0.14vw, 0.92rem) !important;
  line-height: 1.34 !important;
  max-width: 22ch !important;
}
@media (max-width: 480px){
  .auth-lead-compact,
  .auth-copy.auth-lead-compact {
    font-size: 0.84rem !important;
    max-width: 21ch !important;
    line-height: 1.32 !important;
  }
}


.password-wrap{position:relative;display:flex;align-items:center}
.password-wrap .form-input{padding-right:108px}
.pwd-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);height:44px;padding:0 12px;border:none;border-radius:999px;background:rgba(13,122,131,.10);color:var(--petrol-strong);font-weight:700;font-size:.82rem;cursor:pointer}
.pwd-toggle:hover{background:rgba(13,122,131,.16)}
.btn[disabled]{opacity:.55;cursor:not-allowed;filter:saturate(.7)}


.field-error{margin-top:6px;font-size:.78rem;color:var(--error);font-weight:600}
.form-input.is-invalid{border-color:var(--error)!important;box-shadow:0 0 0 3px rgba(192,57,43,.10)!important;background:var(--error-soft)!important}
.form-input.is-valid{border-color:rgba(74,123,75,.38)!important;box-shadow:0 0 0 3px rgba(74,123,75,.08)!important}


@media (max-width: 900px){
  :root{ --sidebar-w:min(84vw,320px); --topbar-h:56px; }
  .auth-stage{ display:flex !important; flex-direction:column !important; align-items:stretch !important; }
  .auth-card, .auth-device-shell{ order:1 !important; }
  .auth-marketing{ order:2 !important; }
  .auth-stage > .auth-device-glow{ display:none !important; }
  .auth-stage > .auth-marketing{ order:2; width:100%; }
  .auth-stage > .auth-device-shell, .auth-stage > .auth-card, .auth-stage > div:first-child{ order:1; width:100%; }
  body{ overflow-x:hidden; }
  .auth-wrap{ padding:20px 14px 28px; min-height:100dvh; align-items:flex-start; }
  .auth-stage{ grid-template-columns:1fr !important; gap:18px !important; width:min(100%, 540px); max-width:540px !important; margin:0 auto; }
  .auth-card{ padding:18px !important; border-radius:20px !important; }
  .auth-copy, .auth-copy.auth-lead-compact, .auth-stage p, .auth-stage h1{ max-width:100% !important; white-space:normal !important; }
  .auth-stage h1 br{ display:none; }
  .auth-tabs{ width:100%; }
  .auth-tab{ flex:1; min-height:56px; }
  .form-input, .btn{ min-height:46px; }
  .password-wrap .form-input{ padding-right:96px; }
  .pwd-toggle{ right:8px; height:32px; }
  .sidebar{ position:fixed; left:0; top:0; bottom:0; z-index:120; transform:translateX(-110%); }
  .sidebar.open{ transform:translateX(0); }
  .sidebar-backdrop.open{ display:block; }
  .main{ min-width:0; width:100%; }
  .topbar{ position:sticky; top:0; z-index:90; padding:0 14px !important; gap:10px; }
  .topbar-title{ font-size:1.05rem !important; min-width:0; }
  .page{ padding:14px !important; }
  .page-head{ flex-direction:column; align-items:stretch !important; gap:12px; }
  .page-head .btn{ width:100%; }
  #kpis, .kpis-grid{ display:grid !important; grid-template-columns:1fr 1fr; gap:10px; }
  .kpi-card{ min-width:0; padding:14px !important; }
  .card{ padding:16px !important; border-radius:18px !important; }
  .table-wrap{ overflow:visible !important; }
  table{ min-width:0 !important; font-size:.86rem !important; }
  thead{ display:none; }
  table, tbody, tr, td{ display:block; width:100%; }
  tr{ background:rgba(255,255,255,.78); border:1px solid var(--border); border-radius:16px; padding:10px 12px; margin-bottom:10px; box-shadow:var(--shadow-sm); }
  td{ border:none !important; padding:6px 0 !important; }
  td::before{ content:attr(data-label); display:block; font-size:.74rem; font-weight:700; color:var(--muted); margin-bottom:2px; }
  .races-table__row{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 96px;
    column-gap:12px;
    row-gap:6px;
    align-items:start;
  }
  .races-table__main,
  .races-table__date,
  .races-table__location,
  .races-table__distance{
    grid-column:1;
  }
  .races-table__action{
    grid-column:2;
    grid-row:1 / span 4;
    align-self:center;
    justify-self:end;
    width:96px;
    text-align:right;
  }
  .races-table__main::before,
  .races-table__action::before{
    display:none;
  }
  .races-table__main .entity-title strong{
    font-size:var(--text-sm);
    line-height:1.35;
  }
  .races-table__date,
  .races-table__location,
  .races-table__distance{
    padding-right:6px !important;
  }
  .races-table__action .race-add-btn,
  .races-table__action .race-presence-mark{
    margin-left:auto;
  }
  .races-table__action .race-add-btn{
    min-width:92px;
    min-height:38px;
    font-size:11px;
    padding:0 10px;
  }
  .races-table__action .race-presence-mark img{
    width:48px;
    height:48px;
  }
  .races-toolbar{ grid-template-columns:1fr; }
  .races-pagination{
    align-items:stretch;
    flex-direction:column;
  }
  .races-pagination__controls{
    justify-content:space-between;
  }
  .races-pagination__page{
    align-self:center;
    text-align:center;
  }
  .modal-card{ width:min(100vw - 20px, 560px) !important; max-height:calc(100dvh - 20px); border-radius:20px !important; }
  .workouts-grid-paired{grid-template-columns:1fr}
  .workouts-charts-stack{height:auto;grid-template-rows:none}
  .workouts-goals-card{height:auto}
  .workouts-structure-grid{grid-template-columns:1fr}
  .workouts-structure-legend-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
  .workouts-structure-legend{margin-top:10px}
}
@media (max-width: 640px){
  .auth-logo img{ height:260px; }
  .auth-wrap{ padding:10px 10px 18px; }
  .auth-marketing{ display:none !important; }
  .auth-stage{ max-width:100% !important; }
  .auth-card{ display:block !important; max-width:100% !important; }
  .auth-marketing{ padding-top:0 !important; gap:12px !important; }
  .auth-marketing h1{ margin:1.2rem 0 10px !important; }
  .auth-marketing p{ margin-top:0 !important; }
  .auth-card{ order:1 !important; margin-bottom:2px; }
  .auth-stage{ gap:14px !important; width:100%; }
  .auth-card{ padding:14px !important; }
  .auth-hero-proof{
    gap:10px !important;
  }
  .auth-hero-proof-card{
    padding:12px !important;
  }
  .auth-hero-proof-card strong{
    font-size:1rem !important;
  }
  .auth-hero-proof-card span{
    font-size:.82rem !important;
    line-height:1.3 !important;
  }
  .eyebrow{ font-size:.82rem !important; padding:7px 12px !important; margin-top:0 !important; margin-bottom:14px !important; white-space:normal !important; }
  .auth-stage h1{ font-size:clamp(1.42rem, 5.5vw, 2rem) !important; line-height:1.08 !important; }
  #kpis, .kpis-grid{ grid-template-columns:1fr; }
  .feedback-layout{max-width:none}
  .feedback-form-row{grid-template-columns:1fr}
  .feedback-textarea{min-height:160px}
  .btn, .form-input, .auth-tab{ font-size:16px !important; }
  #wModal{ padding:8px; align-items:flex-start; }
  #wModal .modal{
    width:calc(100vw - 16px);
    max-height:calc(100dvh - 16px);
    padding:14px;
    overflow-y:auto;
  }
  #wModal .modal-head{ margin-bottom:12px; }
  #wModal .modal-title{ font-size:1rem; }
  #wModal .form-group{ min-width:0; margin-bottom:10px; }
  #wModal .workout-date-desktop{ display:none; }
  #wModal .workout-date-mobile{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-height:46px;
    padding:0 14px;
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    background:rgba(255,255,255,.82);
    overflow:hidden;
  }
  #wModal .workout-date-mobile[hidden]{ display:none; }
  #wModal .workout-date-mobile__value{
    min-width:0;
    font-size:15px;
    font-weight:600;
    line-height:1.2;
    color:var(--text);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #wModal .workout-date-mobile__icon{
    width:16px;
    height:16px;
    flex-shrink:0;
    color:var(--muted);
  }
  #wModal .workout-date-mobile__native{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    opacity:0;
    cursor:pointer;
    border:none;
  }
  #wModal .form-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px;
  }
  #wModal .form-row.form-row-compact{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:8px;
  }
  #wModal .form-input{ min-width:0; padding:.72rem .85rem; }
  #wModal #wDate{
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    font-size:15px !important;
    line-height:1.2;
    letter-spacing:0;
    font-variant-numeric:tabular-nums;
    padding-right:10px;
  }
  #wModal #wDate::-webkit-date-and-time-value{
    text-align:left;
  }
  #wModal #wDate::-webkit-datetime-edit{
    padding:0;
    font-size:15px;
  }
  #wModal #wDate::-webkit-datetime-edit-fields-wrapper{
    padding:0;
  }
  #wModal #wDate::-webkit-datetime-edit-text,
  #wModal #wDate::-webkit-datetime-edit-day-field,
  #wModal #wDate::-webkit-datetime-edit-month-field,
  #wModal #wDate::-webkit-datetime-edit-year-field{
    padding:0;
    margin:0;
  }
  #wModal #wDate::-webkit-calendar-picker-indicator{
    margin:0;
    padding:0;
    transform:scale(.9);
    transform-origin:right center;
  }
  #wModal .modal-foot{
    gap:10px;
    margin-top:12px;
  }
  #wModal .modal-foot .btn{ flex:1; }
  #wImportModal{
    padding:8px;
    align-items:flex-start;
  }
  #wImportModal .modal{
    width:calc(100vw - 16px);
    max-height:calc(100dvh - 16px);
    padding:14px;
    overflow-y:auto;
  }
  #wImportModal .modal-head{
    margin-bottom:10px;
  }
  #wImportModal .form-group{
    min-width:0;
    margin-bottom:10px;
  }
  #wImportModal .csv-dropzone{
    min-height:128px;
    padding:16px 14px;
  }
  #wImportModal .csv-dropzone__title{
    font-size:14px;
  }
  #wImportModal .csv-dropzone__meta{
    font-size:12px;
    line-height:1.35;
    text-align:center;
  }
  #wImportModal .modal-foot{
    gap:10px;
    margin-top:12px;
  }
  #wImportModal .modal-foot .btn{
    flex:1;
  }
  #mrModal .manual-race-date-desktop{ display:none; }
  #mrModal{
    padding:8px;
    align-items:flex-start;
  }
  #mrModal .modal{
    width:calc(100vw - 16px);
    max-height:calc(100dvh - 16px);
    padding:14px;
    overflow-y:auto;
  }
  #mrModal .modal-head{ margin-bottom:12px; }
  #mrModal .form-group{ min-width:0; margin-bottom:10px; }
  #mrModal .form-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px;
  }
  #mrModal .manual-race-distance-row{
    grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
    gap:8px;
  }
  #mrModal .race-plan-grid{
    grid-template-columns:1fr;
    gap:10px;
  }
  #mrModal .race-goal-fields{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  #mrModal .race-goal-pace-fields{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #mrModal .form-input{ min-width:0; padding:.72rem .85rem; }
  #mrModal .modal-foot{
    gap:10px;
    margin-top:12px;
  }
  #mrModal .modal-foot .btn{ flex:1; }
  #mrModal .manual-race-date-mobile{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-height:46px;
    padding:0 14px;
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    background:rgba(255,255,255,.82);
    overflow:hidden;
  }
  #mrModal .manual-race-date-mobile__value{
    min-width:0;
    font-size:15px;
    font-weight:600;
    line-height:1.2;
    color:var(--text);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #mrModal .manual-race-date-mobile__icon{
    width:16px;
    height:16px;
    flex-shrink:0;
    color:var(--muted);
  }
  #mrModal .manual-race-date-mobile__native{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    opacity:0;
    cursor:pointer;
    border:none;
  }
  #page-my-data .cooper-date-desktop,
  #page-my-data .diagnostic-date-desktop{ display:none; }
  #page-my-data .cooper-date-mobile,
  #page-my-data .diagnostic-date-mobile{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-height:46px;
    padding:0 14px;
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    background:rgba(255,255,255,.82);
    overflow:hidden;
  }
  #page-my-data .cooper-date-mobile__value,
  #page-my-data .diagnostic-date-mobile__value{
    min-width:0;
    font-size:15px;
    font-weight:600;
    line-height:1.2;
    color:var(--text);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #page-my-data .cooper-date-mobile__icon,
  #page-my-data .diagnostic-date-mobile__icon{
    width:16px;
    height:16px;
    flex-shrink:0;
    color:var(--muted);
  }
  #page-my-data .cooper-date-mobile__native,
  #page-my-data .diagnostic-date-mobile__native{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    opacity:0;
    cursor:pointer;
    border:none;
  }
}
@media (max-width: 420px){
  .modal-card{ width:calc(100vw - 12px) !important; max-height:calc(100dvh - 12px); }
  .topbar{ padding:0 10px !important; }
  .topbar-title{ font-size:.9rem !important; }
  .sidebar-logo{ height:108px !important; }
  #wModal{ padding:6px; }
  #wModal .modal{
    width:calc(100vw - 12px);
    max-height:calc(100dvh - 12px);
    padding:12px;
    border-radius:18px;
  }
  #wModal .workout-date-mobile{ padding:0 12px; }
  #wModal .workout-date-mobile__value{ font-size:14px; }
  #wModal #wDate{
    font-size:14px !important;
    line-height:1.15;
    padding-left:12px;
    padding-right:8px;
  }
  #wModal #wDate::-webkit-datetime-edit{
    font-size:14px;
  }
  #wModal #wDate::-webkit-calendar-picker-indicator{
    transform:scale(.82);
  }
  #wModal .form-label{ margin-bottom:.35rem; }
  #wModal .modal-foot{ flex-direction:row; }
  #mrModal{ padding:6px; }
  #mrModal .modal{
    width:calc(100vw - 12px);
    max-height:calc(100dvh - 12px);
    padding:12px;
    border-radius:18px;
  }
  #mrModal .manual-race-distance-row{
    grid-template-columns:minmax(0,1fr) minmax(120px,.9fr);
  }
  #wImportModal{
    padding:6px;
  }
  #wImportModal .modal{
    width:calc(100vw - 12px);
    max-height:calc(100dvh - 12px);
    padding:12px;
    border-radius:18px;
  }
  #wImportModal .csv-dropzone{
    min-height:116px;
    padding:14px 12px;
  }
  #wImportModal .csv-dropzone__title{
    font-size:13px;
  }
  #wImportModal .csv-dropzone__meta{
    font-size:11px;
  }
  #mrModal .manual-race-date-mobile{ padding:0 12px; }
  #mrModal .manual-race-date-mobile__value{ font-size:14px; }
  #mrModal .form-label{ margin-bottom:.35rem; }
  #page-my-data .cooper-date-mobile,
  #page-my-data .diagnostic-date-mobile{ padding:0 12px; }
  #page-my-data .cooper-date-mobile__value,
  #page-my-data .diagnostic-date-mobile__value{ font-size:14px; }
}


/* ---- BEGUU extension: extra pages ---- */
.stack-list{display:grid;gap:10px;margin-top:12px}
.mini-item{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--divider);border-radius:14px;background:rgba(255,255,255,.6)}
.mini-item strong{font-size:var(--text-sm);letter-spacing:-.01em}
.mini-item span{font-size:var(--text-xs);color:var(--muted)}
.feature-list{margin-top:10px;padding-left:18px;color:var(--muted);display:grid;gap:8px}
.feature-list li{line-height:1.35}


@media (max-width: 420px){
  .auth-wrap{ padding:8px 8px 14px !important; }
  .auth-stage{ gap:10px !important; }
  .auth-device-shell{ max-width:100% !important; }
  .auth-device-screen{ padding:0 !important; }
  .auth-card{ padding:12px !important; border-radius:16px !important; }
  .auth-hero-proof{
    gap:8px !important;
  }
  .auth-hero-proof-card{
    padding:10px !important;
  }
  .auth-hero-proof-card span{
    font-size:.78rem !important;
  }
  .auth-logo{ margin-bottom:10px !important; padding:2px 0 !important; }
  .auth-logo img{ height:220px !important; }
  .auth-tabs{ margin-bottom:12px !important; }
  .auth-tab{ min-height:42px !important; font-size:15px !important; }
  .auth-wrap .form-group{ margin-bottom:10px !important; }
  .auth-wrap .form-label{ margin-bottom:.32rem !important; font-size:.86rem !important; }
  .auth-wrap .form-input{ min-height:44px !important; padding:.62rem .82rem !important; font-size:16px !important; }
  .auth-wrap .password-wrap .form-input{ padding-right:86px !important; }
  .auth-wrap .pwd-toggle{ height:30px !important; padding:0 9px !important; font-size:.74rem !important; }
  .auth-wrap .btn{ min-height:44px !important; }
}


/* Social auth icons */
.social-auth-icons{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:nowrap;
  gap:18px;
  margin-top:10px;
}
.social-auth-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:56px;
  height:56px;
}
.social-auth-icon img{
  width:44px;
  height:44px;
  display:block;
}
.social-logo{
  transform-origin:center;
}
.social-logo--google{
  transform:scale(0.86);
}
.social-logo--yandex{
  transform:scale(0.98);
}
@media (max-width: 420px){
  .social-auth-icons{ gap:14px; }
  .social-auth-icon{ width:62px; height:62px; }
  .social-auth-icon img{ width:48px; height:48px; }
  .social-logo--google{ transform:scale(0.84); }
  .social-logo--yandex{ transform:scale(0.98); }
}


@media (max-width: 900px){
  .auth-marketing .hero-subslogan{ margin-top:3.6rem !important; white-space:normal !important; }
}


/* Canonical hero rules (locked baseline) */
@media (min-width: 901px){
  .auth-marketing .hero-slogan{ margin-top:5.1rem !important; line-height:1.0 !important; }
  .auth-marketing .hero-subslogan{ margin-top:8.8rem !important; white-space:nowrap !important; text-wrap:initial; }
}
@media (max-width: 900px){
  .auth-marketing .hero-subslogan{ margin-top:3.6rem !important; white-space:normal !important; }
}

/* Wide desktop comfort mode */
@media (min-width: 1680px){
  .content{ max-width:1320px; }
  .grid-2{ gap:2rem; }
}

@media (max-width: 560px){
  #page-workouts .section-actions{width:100%}
  #page-workouts .section-actions .btn{flex:1 1 100%}
  #page-workouts .section-actions{gap:8px}
  #page-workouts .section-actions > [data-open-modal]{
    flex:1 1 calc(50% - 4px);
    width:calc(50% - 4px);
    min-width:0;
  }
  .tool-fields-compact{grid-template-columns:1fr}
}

/* Mobile landscape auth layout fix (form left, slogans right, backdrop visible) */
@media (max-width: 900px) and (orientation: landscape){
  .auth-wrap{ align-items:center !important; padding:12px !important; }
  .auth-stage{
    display:grid !important;
    grid-template-columns:minmax(320px, 420px) minmax(260px, 1fr) !important;
    gap:18px !important;
    width:min(100%, 980px) !important;
    max-width:980px !important;
    align-items:center !important;
  }
  .auth-stage::before{ display:block !important; opacity:.08 !important; background-position:center calc(50% + 32px) !important; }
  .auth-stage > .auth-device-shell{ order:1 !important; width:100% !important; max-width:420px !important; }
  .auth-stage > .auth-marketing{
    order:2 !important;
    display:flex !important;
    width:100% !important;
    padding-top:0 !important;
    align-self:center !important;
  }
  .auth-marketing h1{ margin:1.2rem 0 10px !important; }
  .auth-marketing h1 br{ display:block !important; }
  .auth-marketing .hero-subslogan{ margin-top:2.2rem !important; white-space:nowrap !important; }
}

/* Small-height landscape phones: keep both blocks visible */
@media (max-width: 900px) and (orientation: landscape) and (max-height: 520px){
  .auth-wrap{ min-height:100dvh !important; }
  .auth-card{ padding:12px !important; }
  .auth-logo img{ height:180px !important; }
}


/* Auth priority: OAuth first */
.auth-logo img { height:320px; width:auto; max-width:100%; object-fit:contain; background:transparent !important; filter:none !important; }
.oauth-primary{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:14px}
.oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text);font-weight:700;box-shadow:var(--shadow-sm);transition:var(--transition)}
.oauth-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.oauth-btn:disabled{opacity:.55;cursor:not-allowed;filter:saturate(.75);pointer-events:none}
.oauth-btn img{width:22px;height:22px}
.oauth-btn--yandex{border-color:#ffd9d9}
.oauth-btn--google{border-color:#dfe5f3}
.auth-secondary-divider{display:flex;align-items:center;gap:10px;margin:10px 0 10px}
.auth-secondary-divider div{height:1px;background:var(--divider);flex:1}
.auth-secondary-divider span{font-size:.74rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.reg-note{font-size:.82rem;color:var(--muted);line-height:1.35;background:rgba(13,122,131,.07);border:1px solid rgba(13,122,131,.16);padding:10px 12px;border-radius:12px;margin-bottom:12px}
.beta-ribbon{position:absolute;right:0;top:0;z-index:3;display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 14px;border-radius:999px;background:#fff3d8;border:1px solid #e6c56d;color:#7a4b00;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;box-shadow:var(--shadow-sm)}
.beta-badge{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:0 9px;border-radius:999px;background:#fff3d8;border:1px solid #e6c56d;color:#7a4b00;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.nav-item__badge{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:20px;
  padding:0 7px;
  border-radius:999px;
  background:rgba(13,122,131,.08);
  border:1px solid rgba(13,122,131,.14);
  color:var(--petrol);
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:nowrap;
}
.legal-check{display:grid;grid-template-columns:18px 1fr;gap:9px;align-items:start;margin:0 0 11px;color:var(--muted);font-size:.76rem;line-height:1.34}
.legal-check input{width:16px;height:16px;margin-top:1px;accent-color:var(--petrol)}
.legal-check a,.auth-legal-links a{color:var(--petrol);text-decoration:underline;text-underline-offset:2px}
.oauth-consent{margin:2px 0 12px}
.legal-check--optional{margin-bottom:14px}
.auth-legal-links{display:flex;justify-content:center;gap:14px;margin-top:12px;font-size:.76rem;color:var(--muted)}
.sidebar-logo{height:108px;width:auto;max-width:100%;object-fit:contain;background:transparent !important;filter:none !important;}
@media (max-width:900px){
  .auth-logo img{height:180px !important}
  .beta-ribbon{right:8px;top:-10px}
}


/* Clean auth modes */
.reset-panel{border:1px solid rgba(13,122,131,.18);background:rgba(13,122,131,.06);border-radius:14px;padding:12px;margin-top:10px}
.reset-title{font-size:.95rem;font-weight:800;margin-bottom:4px;color:var(--text)}
.reset-subtitle{font-size:.82rem;color:var(--muted);margin-bottom:10px;line-height:1.35}
.reset-actions{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width: 640px){
  .reset-actions .btn{width:100%}
}


/* Logo blend tuning */
.auth-logo, .sidebar-head{ background:transparent !important; }

/* Desktop fit: keep auth first screen visible without browser zoom */
@media (min-width: 901px){
  .auth-wrap{ padding:clamp(8px, 1.6vh, 16px) var(--space-4); }
  .auth-device-screen{ min-height:clamp(500px, 72vh, 560px); }
  .auth-card{ padding:clamp(16px, 2.1vh, 28px); }
  .auth-logo img{ height:clamp(180px, 24vh, 280px); }
}
@media (min-width: 901px) and (max-height: 860px){
  .auth-stage{ gap:clamp(18px, 2vw, 28px); }
  .auth-marketing{ padding-top:clamp(170px, 24vh, 300px) !important; }
  .auth-marketing .hero-slogan{ margin-top:4.4rem !important; }
  .auth-marketing .hero-subslogan{ margin-top:10.2rem !important; }
}


/* Reset mode: focus on password form only */
.auth-wrap.reset-mode{ align-items:center; justify-content:center; }
.auth-wrap.reset-mode .auth-stage{ grid-template-columns:1fr !important; max-width:560px !important; }
.auth-wrap.reset-mode .auth-marketing{ display:none !important; }
.auth-wrap.reset-mode .auth-device-shell{ margin:0 auto !important; width:min(100%,560px) !important; background:transparent !important; box-shadow:none !important; border-radius:0 !important; padding:0 !important; }
.auth-wrap.reset-mode .auth-device-screen{ min-height:auto !important; background:transparent !important; padding:0 !important; border-radius:0 !important; }
.auth-wrap.reset-mode .auth-card{ max-width:520px !important; margin:0 auto !important; }


/* Reset mode hard-fix: show both password fields */
.auth-wrap.reset-mode .auth-logo,
.auth-wrap.reset-mode .auth-tabs{ display:none !important; }
.auth-wrap.reset-mode .auth-device-screen{ overflow:visible !important; }
.auth-wrap.reset-mode #resetPanel{ display:block !important; margin-top:0 !important; }
.auth-wrap.reset-mode #resetPanel .form-group{ display:block !important; visibility:visible !important; opacity:1 !important; }
.auth-wrap.reset-mode #resetPanel #resetPwd1,
.auth-wrap.reset-mode #resetPanel #resetPwd2{ display:block !important; }


/* Reset mode backdrop fix: full-screen logo behind centered reset form */
.auth-wrap.reset-mode .auth-stage::before{
  position:fixed !important;
  inset:0 !important;
  background-position:center 54% !important;
  background-size:min(82vw, 980px) auto !important;
  opacity:.11 !important;
  display:block !important;
  z-index:0 !important;
}

/* Auth landing refresh from preview.html reference */
.oauth-primary{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:901px){
  .auth-stage{
    max-width:1180px !important;
    gap:28px !important;
    align-items:stretch !important;
  }
  .auth-stage::before{
    inset:7% 36% 7% 5% !important;
    border-radius:42px !important;
    background:
      linear-gradient(135deg,rgba(255,255,255,.52),rgba(255,255,255,.12)),
      radial-gradient(circle at 24% 18%,rgba(242,198,109,.30),transparent 34%) !important;
    border:1px solid rgba(255,255,255,.62) !important;
    opacity:1 !important;
    filter:none !important;
    background-image:
      linear-gradient(135deg,rgba(255,255,255,.52),rgba(255,255,255,.12)),
      radial-gradient(circle at 24% 18%,rgba(242,198,109,.30),transparent 34%) !important;
  }
  .auth-device-shell{
    order:2;
    width:min(100%,430px) !important;
    margin-left:0 !important;
    background:linear-gradient(180deg,#3F454B 0%,#252B31 100%) !important;
    padding:12px !important;
    border-radius:46px !important;
    box-shadow:0 28px 80px rgba(40,34,28,.16) !important;
  }
  .auth-device-screen{
    min-height:656px !important;
    border-radius:36px !important;
    padding:26px !important;
    background:
      radial-gradient(circle at 50% -4%,rgba(242,198,109,.24),transparent 24%),
      linear-gradient(180deg,#FFFCF7 0%,#F7F0E8 100%) !important;
  }
  .auth-card{max-width:none !important;padding:4px !important}
  .auth-marketing-shell{
    order:1;
    padding:42px !important;
    border-radius:42px !important;
    overflow:hidden;
    justify-content:space-between;
    background:
      linear-gradient(155deg,rgba(255,255,255,.58),rgba(255,255,255,.20)),
      radial-gradient(circle at 78% 20%,rgba(13,122,131,.12),transparent 26%) !important;
    border:1px solid rgba(255,255,255,.64);
    box-shadow:0 12px 34px rgba(40,34,28,.10);
    gap:24px !important;
    min-height:720px;
  }
  .auth-marketing-shell::after{
    content:"BEGUU";
    position:absolute;
    left:26px;
    bottom:-32px;
    font-size:clamp(4rem,10vw,8.5rem);
    line-height:.8;
    font-weight:900;
    letter-spacing:-.08em;
    color:rgba(139,46,46,.055);
    pointer-events:none;
  }
  .auth-marketing-copy{
    max-width:520px !important;
    min-height:100%;
    display:flex;
    flex-direction:column;
    padding-top:122px;
  }
  .auth-hero-title{
    margin-top:0;
    color:#571518 !important;
    font-size:clamp(3.2rem,7vw,6.6rem);
    line-height:.82;
    letter-spacing:-.075em;
    font-weight:900;
    -webkit-text-fill-color:#571518;
  }
  .auth-hero-title span{
    display:block;
    color:#571518 !important;
    font-size:clamp(1.75rem,3vw,3rem);
    line-height:1.02;
    letter-spacing:-.055em;
    margin-top:30px;
    max-width:9.5em;
    -webkit-text-fill-color:#571518;
  }
  .auth-hero-text{
    margin-top:28px;
    max-width:430px;
    color:var(--muted);
    font-size:18px;
    line-height:1.55;
  }
  .auth-hero-proof{
    margin-top:auto;
    padding-top:20px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    max-width:560px;
  }
  .auth-hero-proof-card{
    min-height:122px;
    padding:18px;
    border-radius:26px;
    background:rgba(255,255,255,.54);
    border:1px solid rgba(70,58,45,.10);
    backdrop-filter:blur(10px);
  }
  .auth-hero-proof-card strong{
    display:block;
    font-size:26px;
    letter-spacing:-.04em;
    color:var(--petrol-2);
  }
  .auth-hero-proof-card span{
    display:block;
    margin-top:8px;
    font-size:14px;
    line-height:1.3;
    color:var(--muted);
  }
  .auth-hero-bottom{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    color:var(--muted);
    font-size:15px;
    font-weight:700;
    text-align:center;
  }
}
@media (max-width:900px){
  .oauth-primary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .auth-stage{display:grid !important;grid-template-columns:1fr !important;gap:18px !important;max-width:540px !important}
  .auth-stage::before{display:none !important}
  .auth-device-shell{order:1 !important;width:100% !important;max-width:420px !important;margin:0 auto !important}
  .auth-marketing-shell{
    order:2 !important;
    min-height:320px;
    padding:26px !important;
    gap:18px !important;
  }
  .auth-hero-proof{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .auth-hero-proof-card:last-child{grid-column:1/-1}
}
@media (max-width:520px){
  .auth-marketing-shell{display:none !important}
}

/* Mobile hardening pass: keep sections isolated and prevent wide widgets from breaking the viewport. */
@media (max-width: 900px){
  html,
  body,
  .app,
  .main,
  .content{
    max-width:100%;
    overflow-x:hidden;
  }
  .app .content{
    padding:14px !important;
  }
  .app .content > .page{
    display:none !important;
    width:100%;
    min-width:0;
    padding:0 !important;
  }
  .app .content > .page.active{
    display:grid !important;
    gap:14px;
  }
  .app .content > #page-routes,
  .app .content > #page-community{
    display:none !important;
  }
  .topbar{
    min-width:0;
    padding:0 12px !important;
  }
  .topbar-title{
    min-width:0;
    flex:1 1 auto;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .topbar-right{
    flex:0 0 auto;
  }
  .card,
  .card.card-pad,
  .dashboard-card,
  .workouts-volume-card,
  .workouts-structure-card{
    max-width:100%;
    min-width:0;
    overflow:hidden;
  }
  .section-header,
  .page-head,
  .card-title-row,
  .races-toolbar{
    min-width:0;
  }
  .section-title,
  .card-title,
  .entity-title,
  .entity-title strong{
    min-width:0;
    overflow-wrap:anywhere;
  }
  .section-actions{
    min-width:0;
  }
  .section-actions .btn{
    min-width:0;
    white-space:normal;
  }
  .dashboard-hero,
  .dashboard-charts-grid,
  .dashboard-bottom-grid,
  .dashboard-secondary-grid,
  .workouts-grid-paired,
  .workouts-charts-stack,
  .profile-top-grid,
  .profile-bottom-grid{
    grid-template-columns:minmax(0,1fr) !important;
  }
  .volume-svg-chart,
  .dashboard-line-chart,
  .workouts-structure-grid,
  .dashboard-mix-card{
    min-width:0;
    max-width:100%;
  }
  .volume-svg-chart svg,
  .dashboard-line-chart svg,
  .workouts-structure-compact__svg,
  .dashboard-mix-chart__svg{
    max-width:100%;
  }
  .workouts-list-filter{
    justify-content:flex-start !important;
    overflow-x:auto;
    max-width:100%;
    padding-bottom:2px;
    scrollbar-width:none;
  }
  .workouts-list-filter::-webkit-scrollbar{
    display:none;
  }
  .workout-filter-btn{
    flex:0 0 auto;
  }
  .table-wrap{
    max-width:100%;
  }
  .workout-row,
  .races-table__row,
  .my-races-table__row{
    max-width:100%;
    min-width:0;
  }
  .workout-cell,
  .workout-note-cell,
  .races-table__main,
  .races-table__date,
  .races-table__location,
  .races-table__distance,
  .my-races-table__main{
    min-width:0;
  }
  .modal-card,
  .modal,
  #wModal .modal{
    max-width:calc(100vw - 20px) !important;
  }
  .inline-tooltip__bubble{
    max-width:min(280px, calc(100vw - 32px));
    white-space:normal;
  }
}

@media (max-width: 640px){
  .beta-badge{
    display:none;
  }
  .section-header,
  .page-head,
  .card-title-row{
    display:flex;
    flex-direction:column;
    align-items:stretch !important;
    gap:10px;
  }
  .section-header .section-actions,
  .page-head .section-actions{
    width:100%;
  }
  .section-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:8px;
  }
  .section-actions .btn,
  .page-head .btn{
    width:100%;
  }
  #page-workouts .section-actions{
    grid-template-columns:minmax(0,1fr) !important;
  }
  .workout-row{
    grid-template-columns:minmax(0,1fr) 34px !important;
    padding:12px !important;
  }
  .workout-row > .workout-cell:first-child,
  .workout-row > .workout-note-cell{
    grid-column:1 / 2 !important;
  }
  .workout-row > .workout-cell:nth-child(2),
  .workout-row > .workout-cell:nth-child(3),
  .workout-row > .workout-cell:nth-child(4),
  .workout-row > .workout-cell:nth-child(5),
  .workout-row > .workout-cell:nth-child(6){
    grid-column:1 / 2 !important;
    grid-row:auto !important;
  }
  .workout-row > .workout-cell.workout-cell--metric{
    align-items:flex-start !important;
    text-align:left !important;
  }
  .workout-row > .workout-cell.workout-cell--metric .workout-cell-main{
    text-align:left !important;
  }
  .workout-actions-cell{
    grid-column:2 !important;
    width:34px !important;
  }
  .my-race-insight__splits{
    justify-content:flex-start;
    overflow-x:auto;
    padding-bottom:2px;
  }
  .my-race-split{
    flex:0 0 auto;
  }
  .my-race-insight__forecast{
    justify-self:start !important;
  }
}

/* Mobile detail pass: compact cards and predictable tooltip direction. */
@media (max-width: 640px){
  .race-result-grid{
    grid-template-columns:1fr;
  }
  #page-workouts .section-actions{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #page-workouts .section-actions .btn{
    width:100%;
    min-height:42px;
    padding:0 10px;
    font-size:12px !important;
  }
  #page-workouts .card-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }
  #page-workouts .card-header .card-title{
    flex:1 1 auto;
  }
  #workoutsListFilter{
    width:auto !important;
    max-width:58%;
    margin-left:auto !important;
    justify-content:flex-end !important;
  }
  .workout-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px !important;
    column-gap:8px !important;
    row-gap:8px !important;
  }
  .workout-row > .workout-cell:first-child,
  .workout-row > .workout-note-cell{
    grid-column:1 / 3 !important;
  }
  .workout-row > .workout-cell:nth-child(2),
  .workout-row > .workout-cell:nth-child(4),
  .workout-row > .workout-cell:nth-child(6){
    grid-column:1 !important;
  }
  .workout-row > .workout-cell:nth-child(3),
  .workout-row > .workout-cell:nth-child(5){
    grid-column:2 !important;
  }
  .workout-row > .workout-cell.workout-cell--metric{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:6px !important;
    min-width:0;
    padding:3px 0;
    text-align:left !important;
  }
  .workout-cell-label--icon{
    display:inline-flex !important;
    margin:0 !important;
  }
  .workout-cell-label--icon .workout-col-icon{
    width:22px !important;
    height:22px !important;
  }
  .workout-cell-label--icon .workout-col-icon svg{
    width:12px !important;
    height:12px !important;
  }
  .workout-row > .workout-cell.workout-cell--metric .workout-cell-main{
    min-width:0;
    font-size:12px !important;
    line-height:1.15;
    text-align:left !important;
  }
  .races-table__row{
    grid-template-columns:minmax(0,1fr) 82px !important;
    column-gap:10px !important;
    row-gap:7px !important;
    padding:10px 12px !important;
  }
  .races-table__main{
    grid-column:1 !important;
    grid-row:1 !important;
  }
  .races-table__action{
    grid-column:2 !important;
    grid-row:1 / span 2 !important;
    align-self:start !important;
    width:82px !important;
  }
  .races-table__date,
  .races-table__location,
  .races-table__distance{
    display:inline-flex !important;
    align-items:center;
    gap:4px;
    min-width:0;
    padding:0 !important;
    font-size:12px;
    line-height:1.25;
  }
  .races-table__date{
    grid-column:1 !important;
    grid-row:2 !important;
  }
  .races-table__location{
    grid-column:1 !important;
    grid-row:3 !important;
  }
  .races-table__distance{
    grid-column:1 / 3 !important;
    grid-row:4 !important;
    flex-wrap:wrap;
  }
  .races-table__date::before,
  .races-table__location::before,
  .races-table__distance::before{
    display:inline !important;
    flex:0 0 auto;
    margin:0;
    font-size:10px;
    font-weight:800;
    letter-spacing:.04em;
    color:var(--muted);
    text-transform:uppercase;
  }
  .races-table__main .entity-title strong{
    font-size:13px !important;
    line-height:1.25 !important;
  }
  .races-table__action .race-add-btn{
    min-width:76px !important;
    width:76px;
    min-height:34px !important;
    padding:0 6px !important;
    font-size:10px !important;
  }
  .races-table__action .race-presence-mark img{
    width:38px !important;
    height:38px !important;
  }
  #mrModal .manual-race-distance-row{
    grid-template-columns:minmax(0,1.7fr) minmax(92px,.65fr) !important;
  }
  .kpi-label:has(.inline-tooltip),
  .dashboard-forecast-label:has(.inline-tooltip),
  .my-race-insight__forecast-prefix:has(.inline-tooltip),
  .my-race-insight__assessment-detail:has(.inline-tooltip){
    position:relative;
    padding-right:26px;
  }
  .inline-tooltip{
    position:relative !important;
    top:auto !important;
    right:auto !important;
    left:auto !important;
  }
  .inline-tooltip__bubble{
    right:0 !important;
    left:auto !important;
    top:auto !important;
    bottom:calc(100% + 10px) !important;
    max-width:min(280px, calc(100vw - 28px)) !important;
    transform:translateY(4px);
  }
  .inline-tooltip:hover .inline-tooltip__bubble,
  .inline-tooltip:focus-within .inline-tooltip__bubble,
  .inline-tooltip.is-open .inline-tooltip__bubble{
    transform:translateY(0);
  }
  .dashboard-stat-tile--forecast .inline-tooltip__bubble{
    right:0 !important;
    left:auto !important;
  }
}

/* Mobile polish pass: dashboard KPI baselines, workout rows and compact race controls. */
@media (max-width: 640px){
  .dashboard-kpi-grid .kpi-card,
  .kpi-grid .kpi-card,
  #kpis .kpi-card{
    position:relative;
    min-height:112px;
    padding-bottom:34px !important;
  }
  .dashboard-kpi-grid .kpi-mainline,
  #kpis .kpi-mainline{
    display:block !important;
  }
  .dashboard-kpi-grid .kpi-sub,
  #kpis .kpi-sub{
    position:absolute;
    right:12px;
    bottom:10px;
    margin:0 !important;
    padding:0 !important;
    max-width:70%;
    text-align:right;
    font-size:13px !important;
    line-height:1.2;
  }
  .dashboard-kpi-grid .kpi-card.k-sky .kpi-sub,
  #kpis .kpi-card.k-sky .kpi-sub{
    font-size:13px !important;
  }
  #page-dashboard .dashboard-kpi-shell{
    gap:8px !important;
    margin-bottom:10px !important;
  }
  #page-dashboard .dashboard-kpi-shell__month{
    padding-bottom:6px !important;
    font-size:12px !important;
    line-height:1.2;
  }
  #page-dashboard #kpis.dashboard-kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:6px !important;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card{
    min-height:58px !important;
    padding:7px 8px 17px !important;
    border-radius:10px;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card:not(.k-sky){
    display:block !important;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card::after{
    right:-12px;
    bottom:-14px;
    width:48px;
    height:48px;
    opacity:.34;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-mainline{
    display:block !important;
    position:static !important;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-label{
    margin-bottom:3px;
    font-size:9px;
    line-height:1.15;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-value{
    margin-top:0 !important;
    font-size:1.1rem;
    line-height:1;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-sub{
    position:absolute !important;
    right:7px !important;
    bottom:5px !important;
    left:auto !important;
    width:auto !important;
    max-width:82% !important;
    margin:0 !important;
    padding:0 !important;
    text-align:right !important;
    font-size:8.8px !important;
    line-height:1.05 !important;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card.k-sky{
    grid-column:1 / -1;
    min-height:58px !important;
    padding-right:34px !important;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card.k-sky .kpi-label{
    position:static;
    margin:0 0 3px;
    padding-right:0;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card.k-sky .kpi-value{
    display:block;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card.k-sky .kpi-sub{
    max-width:70% !important;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card.k-sky .inline-tooltip{
    position:absolute !important;
    top:7px !important;
    right:7px !important;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card.k-sky .inline-tooltip__trigger{
    width:17px;
    height:17px;
    font-size:10px;
  }
  #page-dashboard #kpis.dashboard-kpi-grid .kpi-card.k-sky .inline-tooltip__bubble,
  #dashboardFocusRace .dashboard-stat-tile--forecast .inline-tooltip__bubble{
    position:fixed;
    left:14px !important;
    right:14px !important;
    top:auto !important;
    bottom:18px !important;
    width:auto !important;
    max-width:none !important;
    transform:translateY(8px);
    z-index:400;
  }
  .dashboard-last-workout__head{
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:start !important;
  }
  .dashboard-last-workout__status{
    justify-content:flex-end;
    text-align:right;
    margin:0 !important;
    max-width:148px;
  }
  .dashboard-last-workout__status .workout-kind-chip{
    align-self:flex-start;
  }
  .workout-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 38px !important;
    align-items:start !important;
  }
  .workout-row > .workout-cell:first-child{
    grid-column:1 / 3 !important;
    grid-row:1 !important;
  }
  .workout-row > .workout-note-cell{
    grid-column:1 / 3 !important;
    grid-row:5 !important;
  }
  .workout-row > .workout-cell:nth-child(2),
  .workout-row > .workout-cell:nth-child(3){
    grid-row:2 !important;
  }
  .workout-row > .workout-cell:nth-child(4),
  .workout-row > .workout-cell:nth-child(5){
    grid-row:3 !important;
  }
  .workout-row > .workout-cell:nth-child(6){
    grid-row:4 !important;
  }
  .workout-actions-cell{
    grid-column:3 !important;
    grid-row:1 / span 5 !important;
    align-items:flex-end !important;
    justify-content:flex-start !important;
    width:38px !important;
  }
  .workout-note-cell .workout-cell-main{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:8px;
  }
  .workout-note-text{
    text-align:left !important;
    overflow:visible !important;
    text-overflow:clip !important;
    white-space:normal !important;
  }
  .workout-note-status{
    justify-content:flex-end !important;
    text-align:right;
    width:auto !important;
    max-width:148px;
  }
  .workout-note-status .workout-kind-chip{
    margin-left:auto;
  }
  .races-table__action .race-presence-mark img{
    width:54px !important;
    height:54px !important;
  }
  #mrModal .form-row:has(#mrManualDistanceGroup){
    grid-template-columns:minmax(0,1.45fr) minmax(96px,.55fr) !important;
  }
  #mrModal #mrManualDistanceGroup{
    min-width:0;
  }
  #mrModal .manual-race-distance-row{
    grid-template-columns:minmax(190px,1fr) !important;
  }
  #mrModal #mrManualDistance{
    grid-column:1;
  }
  #mrModal #mrManualDistance[hidden]{
    display:none !important;
  }
}

@media (max-width: 420px){
  #mrModal .form-row:has(#mrManualDistanceGroup){
    grid-template-columns:minmax(0,1fr) !important;
  }
  #mrModal .manual-race-distance-row{
    grid-template-columns:minmax(0,1fr) !important;
  }
}

/* Mobile workout card order: keep note/status near the date and actions at the bottom. */
@media (max-width: 640px){
  #page-workouts .workout-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    row-gap:8px !important;
    padding:12px !important;
  }
  #page-workouts .workout-row > .workout-cell:first-child{
    grid-column:1 / -1 !important;
    grid-row:1 !important;
  }
  #page-workouts .workout-row > .workout-note-cell{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(2),
  #page-workouts .workout-row > .workout-cell:nth-child(3){
    grid-row:3 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(4),
  #page-workouts .workout-row > .workout-cell:nth-child(5){
    grid-row:4 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(6){
    grid-column:1 !important;
    grid-row:5 !important;
  }
  #page-workouts .workout-actions-cell{
    grid-column:1 / -1 !important;
    grid-row:6 !important;
    width:100% !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:6px !important;
  }
  #page-workouts .workout-note-cell .workout-cell-main{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:8px;
  }
  #page-workouts .workout-note-status{
    justify-content:flex-end !important;
    text-align:right;
    max-width:150px;
  }
  #page-workouts .workout-actions-cell .icon-action,
  #page-workouts .workout-actions-cell .workout-type-action{
    width:30px;
    height:30px;
    flex:0 0 30px;
  }
  #page-workouts .workout-type-action--race img,
  #page-workouts .workout-type-action--control img{
    width:25px !important;
    height:25px !important;
  }
}

/* Mobile dashboard focus race card: tighter composition for the nearest start. */
@media (max-width: 640px){
  #dashboardFocusRace .dashboard-focus-card{
    gap:8px;
  }
  #dashboardFocusRace .dashboard-focus-card__head{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:6px 8px;
  }
  #dashboardFocusRace .dashboard-focus-card__name{
    font-size:14px;
    line-height:1.18;
  }
  #dashboardFocusRace .dashboard-focus-card__meta{
    margin-top:2px;
    font-size:11px;
    line-height:1.25;
  }
  #dashboardFocusRace .dashboard-focus-card__head .status-chip{
    align-self:start;
    justify-content:center;
    max-width:112px;
    padding:4px 8px;
    font-size:10.5px;
    line-height:1.15;
    text-align:center;
    white-space:normal;
  }
  #dashboardFocusRace .dashboard-focus-card__stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  #dashboardFocusRace .dashboard-stat-tile{
    display:grid;
    align-content:center;
    min-height:58px;
    gap:3px;
    padding:8px;
    border-radius:11px;
  }
  #dashboardFocusRace .dashboard-stat-tile strong{
    font-size:13px;
    line-height:1.1;
  }
  #dashboardFocusRace .dashboard-stat-tile span{
    margin-top:0;
    font-size:10px;
    line-height:1.15;
  }
  #dashboardFocusRace .dashboard-stat-tile--forecast .dashboard-forecast-label{
    display:inline-flex;
    align-items:center;
    min-height:0;
    gap:4px;
    line-height:1.15;
  }
  #dashboardFocusRace .dashboard-stat-tile--forecast .inline-tooltip{
    position:absolute !important;
    top:6px !important;
    right:6px !important;
    width:18px !important;
    height:18px !important;
    display:grid !important;
    place-items:center !important;
    box-sizing:border-box;
    margin:0;
    padding:0;
    line-height:1;
  }
  #dashboardFocusRace .dashboard-stat-tile--forecast .inline-tooltip__trigger{
    width:18px !important;
    height:18px !important;
    flex:0 0 18px;
    display:grid !important;
    place-items:center !important;
    box-sizing:border-box;
    padding:0;
    font-size:11px;
    line-height:1 !important;
    text-align:center;
  }
  #dashboardFocusRace .dashboard-note,
  #dashboardFocusRace .dashboard-empty-note{
    padding:8px 9px;
    border-radius:11px;
    font-size:11px;
    line-height:1.35;
  }
  #dashboardFocusRace .dashboard-focus-card__actions .btn{
    width:100%;
  }
  #dashboardFocusRace .dashboard-post-race{
    gap:8px;
    padding:9px;
    border-radius:11px;
  }
  #dashboardFocusRace .dashboard-post-race--pending,
  #dashboardFocusRace .dashboard-post-race--neutral{
    grid-template-columns:32px minmax(0,1fr);
  }
  #dashboardFocusRace .dashboard-post-race--pending .btn,
  #dashboardFocusRace .dashboard-post-race--neutral .btn{
    grid-column:1 / -1;
    grid-row:auto;
    width:100%;
  }
  #dashboardFocusRace .dashboard-post-race__icon{
    width:32px;
    height:32px;
    border-radius:10px;
  }
  #dashboardFocusRace .dashboard-post-race__icon i{
    width:17px;
    height:17px;
  }
  #dashboardFocusRace .dashboard-post-race strong{
    font-size:14px;
  }
  #dashboardFocusRace .dashboard-post-race p{
    font-size:11px;
  }
  #dashboardFocusRace .dashboard-focus-card__stats--post{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 420px){
  #dashboardFocusRace .dashboard-focus-card__head{
    grid-template-columns:minmax(0,1fr);
  }
  #dashboardFocusRace .dashboard-focus-card__head .status-chip{
    justify-self:start;
  }
}

/* Mobile auth tagline: keep the login screen short while explaining the product. */
@media (max-width: 640px){
  .auth-mobile-tagline{
    display:block;
    margin:-2px 0 12px;
    color:var(--petrol-strong);
    font-size:.9rem;
    font-weight:800;
    line-height:1.25;
    text-align:center;
    letter-spacing:-.01em;
  }
  .auth-wrap:not(.reset-mode) .auth-stage{
    gap:10px !important;
  }
  .auth-wrap:not(.reset-mode) .auth-marketing-shell{
    display:none !important;
  }
}

@media (min-width: 641px){
  .auth-mobile-tagline{
    display:none;
  }
}

/* My races forecast tooltip opens from the left edge of the forecast label, so it stays inside race cards. */
.my-race-insight__forecast-prefix .inline-tooltip__bubble,
.my-race-insight__forecast-value .inline-tooltip__bubble,
.my-race-insight__assessment-detail .inline-tooltip__bubble{
  right:auto;
  left:0;
}

@media (max-width: 640px){
  .my-race-insight__forecast-prefix .inline-tooltip__bubble,
  .my-race-insight__forecast-value .inline-tooltip__bubble,
  .my-race-insight__assessment-detail .inline-tooltip__bubble{
    position:fixed;
    left:14px !important;
    right:14px !important;
    top:auto !important;
    bottom:18px !important;
    width:auto !important;
    max-width:none !important;
    transform:translateY(8px);
    z-index:400;
  }
  .my-race-insight__forecast-prefix .inline-tooltip:hover .inline-tooltip__bubble,
  .my-race-insight__forecast-prefix .inline-tooltip:focus-within .inline-tooltip__bubble,
  .my-race-insight__forecast-prefix .inline-tooltip.is-open .inline-tooltip__bubble,
  .my-race-insight__forecast-value .inline-tooltip:hover .inline-tooltip__bubble,
  .my-race-insight__forecast-value .inline-tooltip:focus-within .inline-tooltip__bubble,
  .my-race-insight__forecast-value .inline-tooltip.is-open .inline-tooltip__bubble,
  .my-race-insight__assessment-detail .inline-tooltip:hover .inline-tooltip__bubble,
  .my-race-insight__assessment-detail .inline-tooltip:focus-within .inline-tooltip__bubble,
  .my-race-insight__assessment-detail .inline-tooltip.is-open .inline-tooltip__bubble{
    transform:translateY(0);
  }
}

/* BSI filter tooltip needs viewport-safe directions in the races toolbar. */
@media (max-width: 640px){
  .form-label-with-tooltip--bsi{
    width:100%;
    display:flex !important;
    justify-content:space-between;
  }
  .form-label-with-tooltip .inline-tooltip--bsi-filter{
    flex:0 0 auto;
  }
  .form-label-with-tooltip .inline-tooltip--bsi-filter .inline-tooltip__bubble{
    position:absolute;
    top:auto !important;
    right:0 !important;
    bottom:calc(100% + 8px) !important;
    left:auto !important;
    width:min(300px, calc(100vw - 28px)) !important;
    max-width:calc(100vw - 28px) !important;
    transform:translateY(6px);
    z-index:500;
  }
  .form-label-with-tooltip .inline-tooltip--bsi-filter:hover .inline-tooltip__bubble,
  .form-label-with-tooltip .inline-tooltip--bsi-filter:focus-within .inline-tooltip__bubble,
  .form-label-with-tooltip .inline-tooltip--bsi-filter.is-open .inline-tooltip__bubble{
    transform:translateY(0);
  }
}

/* Cookie notice */
.cookie-notice{position:fixed;left:16px;right:16px;bottom:16px;z-index:300;display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(calc(100% - 32px),760px);margin:0 auto;padding:14px 14px 14px 18px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:var(--shadow-md);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.cookie-notice[hidden]{display:none}
.cookie-notice__text{font-size:.86rem;line-height:1.42;color:var(--text)}
.cookie-notice__text a{color:var(--petrol);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.cookie-notice .btn{min-width:96px}
@media(max-width:640px){
  .cookie-notice{align-items:stretch;flex-direction:column;padding:14px;border-radius:16px}
  .cookie-notice .btn{width:100%}
}

/* Legal pages */
.legal-page{position:relative;background:#FCF8F3;color:var(--text);overflow-x:hidden}
.legal-page::before{content:"";position:fixed;inset:0;background-image:url(/assets/img/logoYellow.png);background-repeat:no-repeat;background-position:center 46%;background-size:min(68vw,760px) auto;opacity:.11;filter:grayscale(1) contrast(.92);pointer-events:none;z-index:0}
.legal-doc{position:relative;z-index:1}
.legal-doc{width:min(100% - 32px, 860px);margin:0 auto;padding:48px 0 72px;font-size:1rem;line-height:1.62}
.legal-doc h1{font-size:clamp(2rem, 1.55rem + 1.6vw, 3.1rem);line-height:1.05;margin:18px 0 18px;color:#8B2E2E;letter-spacing:0}
.legal-doc h2{font-size:1.18rem;margin:30px 0 10px;color:var(--text);letter-spacing:0}
.legal-doc p{margin:0 0 14px;color:var(--text)}
.legal-doc ul{list-style:disc;margin:0 0 18px 22px;color:var(--text)}
.legal-doc li{margin:6px 0}
.legal-doc a{color:var(--petrol);text-decoration:underline;text-underline-offset:3px}
.legal-back{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border-radius:999px;background:#fff3d8;border:1px solid #e6c56d;color:#7a4b00 !important;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;text-decoration:none !important}

/* Workouts layout refresh: monthly focus, paired volume charts and season training structure. */
@media (max-width: 1180px){
  #page-workouts .workouts-dashboard-kpi-shell .dashboard-kpi-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  #page-workouts .workouts-volume-pair-grid,
  #page-workouts .workouts-grid-pace-goals{
    grid-template-columns:1fr;
  }
}
@media (max-width: 640px){
  #page-workouts .workouts-dashboard-kpi-shell{
    gap:8px;
  }
  #page-workouts .workouts-dashboard-kpi-shell .dashboard-kpi-shell__month{
    padding-bottom:6px;
    font-size:12px;
  }
  #page-workouts .workouts-dashboard-kpi-shell .dashboard-kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  #page-workouts .workouts-dashboard-kpi-shell .kpi-card{
    min-height:68px !important;
    padding:8px 9px 18px !important;
    border-radius:10px;
  }
  #page-workouts .workouts-dashboard-kpi-shell .kpi-label{
    margin-bottom:3px;
    font-size:9px;
    line-height:1.15;
  }
  #page-workouts .workouts-dashboard-kpi-shell .kpi-value{
    font-size:1.1rem;
  }
  #page-workouts .workouts-dashboard-kpi-shell .kpi-sub{
    position:absolute !important;
    right:7px !important;
    bottom:5px !important;
    left:auto !important;
    max-width:82% !important;
    margin:0 !important;
    padding:0 !important;
    text-align:right !important;
    font-size:8.8px !important;
    line-height:1.05 !important;
  }
  #page-workouts .workouts-chart-panel{
    padding:8px;
  }
  #page-workouts .workouts-chart-panel #workoutsVolumeChart,
  #page-workouts .workouts-chart-panel #workoutsDashboardVolumeChart,
  #page-workouts .workouts-pace-card #workoutsDashboardPaceChart{
    min-height:260px;
  }
}

/* Workouts layout refresh v2: KPI captions and bar-based training structure. */
#page-workouts .workouts-dashboard-kpi-shell .kpi-card{
  position:relative;
  min-height:132px;
  padding-bottom:46px;
}
#page-workouts .workouts-dashboard-kpi-shell .kpi-sub{
  position:absolute;
  left:var(--space-5);
  right:var(--space-5);
  bottom:var(--space-5);
  margin:0;
  padding:0;
  line-height:1.25;
}
.workouts-structure-bars{
  display:grid;
  gap:12px;
  min-width:0;
  padding:12px;
  border:1px solid rgba(13,122,131,.12);
  border-radius:14px;
  background:linear-gradient(135deg, rgba(255,255,255,.82), rgba(232,248,247,.52));
}
.workouts-structure-bars__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.workouts-structure-bars__head div{
  min-width:0;
}
.workouts-structure-bars__title{
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.workouts-structure-bars__head span{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.workouts-structure-bars__head strong{
  color:var(--petrol-strong);
  font-size:28px;
  line-height:1;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
.workouts-structure-bars__rows{
  display:grid;
  gap:10px;
}
.workouts-structure-bars__row{
  display:grid;
  gap:6px;
}
.workouts-structure-bars__meta{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.workouts-structure-bars__meta span{
  min-width:0;
  color:var(--text);
  font-size:13px;
  font-weight:900;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-structure-bars__meta em{
  flex:0 0 auto;
  color:var(--muted);
  font-size:11px;
  font-style:normal;
  font-weight:800;
  white-space:nowrap;
}
.workouts-structure-bars__track{
  height:9px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(110,114,122,.14);
}
.workouts-structure-bars__track i{
  display:block;
  width:var(--bar);
  height:100%;
  border-radius:inherit;
  background:var(--bar-color);
}
@media (max-width: 640px){
  #page-workouts .workouts-dashboard-kpi-shell .kpi-card{
    min-height:68px !important;
    padding-bottom:18px !important;
  }
  .workouts-structure-bars{
    padding:9px;
    gap:10px;
  }
  .workouts-structure-bars__head strong{
    font-size:24px;
  }
  .workouts-structure-bars__meta{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .workouts-structure-bars__meta em{
    white-space:normal;
  }
}
@media (max-width: 640px){
  #page-workouts .workouts-dashboard-kpi-shell .kpi-sub{
    left:auto !important;
    right:7px !important;
    bottom:5px !important;
    max-width:82% !important;
    text-align:right !important;
    font-size:8.8px !important;
    line-height:1.05 !important;
  }
}

/* Workouts BEGUU insight: turns monthly metrics into one readable training conclusion. */
.workouts-insight-card{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.95fr);
  gap:var(--space-5);
  align-items:stretch;
  margin-bottom:var(--space-6);
  border-color:rgba(13,122,131,.18);
  background:linear-gradient(135deg, rgba(232,248,247,.78), rgba(255,252,240,.76));
}
.workouts-insight-card__main{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:14px;
  align-items:start;
  min-width:0;
}
.workouts-insight-card__icon{
  width:42px;
  height:42px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--petrol);
  background:rgba(13,122,131,.10);
}
.workouts-insight-card__icon i{
  width:21px;
  height:21px;
  stroke-width:2.6;
}
.workouts-insight-card__main span,
.workouts-insight-card__next span,
.workouts-insight-card__metrics span{
  display:block;
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.workouts-insight-card__main strong{
  display:block;
  margin-top:4px;
  color:var(--petrol-strong);
  font-size:20px;
  line-height:1.15;
  font-weight:900;
}
.workouts-insight-card__main p,
.workouts-insight-card__next p{
  margin:6px 0 0;
  color:var(--text);
  font-size:14px;
  line-height:1.45;
}
.workouts-insight-card__metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  align-content:start;
}
.workouts-insight-card__metrics div{
  position:relative;
  min-width:0;
  padding:9px 10px;
  border:1px solid rgba(13,122,131,.12);
  border-radius:12px;
  background:rgba(255,255,255,.62);
}
.workouts-insight-card__metrics strong{
  display:block;
  margin-top:4px;
  color:var(--text);
  font-size:16px;
  line-height:1.1;
  font-weight:900;
  font-variant-numeric:tabular-nums;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-insight-card__metrics em{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-style:normal;
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-insight-card__next{
  grid-column:1 / -1;
  padding:10px 12px;
  border-left:4px solid rgba(13,122,131,.42);
  border-radius:12px;
  background:rgba(255,255,255,.52);
}
.workouts-insight-card--strong .workouts-insight-card__icon{color:#1b7f50;background:rgba(27,127,80,.12)}
.workouts-insight-card--strong .workouts-insight-card__main strong{color:#1b7f50}
.workouts-insight-card--watch .workouts-insight-card__icon{color:#9b7410;background:rgba(212,162,31,.14)}
.workouts-insight-card--watch .workouts-insight-card__main strong{color:#9b7410}
.workouts-insight-card--calm .workouts-insight-card__icon,
.workouts-insight-card--empty .workouts-insight-card__icon{color:var(--muted);background:rgba(110,114,122,.10)}
@media (max-width: 900px){
  .workouts-insight-card{
    grid-template-columns:1fr;
    gap:var(--space-4);
  }
}
@media (max-width: 640px){
  .workouts-insight-card{
    margin-bottom:0;
    gap:12px;
  }
  .workouts-insight-card__main{
    grid-template-columns:34px minmax(0,1fr);
    gap:10px;
  }
  .workouts-insight-card__icon{
    width:34px;
    height:34px;
    border-radius:11px;
  }
  .workouts-insight-card__main strong{
    font-size:17px;
  }
  .workouts-insight-card__main p,
  .workouts-insight-card__next p{
    font-size:13px;
  }
  .workouts-insight-card__metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .workouts-insight-card__metrics div{
    padding:8px;
  }
}

/* Workouts goals status: compact goal state without progress charts. */
.workouts-goals-status{
  display:grid;
  gap:12px;
  margin-bottom:var(--space-5);
  padding:12px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:14px;
  background:linear-gradient(135deg, rgba(232,248,247,.72), rgba(255,255,255,.66));
}
.workouts-goals-status__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.workouts-goals-status__head div{
  min-width:0;
}
.workouts-goals-status__head span,
.workouts-goals-status__item span{
  display:block;
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.workouts-goals-status__head strong{
  display:block;
  margin-top:4px;
  color:var(--petrol-strong);
  font-size:17px;
  line-height:1.15;
  font-weight:900;
}
.workouts-goals-status__head p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
}
.workouts-goals-status__head em{
  flex:0 0 auto;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(13,122,131,.10);
  color:var(--petrol-strong);
  font-size:12px;
  font-style:normal;
  font-weight:900;
}
.workouts-goals-status__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.workouts-goals-status__item{
  min-width:0;
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  gap:8px;
  align-items:start;
  padding:9px;
  border:1px solid rgba(110,114,122,.12);
  border-radius:12px;
  background:rgba(255,255,255,.58);
}
.workouts-goals-status__item i{
  width:26px;
  height:26px;
  padding:5px;
  border-radius:9px;
  color:var(--muted);
  background:rgba(110,114,122,.09);
}
.workouts-goals-status__item.is-set i{
  color:var(--petrol);
  background:rgba(13,122,131,.10);
}
.workouts-goals-status__item strong{
  display:block;
  margin-top:3px;
  overflow:hidden;
  color:var(--text);
  font-size:14px;
  line-height:1.15;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-goals-status__item em{
  display:block;
  margin-top:2px;
  overflow:hidden;
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-style:normal;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media (max-width: 640px){
  .workouts-goals-status{
    margin-bottom:12px;
    padding:10px;
  }
  .workouts-goals-status__grid{
    grid-template-columns:1fr;
  }
}

/* Weekly workout summary: turns each week into a training unit. */
.week-card__summary{
  display:grid;
  grid-template-columns:minmax(160px,.55fr) minmax(0,1.45fr);
  gap:12px;
  align-items:stretch;
  padding:12px 16px;
  border-bottom:1px solid rgba(13,122,131,.12);
  background:rgba(232,248,247,.34);
}
.week-card__summary-title{
  min-width:0;
  display:grid;
  align-content:center;
  gap:3px;
  padding-left:10px;
  border-left:4px solid rgba(13,122,131,.42);
}
.week-card__summary-title span,
.week-card__summary-grid span{
  display:block;
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.week-card__summary-title strong{
  color:var(--petrol-strong);
  font-size:15px;
  line-height:1.15;
  font-weight:900;
}
.week-card__summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.week-card__summary-grid div{
  min-width:0;
  padding:8px 9px;
  border:1px solid rgba(13,122,131,.10);
  border-radius:11px;
  background:rgba(255,255,255,.62);
}
.week-card__summary-grid strong{
  display:block;
  margin-top:3px;
  overflow:hidden;
  color:var(--text);
  font-size:14px;
  line-height:1.15;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.week-card__summary-grid em{
  display:block;
  margin-top:2px;
  overflow:hidden;
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-style:normal;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.week-card__summary--good .week-card__summary-title{border-left-color:#1b7f50}
.week-card__summary--good .week-card__summary-title strong{color:#1b7f50}
.week-card__summary--watch .week-card__summary-title{border-left-color:#d4a21f}
.week-card__summary--watch .week-card__summary-title strong{color:#9b7410}
.week-card__summary--high .week-card__summary-title{border-left-color:#c78e23}
.week-card__summary--high .week-card__summary-title strong{color:#8a5c00}
.week-card__summary--low .week-card__summary-title{border-left-color:#e38a72}
.week-card__summary--low .week-card__summary-title strong{color:var(--coral-text)}
@media (max-width: 900px){
  .week-card__summary{
    grid-template-columns:1fr;
    gap:10px;
  }
}
@media (max-width: 640px){
  .week-card__summary{
    padding:10px 12px;
  }
  .week-card__summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .week-card__summary-grid div{
    padding:7px 8px;
  }
}

/* Workouts main insight and analysis layout: promotes BEGUU conclusion as the primary training card. */
#workoutsVolumeChart > .volume-chart-legend--top-left{
  align-self:flex-start;
  justify-content:flex-start;
  margin-left:0;
  margin-right:auto;
}
.workouts-insight-card__metrics{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.workouts-insight-card__metric strong{
  color:var(--text);
}
.workouts-insight-card__metric--volume strong{color:var(--petrol-strong)}
.workouts-insight-card__metric--sessions strong{color:var(--coral)}
.workouts-insight-card__metric--hours strong{color:#7b5e16}
.workouts-insight-card__metric--pace strong{color:#9b7410}
.workouts-insight-card__metric--hr strong{color:#7b4fb2}
.workouts-insight-card__metric--vo2 strong{color:#2772a6}
.workouts-insight-card__metric[data-action]{cursor:pointer}
.workouts-insight-card__metric--vo2{
  padding-right:32px !important;
}
.workouts-insight-card__metric--vo2 .inline-tooltip{
  position:absolute;
  top:8px;
  right:8px;
  margin-left:0;
}
.workouts-insight-card__metric--vo2 .inline-tooltip__trigger,
.workouts-structure-target-card__title-inline .inline-tooltip__trigger,
.dashboard-stat-tile--forecast .inline-tooltip__trigger{
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  padding:0;
  box-sizing:border-box;
  font-size:11px;
  line-height:1;
  letter-spacing:0;
  text-align:center;
  text-transform:none;
}
.workouts-insight-card__metric--vo2 .inline-tooltip__bubble{
  right:0;
  left:auto;
}
.workouts-structure-legend{
  width:100%;
  padding-top:18px;
}
.workouts-structure-legend-list{
  width:100%;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px 18px;
}
.workouts-structure-compact{
  min-height:300px;
  align-content:start;
}
.workouts-structure-compact__title{
  color:var(--text);
  font-size:13px;
  letter-spacing:.02em;
}
.workouts-structure-compact__values{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:2px;
}
.workouts-structure-compact__value{
  min-width:0;
  padding:8px 9px;
  border:1px solid rgba(110,114,122,.12);
  border-left:4px solid var(--mix-color, var(--petrol));
  border-radius:10px;
  background:rgba(255,255,255,.58);
}
.workouts-structure-compact__value span,
.workouts-pace-breakdown__block > span{
  display:block;
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.workouts-structure-compact__value strong{
  display:inline-block;
  margin-top:4px;
  color:var(--text);
  font-size:17px;
  line-height:1;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
.workouts-structure-compact__value em{
  display:block;
  margin-top:2px;
  overflow:hidden;
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-style:normal;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-goals-layout{
  display:grid;
  grid-template-columns:minmax(250px,.9fr) minmax(0,1.1fr);
  gap:var(--space-5);
  align-items:start;
}
.workouts-goals-layout .workouts-goals-summary{
  margin-bottom:0;
}
.workouts-goals-fields{
  display:grid;
  gap:var(--space-4);
  min-width:0;
}
.workouts-goals-fields .goals-group{
  margin:0;
}
.workouts-goals-fields .workouts-goals-actions{
  margin-top:0;
}
.workouts-pace-breakdown{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.workouts-pace-breakdown__heading{
  grid-column:1 / -1;
  color:var(--text);
  font-size:13px;
  line-height:1.25;
  font-weight:900;
  letter-spacing:0;
  text-align:center;
  text-transform:none;
}
.workouts-pace-breakdown__block{
  min-width:0;
  padding:12px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:14px;
  background:rgba(255,255,255,.64);
}
.workouts-pace-breakdown__row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:3px 10px;
  align-items:baseline;
  padding:8px 0;
  border-bottom:1px solid rgba(110,114,122,.10);
}
.workouts-pace-breakdown__row:last-child{border-bottom:0;padding-bottom:0}
.workouts-pace-breakdown__row > span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  overflow:hidden;
  color:var(--text);
  font-size:13px;
  font-weight:850;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-pace-breakdown__icon{
  flex:0 0 auto;
  display:inline-grid !important;
  place-items:center;
  width:18px;
  height:18px;
  overflow:visible !important;
  color:var(--petrol-strong);
}
.workouts-pace-breakdown__icon i,
.workouts-pace-breakdown__icon svg{
  width:15px;
  height:15px;
  stroke-width:2.4;
}
.workouts-pace-breakdown__structure-icon{
  width:16px;
  height:16px;
  display:block;
}
.workouts-pace-breakdown__icon img{
  width:16px;
  height:16px;
  object-fit:contain;
}
.workouts-pace-breakdown__row strong{
  color:var(--petrol-strong);
  font-size:14px;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
.workouts-pace-breakdown__row em{
  grid-column:1 / -1;
  color:var(--muted);
  font-size:11px;
  font-style:normal;
  font-weight:800;
}
.workouts-pace-breakdown__empty{
  margin:8px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
  font-weight:750;
}
@media (max-width: 900px){
  .workouts-goals-layout,
  .workouts-pace-breakdown{
    grid-template-columns:1fr;
  }
  .workouts-structure-legend-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 640px){
  .workouts-insight-card__metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .workouts-structure-compact{
    min-height:0;
  }
  .workouts-structure-compact__values{
    grid-template-columns:1fr;
  }
  .workouts-goals-layout{
    gap:12px;
  }
}

/* Workouts VO2, structure and full-width training cards refinement. */
.workouts-insight-card__main p,
.workouts-insight-card__next p{
  font-size:15.5px;
  line-height:1.5;
  font-weight:650;
}
.workouts-insight-card__metrics div{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:88px;
}
.workouts-insight-card__metrics span{
  width:100%;
}
.workouts-insight-card__metrics strong{
  font-size:17px;
}
.workouts-insight-card__metrics small{
  display:block;
  margin-top:2px;
  max-width:100%;
  overflow:hidden;
  color:var(--muted);
  font-size:10px;
  line-height:1.15;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-goals-card--wide,
.workouts-pace-card--wide{
  margin-bottom:var(--space-6);
}
.workouts-goals-card--wide .workouts-goals-layout{
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
}
.workouts-pace-card--wide #workoutsDashboardPaceChart{
  min-height:360px;
}
.workouts-structure-grid{
  gap:18px;
}
.workouts-structure-compact{
  min-height:0;
  gap:12px;
}
.workouts-structure-compact__title{
  text-align:left;
  font-size:14px;
}
.workouts-structure-compact__body{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:14px;
  align-items:center;
  justify-content:start;
}
.workouts-structure-compact__chart{
  width:220px;
  height:220px;
}
.workouts-structure-compact__svg{
  width:220px;
  height:220px;
}
.workouts-structure-compact__center strong{
  font-size:34px;
}
.workouts-structure-compact__center span{
  font-size:13px;
}
.workouts-structure-compact__values{
  grid-template-columns:1fr;
  gap:7px;
  margin-top:0;
}
.workouts-structure-compact__value{
  padding:9px 10px;
}
.workouts-structure-compact__value strong{
  font-size:18px;
}
.workouts-structure-legend{
  display:none;
}
@media (max-width: 1100px){
  .workouts-structure-compact__body{
    grid-template-columns:1fr;
    justify-items:center;
  }
  .workouts-structure-compact__values{
    width:100%;
  }
}
@media (max-width: 900px){
  .workouts-goals-card--wide .workouts-goals-layout{
    grid-template-columns:1fr;
  }
  .workouts-structure-grid{
    grid-template-columns:1fr;
  }
  .workouts-structure-compact__body{
    grid-template-columns:220px minmax(0,1fr);
    justify-items:stretch;
  }
}
@media (max-width: 640px){
  .workouts-insight-card__main p,
  .workouts-insight-card__next p{
    font-size:14px;
  }
  .workouts-insight-card__metrics div{
    min-height:82px;
  }
  .workouts-structure-compact__body{
    grid-template-columns:1fr;
    justify-items:center;
  }
  .workouts-structure-compact__chart,
  .workouts-structure-compact__svg{
    width:196px;
    height:196px;
  }
}

/* Workouts requested refinement: compact metric hints, central structure legend, wider goals, side pace stats. */
.workouts-insight-card__eyebrow{
  font-size:13px !important;
  line-height:1.2 !important;
  color:var(--petrol-strong) !important;
}
.workouts-insight-card__metrics div{
  min-height:78px;
  padding:8px 9px;
}
.workouts-insight-card__metrics em{
  max-width:100%;
  font-size:10px;
  white-space:nowrap;
}
.workouts-structure-grid--comparison{
  grid-template-columns:minmax(220px,1fr) minmax(230px,.72fr) minmax(220px,1fr);
  gap:18px;
  align-items:center;
}
.workouts-structure-grid--comparison .workouts-structure-panel{
  min-width:0;
}
.workouts-structure-grid--comparison .workouts-structure-compact__body{
  display:flex;
  justify-content:center;
  align-items:center;
}
.workouts-structure-grid--comparison .workouts-structure-compact__title{
  text-align:center;
  font-size:15px;
}
.workouts-structure-grid--comparison .workouts-structure-compact__chart,
.workouts-structure-grid--comparison .workouts-structure-compact__svg{
  width:236px;
  height:236px;
}
.workouts-structure-legend--comparison{
  display:flex;
  justify-content:center;
  align-self:center;
  margin:0;
  padding:0;
}
.workouts-structure-compare-legend{
  width:100%;
  display:grid;
  gap:9px;
  padding:12px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:14px;
  background:rgba(255,255,255,.62);
}
.workouts-structure-compare-legend__head,
.workouts-structure-compare-legend__row{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  gap:10px;
  align-items:center;
}
.workouts-structure-compare-legend__head span{
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.workouts-structure-compare-legend__head span:first-child,
.workouts-structure-compare-legend__row strong:first-child{
  text-align:right;
}
.workouts-structure-compare-legend__head span:last-child,
.workouts-structure-compare-legend__row strong:last-child{
  text-align:left;
}
.workouts-structure-compare-legend__row{
  min-width:0;
  padding:7px 0;
  border-top:1px solid rgba(110,114,122,.10);
}
.workouts-structure-compare-legend__row strong{
  color:var(--text);
  font-size:14px;
  line-height:1;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
.workouts-structure-compare-legend__row span{
  position:relative;
  min-width:0;
  overflow:hidden;
  padding-left:14px;
  color:var(--text);
  font-size:13px;
  font-weight:850;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-structure-compare-legend__row span::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--mix-color, var(--petrol));
  transform:translateY(-50%);
}
.workouts-goals-card--wide .workouts-goals-layout{
  grid-template-columns:minmax(360px,1fr) minmax(0,1fr);
}
.workouts-goals-card--wide .workouts-goals-fields{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
}
.workouts-goals-card--wide .workouts-goals-fields .goals-group:nth-of-type(3),
.workouts-goals-card--wide .workouts-goals-fields .workouts-goals-actions{
  grid-column:1 / -1;
}
.workouts-pace-layout{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);
  gap:18px;
  align-items:start;
}
.workouts-pace-layout #workoutsDashboardPaceChart{
  min-height:360px;
}
.workouts-pace-layout .workouts-pace-breakdown{
  grid-template-columns:1fr;
  margin-top:0;
}
.workouts-pace-layout .workouts-pace-breakdown__row{
  grid-template-columns:minmax(0,1fr) auto;
  padding:9px 0;
}
@media (max-width: 1040px){
  .workouts-structure-grid--comparison{
    grid-template-columns:1fr;
  }
  .workouts-structure-legend--comparison{
    order:2;
  }
  .workouts-goals-card--wide .workouts-goals-layout,
  .workouts-pace-layout{
    grid-template-columns:1fr;
  }
}
@media (max-width: 700px){
  .workouts-goals-card--wide .workouts-goals-fields{
    grid-template-columns:1fr;
  }
  .workouts-structure-grid--comparison .workouts-structure-compact__chart,
  .workouts-structure-grid--comparison .workouts-structure-compact__svg{
    width:206px;
    height:206px;
  }
}

/* Season onboarding empty state: guides a new runner from empty cabinet to first season value. */
.season-clean-onboarding{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.season-clean-onboarding button{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:36px;
  padding:8px 10px;
  border:1px solid rgba(13,122,131,.18);
  border-radius:10px;
  background:rgba(255,255,255,.72);
  color:var(--petrol-strong);
  font:inherit;
  font-size:13px;
  font-weight:850;
  cursor:pointer;
}
.season-clean-onboarding button:hover{
  border-color:rgba(13,122,131,.34);
  background:rgba(232,248,247,.86);
}
.season-clean-onboarding i{
  width:16px;
  height:16px;
  stroke-width:2.5;
}
@media (max-width: 560px){
  .season-clean-onboarding{
    display:grid;
    grid-template-columns:1fr;
  }
  .season-clean-onboarding button{
    justify-content:center;
  }
}

/* Workouts refinement: structured insight, goal empty state and denser analysis panels. */
.workouts-insight-card__detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}
.workouts-insight-card__detail-item{
  min-width:0;
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  gap:8px;
  align-items:start;
  padding:9px 10px;
  border:1px solid rgba(13,122,131,.12);
  border-radius:12px;
  background:rgba(255,255,255,.58);
}
.workouts-insight-card__detail-item i{
  width:26px;
  height:26px;
  padding:5px;
  border-radius:9px;
  color:var(--petrol-strong);
  background:rgba(13,122,131,.10);
}
.workouts-insight-card__detail-item span{
  color:var(--muted);
  font-size:9.5px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.workouts-insight-card__detail-item p{
  margin:3px 0 0 !important;
  color:var(--text);
  font-size:13px !important;
  line-height:1.25 !important;
  font-weight:850 !important;
}
.workouts-structure-compare-legend__head span:first-child{
  text-align:left;
}
.workouts-structure-compare-legend__head span:last-child{
  grid-column:3;
  text-align:right;
}
.workouts-structure-compare-legend__row strong{
  color:var(--mix-color, var(--text));
}
.workouts-structure-compare-legend__row strong:first-child{
  text-align:left;
}
.workouts-structure-compare-legend__row strong:last-child{
  text-align:right;
}
.workouts-structure-compare-legend__row span{
  color:var(--mix-color, var(--text));
}
.workouts-goals-card--wide .workouts-goals-fields{
  padding:12px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:14px;
  background:linear-gradient(135deg, rgba(255,255,255,.72), rgba(247,252,251,.70));
}
.workouts-pace-layout .workouts-pace-breakdown__heading{
  margin-bottom:-2px;
  font-size:14px;
  line-height:1.25;
}
.workouts-goals-card--wide .workouts-goals-fields .goals-group{
  min-width:0;
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin:0;
  padding:12px;
  border:1px solid rgba(110,114,122,.12);
  border-radius:12px;
  background:rgba(255,255,255,.62);
}
.workouts-goals-card--wide .workouts-goals-fields .goals-group__label{
  color:var(--petrol-strong);
  font-size:12px;
  font-weight:900;
}
.workouts-goals-card--wide .workouts-goals-fields .goals-group__inputs{
  gap:10px;
}
.workouts-goals-card--wide .workouts-goals-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding-top:2px;
}
.workouts-pace-layout{
  grid-template-columns:minmax(0,1fr) minmax(430px,1fr);
  align-items:start;
}
.workouts-pace-layout #workoutsDashboardPaceChart{
  justify-self:stretch;
  min-width:0;
}
.workouts-pace-layout .dashboard-line-chart{
  padding-left:0;
}
.workouts-pace-layout .workouts-pace-breakdown{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  align-self:start;
  margin-top:0;
  padding:12px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:14px;
  background:linear-gradient(135deg, rgba(255,255,255,.72), rgba(247,252,251,.70));
}
.workouts-pace-layout .workouts-pace-breakdown__block{
  padding:10px;
  background:rgba(255,255,255,.62);
}
.workouts-pace-layout .workouts-pace-breakdown__row > span{
  font-size:13px;
}
.workouts-pace-layout .workouts-pace-breakdown__row strong{
  font-size:14px;
}
@media (min-width: 1181px){
  .workouts-pace-layout .workouts-pace-breakdown{
    margin-top:18px;
  }
}
@media (max-width: 1180px){
  .workouts-pace-layout{
    grid-template-columns:1fr;
  }
  .workouts-pace-layout .workouts-pace-breakdown{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 700px){
  .workouts-insight-card__detail-grid,
  .workouts-pace-layout .workouts-pace-breakdown{
    grid-template-columns:1fr;
  }
}

/* Workouts structure histogram: Garmin-inspired colored bars with BEGUU target ranges. */
.workouts-insight-card__main .workouts-insight-card__detail-grid{
  grid-column:1 / -1;
  margin-top:10px;
}
.workouts-structure-grid--comparison{
  grid-template-columns:minmax(300px,1fr) minmax(230px,.62fr) minmax(300px,1fr);
  align-items:stretch;
}
.workouts-structure-grid--comparison .workouts-structure-panel{
  display:flex;
  min-width:0;
}
.workouts-structure-grid--comparison .workouts-structure-panel > div{
  width:100%;
}
.workouts-structure-histogram{
  width:100%;
  display:grid;
  gap:14px;
  padding:14px;
  border:1px solid rgba(13,122,131,.12);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(247,252,251,.70));
}
.workouts-structure-histogram__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.workouts-structure-histogram__head span,
.workouts-structure-target-card__head span{
  display:block;
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.workouts-structure-histogram__head strong{
  display:block;
  margin-top:4px;
  color:var(--text);
  font-size:20px;
  line-height:1;
  font-weight:950;
}
.workouts-structure-histogram__head em{
  flex:0 0 auto;
  color:var(--petrol-strong);
  font-size:14px;
  line-height:1.2;
  font-style:normal;
  font-weight:900;
}
.workouts-structure-histogram__rows{
  display:grid;
  gap:12px;
}
.workouts-structure-histogram__row{
  min-width:0;
  display:grid;
  gap:6px;
  padding:9px 10px;
  border:1px solid rgba(13,122,131,.10);
  border-radius:13px;
  background:rgba(255,255,255,.54);
  box-shadow:inset 3px 0 0 var(--status-color, transparent);
}
.workouts-structure-histogram__row-head,
.workouts-structure-histogram__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.workouts-structure-histogram__row-head span,
.workouts-structure-target-card__row span{
  min-width:0;
  display:inline-flex;
  align-items:center;
  gap:7px;
  overflow:hidden;
  color:var(--mix-color, var(--text));
  font-size:13px;
  line-height:1.15;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-structure-histogram__row-head i,
.workouts-structure-target-card__row i{
  flex:0 0 auto;
  width:9px;
  height:9px;
  border-radius:999px;
  background:var(--mix-color, var(--petrol));
}
.workouts-structure-histogram__row-head strong{
  flex:0 0 auto;
  color:var(--mix-color, var(--text));
  font-size:16px;
  line-height:1;
  font-weight:950;
  font-variant-numeric:tabular-nums;
}
.workouts-structure-histogram__track{
  position:relative;
  height:26px;
  margin-top:14px;
  overflow:visible;
  border-radius:12px;
  background:rgba(212,154,31,.16);
  border:1px solid rgba(110,114,122,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
}
.workouts-structure-histogram__track::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:var(--target-right);
  right:0;
  border-radius:0 11px 11px 0;
  background:rgba(217,92,71,.16);
  z-index:0;
}
.workouts-structure-histogram__track b{
  position:absolute;
  top:0;
  bottom:0;
  left:var(--target-left);
  width:var(--target-width);
  border-radius:0;
  background:linear-gradient(180deg,rgba(62,176,112,.36),rgba(27,127,80,.26));
  border-inline:1px solid rgba(27,127,80,.28);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.36);
  z-index:1;
}
.workouts-structure-histogram__marker{
  position:absolute;
  top:-6px;
  left:clamp(0%, var(--share), 100%);
  width:3px;
  height:38px;
  border-radius:3px;
  background:var(--status-color, var(--mix-color));
  box-shadow:0 0 0 2px rgba(255,255,255,.92), 0 7px 16px rgba(17,43,45,.24);
  transform:translateX(-50%);
  z-index:3;
}
.workouts-structure-histogram__marker::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-5px;
  width:0;
  height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:6px solid var(--status-color, var(--mix-color));
  transform:translateX(-50%);
}
.workouts-structure-histogram__marker em{
  position:absolute;
  left:50%;
  top:-22px;
  min-width:36px;
  padding:3px 7px;
  border-radius:999px;
  background:var(--status-color, var(--mix-color));
  color:#fff;
  font-size:11px;
  line-height:1;
  font-style:normal;
  font-weight:950;
  text-align:center;
  transform:translateX(-50%);
  box-shadow:0 6px 14px rgba(17,43,45,.18);
}
.workouts-structure-histogram__scale{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:8px;
  margin-top:3px;
}
.workouts-structure-histogram__scale span,
.workouts-structure-histogram__scale strong{
  min-width:0;
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:850;
  white-space:nowrap;
}
.workouts-structure-histogram__scale span:last-child{
  text-align:right;
}
.workouts-structure-histogram__scale strong{
  color:#1b7f50;
  font-weight:950;
  text-align:center;
}
.workouts-structure-histogram__row--low{
  border-color:rgba(212,154,31,.24);
  background:linear-gradient(135deg, rgba(255,248,229,.72), rgba(255,255,255,.56));
}
.workouts-structure-histogram__row--high{
  border-color:rgba(217,92,71,.22);
  background:linear-gradient(135deg, rgba(255,238,233,.70), rgba(255,255,255,.56));
}
.workouts-structure-histogram__row--ok{
  border-color:rgba(27,127,80,.22);
  background:linear-gradient(135deg, rgba(235,249,241,.72), rgba(255,255,255,.56));
}
.workouts-structure-histogram__meta span,
.workouts-structure-histogram__meta strong{
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-weight:850;
}
.workouts-structure-histogram__meta strong{
  color:var(--petrol-strong);
}
.workouts-structure-histogram__row--low .workouts-structure-histogram__meta strong{color:#9b7410}
.workouts-structure-histogram__row--high .workouts-structure-histogram__meta strong{color:var(--coral-text)}
.workouts-structure-histogram__row--ok .workouts-structure-histogram__meta strong{color:#1b7f50}
.workouts-structure-target-card{
  width:100%;
  align-self:stretch;
  display:grid;
  align-content:start;
  gap:12px;
  padding:14px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:16px;
  background:rgba(255,255,255,.62);
}
.workouts-structure-target-card__head strong{
  display:block;
  margin-top:4px;
  color:var(--petrol-strong);
  font-size:17px;
  line-height:1.1;
  font-weight:950;
}
.workouts-structure-target-card p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
  font-weight:750;
}
.workouts-structure-target-card__rows{
  display:grid;
  gap:9px;
}
.workouts-structure-target-card__row{
  display:grid;
  gap:3px;
  padding:9px;
  border:1px solid rgba(110,114,122,.10);
  border-radius:12px;
  background:rgba(255,255,255,.62);
}
.workouts-structure-target-card__row--easy{
  --mix-color:#7a7f87;
}
.workouts-structure-target-card__row--long{
  --mix-color:#1b7f50;
}
.workouts-structure-target-card__row--tempo{
  --mix-color:#0d7a83;
}
.workouts-structure-target-card__row--sprints{
  --mix-color:#c78e23;
}
.workouts-structure-target-card__row strong{
  color:var(--mix-color, var(--text));
  font-size:14px;
  line-height:1;
  font-weight:950;
}
.workouts-structure-target-card__row em{
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-style:normal;
  font-weight:780;
}
@media (max-width: 1120px){
  .workouts-structure-grid--comparison{
    grid-template-columns:1fr;
  }
  .workouts-structure-legend--comparison{
    order:0;
  }
}
@media (max-width: 640px){
  .workouts-insight-card__main .workouts-insight-card__detail-grid{
    margin-top:8px;
  }
  .workouts-structure-histogram,
  .workouts-structure-target-card{
    padding:12px;
    border-radius:14px;
  }
  .workouts-structure-histogram__meta{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .workouts-structure-histogram__scale{
    grid-template-columns:1fr;
    gap:3px;
  }
  .workouts-structure-histogram__scale span,
  .workouts-structure-histogram__scale strong{
    text-align:left !important;
    white-space:normal;
  }
}

/* Workouts empty-state and personalized structure target refinements. */
.workouts-insight-card__main > .workouts-insight-card__detail-text{
  grid-column:2;
  margin-top:6px;
}
.workouts-structure-grid--comparison{
  grid-template-columns:minmax(360px,1.15fr) minmax(280px,.85fr);
}
.workouts-structure-panel[hidden]{display:none !important}
.workouts-structure-target-card__title-inline{
  position:relative;
  display:inline-flex !important;
  align-items:center;
  padding-right:26px;
}
.workouts-structure-target-card__title-inline .inline-tooltip{
  position:absolute;
  top:50%;
  right:0;
  margin-left:0;
  transform:translateY(-50%);
}
.workouts-structure-target-card__title-inline .inline-tooltip__bubble{
  right:0;
  bottom:calc(100% + 12px);
  width:300px;
}
@media (max-width: 1120px){
  .workouts-structure-grid--comparison{
    grid-template-columns:1fr;
  }
}
@media (max-width: 640px){
  .workouts-insight-card__main > .workouts-insight-card__detail-text{
    grid-column:2;
  }
  .workouts-structure-target-card__title-inline .inline-tooltip__bubble{
    position:fixed;
    left:14px !important;
    right:14px !important;
    top:auto !important;
    bottom:18px !important;
    width:auto !important;
    max-width:none !important;
  }
}

/* Shared tooltip visual standard: match the season phase tooltip everywhere. */
.inline-tooltip__bubble,
.season-clean-panel__title-inline .inline-tooltip__bubble,
.season-clean-panel__label-inline .inline-tooltip__bubble,
.dashboard-stat-tile--forecast .inline-tooltip__bubble,
.form-label-with-tooltip .inline-tooltip__bubble,
.my-race-insight__forecast-prefix .inline-tooltip__bubble,
.my-race-insight__forecast-value .inline-tooltip__bubble,
.my-race-insight__assessment-detail .inline-tooltip__bubble,
.workouts-insight-card__metric--vo2 .inline-tooltip__bubble,
.workouts-structure-target-card__title-inline .inline-tooltip__bubble{
  background:#111827 !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:500 !important;
  line-height:1.35 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.inline-tooltip__bubble *{
  color:#fff !important;
}
.workouts-insight-card__metric--vo2 .inline-tooltip{
  position:absolute !important;
  top:8px !important;
  right:8px !important;
  left:auto !important;
  margin:0 !important;
}
.workouts-structure-target-card__title-inline .inline-tooltip{
  position:absolute !important;
  top:50% !important;
  right:0 !important;
  left:auto !important;
  margin:0 !important;
  transform:translateY(-50%) !important;
}
.inline-tooltip--corner{
  position:absolute !important;
  top:8px !important;
  right:8px !important;
  left:auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  margin:0 !important;
  transform:none !important;
  z-index:60;
}

/* Workouts structure composition: one readable distribution bar plus fact-vs-target rows. */
.workouts-structure-grid--comparison.workouts-structure-grid--single{
  grid-template-columns:1fr !important;
}
.workouts-structure-legend--comparison[hidden]{
  display:none !important;
}
.workouts-structure-composition{
  position:relative;
  width:100%;
  display:grid;
  gap:16px;
  padding:16px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(246,252,250,.72));
}
.workouts-structure-composition__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,.52fr);
  gap:16px;
  align-items:start;
}
.workouts-structure-composition__period span,
.workouts-structure-composition__context span{
  display:block;
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.workouts-structure-composition__period strong{
  display:block;
  margin-top:5px;
  color:var(--text);
  font-size:22px;
  line-height:1.05;
  font-weight:950;
}
.workouts-structure-composition__context{
  position:relative;
  min-height:58px;
  padding:12px 38px 12px 12px;
  border:1px solid rgba(13,122,131,.12);
  border-radius:12px;
  background:rgba(255,255,255,.62);
}
.workouts-structure-composition__context strong{
  display:block;
  margin-top:5px;
  color:var(--petrol-strong);
  font-size:16px;
  line-height:1.08;
  font-weight:950;
}
.workouts-structure-composition__context em{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:11px;
  line-height:1.2;
  font-style:normal;
  font-weight:760;
}
.workouts-structure-composition__stack{
  display:flex;
  min-height:42px;
  overflow:hidden;
  border:1px solid rgba(17,43,45,.10);
  border-radius:12px;
  background:rgba(110,114,122,.10);
}
.workouts-structure-composition__segment{
  flex:0 0 var(--share);
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 8px;
  color:#fff;
  background:var(--mix-color);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.35);
}
.workouts-structure-composition__segment span{
  overflow:hidden;
  font-size:12px;
  line-height:1.1;
  font-weight:950;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-shadow:0 1px 2px rgba(17,43,45,.25);
}
.workouts-structure-composition__table{
  display:grid;
  gap:8px;
}
.workouts-structure-composition__table-head,
.workouts-structure-composition__row{
  display:grid;
  grid-template-columns:minmax(180px,1.15fr) minmax(72px,.42fr) minmax(96px,.52fr) minmax(150px,.8fr);
  gap:12px;
  align-items:center;
}
.workouts-structure-composition__table-head{
  padding:0 12px;
}
.workouts-structure-composition__table-head span{
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.workouts-structure-composition__row{
  min-width:0;
  padding:11px 12px;
  border:1px solid rgba(110,114,122,.12);
  border-radius:12px;
  background:rgba(255,255,255,.58);
  box-shadow:inset 4px 0 0 var(--status-color);
}
.workouts-structure-composition__row--low{
  background:linear-gradient(135deg,rgba(255,248,229,.74),rgba(255,255,255,.58));
}
.workouts-structure-composition__row--high{
  background:linear-gradient(135deg,rgba(255,238,233,.72),rgba(255,255,255,.58));
}
.workouts-structure-composition__row--ok{
  background:linear-gradient(135deg,rgba(235,249,241,.74),rgba(255,255,255,.58));
}
.workouts-structure-composition__type{
  min-width:0;
  display:grid;
  grid-template-columns:10px minmax(0,1fr);
  gap:8px;
  align-items:center;
}
.workouts-structure-composition__dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--mix-color);
}
.workouts-structure-composition__type strong{
  min-width:0;
  color:var(--mix-color);
  font-size:14px;
  line-height:1.15;
  font-weight:950;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-structure-composition__type em{
  grid-column:2;
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-style:normal;
  font-weight:760;
}
.workouts-structure-composition__fact,
.workouts-structure-composition__target{
  color:var(--text);
  font-size:17px;
  line-height:1;
  font-weight:950;
  font-variant-numeric:tabular-nums;
}
.workouts-structure-composition__target{
  color:#1b7f50;
}
.workouts-structure-composition__verdict{
  display:grid;
  gap:3px;
  justify-items:start;
}
.workouts-structure-composition__verdict strong{
  color:var(--status-color);
  font-size:13px;
  line-height:1.1;
  font-weight:950;
}
.workouts-structure-composition__verdict span{
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-weight:760;
}
@media (max-width: 760px){
  .workouts-structure-composition__head{
    grid-template-columns:1fr;
  }
  .workouts-structure-composition__table-head{
    display:none;
  }
  .workouts-structure-composition__row{
    grid-template-columns:minmax(0,1fr) auto;
    gap:9px 12px;
  }
  .workouts-structure-composition__target{
    justify-self:end;
  }
  .workouts-structure-composition__verdict{
    grid-column:1 / -1;
    grid-template-columns:auto 1fr;
    align-items:center;
  }
}
@media (max-width: 520px){
  .workouts-structure-composition{
    padding:12px;
    gap:12px;
  }
  .workouts-structure-composition__period strong{
    font-size:19px;
  }
  .workouts-structure-composition__stack{
    min-height:34px;
  }
  .workouts-structure-composition__segment{
    padding:0 4px;
  }
  .workouts-structure-composition__segment span{
    font-size:10px;
  }
  .workouts-structure-composition__row{
    padding:10px;
  }
}
.training-structure-svg{
  box-sizing:border-box;
  width:100%;
  margin:0;
  padding:15px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:18px;
  background:linear-gradient(135deg, rgba(255,255,255,.78), rgba(247,252,251,.72));
}
.training-structure-layout{
  display:grid;
  gap:18px;
  align-items:stretch;
}
.training-structure-summary{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin:0 2px 8px;
  position:relative;
  z-index:60;
}
.training-structure-summary__copy{
  display:grid;
  gap:3px;
  min-width:0;
}
.training-structure-summary__copy strong{
  color:#066C73;
  font-size:16px;
  line-height:1.2;
  font-weight:850;
}
.training-structure-summary__copy span{
  color:#6B7785;
  font-size:13px;
  line-height:1.35;
  font-weight:650;
}
.training-structure-svg svg{
  display:block;
  width:100%;
  height:auto;
  border-radius:14px;
}
.training-structure-hr{
  box-sizing:border-box;
  min-width:0;
  width:100%;
  max-width:none;
  padding:15px;
  border:1px solid rgba(13,122,131,.14);
  border-radius:18px;
  background:linear-gradient(135deg, rgba(255,255,255,.78), rgba(247,252,251,.72));
}
.training-structure-hr__head{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.training-structure-hr__head > span{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:12px;
  background:rgba(185,80,60,.10);
  color:var(--coral-text);
}
.training-structure-hr__head svg{
  width:18px;
  height:18px;
  stroke-width:2.4;
}
.training-structure-hr__head strong{
  display:block;
  color:var(--text);
  font-size:16px;
  line-height:1.1;
  font-weight:900;
}
.training-structure-hr__head em{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
  line-height:1.25;
  font-style:normal;
  font-weight:750;
}
.training-structure-hr__rows{
  display:grid;
  gap:8px;
}
.training-structure-hr__row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  min-height:42px;
  padding:8px 10px;
  border:1px solid rgba(110,114,122,.10);
  border-radius:12px;
  background:rgba(255,255,255,.58);
}
.training-structure-hr__label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
  overflow:hidden;
  color:var(--text);
  font-size:13px;
  font-weight:850;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.training-structure-hr__label-short{
  display:none;
}
.training-structure-hr__row strong{
  min-width:52px;
  color:var(--petrol-strong);
  font-size:17px;
  font-weight:900;
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.training-structure-hr__row small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
  line-height:1;
  font-weight:850;
}
.training-structure-badge-icon{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:11px;
  background:color-mix(in srgb, var(--structure-icon-color) 13%, white);
}
.training-structure-badge-icon--easy{
  --structure-icon-color:#0f8a8a;
}
.training-structure-badge-icon--long{
  --structure-icon-color:#d99a25;
}
.training-structure-badge-icon--tempo{
  --structure-icon-color:#2c9b68;
}
.training-structure-badge-icon--sprints{
  --structure-icon-color:#d96745;
}
.training-structure-badge-icon--race{
  --structure-icon-color:#b9503c;
}
.training-structure-badge-icon svg{
  width:20px;
  height:20px;
}
@media (min-width: 1025px){
  #page-workouts .training-structure-layout{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #page-workouts .training-structure-svg{
    justify-self:stretch;
    max-width:none;
  }
  #page-workouts .training-structure-hr{
    justify-self:stretch;
  }
  #page-workouts .training-structure-hr__rows{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 680px){
  .training-structure-layout{
    gap:12px;
  }
  .training-structure-svg__type{
    font-size:19.5px;
  }
  .training-structure-svg__share{
    font-size:18.5px;
  }
  .training-structure-svg__count{
    font-size:13px;
  }
  .training-structure-svg svg{
    width:100%;
    max-width:100%;
    border-radius:18px;
  }
  .training-structure-svg{
    padding:13px;
  }
  .training-structure-hr{
    padding:13px;
    max-width:none;
  }
  .training-structure-hr__rows{
    grid-template-columns:1fr;
  }
  .training-structure-hr__row{
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
  }
}

/* Workouts structure poster: dynamic version of the BEGUU training structure diagram. */
.workouts-structure-poster{
  position:relative;
  overflow:hidden;
  display:grid;
  gap:24px;
  width:100%;
  padding:28px;
  border:1px solid #e8ddd0;
  border-radius:28px;
  background:
    radial-gradient(circle at 88% 0%, rgba(255,247,232,.95) 0 190px, transparent 191px),
    radial-gradient(circle at 78% 110%, rgba(239,226,200,.32) 0 320px, transparent 321px),
    linear-gradient(135deg,#fff,#fff9ef);
  box-shadow:0 18px 38px rgba(123,107,84,.14);
}
.workouts-structure-poster__head{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:16px;
  align-items:start;
}
.workouts-structure-poster__brand span{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid #b97b07;
  border-radius:999px;
  background:#d99a25;
  color:#1e3340;
  font-size:21px;
  font-weight:950;
}
.workouts-structure-poster__title strong{
  display:block;
  color:#26313d;
  font-size:34px;
  line-height:1.05;
  font-weight:950;
}
.workouts-structure-poster__title em{
  display:block;
  margin-top:8px;
  color:#6b7785;
  font-size:15px;
  line-height:1.35;
  font-style:normal;
  font-weight:720;
}
.workouts-structure-poster__badge{
  align-self:start;
  padding:11px 24px;
  border:1px solid #f4d58a;
  border-radius:999px;
  background:#fff3d7;
  color:#066c73;
  font-size:16px;
  font-weight:950;
  letter-spacing:.02em;
}
.workouts-structure-poster__summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(120px,170px)) minmax(280px,1fr);
  gap:18px;
  align-items:stretch;
}
.workouts-structure-poster__metric,
.workouts-structure-poster__signal,
.workouts-structure-poster__fact,
.workouts-structure-poster__compare{
  border:1px solid #e6ddd0;
  background:#fff;
  box-shadow:0 9px 24px rgba(123,107,84,.11);
}
.workouts-structure-poster__metric{
  padding:20px 22px;
  border-radius:22px;
}
.workouts-structure-poster__metric strong{
  display:block;
  color:#26313d;
  font-size:24px;
  line-height:1.05;
  font-weight:950;
}
.workouts-structure-poster__metric span{
  display:block;
  margin-top:8px;
  color:#6b7785;
  font-size:13px;
  font-weight:760;
}
.workouts-structure-poster__signal{
  padding:20px 24px;
  border-color:#cfeae8;
  border-radius:24px;
  background:#f0f9f8;
}
.workouts-structure-poster__signal span{
  display:block;
  color:#066c73;
  font-size:11px;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.workouts-structure-poster__signal strong{
  display:block;
  margin-top:8px;
  color:#26313d;
  font-size:18px;
  line-height:1.28;
  font-weight:850;
}
.workouts-structure-poster__body{
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(420px,1fr);
  gap:28px;
  align-items:stretch;
}
.workouts-structure-poster__fact,
.workouts-structure-poster__compare{
  position:relative;
  min-width:0;
  padding:26px;
  border-radius:30px;
}
.workouts-structure-poster__fact > span,
.workouts-structure-poster__compare > span{
  display:block;
  color:#6b7785;
  font-size:11px;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.workouts-structure-poster__fact > strong,
.workouts-structure-poster__compare > strong{
  display:block;
  margin-top:8px;
  color:#26313d;
  font-size:23px;
  line-height:1.1;
  font-weight:950;
}
.workouts-structure-poster__fact > em,
.workouts-structure-poster__compare > em{
  display:block;
  margin-top:6px;
  color:#6b7785;
  font-size:14px;
  line-height:1.25;
  font-style:normal;
  font-weight:720;
}
.workouts-structure-poster__donut{
  position:relative;
  width:min(280px,76vw);
  aspect-ratio:1;
  margin:26px auto 18px;
  border-radius:50%;
  background:var(--donut-gradient);
  box-shadow:inset 0 0 0 10px #f1e8d9;
}
.workouts-structure-poster__donut::before{
  content:"";
  position:absolute;
  inset:25%;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 1px rgba(232,221,208,.6);
}
.workouts-structure-poster__donut > div{
  position:absolute;
  z-index:1;
  inset:0;
  display:grid;
  place-content:center;
  text-align:center;
}
.workouts-structure-poster__donut strong{
  color:#26313d;
  font-size:44px;
  line-height:1;
  font-weight:950;
}
.workouts-structure-poster__donut span{
  margin-top:6px;
  color:#6b7785;
  font-size:15px;
  font-weight:780;
}
.workouts-structure-poster__donut em{
  margin-top:8px;
  color:#066c73;
  font-size:15px;
  font-style:normal;
  font-weight:900;
}
.workouts-structure-poster__legend{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 22px;
}
.workouts-structure-poster__legend div{
  display:grid;
  grid-template-columns:12px minmax(0,1fr);
  gap:8px;
  align-items:start;
}
.workouts-structure-poster__legend div > span{
  width:12px;
  height:12px;
  margin-top:3px;
  border-radius:999px;
  background:var(--mix-color);
}
.workouts-structure-poster__legend strong{
  color:#26313d;
  font-size:14px;
  font-weight:900;
}
.workouts-structure-poster__legend em{
  grid-column:2;
  color:#6b7785;
  font-size:12px;
  font-style:normal;
  font-weight:760;
}
.workouts-structure-poster__rows{
  display:grid;
  gap:10px;
  margin-top:18px;
}
.workouts-structure-poster__row{
  display:grid;
  grid-template-columns:minmax(150px,.9fr) 54px minmax(180px,1fr) 128px;
  gap:12px;
  align-items:center;
  padding:14px 16px;
  border:1px solid #edf0ed;
  border-radius:22px;
  background:#fff;
}
.workouts-structure-poster__row-main{
  min-width:0;
  display:grid;
  grid-template-columns:14px minmax(0,1fr);
  gap:8px;
  align-items:center;
}
.workouts-structure-poster__row-main span{
  width:14px;
  height:14px;
  border-radius:999px;
  background:var(--mix-color);
}
.workouts-structure-poster__row-main strong{
  overflow:hidden;
  color:#26313d;
  font-size:16px;
  font-weight:950;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-structure-poster__row-main em{
  grid-column:2;
  overflow:hidden;
  color:#6b7785;
  font-size:12px;
  line-height:1.2;
  font-style:normal;
  font-weight:720;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workouts-structure-poster__row-value{
  justify-self:end;
  color:#26313d;
  font-size:21px;
  line-height:1;
  font-weight:950;
  font-variant-numeric:tabular-nums;
}
.workouts-structure-poster__row-bar{
  position:relative;
  height:14px;
  border-radius:999px;
  background:linear-gradient(90deg,#e8f2f1 0%,#f3ebdd 70%,#f5dad3 100%);
}
.workouts-structure-poster__row-bar b{
  position:absolute;
  top:-4px;
  bottom:-4px;
  left:var(--target-left);
  width:var(--target-width);
  border-radius:9px;
  background:#ddf4f2;
  box-shadow:0 0 0 1px #fff;
}
.workouts-structure-poster__row-bar i{
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:var(--share);
  border-radius:999px;
  background:var(--mix-color);
  opacity:.62;
}
.workouts-structure-poster__row-bar u{
  position:absolute;
  top:50%;
  left:clamp(0%,var(--share),100%);
  width:13px;
  height:13px;
  border:3px solid var(--mix-color);
  border-radius:50%;
  background:#fff;
  transform:translate(-50%,-50%);
  text-decoration:none;
}
.workouts-structure-poster__row-target{
  grid-column:3;
  margin-top:-2px;
  color:#6b7785;
  font-size:11px;
  font-weight:780;
}
.workouts-structure-poster__row-status{
  justify-self:end;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,240,206,.82);
  color:var(--status-color);
  font-size:12px;
  line-height:1;
  font-weight:850;
}
.workouts-structure-poster__row--ok .workouts-structure-poster__row-status{
  background:#e4f7ec;
}
.workouts-structure-poster__row--high .workouts-structure-poster__row-status{
  background:#fce4dc;
}
.workouts-structure-poster__focus{
  padding:10px 18px;
  border:1px solid #e8ddd0;
  border-radius:999px;
  background:#fff;
  color:#26313d;
  font-size:14px;
  line-height:1.3;
  font-weight:800;
}
@media (max-width: 1120px){
  .workouts-structure-poster{
    padding:20px;
    border-radius:24px;
  }
  .workouts-structure-poster__summary{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .workouts-structure-poster__signal{
    grid-column:1 / -1;
  }
  .workouts-structure-poster__body{
    grid-template-columns:1fr;
  }
}
@media (max-width: 680px){
  .workouts-structure-poster{
    padding:14px;
    border-radius:18px;
  }
  .workouts-structure-poster__head{
    grid-template-columns:auto minmax(0,1fr);
  }
  .workouts-structure-poster__badge{
    display:none;
  }
  .workouts-structure-poster__title strong{
    font-size:24px;
  }
  .workouts-structure-poster__summary{
    grid-template-columns:1fr;
  }
  .workouts-structure-poster__metric{
    padding:15px 16px;
  }
  .workouts-structure-poster__body{
    gap:14px;
  }
  .workouts-structure-poster__fact,
  .workouts-structure-poster__compare{
    padding:16px;
    border-radius:20px;
  }
  .workouts-structure-poster__donut{
    width:min(240px,70vw);
  }
  .workouts-structure-poster__legend{
    grid-template-columns:1fr;
  }
  .workouts-structure-poster__row{
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
  }
  .workouts-structure-poster__row-bar,
  .workouts-structure-poster__row-target{
    grid-column:1 / -1;
  }
  .workouts-structure-poster__row-status{
    grid-column:1 / -1;
    justify-self:start;
  }
  .workouts-structure-poster__focus{
    border-radius:16px;
  }
}
.inline-tooltip--corner .inline-tooltip__trigger{
  display:grid !important;
  place-items:center !important;
  width:18px !important;
  height:18px !important;
  padding:0 !important;
  box-sizing:border-box !important;
  font-size:11px !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-align:center !important;
  text-transform:none !important;
}
.inline-tooltip--corner .inline-tooltip__bubble{
  right:0 !important;
  left:auto !important;
  top:calc(100% + 8px) !important;
  bottom:auto !important;
  width:260px !important;
  max-width:min(280px, calc(100vw - 28px)) !important;
}
.inline-tooltip--structure-info .inline-tooltip__bubble{
  left:auto !important;
  right:0 !important;
  top:calc(100% + 8px) !important;
  bottom:auto !important;
  width:330px !important;
  max-width:min(330px, calc(100vw - 28px)) !important;
  z-index:2000 !important;
}
@media (max-width: 640px){
  .inline-tooltip--structure-info .inline-tooltip__bubble{
    left:auto !important;
    right:0 !important;
    top:calc(100% + 8px) !important;
    bottom:auto !important;
    width:min(300px, calc(100vw - 28px)) !important;
    max-width:min(300px, calc(100vw - 28px)) !important;
  }
}
.workouts-insight-card__metric--vo2,
.my-race-insight__assessment,
.my-race-insight__forecast,
.workouts-structure-target-card,
.season-clean-panel{
  position:relative;
}
.my-race-insight__assessment,
.my-race-insight__forecast{
  padding-right:30px;
}
.workouts-structure-target-card__head,
.season-clean-panel--phase .season-clean-panel__head{
  padding-right:30px;
}
.race-weather__head{
  padding-right:30px;
}
.season-clean-panel--dashboard-focus .dashboard-stat-tile--forecast .inline-tooltip{
  position:absolute !important;
  top:6px !important;
  right:6px !important;
  margin:0 !important;
}
@media (min-width: 1025px){
  #page-workouts .workout-row{
    grid-template-columns:minmax(108px,120px) repeat(5,minmax(78px,96px)) minmax(150px,1fr) minmax(270px,292px);
  }
  #page-workouts .workout-note-cell,
  #page-workouts .workout-note-cell .workout-cell-main{
    overflow:hidden;
  }
  #page-workouts .workout-actions-cell{
    min-width:0;
    overflow:visible;
  }
}

/* Mobile application readiness pass: one predictable layout layer for phone screens. */
@media (max-width: 900px){
  :root{
    --mobile-page-pad:14px;
    --mobile-card-pad:14px;
    --mobile-card-radius:18px;
  }
  body{
    background-attachment:scroll;
  }
  .main{
    height:auto;
    min-height:100dvh;
    overflow:visible;
  }
  .main::before{
    background-size:min(76vw, 520px) auto;
    background-position:center 52%;
    opacity:.055;
  }
  .topbar{
    position:sticky;
    top:0;
    z-index:120;
    height:56px;
    min-height:56px;
    border-bottom:1px solid rgba(221,212,202,.72);
    background:rgba(252,248,243,.92);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
  }
  .topbar-left{
    min-width:0;
    gap:8px;
  }
  .topbar-title{
    max-width:calc(100vw - 150px);
    font-size:1rem !important;
    letter-spacing:0;
  }
  .app .content{
    width:100%;
    padding:var(--mobile-page-pad) var(--mobile-page-pad) max(20px, env(safe-area-inset-bottom)) !important;
    overflow-y:visible;
    scrollbar-gutter:auto;
  }
  .app .content > .page.active{
    gap:14px !important;
  }
  .section-header,
  .card-header,
  .my-races-calendar-header,
  .my-races-list-header{
    margin-bottom:12px;
  }
  .section-title{
    font-size:1.08rem;
    line-height:1.18;
    letter-spacing:0;
  }
  .card,
  .card.card-pad,
  .season-clean-hero__main,
  .season-clean-now,
  .season-clean-summary,
  .season-clean-panel,
  .season-goal-assessment,
  .season-race-week,
  .workouts-insight-card,
  .workouts-volume-pair-card,
  .workouts-structure-card,
  .workouts-goals-card,
  .workouts-pace-card,
  .my-races-section-card{
    border-radius:var(--mobile-card-radius);
    overflow:visible;
  }
  .card.card-pad,
  #page-dashboard .card.card-pad,
  #page-workouts .card.card-pad,
  #page-races .card.card-pad,
  #page-my-races .card.card-pad,
  #page-my-data .card.card-pad,
  #page-profile .card.card-pad{
    padding:var(--mobile-card-pad) !important;
  }
  .btn,
  .btn-sm{
    min-height:42px;
  }
  .form-input,
  select.form-input,
  textarea.form-input{
    min-height:44px;
    font-size:16px;
  }
  textarea.form-input{
    min-height:112px;
  }
  .overlay{
    align-items:flex-end;
    padding:8px;
  }
  .modal{
    max-width:100% !important;
    max-height:calc(100dvh - 16px);
    overflow-y:auto;
    padding:16px;
    border-radius:22px 22px 16px 16px;
  }
  .modal-head{
    position:sticky;
    top:-16px;
    z-index:2;
    margin:-16px -16px 12px;
    padding:14px 16px 10px;
    background:rgba(255,255,255,.96);
    border-radius:22px 22px 0 0;
  }
  .modal-foot{
    position:sticky;
    bottom:-16px;
    z-index:2;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:14px -16px -16px;
    padding:10px 16px 14px;
    background:rgba(255,255,255,.96);
    border-top:1px solid rgba(221,212,202,.72);
  }
  .modal-foot .btn{
    width:100%;
  }
  .inline-tooltip__trigger,
  .inline-tooltip--corner .inline-tooltip__trigger{
    width:20px !important;
    height:20px !important;
    font-size:11px !important;
  }
  .inline-tooltip__bubble{
    z-index:2200 !important;
    box-shadow:0 16px 34px rgba(17,24,39,.28);
  }
}

@media (max-width: 640px){
  :root{
    --mobile-page-pad:12px;
    --mobile-card-pad:13px;
    --mobile-card-radius:16px;
  }
  .section-header,
  .page-head,
  .card-title-row{
    display:flex;
    flex-direction:column;
    align-items:stretch !important;
    gap:8px;
  }
  .section-header-actions{
    align-items:stretch;
  }
  .section-actions,
  #page-workouts .section-actions{
    display:grid;
    grid-template-columns:1fr 1fr !important;
    gap:8px;
  }
  .section-actions .btn{
    width:100%;
    min-width:0;
    padding:0 10px;
    font-size:12px !important;
    white-space:normal;
  }
  .card-title{
    font-size:1rem;
    line-height:1.18;
  }

  /* Running season */
  .season-clean-user-title{
    display:grid;
    gap:2px;
  }
  .season-clean-user-title span{
    font-size:1.04rem;
    line-height:1.15;
  }
  .season-clean-user-title small{
    font-size:12px;
    line-height:1.2;
  }
  .season-clean-hero{
    gap:10px !important;
    margin-bottom:0;
  }
  .season-clean-hero__main{
    min-height:0;
    padding:14px !important;
    gap:12px;
  }
  .season-clean-hero__kicker{
    font-size:12px;
  }
  .season-clean-hero__content{
    align-self:start;
    gap:9px;
  }
  .season-clean-hero__main h2{
    font-size:1.34rem !important;
    line-height:1.1;
  }
  .season-clean-hero__main p{
    font-size:12.5px;
    line-height:1.38;
  }
  .season-clean-hero__meta{
    gap:6px;
  }
  .season-clean-hero__meta span,
  .season-clean-hero__meta a{
    padding:5px 8px;
    font-size:11px;
  }
  .season-clean-onboarding{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    margin-top:10px;
  }
  .season-clean-onboarding button{
    justify-content:center;
    min-height:38px;
  }
  .season-clean-now{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:8px 12px;
    padding:13px !important;
  }
  .season-clean-now > span,
  .season-clean-now > strong{
    justify-self:end;
    grid-column:2;
  }
  .season-clean-now > span{
    font-size:10px;
  }
  .season-clean-now strong{
    font-size:29px;
  }
  .season-clean-now__recommendation{
    grid-column:1 / -1;
    order:3;
  }
  .season-clean-now .btn{
    grid-column:1 / -1;
    order:4;
    width:100%;
  }
  .season-clean-summary{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    margin-bottom:0;
  }
  .season-clean-summary div{
    min-height:76px;
    padding:10px 8px;
  }
  .season-clean-summary span{
    font-size:10px;
    line-height:1.12;
  }
  .season-clean-summary strong{
    font-size:16px;
  }
  .season-clean-summary strong small,
  .season-clean-summary__hint{
    font-size:10.5px;
    line-height:1.12;
  }
  .season-goal-assessment{
    margin:0;
    padding:13px;
    gap:10px;
  }
  .season-goal-assessment__facts{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .season-goal-assessment__facts div{
    padding:9px;
  }
  .season-goal-assessment__facts strong{
    font-size:14px;
  }
  .season-goal-assessment .btn{
    width:100%;
  }
  .season-goal-reason__body{
    position:fixed;
    left:12px;
    right:12px;
    top:auto;
    bottom:max(12px, env(safe-area-inset-bottom));
    width:auto;
    max-height:min(70dvh, 420px);
    overflow:auto;
  }
  .season-race-week{
    margin:0;
    padding:13px;
    gap:10px;
  }
  .season-race-week__grid{
    gap:8px;
  }
  .season-clean-grid{
    gap:12px;
  }
  .season-clean-panel{
    padding:13px !important;
    gap:10px;
  }
  .season-clean-panel__head{
    align-items:center;
  }
  .season-clean-panel__head span{
    font-size:11px;
  }
  .season-phase-rail{
    gap:7px;
  }
  .season-phase-rail__item{
    grid-template-columns:minmax(0,1fr) 18px;
    gap:8px;
  }
  .season-phase-rail__item > span{
    width:18px;
    height:18px;
  }
  .season-phase-rail__item div{
    padding:8px 10px;
  }
  .season-phase-rail__item strong{
    font-size:14px;
  }
  .season-phase-rail__item small,
  .season-phase-rail__item em{
    font-size:11px;
  }

  /* Workouts */
  .workouts-insight-card{
    grid-template-columns:1fr;
    gap:10px;
  }
  .workouts-insight-card__main{
    grid-template-columns:32px minmax(0,1fr);
    gap:9px;
  }
  .workouts-insight-card__icon{
    width:32px;
    height:32px;
    border-radius:10px;
  }
  .workouts-insight-card__main strong{
    font-size:16px;
    line-height:1.18;
  }
  .workouts-insight-card__main p,
  .workouts-insight-card__next p,
  .workouts-insight-card__main > .workouts-insight-card__detail-text{
    font-size:12.5px !important;
    line-height:1.34 !important;
  }
  .workouts-insight-card__detail-grid,
  .workouts-insight-card__metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .workouts-insight-card__detail-item{
    grid-template-columns:24px minmax(0,1fr);
    padding:8px;
  }
  .workouts-insight-card__detail-item p{
    font-size:11.5px !important;
  }
  .workouts-insight-card__metrics div{
    min-height:74px;
    padding:8px;
  }
  .workouts-insight-card__metrics strong{
    font-size:15px;
  }
  .workouts-volume-pair-grid,
  .workouts-goals-layout,
  .workouts-pace-layout,
  .training-structure-layout{
    grid-template-columns:1fr !important;
    gap:10px;
  }
  #page-workouts .workouts-chart-panel{
    padding:10px;
    border-radius:14px;
  }
  #page-workouts .workouts-chart-panel #workoutsVolumeChart,
  #page-workouts .workouts-chart-panel #workoutsDashboardVolumeChart,
  #page-workouts .workouts-pace-card #workoutsDashboardPaceChart{
    min-height:236px;
  }
  .training-structure-summary{
    display:grid;
    gap:8px;
    margin:0 0 8px;
  }
  .training-structure-summary__copy strong{
    font-size:13.5px;
  }
  .training-structure-summary__copy span{
    font-size:11.5px;
    line-height:1.28;
  }
  .training-structure-svg,
  .training-structure-hr{
    padding:10px;
    border-radius:15px;
  }
  .training-structure-svg svg{
    border-radius:12px;
  }
  .training-structure-hr__head{
    margin-bottom:10px;
  }
  .training-structure-hr__rows{
    grid-template-columns:1fr !important;
    gap:7px;
  }
  .training-structure-hr__row{
    min-height:38px;
    padding:7px 8px;
  }
  .training-structure-hr__label{
    font-size:12px;
  }
  .training-structure-badge-icon{
    width:28px;
    height:28px;
    border-radius:9px;
  }
  .training-structure-badge-icon svg{
    width:17px;
    height:17px;
  }
  .training-structure-hr__row strong{
    min-width:44px;
    font-size:15px;
  }
  .workouts-goals-card--wide .workouts-goals-fields,
  .workouts-pace-layout .workouts-pace-breakdown{
    grid-template-columns:1fr;
    padding:10px;
    gap:8px;
  }
  .workouts-goals-card--wide .workouts-goals-fields .goals-group{
    padding:10px;
  }
  .workouts-goals-status__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .workouts-pace-layout .workouts-pace-breakdown__heading{
    font-size:12.5px;
  }
  .workouts-pace-layout .workouts-pace-breakdown__block{
    padding:9px;
  }
  .workouts-pace-breakdown__row{
    padding:7px 0;
  }
  .workouts-pace-breakdown__row > span{
    font-size:12px !important;
  }
  .workouts-pace-breakdown__row strong{
    font-size:13px !important;
  }

  /* Mobile workout rows as stable cards. */
  #page-workouts .weekly-workouts{
    gap:12px;
  }
  #page-workouts .week-card{
    border-radius:16px;
  }
  #page-workouts .week-card__summary{
    padding:10px;
  }
  #page-workouts .week-card__summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #page-workouts .workout-row--header{
    display:none !important;
  }
  #page-workouts .workout-row{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
    padding:12px !important;
    border-bottom:1px solid rgba(221,212,202,.72);
  }
  #page-workouts .workout-row > .workout-cell:first-child,
  #page-workouts .workout-row > .workout-note-cell{
    grid-column:1 / -1 !important;
  }
  #page-workouts .workout-row > .workout-cell:first-child{
    grid-row:1 !important;
  }
  #page-workouts .workout-row > .workout-note-cell{
    grid-row:2 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(2),
  #page-workouts .workout-row > .workout-cell:nth-child(3){
    grid-row:3 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(4),
  #page-workouts .workout-row > .workout-cell:nth-child(5){
    grid-row:4 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(6){
    grid-column:1 !important;
    grid-row:5 !important;
  }
  #page-workouts .workout-actions-cell{
    grid-column:1 / -1 !important;
    grid-row:6 !important;
    width:100% !important;
    flex-direction:row !important;
    flex-wrap:wrap;
    justify-content:flex-end !important;
    gap:6px !important;
  }
  #page-workouts .workout-row > .workout-cell.workout-cell--metric{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:7px !important;
    text-align:left !important;
  }
  #page-workouts .workout-row > .workout-cell.workout-cell--metric .workout-cell-main{
    font-size:12px !important;
    text-align:left !important;
  }
  #page-workouts .workout-note-cell .workout-cell-main{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:start;
  }
  #page-workouts .workout-note-text{
    text-align:left;
    font-size:12px;
    line-height:1.28;
  }
  #page-workouts .workout-note-status{
    max-width:138px;
    justify-content:flex-end !important;
    text-align:right;
  }
  #page-workouts .workout-actions-cell .icon-action,
  #page-workouts .workout-actions-cell .workout-type-action{
    width:31px;
    height:31px;
    flex:0 0 31px;
  }

  /* Races catalog */
  .races-toolbar{
    grid-template-columns:1fr !important;
    gap:9px;
  }
  .races-table__row{
    grid-template-columns:minmax(0,1fr) 82px !important;
    gap:7px 10px !important;
    padding:11px !important;
    border-radius:14px;
  }
  .races-table__main .entity-title strong{
    font-size:13px !important;
    line-height:1.28 !important;
  }
  .races-table__date,
  .races-table__location,
  .races-table__distance{
    font-size:11.5px;
  }
  .races-pagination{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .races-pagination .btn{
    width:100%;
  }

  /* My races */
  .my-races-calendar-header{
    flex-direction:column;
    align-items:stretch;
  }
  .my-races-calendar-header .btn{
    width:100%;
  }
  .my-races-calendar__months{
    grid-template-columns:1fr !important;
    gap:10px;
  }
  .my-races-calendar__month{
    padding:10px;
    border-radius:14px;
  }
  .my-races-table{
    border-spacing:0 10px;
  }
  .my-races-table__row{
    padding:12px !important;
    border-radius:16px;
  }
  .my-races-table__topline{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:8px;
  }
  .my-races-table__topmeta{
    justify-content:flex-start;
  }
  .my-races-table__topmeta-row{
    justify-content:flex-start;
    gap:6px;
  }
  .my-races-table__main .entity-title strong{
    font-size:14px;
    line-height:1.25;
  }
  .my-races-table__main .entity-sub{
    font-size:11.5px;
    line-height:1.25;
  }
  .my-races-table__mobile-weather{
    top:76px;
    right:11px;
  }
  .my-races-table__row--no-goal .my-races-table__mobile-weather{
    top:112px;
  }
  .my-races-table__mobile-weather .race-weather__metrics{
    gap:4px;
  }
  .my-race-insight{
    gap:8px;
  }
  .my-race-insight__goal-line,
  .my-race-insight__pace-line{
    gap:6px;
  }
  .my-race-insight__splits{
    gap:6px;
  }
  .my-race-split{
    min-width:74px;
    padding:7px;
  }
  .my-race-insight__summary{
    padding:8px;
  }
  .my-race-outcome{
    gap:8px;
    padding:9px;
  }
  .my-race-outcome__metrics,
  .my-race-outcome__metrics--3,
  .my-race-outcome__metrics--4{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  /* Profile and data forms */
  #page-my-data .profile-top-grid,
  #page-profile .profile-top-grid,
  #page-profile .profile-bottom-grid,
  #page-profile .profile-layout{
    gap:12px;
  }
  #page-my-data .form-row,
  #page-profile .form-row,
  #wModal .form-row,
  #mrModal .form-row{
    grid-template-columns:1fr !important;
    gap:10px;
  }
  #page-my-data .profile-actions,
  #page-profile .profile-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  #page-my-data .profile-actions .btn,
  #page-profile .profile-actions .btn{
    width:100%;
  }
}

@media (max-width: 420px){
  :root{
    --mobile-page-pad:10px;
    --mobile-card-pad:12px;
  }
  .topbar-title{
    max-width:calc(100vw - 132px);
    font-size:.92rem !important;
  }
  .section-actions,
  #page-workouts .section-actions{
    grid-template-columns:1fr !important;
  }
  .season-clean-summary{
    gap:1px;
  }
  .season-clean-summary div{
    min-height:70px;
    padding:9px 7px;
  }
  .season-goal-assessment__facts,
  .workouts-insight-card__detail-grid,
  .workouts-insight-card__metrics,
  .workouts-goals-status__grid,
  .my-race-outcome__metrics,
  .my-race-outcome__metrics--3,
  .my-race-outcome__metrics--4{
    grid-template-columns:1fr;
  }
  #page-workouts .workout-row{
    grid-template-columns:1fr !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(2),
  #page-workouts .workout-row > .workout-cell:nth-child(3),
  #page-workouts .workout-row > .workout-cell:nth-child(4),
  #page-workouts .workout-row > .workout-cell:nth-child(5),
  #page-workouts .workout-row > .workout-cell:nth-child(6){
    grid-column:1 !important;
    grid-row:auto !important;
  }
  #page-workouts .workout-actions-cell{
    grid-row:auto !important;
  }
  #page-workouts .workout-note-cell .workout-cell-main{
    grid-template-columns:1fr;
  }
  #page-workouts .workout-note-status{
    max-width:none;
    justify-content:flex-start !important;
    text-align:left;
  }
  .races-table__row{
    grid-template-columns:minmax(0,1fr) 72px !important;
  }
  .races-table__action{
    width:72px !important;
  }
  .races-table__action .race-add-btn{
    width:72px !important;
    min-width:72px !important;
    font-size:9px !important;
  }
  .my-races-table__mobile-weather{
    top:82px;
  }
}

/* Mobile application readiness pass v2: tighten high-density controls after generic card rules. */
@media (max-width: 640px){
  #page-workouts .card-header{
    display:grid !important;
    grid-template-columns:1fr;
    align-items:stretch;
    gap:10px;
  }
  #page-workouts #workoutsListFilter,
  #page-workouts .workouts-list-filter{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    justify-content:flex-start !important;
    overflow-x:auto;
    padding-bottom:2px;
    scrollbar-width:none;
  }
  #page-workouts #workoutsListFilter::-webkit-scrollbar,
  #page-workouts .workouts-list-filter::-webkit-scrollbar{
    display:none;
  }
  #page-workouts .workout-filter-btn{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:11px;
  }
  #page-workouts .workout-filter-btn i{
    width:15px;
    height:15px;
  }
  #page-workouts .workout-filter-btn--race img,
  #page-workouts .workout-filter-btn--control img{
    width:23px;
    height:23px;
  }

  #page-races .races-pagination{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    align-items:stretch;
    text-align:center;
  }
  #page-races .races-pagination__controls{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    gap:8px;
    align-items:center;
  }
  #page-races .races-pagination__controls .btn{
    width:100%;
    min-width:0;
    padding:0 10px;
  }
  #page-races .races-pagination__page{
    font-size:11px;
    white-space:nowrap;
  }
  #page-races .race-mass-index{
    width:100%;
    border-radius:12px;
    justify-content:flex-start;
    font-size:10px;
  }
  #page-races .race-mass-index em{
    flex-basis:100%;
  }

  .season-clean-panel--timeline .season-timeline{
    gap:10px;
  }
  .season-clean-panel--timeline .season-timeline__list{
    gap:7px;
  }
  .season-clean-panel--timeline .season-timeline__item{
    grid-template-columns:18px minmax(0,1fr);
    gap:9px;
    padding:9px 10px;
    border-radius:12px;
  }
  .season-clean-panel--timeline .season-timeline__title-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:6px;
  }
  .season-clean-panel--timeline .season-timeline__item strong{
    font-size:13px;
    line-height:1.22;
  }
  .season-clean-panel--timeline .season-timeline__meta-row{
    grid-template-columns:1fr;
    gap:4px;
  }
  .season-clean-panel--timeline .season-timeline__meta-row > span{
    font-size:11px;
    white-space:normal;
  }
  .season-clean-panel--timeline .season-timeline__fact{
    justify-self:start;
    font-size:11px;
  }
  .season-clean-panel--timeline .season-timeline__meta-row .status-chip{
    justify-self:start;
    width:max-content;
  }

  .season-clean-panel--dashboard-focus .dashboard-focus-card__stats{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px !important;
  }
  .season-clean-panel--dashboard-focus .dashboard-stat-tile{
    min-height:60px;
    padding:8px !important;
  }
  .season-clean-panel--dashboard-focus .dashboard-stat-tile strong{
    font-size:13px !important;
  }
  .season-clean-panel--dashboard-focus .dashboard-stat-tile span,
  .season-clean-panel--dashboard-focus .dashboard-stat-tile em{
    font-size:10px !important;
    line-height:1.16;
  }
  .season-clean-panel--dashboard-focus .dashboard-focus-card__actions .btn{
    width:100%;
  }

  .my-races-table__action-buttons{
    gap:5px;
  }
  .my-races-table__topmeta .icon-action{
    width:31px;
    height:31px;
    flex:0 0 31px;
  }
  .my-races-table__distance-chip,
  .status-chip{
    font-size:11px;
    line-height:1.1;
  }
}

@media (max-width: 420px){
  #page-races .races-pagination__controls{
    grid-template-columns:1fr;
  }
  #page-races .races-pagination__page{
    order:-1;
  }
  .season-clean-panel--dashboard-focus .dashboard-focus-card__stats{
    grid-template-columns:1fr !important;
  }
}

@media (max-width: 640px){
  #page-dashboard .season-clean-summary{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #page-dashboard .season-clean-summary__item{
    min-height:72px;
  }
}

@media (max-width: 420px){
  #page-dashboard .season-clean-summary{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #page-dashboard .season-clean-summary__item{
    min-height:68px;
  }
}

/* Mobile app layout pass v3: compact two-column cards and stable controls. */
@media (max-width: 900px){
  .topbar{
    position:fixed !important;
    top:0;
    left:0;
    right:0;
    z-index:900;
  }
  .app .content{
    padding-top:calc(56px + var(--mobile-page-pad)) !important;
  }
}

@media (max-width: 640px){
  #page-dashboard .season-clean-summary{
    border:1px solid rgba(13,122,131,.14);
    border-radius:18px;
    background:rgba(13,122,131,.12);
    box-shadow:0 12px 30px rgba(17,43,45,.06);
  }
  #page-dashboard .season-clean-summary__item{
    background:rgba(255,255,255,.90);
  }
  #page-dashboard .season-goal-assessment__facts,
  #page-dashboard .season-clean-panel--dashboard-focus .dashboard-focus-card__stats,
  #page-workouts .workouts-insight-card__metrics,
  #page-workouts .workouts-goals-status__grid,
  #page-workouts .training-structure-hr__rows,
  #page-my-races .my-race-outcome__metrics,
  #page-my-races .my-race-outcome__metrics--3,
  #page-my-races .my-race-outcome__metrics--4{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #page-dashboard .season-goal-assessment__facts div,
  #page-dashboard .season-clean-panel--dashboard-focus .dashboard-stat-tile,
  #page-workouts .workouts-insight-card__metrics div,
  #page-workouts .workouts-goals-status__item,
  #page-my-races .my-race-outcome__metric{
    min-width:0;
  }

  #page-workouts .card-header:has(#workoutsListFilter){
    display:flex !important;
    flex-direction:row;
    align-items:center !important;
    gap:10px;
  }
  #page-workouts .card-header:has(#workoutsListFilter) .card-title{
    flex:0 0 auto;
  }
  #page-workouts #workoutsListFilter,
  #page-workouts .workouts-list-filter{
    flex:1 1 auto;
    width:auto !important;
    max-width:none !important;
    margin-left:auto !important;
    justify-content:flex-end !important;
  }
  #page-workouts .workout-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
  }
  #page-workouts .workout-row .workout-cell-label:not(.workout-cell-label--icon){
    display:none !important;
  }
  #page-workouts .workout-row > .workout-cell:first-child{
    grid-column:1 !important;
    grid-row:1 !important;
    align-self:center;
  }
  #page-workouts .workout-row > .workout-note-cell{
    grid-column:2 !important;
    grid-row:1 !important;
    align-self:center;
  }
  #page-workouts .workout-note-cell .workout-cell-main{
    display:grid !important;
    grid-template-columns:1fr;
    justify-items:end;
    gap:4px;
  }
  #page-workouts .workout-note-status{
    order:1;
    max-width:none;
    justify-content:flex-end !important;
    text-align:right;
  }
  #page-workouts .workout-note-text{
    order:2;
    max-width:100%;
    text-align:right;
    white-space:normal;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(2){
    grid-column:1 !important;
    grid-row:2 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(3){
    grid-column:2 !important;
    grid-row:2 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(4){
    grid-column:1 !important;
    grid-row:3 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(5){
    grid-column:2 !important;
    grid-row:3 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(6){
    grid-column:1 !important;
    grid-row:4 !important;
  }
  #page-workouts .workout-actions-cell{
    grid-column:2 !important;
    grid-row:4 !important;
    justify-content:flex-end !important;
    align-self:center;
  }

  #page-workouts .training-structure-summary{
    padding-right:28px;
  }
  #page-workouts .training-structure-summary > .inline-tooltip--structure-info{
    position:absolute;
    top:0;
    right:0;
    margin:0;
  }
  #page-workouts .training-structure-summary > .inline-tooltip--structure-info .inline-tooltip__bubble{
    z-index:3200 !important;
  }
  #page-workouts .training-structure-hr__row{
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
  }
  #page-workouts .training-structure-hr__label{
    font-size:12px;
  }
  #page-workouts .training-structure-hr__row strong{
    min-width:42px;
    font-size:15px;
  }

  #wModal .time-field,
  #mrModal .time-field{
    display:none !important;
  }
  #wModal .duration-fields-compact,
  #mrModal .race-goal-fields{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:7px;
  }
  #mrModal .race-goal-pace-fields{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px;
  }
  #wModal .duration-fields-compact .form-input,
  #mrModal .race-goal-fields .form-input,
  #mrModal .race-goal-pace-fields .form-input{
    min-height:42px;
    padding:.62rem 1.55rem .62rem .68rem;
    font-size:14px;
    font-weight:850;
  }

  #page-my-races .my-races-table__row{
    overflow:visible;
  }
  #page-my-races .my-races-table__topline{
    padding-right:104px;
  }
  #page-my-races .my-races-table__action-buttons{
    position:absolute;
    top:10px;
    right:10px;
    z-index:8;
  }
  #page-my-races .my-race-insight__forecast-prefix .inline-tooltip__bubble,
  #page-my-races .my-race-insight__forecast-value .inline-tooltip__bubble,
  #page-my-races .my-race-insight__assessment-detail .inline-tooltip__bubble,
  #page-my-races .my-race-insight__assessment > .inline-tooltip .inline-tooltip__bubble{
    z-index:3200 !important;
  }

  #page-my-data .form-row,
  #page-my-data .form-row--cooper,
  #page-my-data .profile-records-block .form-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px;
  }
  #page-my-data .form-label{
    min-height:0;
    font-size:11px;
    line-height:1.18;
  }
  #page-my-data .form-input,
  #page-my-data .cooper-date-mobile,
  #page-my-data .diagnostic-date-mobile{
    min-width:0;
  }
}

@media (max-width: 420px){
  #page-dashboard .season-goal-assessment__facts,
  #page-dashboard .season-clean-panel--dashboard-focus .dashboard-focus-card__stats,
  #page-workouts .workouts-insight-card__metrics,
  #page-workouts .workouts-goals-status__grid,
  #page-workouts .training-structure-hr__rows,
  #page-my-races .my-race-outcome__metrics,
  #page-my-races .my-race-outcome__metrics--3,
  #page-my-races .my-race-outcome__metrics--4{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #page-workouts .workout-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #page-workouts .workout-actions-cell{
    grid-column:2 !important;
  }
  #page-my-data .form-row,
  #page-my-data .form-row--cooper,
  #page-my-data .profile-records-block .form-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* Mobile app layout pass v4: anchored tips, compact forms and workout cards. */
@media (max-width: 640px){
  #dashboardFocusRace,
  #dashboardFocusRace .dashboard-focus-card,
  #dashboardFocusRace .dashboard-stat-tile--forecast,
  #page-my-races .my-races-table__row,
  #page-my-races .my-race-insight__summary{
    position:relative;
    overflow:visible;
  }
  #dashboardFocusRace .dashboard-stat-tile--forecast{
    z-index:80;
  }
  #dashboardFocusRace .dashboard-stat-tile--forecast .inline-tooltip__bubble{
    position:absolute !important;
    right:0 !important;
    left:auto !important;
    top:auto !important;
    bottom:calc(100% + 10px) !important;
    width:min(270px, calc(100vw - 40px)) !important;
    max-width:min(270px, calc(100vw - 40px)) !important;
    transform:translateY(4px) !important;
    z-index:4200 !important;
  }
  #dashboardFocusRace .dashboard-stat-tile--forecast .inline-tooltip:hover .inline-tooltip__bubble,
  #dashboardFocusRace .dashboard-stat-tile--forecast .inline-tooltip:focus-within .inline-tooltip__bubble,
  #dashboardFocusRace .dashboard-stat-tile--forecast .inline-tooltip.is-open .inline-tooltip__bubble{
    transform:translateY(0) !important;
  }
  #page-dashboard .season-goal-reason{
    position:relative;
    display:inline-grid;
    width:max-content;
    max-width:100%;
  }
  #page-dashboard .season-goal-reason__body{
    position:absolute !important;
    top:calc(100% + 8px) !important;
    bottom:auto !important;
    left:0 !important;
    right:auto !important;
    width:min(340px, calc(100vw - 42px)) !important;
    max-width:min(340px, calc(100vw - 42px)) !important;
    grid-template-columns:1fr !important;
    z-index:4300 !important;
  }
  #page-my-races .my-races-table__row:has(.inline-tooltip.is-open),
  #page-my-races .my-races-table__row:has(.inline-tooltip:focus-within){
    z-index:120;
  }
  #page-my-races .my-race-insight .inline-tooltip__bubble{
    z-index:4300 !important;
  }

  #page-workouts .workouts-structure-card{
    position:relative;
    overflow:visible;
  }
  #page-workouts .training-structure-summary{
    position:static;
    padding-right:0;
  }
  #page-workouts .training-structure-summary > .inline-tooltip--structure-info{
    position:absolute !important;
    top:14px !important;
    right:14px !important;
    margin:0 !important;
    z-index:100;
  }
  #page-workouts .training-structure-summary > .inline-tooltip--structure-info .inline-tooltip__bubble{
    right:0 !important;
    left:auto !important;
    z-index:4300 !important;
  }
  #page-workouts .training-structure-hr__rows{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #page-workouts .training-structure-hr__row{
    gap:6px;
    padding:7px 8px;
  }
  #page-workouts .training-structure-hr__label{
    gap:5px;
    font-size:11px;
  }
  #page-workouts .training-structure-hr__label-full{
    display:none;
  }
  #page-workouts .training-structure-hr__label-short{
    display:inline;
  }
  #page-workouts .training-structure-badge-icon{
    width:26px;
    height:26px;
    border-radius:9px;
  }
  #page-workouts .training-structure-badge-icon svg{
    width:16px;
    height:16px;
  }
  #page-workouts .workouts-goals-status__item:last-child{
    grid-column:1 / -1;
  }

  #wModal .modal,
  #mrModal .modal{
    padding:14px;
  }
  #wModal .form-row,
  #mrModal .form-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
  }
  #wModal .form-row-single,
  #wModal .form-row-single .form-group,
  #mrModal #mrManualFields > .form-group,
  #mrModal #mrGoalTimeGroup,
  #mrModal .my-race-result-group,
  #mrModal #mrManualUrlGroup{
    grid-column:1 / -1;
  }
  #wModal .workout-pace-fields,
  #mrModal .race-goal-pace-fields{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #wModal .duration-fields-compact,
  #mrModal .race-goal-fields{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  #wModal .time-field,
  #mrModal .time-field,
  #wModal .duration-fields-compact .form-input,
  #wModal .workout-pace-fields .form-input,
  #mrModal .race-goal-fields .form-input,
  #mrModal .race-goal-pace-fields .form-input{
    font-weight:500 !important;
    letter-spacing:0 !important;
  }
  #wModal .form-input,
  #mrModal .form-input{
    min-height:42px;
    font-size:14px;
  }
  #mrModal .race-result-grid{
    grid-template-columns:1fr !important;
    gap:9px;
  }

  #page-workouts .workout-row{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    gap:7px !important;
    padding:11px !important;
  }
  #page-workouts .workout-row > .workout-cell:first-child{
    grid-column:1 / -1 !important;
    grid-row:1 !important;
    align-self:start;
  }
  #page-workouts .workout-row > .workout-cell:first-child .workout-cell-main{
    text-align:left !important;
    font-size:13px !important;
    font-weight:900;
  }
  #page-workouts .workout-row > .workout-note-cell{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
  }
  #page-workouts .workout-note-cell .workout-cell-main{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    justify-items:start;
    gap:6px;
  }
  #page-workouts .workout-note-text{
    order:1;
    text-align:left;
    white-space:normal;
    font-size:12px;
    line-height:1.25;
  }
  #page-workouts .workout-note-status{
    order:2;
    justify-self:end;
    justify-content:flex-end !important;
    text-align:right;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(2){
    grid-column:1 !important;
    grid-row:3 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(3){
    grid-column:2 !important;
    grid-row:3 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(4){
    grid-column:3 !important;
    grid-row:3 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(5){
    grid-column:4 !important;
    grid-row:3 !important;
  }
  #page-workouts .workout-row > .workout-cell:nth-child(6){
    grid-column:5 !important;
    grid-row:3 !important;
  }
  #page-workouts .workout-row > .workout-cell.workout-cell--metric{
    display:grid !important;
    justify-items:center !important;
    gap:3px !important;
    min-width:0;
    text-align:center !important;
  }
  #page-workouts .workout-row > .workout-cell.workout-cell--metric .workout-cell-label--icon{
    display:block !important;
  }
  #page-workouts .workout-row > .workout-cell.workout-cell--metric .workout-cell-main{
    font-size:10.5px !important;
    line-height:1.1;
    text-align:center !important;
  }
  #page-workouts .workout-actions-cell{
    grid-column:1 / -1 !important;
    grid-row:4 !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    justify-content:flex-end !important;
    gap:5px !important;
    overflow-x:auto;
    padding-top:3px;
  }
}

@media (max-width: 420px){
  #wModal .form-row,
  #mrModal .form-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #page-workouts .workout-row{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }
  #page-workouts .workout-actions-cell{
    grid-column:1 / -1 !important;
  }
}

/* Final tooltip and compact mobile-form overrides. */
#dashboardFocusRace .dashboard-stat-tile--forecast .inline-tooltip__bubble{
  right:0 !important;
  left:auto !important;
  top:auto !important;
  bottom:calc(100% + 10px) !important;
  z-index:4300 !important;
}
#page-dashboard .season-goal-reason{
  position:relative;
  display:inline-grid;
  width:max-content;
  max-width:100%;
}
#page-dashboard .season-goal-reason__body{
  position:absolute;
  left:0;
  right:auto;
  top:calc(100% + 8px);
  bottom:auto;
  z-index:4300;
}
#page-my-races .my-races-section-card,
#page-my-races .my-races-table,
#page-my-races .my-races-table tbody,
#page-my-races .my-races-table__row,
#page-my-races .my-race-insight,
#page-my-races .my-race-insight__summary{
  position:relative;
  overflow:visible;
}
#page-my-races .my-races-section-card:has(.inline-tooltip.is-open),
#page-my-races .my-races-section-card:has(.inline-tooltip:focus-within),
#page-my-races .my-races-table__row:has(.inline-tooltip.is-open),
#page-my-races .my-races-table__row:has(.inline-tooltip:focus-within){
  z-index:180;
}
#wModal .time-field,
#mrModal .time-field,
#wModal .duration-fields-compact .form-input,
#wModal .workout-pace-fields .form-input,
#mrModal .race-goal-fields .form-input,
#mrModal .race-goal-pace-fields .form-input{
  font-weight:400 !important;
  letter-spacing:0 !important;
}

@media (max-width:640px){
  #page-dashboard .season-clean-panel--dashboard-focus .dashboard-stat-tile--forecast{
    position:relative;
    overflow:visible;
    z-index:80;
  }
  #page-dashboard .season-clean-panel--dashboard-focus .dashboard-stat-tile--forecast .inline-tooltip__bubble{
    position:absolute !important;
    left:0 !important;
    right:auto !important;
    top:auto !important;
    bottom:calc(100% + 10px) !important;
    width:min(230px, calc(100vw - 96px)) !important;
    max-width:min(230px, calc(100vw - 96px)) !important;
    transform:translateY(4px) !important;
    z-index:4400 !important;
  }
  #page-dashboard .season-clean-panel--dashboard-focus .dashboard-stat-tile--forecast .inline-tooltip:hover .inline-tooltip__bubble,
  #page-dashboard .season-clean-panel--dashboard-focus .dashboard-stat-tile--forecast .inline-tooltip:focus-within .inline-tooltip__bubble,
  #page-dashboard .season-clean-panel--dashboard-focus .dashboard-stat-tile--forecast .inline-tooltip.is-open .inline-tooltip__bubble{
    transform:translateY(0) !important;
  }
  #page-dashboard .season-goal-reason__body{
    width:min(340px, calc(100vw - 42px)) !important;
    max-width:min(340px, calc(100vw - 42px)) !important;
    grid-template-columns:1fr !important;
  }
  #wModal .form-row,
  #mrModal .form-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #mrModal #mrEventDistanceGroup{
    grid-column:auto !important;
  }
  #page-my-races .my-race-photo-action{
    align-items:flex-start;
    flex-direction:column;
  }
}

/* Mobile workouts: hide the weekly metric legend, keep metric icons inside workout cards. */
@media (max-width:900px){
  #page-workouts .workout-row.workout-row--header,
  #page-workouts .workout-row.workout-row--metric-legend{
    display:none !important;
  }
  #page-workouts .workout-row:not(.workout-row--header) > .workout-cell.workout-cell--metric .workout-cell-label--icon{
    display:flex !important;
  }
}

@media (min-width:901px){
  #page-workouts .workout-row:not(.workout-row--header) > .workout-cell.workout-cell--metric .workout-cell-label--icon{
    display:none !important;
  }
  #page-workouts .workout-row.workout-row--metric-legend .workout-cell-label--icon{
    display:flex !important;
  }
}
