/* Homepage Senate control map; kept separate so the existing site theme stays intact. */
.flagship-story { border-bottom: 0; }

.home-senate-seats {
  align-self: center;
  min-width: 0;
  padding: var(--s-4) 0 var(--s-3);
}

.home-senate-seats__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s-2) var(--s-3);
}

.home-senate-seats__header .card-eyebrow { margin: 0; }

.home-senate-seats__counts {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
  text-align: right;
  white-space: normal;
}

.home-senate-seats__chart {
  display: block;
  width: 100%;
  max-width: 860px;
  height: auto;
  margin: var(--s-2) auto 0;
  overflow: visible;
}

.home-senate-seats__guides { display: none; }

.flagship-story .closest-races { margin-top: var(--s-4); }
.flagship-races-heading { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s-3); margin-bottom: var(--s-2); }
.flagship-races-heading h2 { font-size: 1rem; letter-spacing: 0; }
.flagship-races-heading .text-link { font-size: 12px; }
.flagship-story .closest-races .race-table { font-size: 12px; }
.flagship-story .closest-races .race-table th,
.flagship-story .closest-races .race-table td { padding-top: 9px; padding-bottom: 9px; }

.home-senate-seats__guide {
  fill: none;
  stroke: var(--rule-faint);
  stroke-width: 1;
}

.home-senate-seats__dot {
  stroke: var(--paper);
  stroke-width: 1.15;
}

.home-senate-seats__dot--dem { fill: var(--blue); }
.home-senate-seats__dot--tossup { fill: var(--neutral); }
.home-senate-seats__dot--rep { fill: var(--red); }

.map-heading-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--s-2) var(--s-4);
}

.map-office-toggle {
  display: inline-flex;
  overflow: hidden;
  border: 1px solid var(--rule);
}

.map-office-toggle button {
  min-height: 36px;
  padding: 6px 10px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  cursor: pointer;
}

.map-office-toggle button + button { border-left: 1px solid var(--rule); }
.map-office-toggle button:hover,
.map-office-toggle button:focus-visible { color: var(--ink); background: var(--neutral-pale); }
.map-office-toggle button.is-active { color: var(--paper); background: var(--ink); }

@media (min-width: 801px) {
  .flagship-story { grid-template-columns: minmax(0, .82fr) minmax(480px, 1.18fr); }
}

@media (max-width: 600px) {
  .home-senate-seats__counts { text-align: left; }

  .map-heading-actions { align-items: flex-start; justify-content: flex-start; }
  .flagship-races-heading { align-items: flex-start; }
}
