/* =====================================================================
   RAR Timing — brand tokens  v1.2  (2026-10) — navy; black retired
   The one source for colour, type, spacing and radius across:
   Live Results, Entry Manager, Relay Entries, Meet Results pages.
   Copy this file in; don't edit values per app — change them here.
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Roboto+Condensed:wght@500;700&display=swap');

:root {
	/* --- Core brand (from the logo) --------------------------------- */
	--rar-yellow:      #FFEA13;  /* logo yellow — ONLY on navy         */
	--rar-yellow-tint: #FFF7B3;  /* highlight rows, "now" marker on light */
	--rar-navy:        #0F172A;  /* top bar, logo panel, icon background, primary buttons */
	--rar-navy-2:      #1E293B;  /* raised surfaces / hover on navy */
	--rar-black:       #000000;  /* one-colour logo on white and print ONLY — never a surface */

	/* --- Neutrals (zinc) --------------------------------------------- */
	--rar-ink:        #18181B;   /* body text            17.7:1 on white */
	--rar-ink-soft:   #52525B;   /* secondary text        7.7:1          */
	--rar-muted:      #71717A;   /* captions, meta        4.8:1 (min size 14px) */
	--rar-line:       #E4E4E7;   /* borders, table rules                 */
	--rar-paper-soft: #F4F4F5;   /* zebra rows, panels                   */
	--rar-paper:      #FFFFFF;
	--rar-dark-2:     #1E293B;   /* raised surfaces on navy              */
	--rar-on-dark-soft: #94A3B8; /* secondary text on navy    7.0:1      */

	/* --- Result status (same meaning everywhere) --------------------- */
	--rar-live:          #FFEA13; /* live dot — on the navy bar only      */
	--rar-official:      #15803D; --rar-official-bg:    #DCFCE7; --rar-official-ink:    #14532D;
	--rar-provisional:   #B45309; --rar-provisional-bg: #FEF3C7; --rar-provisional-ink: #78350F;
	--rar-dq:            #B91C1C; --rar-dq-bg:          #FEE2E2; --rar-dq-ink:          #7F1D1D; /* DQ, DNF, DNS, SCR */
	--rar-pb:            #1D4ED8; --rar-pb-bg:          #DBEAFE; --rar-pb-ink:          #1E3A8A; /* personal best */
	--rar-record:        #7E22CE; --rar-record-bg:      #F3E8FF; --rar-record-ink:      #581C87; /* championship / meet record */

	/* --- Type -------------------------------------------------------- */
	--rar-font:         'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--rar-font-display: 'Roboto Condensed', 'Roboto', system-ui, sans-serif; /* headings, eyebrows, event titles */
	--rar-text-xs:  0.75rem;  /* 12 */
	--rar-text-sm:  0.875rem; /* 14 */
	--rar-text-md:  1rem;     /* 16 — body, never smaller on phones */
	--rar-text-lg:  1.25rem;  /* 20 */
	--rar-text-xl:  1.625rem; /* 26 */
	--rar-text-2xl: 2.125rem; /* 34 */

	/* --- Shape & space ----------------------------------------------- */
	--rar-radius-sm: 6px;
	--rar-radius:    10px;
	--rar-radius-lg: 16px;
	--rar-space-1: 4px;  --rar-space-2: 8px;  --rar-space-3: 12px;
	--rar-space-4: 16px; --rar-space-6: 24px; --rar-space-8: 32px;
	--rar-container: 1100px;
	--rar-topbar-h: 64px;
}

/* --- Base --------------------------------------------------------------- */
body { font-family: var(--rar-font); color: var(--rar-ink); background: var(--rar-paper); line-height: 1.5; }
h1, h2, h3, .rar-display { font-family: var(--rar-font-display); font-weight: 700; letter-spacing: .01em; line-height: 1.2; }
a { color: var(--rar-ink); text-decoration: underline; text-underline-offset: 2px; }
:focus-visible { outline: 3px solid var(--rar-navy); outline-offset: 2px; }
.rar-on-dark :focus-visible { outline-color: var(--rar-yellow); }

/* Times, places, lanes — figures always line up */
.rar-time, .rar-num, td.num { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* --- Top bar: navy, with rar-logo-reverse.svg ------------------------- */
.rar-topbar { background: var(--rar-navy); color: #fff; min-height: var(--rar-topbar-h); display: flex; align-items: center; gap: var(--rar-space-4); padding: 0 var(--rar-space-4); }
.rar-topbar img.rar-logo { height: 52px; width: auto; }   /* never below 40px — the LED lettering breaks up */
.rar-topbar .rar-product { font-family: var(--rar-font-display); font-weight: 500; color: var(--rar-on-dark-soft); text-transform: uppercase; letter-spacing: .08em; font-size: var(--rar-text-sm); }

/* --- Buttons ------------------------------------------------------------ */
.rar-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: var(--rar-radius-sm); font: 500 var(--rar-text-md)/1 var(--rar-font); border: 2px solid transparent; cursor: pointer; text-decoration: none; }
.rar-btn--primary   { background: var(--rar-navy);   color: var(--rar-yellow); }           /* on light pages */
.rar-btn--primary:hover { background: var(--rar-dark-2); }
.rar-btn--accent    { background: var(--rar-yellow); color: var(--rar-navy); }            /* on dark surfaces */
.rar-btn--secondary { background: transparent; color: var(--rar-ink); border-color: var(--rar-ink); }
.rar-btn--danger    { background: var(--rar-dq); color: #fff; }

/* --- Status badges ------------------------------------------------------ */
.rar-badge { display: inline-block; white-space: nowrap; padding: 2px 8px; border-radius: 999px; font: 700 var(--rar-text-xs)/1.6 var(--rar-font); text-transform: uppercase; letter-spacing: .04em; }
.rar-badge--official    { background: var(--rar-official-bg);    color: var(--rar-official-ink); }
.rar-badge--provisional { background: var(--rar-provisional-bg); color: var(--rar-provisional-ink); }
.rar-badge--dq          { background: var(--rar-dq-bg);          color: var(--rar-dq-ink); }
.rar-badge--pb          { background: var(--rar-pb-bg);          color: var(--rar-pb-ink); }
.rar-badge--record      { background: var(--rar-record-bg);      color: var(--rar-record-ink); }
.rar-badge--upcoming    { background: var(--rar-paper-soft);     color: var(--rar-ink-soft); }
.rar-live { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: 700; text-transform: uppercase; font-size: var(--rar-text-xs); letter-spacing: .08em; }
.rar-live::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--rar-live); animation: rar-pulse 1.6s infinite; }
@keyframes rar-pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .rar-live::before { animation: none; } }

/* --- Results / start-list table ---------------------------------------- */
.rar-table { width: 100%; border-collapse: collapse; font-size: var(--rar-text-md); }
.rar-table th { font: 700 var(--rar-text-xs)/1.4 var(--rar-font-display); text-transform: uppercase; letter-spacing: .06em; color: var(--rar-ink-soft); text-align: left; border-bottom: 2px solid var(--rar-ink); padding: 8px; }
.rar-table td { padding: 10px 8px; border-bottom: 1px solid var(--rar-line); }
.rar-table tr:nth-child(even) td { background: var(--rar-paper-soft); }
.rar-table tr.is-highlight td { background: var(--rar-yellow-tint); }   /* searched swimmer / "now" heat */
.rar-table td.num, .rar-table th.num { text-align: right; }

/* Phones: keep each row on one line — drop secondary columns instead of wrapping */
.rar-table td { vertical-align: middle; }
@media (max-width: 600px) {
	.rar-table { font-size: var(--rar-text-sm); }
	.rar-table td, .rar-table th { padding: 8px 4px; }
	.rar-table .hide-sm { display: none; }
	.rar-table td.name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 40vw; }
}
