/* ═══════════════════════════════════════════════════════════════
   LWServers V2 — buster.css
   Buster Scout — squad-aware tackle scanner.
   Requires: base.css, nav.css
═══════════════════════════════════════════════════════════════ */

/* ──────────────────────────────────────────────────────────
   HEADER
────────────────────────────────────────────────────────── */
.bus-header {
  padding: 18px var(--page-px) 12px;
  border-bottom: 1px solid var(--border-1);
}

.bus-eyebrow {
  font-family: var(--font-data);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 4px;
}

.bus-title {
  font-family: var(--font-ui);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: var(--text-1);
  margin: 0 0 6px;
}

.bus-sub {
  font-size: 12px;
  color: var(--text-2);
  margin: 0 0 10px;
  max-width: 60ch;
  line-height: 1.45;
}

.bus-countdown {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  font-family: var(--font-data);
  font-size: 11px;
  letter-spacing: 0.5px;
  border-radius: 999px;
  border: 1px solid var(--border-2);
  background: var(--glass-bg-3);
  color: var(--text-2);
}
.bus-countdown.live {
  color: var(--red);
  border-color: var(--red-border);
  background: var(--red-glow);
}
.bus-countdown-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--red);
  animation: bus-pulse 1.2s ease-in-out infinite;
}
@keyframes bus-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.35; }
}

/* ──────────────────────────────────────────────────────────
   COMBAT RULES STRIP
────────────────────────────────────────────────────────── */
.bus-rules {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  padding: 10px var(--page-px);
  border-bottom: 1px solid var(--border-1);
  background: var(--glass-bg);
}

.bus-rules-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid var(--border-2);
  background: var(--glass-bg-2);
}

.bus-rules-icon {
  font-family: var(--font-data);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 1px;
  padding: 2px 7px;
  border-radius: 4px;
  background: var(--glass-bg-3);
  color: var(--text-1);
}

.bus-rules-arrow {
  font-family: var(--font-data);
  font-size: 9px;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.bus-rules-note {
  font-size: 11px;
  color: var(--text-2);
  margin-left: auto;
  line-height: 1.3;
}
.bus-rules-note b { color: var(--accent); }

/* Squad colour tokens — used in pills and rules-icons */
.bus-rules-icon[data-squad="air"]      { color: var(--squad-air,     #4cc9ff); }
.bus-rules-icon[data-squad="tank"]     { color: var(--squad-tank,    #ff9f4a); }
.bus-rules-icon[data-squad="missile"]  { color: var(--squad-missile, #d96ee0); }

/* ──────────────────────────────────────────────────────────
   SETUP
────────────────────────────────────────────────────────── */
.bus-setup {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  padding: 14px var(--page-px);
}

.bus-vs {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-data);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: var(--text-3);
}
.bus-vs span {
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--border-2);
  background: var(--glass-bg-2);
  box-shadow: inset 0 1px 0 var(--glass-shine);
}

.bus-side {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  border-radius: var(--r-lg);
  border: 1px solid var(--border-1);
  background: var(--glass-bg);
  min-width: 0;
}
.bus-side-you  { border-color: var(--accent-border); background: var(--accent-glow-2); }
.bus-side-opp  { border-color: var(--red-border);    background: var(--red-glow); }

.bus-side-label {
  font-family: var(--font-data);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-2);
}

/* Squad selector — three big buttons */
.bus-squad-pick {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}

.bus-squad-opt {
  font-family: var(--font-data);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  padding: 10px 6px;
  border-radius: var(--r-md);
  border: 1px solid var(--border-2);
  background: var(--glass-bg-3);
  color: var(--text-2);
  cursor: pointer;
  transition: all var(--t-fast);
}
.bus-squad-opt:hover { color: var(--text-1); border-color: var(--border-3); }

.bus-squad-opt[data-squad="air"].active {
  color: var(--squad-air, #4cc9ff);
  border-color: var(--squad-air, #4cc9ff);
  background: rgba(76, 201, 255, 0.12);
  box-shadow: 0 0 0 2px rgba(76, 201, 255, 0.18) inset;
}
.bus-squad-opt[data-squad="tank"].active {
  color: var(--squad-tank, #ff9f4a);
  border-color: var(--squad-tank, #ff9f4a);
  background: rgba(255, 159, 74, 0.12);
  box-shadow: 0 0 0 2px rgba(255, 159, 74, 0.18) inset;
}
.bus-squad-opt[data-squad="missile"].active {
  color: var(--squad-missile, #d96ee0);
  border-color: var(--squad-missile, #d96ee0);
  background: rgba(217, 110, 224, 0.12);
  box-shadow: 0 0 0 2px rgba(217, 110, 224, 0.18) inset;
}

/* FSP control block ───────────────────────────────────────── */
.bus-fsp-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  border-radius: var(--r-md);
  background: var(--glass-bg-2);
  border: 1px solid var(--border-2);
}

.bus-fsp-display {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  padding: 10px 12px;
  border-radius: var(--r-md);
  border: 1px dashed var(--accent-border);
  background: transparent;
  color: var(--text-1);
  font-family: var(--font-data);
  cursor: pointer;
  position: relative;
  transition: background var(--t-fast), border-color var(--t-fast);
}
.bus-fsp-display:hover { background: var(--accent-glow-2); }

.bus-fsp-display-val  { font-size: 30px; font-weight: 800; letter-spacing: -1px; color: var(--accent); }
.bus-fsp-display-unit { font-size: 16px; font-weight: 600; color: var(--text-2); }
.bus-fsp-display-hint {
  position: absolute;
  bottom: 3px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-data);
  font-size: 8px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-3);
  opacity: 0.7;
}

.bus-fsp-direct {
  font-family: var(--font-data);
  font-size: 26px;
  font-weight: 700;
  text-align: center;
  padding: 10px 12px;
  color: var(--accent);
}

.bus-fsp-slider {
  width: 100%;
  height: 28px;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  cursor: pointer;
  padding: 0;
  margin: 4px 0 0;
}
.bus-fsp-slider::-webkit-slider-runnable-track {
  height: 6px;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent) var(--fill, 30%), var(--glass-bg-3) var(--fill, 30%), var(--glass-bg-3) 100%);
  background: var(--glass-bg-3);
}
.bus-fsp-slider::-moz-range-track {
  height: 6px;
  border-radius: 3px;
  background: var(--glass-bg-3);
}
.bus-fsp-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 22px;
  height: 22px;
  margin-top: -8px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid var(--text-1);
  cursor: grab;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.bus-fsp-slider::-moz-range-thumb {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid var(--text-1);
  cursor: grab;
}
.bus-fsp-slider:active::-webkit-slider-thumb { cursor: grabbing; }

.bus-fsp-marks {
  display: flex;
  justify-content: space-between;
  font-family: var(--font-data);
  font-size: 9px;
  color: var(--text-3);
  letter-spacing: 0.5px;
  padding: 0 2px;
}

.bus-lookup-btn {
  align-self: center;
  font-size: 11px;
  padding: 6px 10px;
  margin-top: 4px;
}

.bus-lookup {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bus-lookup.hidden { display: none; }

.bus-player-select {
  font-family: inherit;
  font-size: 13px;
  cursor: pointer;
}

.bus-me-name {
  text-align: center;
  font-size: 11px;
  color: var(--text-2);
  font-style: italic;
}
.bus-me-name.hidden { display: none; }

/* Opponent meta */
.bus-opp-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  padding: 6px 0 0;
}
.bus-opp-name  { font-family: var(--font-ui); font-size: 14px; font-weight: 700; color: var(--text-1); }
.bus-opp-wz    { font-family: var(--font-data); font-size: 10px; color: var(--text-3); }
.bus-opp-count { font-family: var(--font-data); font-size: 10px; color: var(--text-2); margin-left: auto; }

/* ──────────────────────────────────────────────────────────
   ALLIANCE SEARCH
────────────────────────────────────────────────────────── */
.bus-search-wrap    { position: relative; }
.bus-search-results {
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: var(--glass-bg-2);
  backdrop-filter: var(--blur-lg);
  border: 1px solid var(--border-2);
  border-radius: var(--r-lg);
  overflow-y: auto;
  z-index: 200;
  box-shadow: var(--shadow-lg);
  max-height: 240px;
}
.bus-search-results.hidden { display: none; }
.bus-search-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  font-size: 13px;
  color: var(--text-1);
  cursor: pointer;
  border-bottom: 1px solid var(--border-1);
}
.bus-search-item:last-child { border-bottom: 0; }
.bus-search-item:hover      { background: var(--glass-bg-3); }
.bus-search-item-name { font-weight: 500; }
.bus-search-item-meta { font-family: var(--font-data); font-size: 10px; color: var(--text-3); }
.bus-search-empty {
  padding: 14px;
  text-align: center;
  font-size: 12px;
  color: var(--text-3);
}

/* ──────────────────────────────────────────────────────────
   PROMPT (when setup incomplete)
────────────────────────────────────────────────────────── */
.bus-prompt {
  margin: 0 var(--page-px) 28px;
  padding: 22px 16px;
  text-align: center;
  font-size: 13px;
  color: var(--text-3);
  border: 1px dashed var(--border-2);
  border-radius: var(--r-md);
  background: var(--glass-bg);
}
.bus-prompt.hidden { display: none; }

/* ──────────────────────────────────────────────────────────
   RESULT — summary
────────────────────────────────────────────────────────── */
.bus-result {
  padding: 0 var(--page-px) 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.bus-result.hidden { display: none; }

.bus-summary {
  background: var(--glass-bg);
  border: 1px solid var(--border-2);
  border-radius: var(--r-lg);
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.bus-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.bus-summary-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 10px 6px;
  border-radius: var(--r-md);
  border: 1px solid var(--border-2);
  background: var(--glass-bg-3);
}
.bus-summary-num {
  font-family: var(--font-data);
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
  color: var(--text-1);
}
.bus-summary-lbl {
  font-family: var(--font-data);
  font-size: 9px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-3);
}
.bus-summary-cell.tier-strong   { border-color: var(--accent-border);  background: var(--accent-glow); }
.bus-summary-cell.tier-strong   .bus-summary-num { color: var(--accent); }
.bus-summary-cell.tier-favored  { border-color: var(--accent-border);  background: var(--accent-glow-2); }
.bus-summary-cell.tier-favored  .bus-summary-num { color: var(--accent-2, var(--accent)); }
.bus-summary-cell.tier-even     { border-color: var(--amber-border);   background: var(--amber-glow); }
.bus-summary-cell.tier-even     .bus-summary-num { color: var(--amber); }
.bus-summary-cell.tier-longshot { border-color: var(--red-border);     background: var(--red-glow); }
.bus-summary-cell.tier-longshot .bus-summary-num { color: var(--red); }

.bus-summary-headline {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-1);
  text-align: center;
}
.bus-summary-headline b { font-weight: 700; color: var(--accent); }

/* Controls row */
.bus-controls {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.bus-filter {
  display: flex;
  border-radius: var(--r-md);
  overflow: hidden;
  border: 1px solid var(--border-2);
  background: var(--glass-bg);
}
.bus-filter-opt {
  flex: 1;
  padding: 8px 6px;
  font-family: inherit;
  font-size: 11px;
  font-weight: 600;
  background: transparent;
  border: 0;
  color: var(--text-3);
  cursor: pointer;
  transition: all var(--t-fast);
}
.bus-filter-opt + .bus-filter-opt { border-left: 1px solid var(--border-1); }
.bus-filter-opt:hover                          { color: var(--text-1); background: var(--glass-bg-3); }
.bus-filter-opt.active.tier-strong             { background: var(--accent-glow); color: var(--accent); }
.bus-filter-opt.active.tier-favored            { background: var(--accent-glow-2); color: var(--accent); }
.bus-filter-opt.active.tier-even               { background: var(--amber-glow);  color: var(--amber); }
.bus-filter-opt.active.tier-longshot           { background: var(--red-glow);    color: var(--red); }
.bus-filter-opt.active:not([class*="tier-"])   { background: var(--glass-bg-2); color: var(--text-1); }

.bus-sort {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bus-sort-lbl {
  font-family: var(--font-data);
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-3);
  flex-shrink: 0;
}
.bus-sort .input { flex: 1; padding: 8px 10px; font-size: 12px; cursor: pointer; }

/* ──────────────────────────────────────────────────────────
   MATCHUP ROW
────────────────────────────────────────────────────────── */
.bus-matchups {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.bus-row {
  position: relative;
  display: grid;
  grid-template-columns: 32px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--r-md);
  border: 1px solid var(--border-2);
  background: var(--glass-bg);
}

.bus-row-rank {
  font-family: var(--font-data);
  font-size: 11px;
  font-weight: 700;
  color: var(--text-2);
  text-align: center;
}
.bus-row-rank.dim { color: var(--text-3); font-weight: 500; }

.bus-row-main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }

.bus-row-name {
  font-family: var(--font-ui);
  font-size: 14px;
  font-weight: 700;
  color: var(--text-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bus-row-stats {
  display: flex;
  gap: 10px;
  font-family: var(--font-data);
  font-size: 10px;
  color: var(--text-3);
}
.bus-row-stats b { color: var(--text-1); font-weight: 600; }

/* Per-squad outcome pills */
.bus-vsq-row {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  margin-top: 2px;
}

.bus-vsq {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 7px;
  border-radius: 999px;
  font-family: var(--font-data);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.5px;
  border: 1px solid var(--border-2);
  background: var(--glass-bg-3);
}
.bus-vsq-sq { color: var(--text-2); }
.bus-vsq-mk { font-weight: 800; }

.bus-vsq.win  { border-color: var(--accent-border); background: var(--accent-glow); }
.bus-vsq.win  .bus-vsq-sq { color: var(--text-1); }
.bus-vsq.win  .bus-vsq-mk { color: var(--accent); }

.bus-vsq.loss { border-color: var(--red-border); background: var(--red-glow); }
.bus-vsq.loss .bus-vsq-sq { color: var(--text-2); }
.bus-vsq.loss .bus-vsq-mk { color: var(--red); }

.bus-vsq[data-squad="air"]     .bus-vsq-sq { color: var(--squad-air,     #4cc9ff); }
.bus-vsq[data-squad="tank"]    .bus-vsq-sq { color: var(--squad-tank,    #ff9f4a); }
.bus-vsq[data-squad="missile"] .bus-vsq-sq { color: var(--squad-missile, #d96ee0); }

/* Contested wins (type edge offsets a power gap) read amber, distinct
 * from a clean favored win. */
.bus-vsq.win.zone-contested { border-color: var(--amber-border); background: var(--amber-glow); }
.bus-vsq.win.zone-contested .bus-vsq-mk { color: var(--amber); }

/* The pill for the squad their oneHeroId points to — their likely
 * choice — gets a ring so the eye lands on the real matchup. */
.bus-vsq.real { box-shadow: 0 0 0 1.5px var(--text-2); }

/* ── TYPE CHIP (their strongest-hero squad) ─────────────────── */
.bus-type-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-left: 8px;
  padding: 2px 8px 2px 6px;
  border-radius: 999px;
  font-family: var(--font-data);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.5px;
  vertical-align: middle;
  border: 1px solid var(--border-2);
  background: var(--glass-bg-3);
  color: var(--text-2);
}
.bus-type-sw { width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0; }
.bus-type-dflt {
  margin-left: 2px;
  padding: 0 4px;
  border-radius: 4px;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: var(--text-3);
  background: var(--glass-bg-2);
}
.bus-type-chip[data-squad="air"]     { color: var(--squad-air,     #4cc9ff); }
.bus-type-chip[data-squad="air"]     .bus-type-sw { background: var(--squad-air,     #4cc9ff); }
.bus-type-chip[data-squad="tank"]    { color: var(--squad-tank,    #ff9f4a); }
.bus-type-chip[data-squad="tank"]    .bus-type-sw { background: var(--squad-tank,    #ff9f4a); }
.bus-type-chip[data-squad="missile"] { color: var(--squad-missile, #d96ee0); }
.bus-type-chip[data-squad="missile"] .bus-type-sw { background: var(--squad-missile, #d96ee0); }

/* ── TYPE VERDICT LINE (vs their real squad) ────────────────── */
.bus-row-type {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 2px;
}
.bus-realv {
  font-family: var(--font-data);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.3px;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid var(--border-2);
}
.bus-realv.fav     { color: var(--accent); border-color: var(--accent-border); background: var(--accent-glow); }
.bus-realv.con     { color: var(--amber);  border-color: var(--amber-border);  background: var(--amber-glow); }
.bus-realv.against { color: var(--red);    border-color: var(--red-border);    background: var(--red-glow); }
.bus-realv.pow     { color: var(--text-2); }
.bus-counter-with { font-size: 10px; color: var(--text-3); }
.bus-counter-with b { color: var(--text-1); font-weight: 700; }

.bus-row-result {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  flex-shrink: 0;
}

.bus-row-wins {
  font-family: var(--font-data);
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -1px;
  color: var(--text-1);
}
.bus-row-wins small { font-size: 11px; font-weight: 600; opacity: 0.6; margin-left: 1px; }

.bus-row-verdict {
  font-family: var(--font-data);
  font-size: 9px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-3);
}

/* Row colouring per tier */
.bus-row.tier-strong   { border-color: var(--accent-border); background: linear-gradient(0deg, var(--accent-glow-2), var(--glass-bg)); }
.bus-row.tier-strong   .bus-row-wins,
.bus-row.tier-strong   .bus-row-verdict { color: var(--accent); }

.bus-row.tier-favored  { border-color: var(--accent-border); }
.bus-row.tier-favored  .bus-row-wins,
.bus-row.tier-favored  .bus-row-verdict { color: var(--accent-2, var(--accent)); }

.bus-row.tier-even     { border-color: var(--amber-border); background: linear-gradient(0deg, var(--amber-glow), var(--glass-bg)); }
.bus-row.tier-even     .bus-row-wins,
.bus-row.tier-even     .bus-row-verdict { color: var(--amber); }

.bus-row.tier-longshot { border-color: var(--red-border); background: linear-gradient(0deg, var(--red-glow), var(--glass-bg)); }
.bus-row.tier-longshot .bus-row-wins,
.bus-row.tier-longshot .bus-row-verdict { color: var(--red); }

.bus-empty {
  text-align: center;
  font-size: 13px;
  color: var(--text-3);
  padding: 28px 14px;
  border: 1px dashed var(--border-2);
  border-radius: var(--r-md);
  background: var(--glass-bg-3);
}
.bus-empty.hidden { display: none; }

/* ──────────────────────────────────────────────────────────
   TOAST
────────────────────────────────────────────────────────── */
.bus-toast {
  position: fixed;
  left: 50%;
  bottom: calc(var(--nav-h) + var(--safe-bottom) + 20px);
  transform: translateX(-50%) translateY(20px);
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--glass-bg-2);
  backdrop-filter: var(--blur-lg);
  border: 1px solid var(--border-2);
  font-size: 13px;
  color: var(--text-1);
  opacity: 0;
  transition: all var(--t-base) var(--ease);
  pointer-events: none;
  z-index: 999;
  max-width: 90vw;
  text-align: center;
}
.bus-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.bus-toast.toast-err { border-color: var(--red-border); color: var(--red); }
.bus-toast.toast-ok  { border-color: var(--accent-border); color: var(--accent); }

/* ──────────────────────────────────────────────────────────
   RESPONSIVE
────────────────────────────────────────────────────────── */
@media (min-width: 769px) {
  .bus-header   { padding: 24px var(--page-px-desk) 14px; }
  .bus-rules    { padding: 12px var(--page-px-desk); }
  .bus-setup    { padding: 20px var(--page-px-desk); grid-template-columns: 1fr 56px 1fr; align-items: stretch; }
  .bus-result   { padding: 0 var(--page-px-desk) 28px; }
  .bus-prompt   { margin: 0 var(--page-px-desk) 28px; }

  .bus-summary-grid { grid-template-columns: repeat(4, 1fr); }

  .bus-controls {
    flex-direction: row;
    align-items: center;
    gap: 12px;
  }
  .bus-filter { max-width: 480px; flex: 1; }
  .bus-sort   { flex: 0 0 auto; }

  .bus-row    { grid-template-columns: 40px 1fr auto; padding: 12px 14px; }
  .bus-row-wins { font-size: 26px; }

  .bus-fsp-display-val  { font-size: 36px; }
  .bus-fsp-direct       { font-size: 30px; }
}

@media (max-width: 480px) {
  .bus-summary-num { font-size: 20px; }
  .bus-row-wins    { font-size: 20px; }
  .bus-row-name    { font-size: 13px; }
  .bus-row-stats   { font-size: 9.5px; gap: 6px; }
  .bus-row-total   { display: none; }
  .bus-fsp-display-val { font-size: 26px; }
  .bus-filter-opt  { padding: 7px 4px; font-size: 10.5px; }
  .bus-rules       { font-size: 10px; }
  .bus-rules-note  { width: 100%; margin-left: 0; }
  .bus-squad-opt   { font-size: 10.5px; padding: 9px 4px; letter-spacing: 1px; }
}
