[hidden]{display:none!important}
:root{--ink:#101827;--muted:#586578;--line:#dce2ea;--yellow:#ffd700;--red:#d71920;--blue:#0e2b72}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;color:var(--ink)}body{background:#f6f7f9}.display-shell{background:#fff;min-height:100vh;display:flex;flex-direction:column;padding:18px 20px}.display-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:800;color:#647287}.display-head h1,.tv-header h1{font-size:clamp(20px,2.7vw,31px);margin:6px 0 0;font-weight:900}.source-badge{display:inline-flex;align-items:center;padding:8px 12px;border-radius:18px;white-space:nowrap;font-size:11px;font-weight:900;letter-spacing:.03em}.source-badge.unofficial{color:#ab1621;background:#ffe6e9}.source-badge.official{color:#075d41;background:#dcf8ec}.source-badge.pending{color:#374151;background:#e5e7eb}.status-line,.display-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px;color:var(--muted)}.status-line{padding:12px 1px;font-weight:650}.display-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.alert{background:#fff5ed;border:1px solid #ffc896;border-radius:8px;color:#723c07;font-size:13px;padding:12px;margin:10px 0}.uo-scroll{min-height:260px;flex:1;display:flex;flex-direction:column}.scroll-viewport{flex:1;min-height:250px;max-height:570px;overflow:hidden;position:relative;mask-image:linear-gradient(transparent 0%,#000 8%,#000 92%,transparent 100%)}.scroll-track{animation:rise var(--scroll-duration,25s) linear infinite;will-change:transform}.scroll-viewport:hover .scroll-track{animation-play-state:paused}@keyframes rise{to{transform:translateY(calc(-1 * var(--loop-height,500px)))}}.scroll-group{display:flex;flex-direction:column;gap:10px;padding:5px 1px}.update-card{display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 12px;background:#f8fafc;border:1px solid #e1e7ef;border-radius:12px}.update-card.is-latest{border-color:#f2bc34;background:#fffdf5}.update-code{font-size:16px;font-weight:900;color:#0d3271}.update-info{min-width:0}.update-seat{font-size:12px;color:#56667a;font-weight:700;margin-bottom:3px}.update-candidate{font-size:clamp(13px,1.7vw,17px);font-weight:900;overflow-wrap:anywhere}.update-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end;max-width:160px}.party-pill{border-radius:14px;padding:6px 8px;font-weight:850;font-size:11px;border:1px solid #c6cfdb}.latest-badge{border-radius:14px;padding:5px 8px;font-size:10px;font-weight:900;background:var(--yellow);color:#2a2700}.time-label{font-size:10px;color:#5a6674;text-align:right}.status-sub{font-size:10px;font-weight:750;color:#5a6575}.official-board{flex:1;min-height:0}.filter-buttons{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 14px}.filter{background:#fff;border:1px solid #cfd6df;border-radius:20px;padding:9px 13px;font-size:12px;font-weight:800;cursor:pointer}.filter.active{border-color:#d91b27;box-shadow:0 0 0 1px #d91b27}.seat-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.seat-tile{min-height:91px;border-radius:10px;padding:10px 8px;display:flex;flex-direction:column;gap:5px;border:1px solid #d4d7dc;min-width:0}.seat-tile.not-reported{background:#e9e9e7;color:#354052;border:1px dashed #adb3bd}.seat-top{display:flex;align-items:center;justify-content:space-between;gap:4px}.seat-code{font-weight:900;font-size:13px}.seat-party{font-size:14px;font-weight:900;overflow-wrap:anywhere}.seat-name{font-size:10px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.9}.seat-candidate{font-size:10px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.seat-tile .latest-badge{padding:3px 5px;font-size:8px}.seat-time{font-size:9px;margin-top:auto;opacity:.85}.placeholder{padding:40px 16px;text-align:center;color:#6b7280;background:#f3f5f7;border-radius:12px}.tv-page{background:#071329;color:#f8fafc}.tv-shell{padding:20px;min-height:100vh;display:flex;flex-direction:column;gap:14px}.tv-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.tv-header .eyebrow{color:#c1cee0}.tv-header-status{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.tv-header-status small{font-size:11px;color:#c0cadd}.tv-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;flex:1}.tv-pane{min-width:0;background:#f9fafc;border-radius:14px;color:#101827;padding:14px;display:flex;flex-direction:column}.tv-pane-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:6px}.tv-pane-head h2{margin:0;font-size:22px;font-weight:900}.tv-pane-head strong{font-size:23px}.unofficial-pane .tv-pane-head{color:#bc1c29}.official-pane .tv-pane-head{color:#0b624a}.tv-description{font-size:12px;color:#637083;margin:2px 0 12px}.tv-pane .seat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.tv-pane .seat-tile{min-height:88px;padding:8px}.tv-pane .seat-code{font-size:13px}.tv-pane .seat-party{font-size:13px}.tv-pane .seat-name{font-size:9px}.tv-pane .seat-candidate{font-size:10px}.latest-line{margin-top:auto;padding-top:12px;font-weight:700;font-size:13px;color:#475569}.tv-footer{text-align:center;font-size:10px;color:#acbad0;letter-spacing:.06em}.tv-page .alert{margin:0}@media(min-width:1600px){.tv-shell{padding:26px}.tv-pane .seat-tile{min-height:103px}.tv-pane .seat-party{font-size:15px}.tv-pane .seat-candidate{font-size:11px}}@media(max-width:980px){.seat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tv-columns{grid-template-columns:1fr}.tv-pane .seat-grid{grid-template-columns:repeat(7,minmax(0,1fr))}}@media(max-width:620px){.display-shell{padding:14px 12px}.display-head h1{font-size:20px}.source-badge{font-size:9px;padding:6px 9px}.status-line,.display-foot{font-size:10px}.seat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.seat-tile{min-height:81px;padding:7px 5px}.seat-party{font-size:11px}.seat-code{font-size:11px}.seat-name{font-size:8px}.seat-candidate{font-size:9px}.update-card{grid-template-columns:43px minmax(0,1fr) 85px;padding:10px 8px}.update-code{font-size:13px}.update-candidate{font-size:12px}.update-meta{max-width:85px}.party-pill{font-size:9px}.tv-shell{padding:10px}.tv-pane .seat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tv-pane{padding:10px}}@media(prefers-reduced-motion:reduce){.scroll-track{animation:none!important}.scroll-viewport{overflow-y:auto;mask-image:none}.scroll-group.duplicate{display:none}}


/* OFFICIAL modal: mirror BEP homepage seat-map proportions and auto-fit behavior.
   Kept inside overlay-page scope so the locked TV wallboard remains unchanged. */
.overlay-page .official-map{border:1px solid #deded9;border-radius:16px;background:#fff;padding:1rem}
.overlay-page .official-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.25rem .1rem 1rem;border-bottom:1px solid #deded9}
.overlay-page .official-toolbar .filter-buttons,.overlay-page .official-legend{display:flex;flex-wrap:wrap;gap:.45rem;margin:0}
.overlay-page .official-toolbar button{display:inline-flex;align-items:center;gap:.4rem;border:1px solid #d8d8d3;border-radius:999px;background:#fff;color:#3f3f3b;padding:.42rem .68rem;font-size:.72rem;font-weight:780;cursor:pointer}
.overlay-page .official-toolbar button:hover,.overlay-page .official-toolbar button.active{border-color:#d91b27;box-shadow:0 0 0 2px rgba(217,27,39,.12)}
.overlay-page .official-toolbar .legend-dot{width:.6rem;height:.6rem;border-radius:50%;display:inline-block;flex-shrink:0}
.overlay-page .official-seat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:.5rem;padding-top:1rem}
.overlay-page .official-seat-cell{position:relative;display:flex;min-height:74px;min-width:0;flex-direction:column;justify-content:space-between;gap:.2rem;padding:.55rem;border:1px solid var(--seat-fill);border-radius:.65rem;background:var(--seat-fill);color:var(--seat-text);text-decoration:none;transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease}
.overlay-page a.official-seat-cell:hover{color:var(--seat-text);transform:translateY(-2px);box-shadow:0 5px 15px rgba(0,0,0,.12)}
.overlay-page a.official-seat-cell:focus-visible{outline:3px solid #f4c500;outline-offset:2px}
.overlay-page .official-seat-cell .official-seat-code{font-size:.63rem;font-weight:900;letter-spacing:.04em}
.overlay-page .official-seat-cell .official-seat-party{font-size:.78rem;line-height:1;overflow-wrap:anywhere}
.overlay-page .official-seat-cell .official-seat-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.58rem;opacity:.82}
.overlay-page .official-seat-cell.is-unreported{border:1px dashed #b0b3b9}
@media(max-width:767.98px){
 .overlay-page .official-toolbar{flex-direction:column}
 .overlay-page .official-seat-grid{grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:.4rem}
 .overlay-page .official-seat-cell{min-height:65px;padding:.45rem}
 .overlay-page .official-seat-cell .official-seat-name{display:none}
}
@media(max-width:420px){.overlay-page .official-seat-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.overlay-page .official-map{padding:.65rem}}

/* Official overlay: highlight only the seat with the most recent official timestamp.
   Feed row.latest is determined by the server; no client-side guesses. */
.overlay-page .official-seat-cell.is-reported.is-latest {
  border:3px solid #ffda00;
  box-shadow:0 0 0 2px rgba(255,218,0,.30);
}
.overlay-page .official-seat-cell.is-reported.is-latest::after {
  content:""; position:absolute; top:5px; right:5px;
  width:7px; height:7px; border-radius:50%;
  background:#ffda00; box-shadow:0 0 0 1px rgba(0,0,0,.4);
  pointer-events:none;
}
.overlay-page a.official-seat-cell.is-reported.is-latest:hover {
  box-shadow:0 0 0 2px rgba(255,218,0,.38), 0 6px 16px rgba(0,0,0,.17);
}
