/* Election-night local results hub (elections.html). */
.hub-updated { font-size: 0.9rem; color: var(--muted); margin: 0.2rem 0 0.6rem; }
.hub-updated time:first-child { font-weight: 700; color: var(--ink); }
.hub-facts { font-size: 1rem; line-height: 1.55; margin: 0 0 1rem; }
.hub-local { margin: 0 0 1.2rem; }
.hub-locality { background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--red); border-radius: 10px; padding: 1rem 1.1rem; margin: 0 0 1rem; }
.hub-locality h3 { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.2rem; margin: 0 0 0.5rem; color: var(--navy); line-height: 1.3; overflow-wrap: anywhere; }
.hub-status { margin: 0 0 0.5rem; font-weight: 600; }
.hub-links { margin: 0.4rem 0 0; font-size: 0.92rem; }
.hub-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; }
.hub-contest h4 { font-size: 1rem; margin: 0 0 0.35rem; line-height: 1.3; overflow-wrap: anywhere; }
.hub-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.hub-table th, .hub-table td { text-align: left; padding: 0.4rem 0.45rem; border-bottom: 1px solid var(--line); line-height: 1.35; }
.hub-table td { text-align: right; font-variant-numeric: tabular-nums; }
.hub-party, .hub-vf, .hub-reporting, .hub-note { color: var(--muted); font-size: 0.85rem; font-weight: 400; }
.hub-note { grid-column: 1 / -1; margin: 0; }
.hub-updates { margin: 0 0 1.2rem; }
.hub-update-list { list-style: none; padding: 0; margin: 0; }
.hub-update-list li { padding: 0.4rem 0; border-bottom: 1px solid var(--line); }
.hub-update-list time { font-weight: 700; margin-right: 0.4rem; }
:is([data-theme="dark"], [data-theme="red"]) .hub-locality { background: rgba(255,255,255,0.04); }
:is([data-theme="dark"], [data-theme="red"]) .hub-locality h3, :is([data-theme="dark"], [data-theme="red"]) .hub-updated time:first-child { color: #e8ecf4; }
.hub-src { font-size: 0.88rem; color: var(--muted); }


/* mbq:hub-responsive — tablet/phone; aligned with styles.css breakpoints */
.election-hub, .hub-locality, .hub-results, .hub-table { min-width: 0; }
.hub-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 1280px) {
  .hub-results { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); }
}
@media (max-width: 980px) {
  .hub-results { grid-template-columns: 1fr; }
  .hub-locality h3 { font-size: 1.12rem; }
}
@media (max-width: 860px) {
  .hub-locality { padding: 0.75rem 0.85rem; }
  .hub-links { font-size: 0.88rem; word-break: break-word; }
}
@media (max-width: 700px) {
  .hub-locality h3 { font-size: 1.05rem; }
  .hub-facts { font-size: 0.95rem; }
  .hub-update-list li { font-size: 0.92rem; }
  .hub-update-list time { display: block; margin: 0 0 0.15rem; }
  .hub-table { font-size: 0.85rem; }
}
@media (max-width: 620px) {
  .hub-locality { border-radius: 6px; }
}


/* mbq:elect-gutter — elections.html must keep the same phone insets as home */
@media (max-width: 700px) {
  .elect-wrap {
    padding-left: 14px !important;
    padding-right: 14px !important;
    box-sizing: border-box;
  }
  .race-tabs,
  .election-hub,
  .elect-national,
  .hub-local,
  .hub-updates,
  .topic-title,
  .topic-sub,
  .page-intro,
  .topic-crumb {
    padding-left: 0;
    padding-right: 0;
  }
}
