/* Compact additions to Clear Results, with original candidate colours retained. */
.election-night{margin:10px 0 14px;padding:12px 16px;border:1px solid var(--line,#d8e2ed);border-left:3px solid #486784;background:#fff;color:#162a40;font-size:12px;font-variant-numeric:tabular-nums;line-height:1.45}
.night-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.night-status-summary{display:flex;gap:9px 16px;align-items:center;flex-wrap:wrap}.night-status-summary strong{font-size:15px}.night-status-badge{display:inline-block;padding:4px 8px;border:1px solid #75869b;border-radius:3px;font-weight:700;background:#eef3f8;color:#243e5b}.night-status-badge[data-status=projected]{background:#eee8fa;color:#4b2f76;border-color:#866ca9}.night-status-badge[data-status=declared]{background:#e4f2ed;color:#18503c;border-color:#447d65}.night-status-badge[data-status=certified]{background:#18503c;color:#fff;border-color:#18503c}.night-status-badge:is([data-status=stale],[data-status=withdrawn]){background:#fff0d1;color:#663f08;border-color:#9c751e}.night-status-note,.night-source{color:#506278;margin:5px 0 0;font-size:11px}.night-actions{display:flex;gap:7px;flex-wrap:wrap}.election-night button{font-size:12px;padding:7px 10px;min-height:34px;border:1px solid #718297;background:#fff;color:#203b57;border-radius:3px;cursor:pointer}.election-night button[aria-pressed=true]{background:#183b5b;color:#fff}.night-reading:empty,.night-meaningful-alert:empty{display:none}.night-reading{font-weight:700;color:#614500}.night-meaningful-alert{padding:9px 12px;border-left:3px solid #16704e;background:#e6f4ed;color:#184b38;font-weight:700;margin:10px 0}.night-details,.night-source-controls{margin-top:9px;border-top:1px solid var(--line,#d8e2ed);padding-top:8px}.election-night summary{cursor:pointer;font-weight:700;padding:3px 0}.night-watch-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:10px 0}.election-night label{display:grid;gap:4px;min-width:0}.election-night :is(input,select){width:100%;min-width:0;min-height:34px;padding:6px;border:1px solid #718297;background:#fff;color:#203b57;border-radius:3px;font-size:13px}.election-night .night-check{display:flex;gap:7px;align-items:center}.election-night input[type=checkbox]{width:17px;min-height:17px;height:17px;margin:0;flex:none}.night-watchlist{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px}.night-watchlist li{display:flex;align-items:center;gap:8px;padding:3px 5px 3px 9px;border:1px solid var(--line,#d8e2ed)}.night-watchlist button{padding:3px 6px;min-height:30px}.night-timeline{list-style:none;padding:0;margin:8px 0;max-height:320px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.night-timeline li{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(160px,1fr) minmax(160px,1fr);gap:6px 15px;border-bottom:1px solid var(--line,#d8e2ed);padding:10px 0}.night-timeline time,.night-timeline span{color:#506278}.night-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.night-source-controls form{max-width:820px;margin:12px 0}.night-source-controls form>.night-check{margin:12px 0}.night-form-message{color:#9b222d;font-weight:700}.election-night :is(button,input,select,summary):focus-visible,.night-winner-card button:focus-visible{outline:3px solid #4f8ad2;outline-offset:3px}
:root[data-theme=editorial] .election-night{background:#fffaf1;color:#302f2c;border-left-color:#69685e}:root[data-theme=editorial] .election-night :is(.night-status-note,.night-source,.night-timeline time,.night-timeline span){color:#5f5b52}
:root[data-theme=night] .election-night{background:#101e30;color:#f1f4f7;border-color:#41546d;border-left-color:#99badd}:root[data-theme=night] .election-night :is(.night-status-note,.night-source,.night-timeline time,.night-timeline span){color:#b9c9dc}:root[data-theme=night] .election-night :is(button,input,select){background:#162a42;color:#f2f5f9;border-color:#8498af}:root[data-theme=night] .election-night button[aria-pressed=true]{background:#dce9f7;color:#142d47}:root[data-theme=night] .night-reading{color:#f4d38c}:root[data-theme=night] .night-form-message{color:#ffb8bf}
.night-winner-card{width:min(1100px,96vw);max-width:100vw;max-height:96dvh;padding:0;border:1px solid #7b96b7;border-radius:5px;background:#0b1729;color:#f5f6f8;overflow:auto;box-shadow:0 16px 100px #0008;text-align:center}.night-winner-card::backdrop{background:#020914e8}.night-winner-content{padding:30px clamp(18px,5vw,60px);position:relative;overflow:hidden}.night-card-eyebrow{font-size:12px;letter-spacing:.12em;color:#c1d3e8}.night-card-status{font-size:clamp(19px,3vw,30px);font-weight:700;margin:10px}.night-winner-emblem{width:clamp(100px,20vw,220px);height:clamp(100px,20vw,220px);object-fit:contain;display:block;margin:18px auto;filter:drop-shadow(0 8px 18px #0006)}.night-winner-card h1{font-size:clamp(30px,5vw,62px);line-height:1.12;color:#f5f6f8;margin:16px 0;overflow-wrap:anywhere}.night-card-source{font-size:17px;line-height:1.5;overflow-wrap:anywhere}.night-card-meta,.night-card-disclaimer{font-size:12px;color:#c1d3e8}.night-card-disclaimer{max-width:620px;margin:12px auto}.night-card-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin:22px 0 0}.night-winner-card button{padding:10px 15px;background:#e9eff6;color:#152b45;border:1px solid #aec2da;border-radius:3px;cursor:pointer;font-size:13px}.night-card-motion .night-winner-emblem{animation:night-emblem-arrive 1600ms cubic-bezier(.2,.65,.3,1) both}.night-winner-card:fullscreen{width:100vw;max-height:100vh;border:0;border-radius:0;display:grid;place-items:center}.night-winner-card:fullscreen .night-winner-content{width:min(1100px,100vw)}
@keyframes night-emblem-arrive{from{opacity:0;transform:translateY(22px) scale(.75)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:640px){.election-night{padding:10px}.night-status-summary{gap:8px}.night-status-summary>span:last-child{flex-basis:100%}.night-actions{width:100%}.night-actions button{flex:1}.night-watch-controls>label:first-child{width:100%}.night-form-grid{grid-template-columns:1fr}.night-timeline li{grid-template-columns:1fr;gap:3px}.night-winner-content{padding:22px 16px}.night-card-actions button{flex:1 1 40%}.night-card-source{font-size:15px}}
@media(prefers-reduced-motion:reduce){.night-card-motion .night-winner-emblem{animation:none!important;transform:none!important}}
.night-card-votes{font-variant-numeric:tabular-nums;font-size:clamp(18px,3vw,30px);margin:12px}.night-card-votes strong{font-size:1.25em}.night-card-votes span{white-space:nowrap}
/* Projector uses the existing title row rather than adding another dashboard row.
   Full explanation remains the badge's keyboard-accessible description. */
.projection .project-title #election-night-host{flex:0 1 570px;min-width:0;margin:0 10px}.projection .election-night{margin:0;padding:4px 8px;border:0;border-left:2px solid var(--line,#75869b);background:transparent;color:inherit;font-size:11px}.projection .night-top{display:block}.projection .night-status-summary{gap:5px 10px}.projection .night-status-summary strong,.projection .night-top>.night-status-note,.projection .night-top>.night-source,.projection .night-details{display:none}.projection .night-status-badge{padding:3px 6px;font-size:11px}.projection .night-actions{margin-top:6px;gap:6px}.projection .election-night button{min-height:28px;padding:4px 7px;font-size:11px}.projection .night-reading,.projection .night-meaningful-alert{margin:3px 0;font-size:10px}.projection .project-title>div:last-child{flex-shrink:0}
@media(max-width:900px){.projection .project-title #election-night-host{flex-basis:100%;margin:0}.projection .project-title{flex-wrap:wrap}}
.election-night :is(p,strong,span){overflow-wrap:anywhere;min-width:0}.night-status-summary strong{max-width:100%}.night-watchlist li{max-width:100%}.night-watchlist li>span{min-width:0}.night-watchlist button{flex-shrink:0}
