@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');

.rst-root {
  --bg-solid: #12141a;
  --panel: #1b1e26;
  --panel-2: #21252f;
  --border: #2b303c;
  --text: #eaecef;
  --text-dim: #8891a0;
  --text-faint: #5b6270;
  /* Brand identity — sampled from the app's own logo (desktop/assets/icon.png:
     the Spartan helmet's orange plume, #F68A36 highlight / #D76A27 shadow).
     Deliberately SEPARATE from --amber below: that one is a semantic status
     colour (the green/amber/red "traffic light" on the timing screen), and
     the brand orange sits close enough to --red that reusing one token for
     both would blur "caution" into "critical" on exactly the screen where
     that distinction is read under pressure. --brand is chrome only: the
     logo bar, active nav/tabs, primary buttons, focus rings, panel ticks. */
  --brand: #F68A36;
  --brand-deep: #D76A27;
  --amber: #f5a623;
  --cyan: #4fc3f7;
  --green: #3ddc84;
  --red: #e5484d;
  --radius: 6px;
  font-family: 'Inter', sans-serif;
  background: var(--bg-solid);
  color: var(--text);
  min-height: 100vh;
  padding: 0;
  box-sizing: border-box;
}
.rst-root * { box-sizing: border-box; }
.rst-mono { font-family: 'JetBrains Mono', monospace; }
.rst-display { font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: 0.04em; }

/* --- Contrast fixes: browsers (WebKit especially) override author `color` on
   disabled fields, autofilled fields, and <option> lists with system colors,
   which is what caused black-on-dark. Force it back to the theme. --- */
.rst-root input, .rst-root select { color: var(--text); }
.rst-root input:disabled, .rst-root select:disabled {
  color: var(--text-dim) !important;
  -webkit-text-fill-color: var(--text-dim);
  opacity: 1;
  background: #181b22;
}
.rst-root button:disabled { color: var(--text-faint) !important; -webkit-text-fill-color: var(--text-faint); }
.rst-root input::placeholder { color: var(--text-faint); opacity: 1; }
.rst-root select option { color: var(--text); background: var(--panel-2); }
.rst-root input:-webkit-autofill { -webkit-text-fill-color: var(--text) !important; -webkit-box-shadow: 0 0 0px 1000px var(--panel-2) inset; }
/* Number input spin arrows default to dark/black in WebKit, invisible against our
   dark background — invert them to match the light text instead. */
.rst-root input[type=number]::-webkit-inner-spin-button,
.rst-root input[type=number]::-webkit-outer-spin-button { filter: invert(1) brightness(1.5); opacity: 0.8; }
.rst-root input[type=number] { color-scheme: dark; }

.rst-topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 20px; border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, #171a21, #12141a);
  flex-wrap: wrap; gap: 10px;
}
.rst-brand { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.rst-brand-mark {
  width: 10px; height: 28px; background: var(--brand); border-radius: 2px;
  box-shadow: 0 0 12px rgba(246,138,54,0.5);
}
.rst-brand h1 { font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:0.06em; font-size: 18px; margin:0; font-weight:600; }
.rst-brand .sub { font-size: 11px; color: var(--text-dim); letter-spacing: 0.08em; text-transform:uppercase; }

.rst-role-toggle { display:flex; background: var(--panel); border:1px solid var(--border); border-radius: 20px; padding:3px; gap:2px; }
.rst-role-btn { border:none; background:transparent; color:var(--text-dim); padding:6px 16px; border-radius:16px; font-size:12px; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; cursor:pointer; font-family:'Inter',sans-serif; }
.rst-role-btn.active { background: var(--brand); color:#1a1200; }
.rst-topbar-right { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }

.rst-clockbar { display:flex; align-items:center; gap:22px; }
.rst-clock { text-align:right; }
.rst-clock .lbl { font-size:10px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.08em; }
.rst-clock .val { font-family:'JetBrains Mono',monospace; font-size:20px; font-weight:700; color: var(--text); }
.rst-clock .val.amber { color: var(--amber); }
.rst-clock .val.cyan { color: var(--cyan); }
.rst-clock .val.green { color: var(--green); }
.rst-clock .val.red { color: var(--red); }

.rst-main { padding: 20px; max-width: 1400px; margin: 0 auto; }
.rst-hidden { display:none !important; }

.rst-panel { background: var(--panel); border:1px solid var(--border); border-radius: var(--radius); padding: 18px 20px; margin-bottom: 18px; }
.rst-panel h2 { font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:0.05em; font-size:14px; color: var(--text-dim); margin: 0 0 14px 0; display:flex; align-items:center; gap:8px; }
.rst-panel h2 .tick { width:4px; height:14px; background:var(--brand); display:inline-block; border-radius:1px; }
.rst-lm-toggle .rst-lm-chevron { display:inline-block; width:10px; color:var(--text-faint); }
.rst-lm-toggle:hover { color:var(--text); }

/* ---- Collapsible panel header ---- */
.rst-panel-header { display:flex; align-items:center; justify-content:space-between; gap:14px; cursor:pointer; user-select:none; margin: -18px -20px 14px -20px; padding: 16px 20px; border-radius: var(--radius) var(--radius) 0 0; }
.rst-panel-header:hover { background: rgba(255,255,255,0.02); }
.rst-panel-header h2 { margin:0; }
.rst-chevron { width:16px; height:16px; flex-shrink:0; color: var(--text-faint); transition: transform 0.15s ease; }
.rst-chevron.open { transform: rotate(180deg); }

.rst-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap:12px; }
.rst-field label { display:block; font-size:11px; color:var(--text-dim); margin-bottom:5px; text-transform:uppercase; letter-spacing:0.05em; }
.rst-field input, .rst-field select {
  width:100%; background: var(--panel-2); border:1px solid var(--border); color:var(--text);
  padding:8px 10px; border-radius:4px; font-family:'JetBrains Mono',monospace; font-size:14px;
}
.rst-field input:focus, .rst-field select:focus { outline:none; border-color: var(--brand); }

.rst-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.6); display:flex; align-items:center; justify-content:center; z-index:100; padding:20px; }
.rst-modal-overlay.rst-hidden { display:none; }
.rst-modal { width:420px; max-width:100%; margin-bottom:0; }

/* Green-flag banner — dismissible, non-blocking (no overlay behind it,
   doesn't stop interacting with the rest of the page). */
.rst-green-banner {
  position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between; gap:14px;
  background:rgba(61,220,132,0.12); border-bottom:1px solid var(--green); color:var(--green);
  padding:10px 20px; font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:0.04em;
}
.rst-green-banner.rst-hidden { display:none; }
.rst-green-banner-actions { display:flex; gap:8px; flex-shrink:0; }

.rst-btn {
  background: var(--brand); color:#1a1200; border:none; padding:10px 20px; border-radius:4px;
  font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.05em; cursor:pointer; font-family:'Inter',sans-serif;
}
.rst-btn:hover { background:#FF9D52; }
.rst-btn.secondary { background: var(--panel-2); color: var(--text); border:1px solid var(--border); }
.rst-btn.secondary:hover { border-color: var(--text-dim); }
.rst-btn.danger { background: transparent; color: var(--red); border:1px solid var(--red); }
.rst-btn:disabled { opacity:0.4; cursor:not-allowed; }
.rst-btn-row { display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }

.rst-drivers-list { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.rst-driver-chip { display:flex; align-items:center; gap:8px; background:var(--panel-2); border:1px solid var(--border); border-radius:20px; padding:5px 6px 5px 12px; font-size:13px; }
.rst-driver-chip .dot { width:9px; height:9px; border-radius:50%; }
.rst-driver-chip button { background:none; border:none; color:var(--text-faint); cursor:pointer; font-size:15px; padding:2px 6px; }
.rst-driver-chip button:hover { color: var(--red); }

/* ---- Projects screen ---- */
.rst-projects-wrap { max-width: 720px; margin: 40px auto; }
.rst-project-item { display:flex; align-items:center; justify-content:space-between; background:var(--panel); border:1px solid var(--border); border-radius: var(--radius); padding:16px 18px; margin-bottom:10px; }
.rst-project-item .pname { font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:16px; letter-spacing:0.03em; }
.rst-project-item .pmeta { font-size:11px; color:var(--text-faint); margin-top:4px; text-transform:uppercase; letter-spacing:0.05em; }
.rst-project-item .pactions { display:flex; gap:8px; }

/* ---- Plan / entry tabs ---- */
.rst-plan-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.rst-plan-tab { background:var(--panel-2); border:1px solid var(--border); color:var(--text-dim); padding:5px 13px; border-radius:16px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.04em; cursor:pointer; display:flex; align-items:center; gap:5px; }
.rst-plan-tab.active { background: rgba(246,138,54,0.12); border-color: var(--brand); color: var(--brand); }
.rst-plan-tab .race-dot { width:7px; height:7px; border-radius:50%; background: var(--green); }

/* ---- Context bar (Car Entries / Plans) — high-traffic switchers that stay
   visible at all times, stripped down to a plain hairline row instead of a
   full bordered panel + header. ---- */
.rst-context-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 2px; border-bottom:1px solid var(--border); margin-bottom:14px; flex-wrap:wrap; }
.rst-context-row .rst-plan-tabs { margin-bottom:0; }
.rst-ctx-actions { display:flex; gap:6px; flex-shrink:0; }
.rst-ctx-btn { background:transparent; border:1px solid var(--border); color:var(--text-faint); padding:5px 10px; border-radius:4px; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:0.04em; white-space:nowrap; cursor:pointer; }
.rst-ctx-btn:hover { color:var(--text); border-color:var(--text-dim); }
.rst-ctx-btn.danger { color:var(--red); border-color:var(--red); }

/* ---- Timeline (signature element) ---- */
.rst-timeline-wrap { overflow-x:auto; padding-bottom:8px; }
.rst-timeline { display:flex; align-items:stretch; height:64px; min-width: 100%; position:relative; }
.rst-progress-line { position:absolute; top:-4px; bottom:-4px; width:2px; background:#fff; box-shadow:0 0 8px rgba(255,255,255,0.9), 0 0 2px #fff; pointer-events:none; z-index:5; display:none; }
.rst-stint-block {
  height:100%; display:flex; flex-direction:column; justify-content:center; align-items:center;
  border-radius:3px; margin-right:2px; min-width:34px; position:relative; cursor:default;
  border: 1px solid rgba(0,0,0,0.3);
}
.rst-stint-block .num { font-family:'JetBrains Mono',monospace; font-size:10px; opacity:0.9; font-weight:700; }
.rst-stint-block .drv { font-size:10px; font-weight:700; text-transform:uppercase; }
.rst-stint-block.active { box-shadow: 0 0 0 2px var(--amber), 0 0 14px rgba(245,166,35,0.6); animation: rst-pulse 1.6s infinite; }
.rst-stint-block.complete { opacity:0.55; }
@keyframes rst-pulse { 0%,100%{ box-shadow:0 0 0 2px var(--amber), 0 0 8px rgba(245,166,35,0.4);} 50%{ box-shadow:0 0 0 2px var(--amber), 0 0 18px rgba(245,166,35,0.8);} }
.rst-pit-gap { width:auto; min-width:16px; padding:0 3px; display:flex; align-items:center; justify-content:center; color: var(--text-faint); font-size:11px; font-weight:700; font-family:'JetBrains Mono',monospace; gap:1px; }
.rst-pit-gap.tire { color: var(--cyan); }

/* ---- Stint table ---- */
.rst-table { width:100%; border-collapse:collapse; font-size:13px; }
.rst-table th { text-align:left; font-size:10px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.06em; padding:6px 8px; border-bottom:1px solid var(--border); font-weight:600; }
.rst-table td { padding:6px 8px; border-bottom:1px solid #22252e; vertical-align:middle; color: var(--text); }
.rst-table tr.row-active { background: rgba(245,166,35,0.08); }
.rst-table tr.row-complete { opacity:0.6; }
.rst-table select, .rst-table input[type=number], .rst-table input[type=text] { background: var(--panel-2); border:1px solid var(--border); color:var(--text); padding:5px 7px; border-radius:4px; font-family:'JetBrains Mono',monospace; font-size:13px; width:70px; }
.rst-table select { width: 120px; }
.rst-table .rst-mini-btn { background:var(--panel-2); border:1px solid var(--border); color:var(--text-dim); padding:4px 8px; border-radius:4px; font-size:11px; cursor:pointer; margin-right:4px; }
.rst-table .rst-mini-btn:hover { color:var(--text); border-color: var(--text-dim); }
.rst-table .rst-mini-btn.go { color:var(--green); border-color: var(--green); }
.rst-table .rst-mini-btn.stop { color:var(--amber); border-color: var(--amber); }
.rst-badge { font-size:10px; padding:2px 7px; border-radius:10px; text-transform:uppercase; font-weight:700; letter-spacing:0.03em; display:inline-block; }
.rst-badge.warn { background: rgba(229,72,77,0.15); color: var(--red); }
.rst-badge.ok { background: rgba(61,220,132,0.12); color: var(--green); }
.rst-badge.info { background: rgba(79,195,247,0.15); color: var(--cyan); }

.rst-summary-row { display:flex; gap:24px; flex-wrap:wrap; margin-top:4px; }
.rst-stat { min-width:120px; }
.rst-stat .lbl { font-size:10px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.06em; }
.rst-stat .val { font-family:'JetBrains Mono',monospace; font-size:19px; font-weight:700; margin-top:2px; color: var(--text); }

/* ---- Compare panel ---- */
.rst-compare-table { width:100%; border-collapse:collapse; font-size:13px; }
.rst-compare-table th { text-align:left; font-size:10px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.06em; padding:8px; border-bottom:1px solid var(--border); }
.rst-compare-table td { padding:8px; border-bottom:1px solid #22252e; color: var(--text); }
.rst-compare-table tr.fastest td:first-child { color: var(--green); }

/* ---- Driver view ---- */
.rst-driver-view { display:flex; flex-direction:column; align-items:center; padding: 30px 16px; gap:22px; }
/* BOX BOX — the Driver dashboard's counterpart to the desktop overlay's own
   alert (desktop/overlay/overlay.css). Same trigger, same wording, same red;
   sized for a dashboard rather than a glanceable overlay. Pulses
   background-color rather than opacity for the same reason the overlay does:
   a fading banner reads as a rendering glitch, not an alert. */
.rst-dv-box-alert {
  width:100%; max-width:900px; border-radius:8px; padding:14px 20px;
  text-align:center; background:var(--red);
  animation: rst-box-pulse 0.9s ease-in-out infinite;
}
.rst-dv-box-alert .big {
  font-family:'Oswald',sans-serif; font-size:44px; font-weight:700;
  line-height:1; letter-spacing:0.06em; color:#fff;
}
.rst-dv-box-alert .small {
  font-size:12px; text-transform:uppercase; letter-spacing:0.08em;
  color:rgba(255,255,255,0.85); margin-top:4px;
}
@keyframes rst-box-pulse {
  0%, 100% { background-color:#e5484d; }
  50%      { background-color:#a5252a; }
}
.rst-dv-hero { text-align:center; }
.rst-dv-hero .eyebrow { font-size:12px; color:var(--text-dim); text-transform:uppercase; letter-spacing:0.12em; margin-bottom:8px; }
.rst-dv-hero .name { font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:52px; font-weight:700; letter-spacing:0.02em; color: var(--brand); line-height:1; }
.rst-dv-hero .status { font-size:14px; color:var(--text-dim); margin-top:10px; text-transform:uppercase; letter-spacing:0.06em; }
.rst-dv-cards { display:grid; grid-template-columns: repeat(auto-fit, minmax(170px,1fr)); gap:14px; width:100%; max-width:900px; }
.rst-dv-card { background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:18px; text-align:center; }
.rst-dv-card .lbl { font-size:11px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.07em; margin-bottom:8px; }
.rst-dv-card .val { font-family:'JetBrains Mono',monospace; font-size:32px; font-weight:700; }
.rst-dv-card .val.amber{color:var(--amber);} .rst-dv-card .val.cyan{color:var(--cyan);} .rst-dv-card .val.green{color:var(--green);}
.rst-dv-card .sub { font-size:12px; color:var(--text-dim); margin-top:6px; }
.rst-dv-next { width:100%; max-width:900px; background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:16px 20px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.rst-dv-next .label { font-size:11px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.06em; }
.rst-dv-next .name { font-family:'Oswald',sans-serif; font-size:20px; text-transform:uppercase; color: var(--text); }
.rst-progress-outer { width:100%; max-width:900px; height:8px; background:var(--panel-2); border-radius:4px; overflow:hidden; border:1px solid var(--border); }
.rst-progress-inner { height:100%; background: linear-gradient(90deg, var(--brand), var(--cyan)); }
.rst-empty { text-align:center; color:var(--text-dim); padding:60px 20px; font-size:14px; }

.rst-help { font-size:11px; color: var(--text-faint); margin-top:8px; line-height:1.5; }
.rst-tag { display:inline-block; font-size:10px; padding:1px 6px; border-radius:8px; background:var(--panel-2); color:var(--text-dim); margin-left:6px; }

/* ---- Fuel Dashboard ---- */
.rst-fd-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(360px,1fr)); gap:16px; padding:20px; }
.rst-fd-entry .rst-dv-cards { grid-template-columns: repeat(auto-fit, minmax(130px,1fr)); margin-top:10px; }
.rst-fd-driver { font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:15px; color:var(--text-dim); letter-spacing:0.04em; margin-top:2px; }

/* ---- Live Timing ---- */
.rst-livetiming-view { padding: 20px; }
.rst-lt-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; flex-wrap:wrap; gap:10px; }
.rst-lt-toolbar .hint { font-size:12px; color:var(--text-dim); }
.rst-lt-toolbar-controls { display:flex; gap:10px; flex-wrap:wrap; }
.rst-lt-sector-toggle { display:flex; gap:4px; }
.rst-lt-sector-toggle button { background:var(--panel-2); border:1px solid var(--border); color:var(--text-dim); padding:5px 10px; border-radius:4px; font-size:11px; cursor:pointer; text-transform:uppercase; letter-spacing:0.05em; }
.rst-lt-sector-toggle button.active { color:var(--brand); border-color:var(--brand); }
.rst-lt-class-filter { background:var(--panel-2); border:1px solid var(--border); color:var(--text-dim); padding:5px 10px; border-radius:4px; font-size:11px; cursor:pointer; text-transform:uppercase; letter-spacing:0.05em; }
.rst-lt-class-filter:focus { outline:none; border-color:var(--brand); }
/* Track map — a simplified circular position plot, not real track geometry
   (see trackMapSvg's own comment in views/livetiming.js for why). */
.rst-track-map { display:block; width:100%; max-width:340px; height:auto; margin:0 auto 16px; }
/* Real-geometry mode gets a wider box than the abstract circle's: circuits are wide, and the SVG's viewBox height already follows the outline's own aspect ratio, so this only ever makes the map bigger, never distorted. */
.rst-track-map--geo { max-width:560px; }
.rst-tm-loop { fill:none; stroke:var(--border); stroke-width:3; }
/* The outline is drawn inside a heavily downscaled <g> (iRacing's exported SVGs are 1920x1080, fitted into a 320-wide space), so a plain stroke-width would come out a near-invisible fraction of a pixel. non-scaling-stroke keeps it at a real on-screen width, matching rst-tm-loop's weight in the circle mode. */
.rst-tm-outline { fill:none; stroke:var(--border); stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.rst-tm-sf { stroke:var(--text-faint); stroke-width:2; }
.rst-tm-car { cursor:pointer; }
.rst-tm-dot { stroke:#0c0d10; stroke-width:1.5; }
.rst-tm-car.rst-tm-ref .rst-tm-dot { stroke:var(--green); stroke-width:3; }
/* Our own cars (see TEAM_DOT_COLOR): a fixed-orange dot sitting on a halo
   filled with the class (or manufacturer) colour the dot itself gave up.
   The dot keeps its dark 1.5 stroke from the rule above, which is what
   separates the two bands — without it, an unlisted class hashing to a
   colour near the brand orange would read as one muddy blob rather than a
   dot inside a ring. Radii are set per-car in JS, not here. */
.rst-tm-halo { stroke:none; }
/* The car number now sits INSIDE the dot, so it's dark-on-solid — the same
   convention .rst-mfr-badge and the tower's own CP/CG cells already use for
   text on these (uniformly light) class and manufacturer colors. font-size
   is set per-dot in JS, since it steps down for 3-digit numbers. */
.rst-tm-label { fill:#0c0d10; font-weight:700; font-family:'JetBrains Mono',monospace; text-anchor:middle; dominant-baseline:central; pointer-events:none; }
.rst-lt-table-wrap { overflow-x:auto; }
.rst-lt-table { width:100%; border-collapse:collapse; font-size:13px; white-space:nowrap; }
.rst-lt-table th { text-align:left; font-size:10px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.06em; padding:6px 10px; border-bottom:1px solid var(--border); font-weight:600; }
.rst-lt-table td { padding:6px 10px; border-bottom:1px solid #22252e; vertical-align:middle; color: var(--text); font-family:'JetBrains Mono',monospace; }
.rst-lt-table tbody tr { cursor:pointer; }
.rst-lt-table tbody tr:hover td { background: rgba(255,255,255,0.03); }
.rst-lt-table tr.rst-lt-reference td { background: rgba(61,220,132,0.12); }
.rst-lt-table tr.rst-lt-player td:first-child { box-shadow: inset 3px 0 0 var(--cyan); }
.rst-lt-table tr.rst-lt-retired { opacity:0.55; }
/* Declared after .rst-lt-reference so a row that's both wins on the tie —
   "this is our car" is a standing, important signal; "this is the current
   Gap reference" is a transient UI choice. */
.rst-lt-table tr.rst-lt-linked td { background: rgba(229,72,77,0.22); }
.rst-lt-table tr.rst-lt-linked:hover td { background: rgba(229,72,77,0.3); }
/* On pit road — a thin row outline (not background/box-shadow, so it never
   fights the reference/linked tint or the player's left-edge accent above,
   all of which are on td) paired with the PIT badge in the RC column. */
.rst-lt-table tr.rst-lt-onpit { outline: 1px solid rgba(245,166,35,0.55); outline-offset: -1px; }
.rst-lt-table td.rst-lt-name-cell { font-family:'Inter',sans-serif; }
.rst-lt-table .rst-lt-team { font-size:11px; color:var(--text-dim); display:block; }
.rst-mfr-badge { display:inline-flex; align-items:center; justify-content:center; width:32px; height:20px; border-radius:4px; font-size:10px; font-weight:700; color:#0c0d10; }
/* Real manufacturer logo — same 32x20 box as the initials badge above so the
   column's width never shifts depending on which variant a row uses.
   object-fit:contain letterboxes rather than crops: these range from a 6.7:1
   McLaren wordmark to a 0.74:1 Ferrari shield, and cropping would behead
   half of them. No background — they're transparent PNGs sitting on the
   dark row, unlike the initials badge which needs its color chip. */
.rst-mfr-logo { display:block; width:32px; height:20px; object-fit:contain; object-position:center; }
.rst-lt-lap-cell { display:inline-block; min-width:56px; padding:3px 6px; border-radius:3px; border:1px solid var(--border); }
.rst-lt-table .rst-lt-gap-behind { color: var(--green); }
.rst-lt-table .rst-lt-gap-ahead { color: var(--red); }
.rst-lt-table .rst-lt-int-critical { color: var(--red); }
.rst-lt-table .rst-lt-int-close { color: var(--amber); }
.rst-badge.pit { background: rgba(245,166,35,0.15); color: var(--amber); }
.rst-badge + .rst-badge { margin-left:4px; }
.rst-tire-badge { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; border:2px solid; font-size:11px; font-weight:700; font-family:'JetBrains Mono',monospace; }
.rst-tire-soft { border-color:var(--red); color:var(--red); }
.rst-tire-dry { border-color:var(--text); color:var(--text); }
.rst-tire-wet { border-color:var(--cyan); color:var(--cyan); }

html, body { margin:0; padding:0; background: var(--bg-solid, #12141a); }
