:root{
  /* Brand accents */
  --color-coral:        #E53F47;
  --color-coral-dark:   #c9353c;
  --color-coral-light:  #ff6a70;
  --color-coral-soft:   #ff7a7f;
  --color-teal:         #0097A1;
  --color-teal-bright:  #28c0cc;

  /* Surfaces (dark) */
  --color-black:        #000000;
  --color-dark:         #0a0a0a;
  --color-dark-card:    #111111;
  --color-dark-panel:   #0c0c0c;
  --color-dark-track:   #080808;
  --color-dark-input:   #0b0b0b;
  --color-dark-border:  #1a1a1a;
  --color-dark-border-2:#262626;
  --color-divider:      #181818;
  --color-hairline:     #161616;

  /* Text greys */
  --color-white:        #ffffff;
  --color-text:         #e8e8e8;
  --color-text-2:       #d8d8d8;
  --color-grey-light:   #a0a0a0;
  --color-grey:         #808080;
  --color-grey-mid:     #707070;
  --color-grey-faint:   #5e5e5e;
  --color-grey-dim:     #555555;

  /* Medals / rank */
  --color-gold:         #e8c14a;
  --color-silver:       #c4c4c4;
  --color-bronze:       #c08a4a;
  --color-silver-text:  #d4d4d4;
  --color-bronze-text:  #d09a5a;
  --chip-gold-bg:   rgba(232,193,74,0.13);
  --chip-silver-bg: rgba(196,196,196,0.13);
  --chip-bronze-bg: rgba(192,138,74,0.13);

  /* Category / status / chart accents */
  --color-sculling:     #0097A1;
  --color-sweep:        #7a6ad8;
  --color-lightweight:  #d8a13a;
  --color-amber-seat:   #c8923a;
  --color-flow-teal:    #2f6f73;
  --color-flow-teal-lbl:#3f9aa0;
  --color-blue-heat:    #6f8fd8;
  --color-violet-semi:  #b08ad8;
  --color-sep:          #3a3a3a;
  --color-done-green:   #1f6f43;
  --color-done-green-2: #5e8a5e;

  --badge-ready-bg:  #0d2a2c;  --badge-ready-tx:  #28c0cc;
  --badge-armed-bg:  #2a1213;  --badge-armed-tx:  #ff7a7f;
  --badge-imported-bg:#1a1a1a; --badge-imported-tx:#9a9a9a;

  /* Fonts */
  --font-sans: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Layout */
  --sidebar-w: 248px;
  --topbar-h: 64px;
  --content-max: 1200px;
}
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ background:#000; color:#fff; font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
a{ color:inherit; text-decoration:none; }

/* Focus ring (mandatory on dark) */
:focus-visible{ outline:2px solid var(--color-coral); outline-offset:3px; border-radius:2px; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[role="button"]:focus-visible{ outline:2px solid var(--color-coral); outline-offset:3px; }

/* Scrollbar */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:#0a0a0a; }
::-webkit-scrollbar-thumb{ background:#2a2a2a; border-radius:5px; }

/* Keyframes */
@keyframes pingdot{ 75%,100%{ transform:scale(2.2); opacity:0; } }
@keyframes modalin{ from{ opacity:0; transform:translateY(10px) scale(.98);} to{ opacity:1; transform:none; } }

/* Hover hooks (from prototype .lud-* rules) */
.lud-link:hover{ color:#fff; }
.lud-navitem:hover{ background:#141414; color:#fff; }
.lud-row:hover{ background:#141414; }
.lud-card-hov{ transition:border-color .15s, transform .15s; }
.lud-card-hov:hover{ border-color:#2e2e2e; transform:translateY(-2px); }
.lud-chip:hover{ border-color:#3a3a3a; }
.lud-pill:hover{ background:var(--color-coral-dark); }
.lud-pin:hover .lud-pinlabel{ opacity:1; }
.lud-crewbtn:hover .lud-crewname{ color:#fff; }

/* Search filter input (Programs country index + Athletes index) */
.lud-search{ width:100%; background:#0b0b0b; border:1px solid #1f1f1f; color:#e8e8e8;
  font-family:inherit; font-size:14px; border-radius:11px; padding:12px 14px; }
.lud-search::placeholder{ color:#5e5e5e; }
.lud-search:focus{ outline:none; border-color:#2e2e2e; }

/* Athlete index row (factored to a class so the full searchable list stays compact) */
.lud-arow{ display:flex; align-items:center; gap:14px; background:#111; border:1px solid #1a1a1a;
  border-radius:13px; padding:12px 16px; text-decoration:none; }
.lud-arow .nm{ font-size:14px; font-weight:600; color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lud-arow .cc{ font-size:11px; color:#707070; font-family:var(--font-mono); flex-shrink:0; }
.lud-arow .rc{ margin-left:auto; font-size:12px; color:#707070; font-family:var(--font-mono); flex-shrink:0; }

/* Knockout bracket (Henley Women's event page): one column per round, scroll on overflow */
.lud-bracket{ display:flex; gap:16px; overflow-x:auto; padding-bottom:10px; align-items:flex-start; }
.lud-bracket-col{ flex:0 0 250px; min-width:250px; display:flex; flex-direction:column; gap:10px; }

/* Event-tile logo: real logo (when present) sits over a coloured monogram fallback */
.lud-emblem{ position:relative; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; overflow:hidden; }
.lud-emblem img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }

/* Tab panels / collapses / modals (app.js toggles [hidden]).
   !important so it beats the inline display:flex these elements carry for centering. */
[data-panel][hidden]{ display:none !important; }
[data-collapse][hidden]{ display:none !important; }
[data-modal][hidden]{ display:none !important; }
[data-race-panel][hidden]{ display:none !important; }

/* View-tab segmented control: layout is inline, active state via class */
.lud-tab{ background:none; color:#9a9a9a; cursor:pointer; }
.lud-tab.is-active{ background:var(--color-coral); color:#fff; }
.lud-tab .lud-tabbadge{ background:#2a1213; color:#ff7a7f; }
.lud-tab.is-active .lud-tabbadge{ background:#ffffff33; color:#fff; }
[data-caret]{ transition:transform .2s; }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; }
  .lud-card-hov{ transition:none; }
  .lud-card-hov:hover{ transform:none; }
  html{ scroll-behavior:auto; }
}
