:root{--polar-bg: #f0f6fb;--polar-bg-strong: #e2eef6;--polar-surface: #ffffff;--polar-border: #b8d4e8;--polar-border-soft: #d4e6f2;--polar-text: #1a2d3d;--polar-text-muted: #4a6578;--polar-accent: #0e6b9e;--polar-accent-hover: #0a5a82;--polar-hero-start: #1a365d;--polar-hero-mid: #2c5282;--polar-hero-end: #2b6cb0;--polar-focus: rgba(14, 107, 158, .25);--polar-error-bg: #fef2f2;--polar-error-border: #fecaca;--polar-error-text: #b91c1c;--polar-shadow: rgba(26, 54, 93, .08);--polar-shadow-strong: rgba(26, 54, 93, .12);font-family:DM Sans,Segoe UI,system-ui,sans-serif;line-height:1.5;font-weight:400;color:var(--polar-text);background-color:var(--polar-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;min-width:320px;background:radial-gradient(ellipse 120% 80% at 50% -20%,var(--polar-surface),var(--polar-bg-strong) 50%,var(--polar-bg))}#root{max-width:1480px;margin:0 auto;padding:1.25rem;min-width:0}.layout{display:grid;gap:1.25rem}.layout.loading{min-height:90vh;display:grid;place-items:center;color:var(--polar-text-muted)}.hero{padding:1.45rem 1.75rem 1.8rem;background:linear-gradient(135deg,var(--polar-hero-start) 0%,var(--polar-hero-mid) 50%,var(--polar-hero-end) 100%);color:#e2eef6;border-radius:20px;box-shadow:0 12px 40px var(--polar-shadow-strong)}.hero h1{margin:0 0 .5rem;padding:0;font-family:Outfit,system-ui,sans-serif;font-size:2.1rem;font-weight:700;letter-spacing:-.02em}.hero p{margin:0;opacity:.95;font-size:1.05rem}.resultsGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;margin-top:1.25rem}.resultsGrid>.panel{min-width:0;overflow:hidden}.panel{background:var(--polar-surface);border-radius:16px;border:1px solid var(--polar-border-soft);padding:1.25rem;box-shadow:0 4px 20px var(--polar-shadow)}.panel h2{margin:0 0 .35rem;font-family:Outfit,system-ui,sans-serif;font-size:1.3rem;font-weight:600;color:var(--polar-text)}.subtle{margin:0;color:var(--polar-text-muted);font-size:.9rem}.panelHeader p,.panel>h2+p{margin:.35rem 0 0;color:var(--polar-text-muted)}.panel>h2+p.voteShareIntro{margin:.5rem 0 1.1rem}.methodologySection{margin-top:1.25rem}.methodologyToggle{display:flex;align-items:center;justify-content:space-between;width:100%;margin:0;padding:0;border:none;background:transparent;color:var(--polar-text);font:inherit;font-family:Outfit,system-ui,sans-serif;font-size:1.3rem;font-weight:600;cursor:pointer;text-align:left}.methodologyToggle:hover{color:var(--polar-accent)}.methodologyToggleIcon{flex-shrink:0;margin-left:.5rem;font-size:.75rem;color:var(--polar-text-muted)}.methodologyContent{padding-top:.75rem}.methodologyContent .methodologyTitle{margin:1rem 0 .35rem;font-size:1.05rem;font-weight:600;color:var(--polar-text)}.methodologyContent .methodologyTitle:first-of-type{margin-top:0}.methodologyContent p{margin:0 0 .75rem;color:var(--polar-text);line-height:1.5}.methodologyContent p:last-child{margin-bottom:0}.modeToggle{display:flex;gap:.5rem;margin:1rem 0}.modeToggle button{border:1px solid var(--polar-border);background:var(--polar-bg);color:var(--polar-text);padding:.55rem .9rem;border-radius:10px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.modeToggle button:hover{background:var(--polar-bg-strong);border-color:var(--polar-border)}.modeToggle button.active{background:var(--polar-accent);color:#fff;border-color:var(--polar-accent)}.ridingMapEmbedded{margin-top:0}.ridingMapEmbeddedMessage{padding:1rem 0;color:var(--polar-text-muted)}.ridingMapEmbeddedMessage .ridingMapEmbeddedHint{display:block;margin-top:.35rem;font-size:.9rem}.ridingMapEmbeddedMessage code{font-size:.85em}.ridingTableWrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--polar-border-soft);border-radius:10px;margin-top:.25rem}.ridingTable{width:100%;min-width:800px;border-collapse:collapse;font-size:.9rem}.ridingTable th,.ridingTable td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--polar-border-soft)}.ridingTable th{font-weight:600;color:var(--polar-text);background:var(--polar-bg)}.ridingTable th.ridingTablePartyHeader{text-align:center;font-weight:600;color:var(--polar-text-muted);font-size:.85rem}.ridingTable th.ridingTableNum,.ridingTable td.ridingTableNum{text-align:right;min-width:2.5rem}.ridingTable td.ridingTablePartyCell{color:var(--polar-text-muted);font-size:.85rem}.ridingTableFilterCell{padding:.35rem .5rem;vertical-align:middle;font-weight:400;background:var(--polar-bg);border-bottom:1px solid var(--polar-border-soft)}.ridingTableFilterCell .ridingTableFilter{width:100%;min-width:0;padding:.4rem .55rem;border:1px solid var(--polar-border);border-radius:8px;font-size:.9rem;background:var(--polar-surface);color:var(--polar-text);box-sizing:border-box}.ridingTableFilterCell .ridingTableFilter:focus{outline:none;border-color:var(--polar-accent);box-shadow:0 0 0 2px var(--polar-focus)}.ridingMultiSelect{position:relative;width:100%;min-width:0}.ridingMultiSelectTrigger{display:flex;align-items:center;justify-content:space-between;gap:.35rem;width:100%;min-width:0;cursor:pointer;text-align:left;font-family:inherit}.ridingMultiSelectChevron{flex-shrink:0;font-size:.65rem;color:var(--polar-text-muted)}.ridingMultiSelectBackdrop{position:fixed;inset:0;z-index:10}.ridingMultiSelectDropdown{position:absolute;top:100%;left:0;margin-top:.2rem;min-width:100%;max-height:220px;overflow-y:auto;padding:.35rem;background:var(--polar-surface);border:1px solid var(--polar-border);border-radius:8px;box-shadow:0 6px 20px var(--polar-shadow-strong);z-index:11}.ridingMultiSelectOption{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:6px;cursor:pointer;font-size:.9rem;color:var(--polar-text)}.ridingMultiSelectOption:hover{background:var(--polar-bg-strong)}.ridingMultiSelectCheckbox{width:1rem;height:1rem;accent-color:var(--polar-accent);cursor:pointer}.ridingTable tbody tr:hover{background:var(--polar-bg-strong)}.ridingTableWinner{display:inline-block;padding:.25rem .55rem;border-radius:6px;font-weight:600;font-size:.85rem;color:#fff}.pollingSection{margin-top:.5rem;padding:1.25rem;background:var(--polar-bg);border-radius:12px;border:1px solid var(--polar-border-soft);width:100%;box-sizing:border-box}.pollingSectionTitle{margin:0 0 .75rem;font-size:.95rem;color:var(--polar-text-muted);font-weight:600}.nationalPollRow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1rem;align-items:end;width:100%;max-width:100%;box-sizing:border-box}.nationalPollRow .field input{width:100%;max-width:8.5rem;box-sizing:border-box}.field.totalCol{min-width:4rem}.nationalPollRow .field.totalCol input.totalValueInput{max-width:8.5rem;font-weight:600;background:var(--polar-bg-strong);cursor:default}.nationalPollRow .field.totalCol input.totalValueInput.totalInvalid{color:var(--polar-error-text)}.totalHeader{font-weight:600}.provinceTable th.totalHeader{color:var(--polar-text)}.totalCell{font-weight:600;padding:.35rem .5rem;color:var(--polar-text)}.totalCell.totalInvalid{color:var(--polar-error-text)}.totalWarning{margin:.75rem 0 0;padding:.65rem .9rem;background:var(--polar-error-bg);border:1px solid var(--polar-error-border);border-radius:10px;color:var(--polar-error-text);font-size:.9rem}.gridSingle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.field{display:grid;gap:.35rem}.field span{font-size:.82rem;color:var(--polar-text-muted);font-weight:600}.field input,.field select{border:1px solid var(--polar-border);border-radius:8px;padding:.45rem .55rem;font-size:.95rem;background:var(--polar-surface);color:var(--polar-text)}.field input:focus,.field select:focus{outline:none;border-color:var(--polar-accent);box-shadow:0 0 0 3px var(--polar-focus)}.settingsRow{margin-top:.95rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:1rem;align-items:start}.settingsRow .field input,.settingsRow .field select{padding:.6rem .75rem;font-size:1rem;min-height:2.5rem;box-sizing:border-box}.paramInfoWrap{position:relative;display:flex;align-items:center;margin-left:.5rem;padding-top:1.84rem}.paramInfoButton{width:2rem;height:2rem;border-radius:50%;border:1px solid var(--polar-border);background:var(--polar-bg);color:var(--polar-text-muted);font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,border-color .15s}.paramInfoButton:hover{background:var(--polar-bg-strong);border-color:var(--polar-accent);color:var(--polar-accent)}.paramInfoTooltip{position:absolute;right:0;left:auto;bottom:100%;margin-bottom:-1rem;width:280px;padding:.75rem .9rem;background:var(--polar-hero-start);color:#e2eef6;border-radius:10px;font-size:.8rem;line-height:1.45;box-shadow:0 8px 24px var(--polar-shadow-strong);z-index:10}.paramInfoTooltip p{margin:0 0 .5rem}.paramInfoTooltip p:last-child{margin-bottom:0}.paramInfoTooltip strong{color:#93c5fd}.paramInfoTooltip strong.paramInfoWhite{color:#fff}.primaryButton{margin-top:.9rem;background:var(--polar-accent);color:#fff;border:none;border-radius:10px;padding:.7rem 1.1rem;font-weight:600;font-size:1rem;cursor:pointer;transition:background .15s,transform .1s}.primaryButton:hover:not(:disabled){background:var(--polar-accent-hover)}.primaryButton:active:not(:disabled){transform:scale(.98)}.primaryButton:disabled{opacity:.55;cursor:not-allowed}.provinceTableWrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--polar-border-soft);border-radius:10px;margin-top:.5rem;scrollbar-gutter:stable}.provinceTable{width:100%;border-collapse:collapse;font-size:.78rem}.provinceTable th,.provinceTable td{border-bottom:1px solid var(--polar-border-soft);padding:.25rem .3rem;text-align:center}.provinceTable tr:last-child th,.provinceTable tr:last-child td{border-bottom:none}.provinceTable th:first-child,.provinceTable td:first-child{text-align:left;position:sticky;left:0;background:var(--polar-bg);padding-left:.7rem}.provinceTable th.colNational,.provinceTable td.colNational{font-weight:600}.provinceTable input{width:5.25rem;max-width:100%;min-height:1.8rem;border:1px solid var(--polar-border);border-radius:6px;padding:.4rem .35rem;font-size:.78rem;background:var(--polar-surface);box-sizing:border-box}.provinceTable input:focus{outline:none;border-color:var(--polar-accent);box-shadow:0 0 0 2px var(--polar-focus)}.provinceTable input:disabled{background:var(--polar-border-soft);color:var(--polar-text-muted);border-color:var(--polar-border);cursor:not-allowed;opacity:.85}.provinceTable input[type=number]::-webkit-inner-spin-button,.provinceTable input[type=number]::-webkit-outer-spin-button{opacity:0;transform:scale(.8);transform-origin:right center;transition:opacity .15s}.provinceTable input[type=number]:hover:not(:disabled)::-webkit-inner-spin-button,.provinceTable input[type=number]:hover:not(:disabled)::-webkit-outer-spin-button,.provinceTable input[type=number]:focus::-webkit-inner-spin-button,.provinceTable input[type=number]:focus::-webkit-outer-spin-button{opacity:.7}.provinceTable input[type=number]:disabled::-webkit-inner-spin-button,.provinceTable input[type=number]:disabled::-webkit-outer-spin-button{opacity:0;pointer-events:none}.seatBars{display:grid;gap:.75rem;margin-top:.75rem}.currentSeatDistribution .seatBars{gap:2.18rem}.seatRowHeader{display:flex;justify-content:space-between;gap:.5rem;font-size:.9rem;margin-bottom:.2rem}.barTrack{position:relative;width:100%;height:12px;background:var(--polar-bg-strong);border-radius:6px;overflow:visible}.majorityLine{position:absolute;top:0;bottom:0;width:2px;background:var(--polar-text);transform:translate(-50%);pointer-events:none;border-radius:1px}.majorityLine.majorityLineOverBar{background:#fff}.barFill{height:100%;border-radius:6px}.probabilities{margin-top:.2rem;display:flex;justify-content:space-between;color:var(--polar-text-muted);font-size:.82rem}.mapRidingSearchWrap{position:relative;margin-top:.6rem;margin-bottom:.4rem}.mapRidingSearchWrap .mapRidingSearchRow{display:flex;align-items:center;gap:0;min-height:2.5rem;padding:0 .85rem;border:1px solid var(--polar-border);border-radius:10px;background:var(--polar-surface);box-shadow:0 1px 4px var(--polar-shadow);transition:border-color .15s,box-shadow .15s}.mapRidingSearchWrap .mapRidingSearchRow:focus-within{border-color:var(--polar-accent);box-shadow:0 0 0 2px var(--polar-accent-subtle)}.mapRidingSearchIcon{flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--polar-text-muted);pointer-events:none}.mapRidingSearchInput{flex:1;min-width:0;padding:.6rem 0 .6rem .65rem;font-size:.95rem;border:none;background:transparent;color:var(--polar-text);line-height:1.4}.mapRidingSearchInput::placeholder{color:var(--polar-text-muted);font-style:italic}.mapRidingSearchWrap .mapRidingSearchRow:hover{border-color:var(--polar-border-soft)}.mapRidingSearchInput:focus{outline:none}.mapRidingSearchResults{position:absolute;top:100%;left:0;right:0;margin:.25rem 0 0;padding:.35rem 0;list-style:none;background:var(--polar-surface);border:1px solid var(--polar-border-soft);border-radius:10px;box-shadow:0 6px 20px var(--polar-shadow-strong);z-index:1100;max-height:280px;overflow-y:auto}.mapRidingSearchResultItem{padding:.5rem .85rem .5rem 2.5rem;cursor:pointer;display:grid;gap:.15rem;transition:background .1s}.mapRidingSearchResultItem:hover{background:var(--polar-bg-strong)}.mapRidingSearchResultItem strong{font-size:.9rem}.mapRidingSearchResultItem span{font-size:.8rem;color:var(--polar-text-muted)}.mapRidingSearchNoResults{cursor:default;color:var(--polar-text-muted);font-style:italic}.mapRidingSearchNoResults:hover{background:transparent}.mapWrap{position:relative;margin-top:.8rem;border-radius:12px;overflow:hidden;border:1px solid var(--polar-border-soft);min-height:400px}.mapWrapLeaflet{height:600px;min-height:400px}.mapLeafletNoTiles{background:var(--polar-bg)}.mapLeafletNoTiles .leaflet-tile-pane{display:none}.mapRidingTooltip{background:var(--polar-surface)!important;color:var(--polar-text)!important;border:1px solid var(--polar-border-soft)!important;border-radius:10px!important;padding:.5rem .65rem!important;font-size:.9rem!important;box-shadow:0 4px 16px var(--polar-shadow-strong)!important}.mapRidingTooltip:before{border-top-color:var(--polar-surface)!important}.mapSvg{width:100%;height:auto;display:block;background:var(--polar-bg);cursor:grab;touch-action:none}.mapSvg:active{cursor:grabbing}.mapControlsOverlay{position:absolute;top:.75rem;right:.75rem;display:flex;flex-direction:column;gap:.25rem;z-index:1000;pointer-events:auto}.mapControlsOverlay button{width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--polar-border);background:var(--polar-surface);color:var(--polar-text);border-radius:8px;font-size:1.25rem;font-weight:600;cursor:pointer;line-height:1;box-shadow:0 2px 8px var(--polar-shadow);transition:background .15s,border-color .15s}.mapControlsOverlay button:hover{background:var(--polar-bg-strong);border-color:var(--polar-accent);color:var(--polar-accent)}.mapControlReset svg{display:block}.mapTooltip{position:fixed;z-index:20;padding:0;border-radius:12px;background:var(--polar-surface);color:var(--polar-text);border:1px solid var(--polar-border-soft);box-shadow:0 10px 40px var(--polar-shadow-strong),0 0 0 1px #00000008;pointer-events:auto;max-width:320px;min-width:240px;overflow:hidden}.mapTooltipHeader{padding:.85rem 1rem .5rem;border-bottom:1px solid var(--polar-border-soft)}.mapTooltipRiding{display:block;font-size:1rem;font-weight:600;line-height:1.3;color:var(--polar-text)}.mapTooltipProvince{display:block;font-size:.82rem;color:var(--polar-text-muted);margin-top:.15rem}.mapTooltipWinner{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.6rem 1rem;background:var(--polar-bg);border-bottom:1px solid var(--polar-border-soft)}.mapTooltipWinnerLabel{font-size:.8rem;color:var(--polar-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.02em}.mapTooltipWinnerParty{font-size:.95rem;font-weight:600;color:var(--polar-text)}.mapTooltipTableWrap{padding:.6rem 1rem .85rem}.mapTooltipTableCaption{display:block;font-size:.75rem;color:var(--polar-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.02em;margin-bottom:.4rem}.mapTooltipTable{width:100%;font-size:.85rem;border-collapse:collapse}.mapTooltipTable th{text-align:left;padding:.25rem .5rem .25rem 0;font-size:.72rem;font-weight:600;color:var(--polar-text-muted);text-transform:uppercase;letter-spacing:.03em}.mapTooltipTable th:last-child{text-align:right}.mapTooltipTable td{padding:.3rem .5rem .3rem 0;color:var(--polar-text);border-top:1px solid var(--polar-border-soft)}.mapTooltipTable td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--polar-text-muted)}.mapTooltipTable tbody tr.mapTooltipTableRowWinner td{font-weight:600;color:var(--polar-text)}.mapTooltipTable tbody tr.mapTooltipTableRowWinner td:last-child{color:var(--polar-accent)}.errorBox{border:1px solid var(--polar-error-border);background:var(--polar-error-bg);color:var(--polar-error-text);border-radius:12px;padding:.7rem .85rem}.footerNote{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;color:var(--polar-text-muted);font-size:.92rem;padding:.75rem 0 .4rem;border-top:1px solid var(--polar-border-soft);margin-top:.4rem}.footerNote a{color:var(--polar-text);text-decoration:none}.footerNote a:hover{text-decoration:underline}.footerNote .footerSep{color:var(--polar-text-muted);margin:0 .15rem}@media(max-width:1100px){.resultsGrid{grid-template-columns:1fr}}@media(max-width:840px){.gridSingle,.settingsRow{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){#root{padding:.85rem}.hero{padding:1rem 1rem 1.25rem;border-radius:14px}.hero h1{font-size:1.65rem}.hero p{font-size:.95rem}.panel{padding:1rem;border-radius:12px}.panel h2{font-size:1.15rem}.modeToggle{flex-wrap:wrap;gap:.4rem}.modeToggle button{padding:.6rem .75rem;font-size:.9rem;min-height:2.75rem}.nationalPollRow{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.nationalPollRow .field input{max-width:none}.nationalPollRow .field.totalCol{grid-column:1 / -1}.nationalPollRow .field.totalCol input.totalValueInput{max-width:8rem}.pollingSection{padding:1rem}.settingsRow{grid-template-columns:1fr 1fr;gap:.75rem}.paramInfoWrap{grid-column:1 / -1;margin-left:0;margin-top:.25rem;padding-top:0;justify-content:flex-start}.paramInfoTooltip{width:min(280px,calc(100vw - 2rem));right:0;left:0}.seatRowHeader{flex-wrap:wrap;font-size:.85rem;gap:.25rem}.seatBars{gap:1.25rem}.currentSeatDistribution .seatBars{gap:1.5rem}.probabilities{flex-wrap:wrap;gap:.25rem;font-size:.78rem}.mapWrapLeaflet{height:420px;min-height:320px}.mapWrap{min-height:320px}.methodologyToggle{font-size:1.1rem}}@media(max-width:640px){.footerNote{flex-direction:column;align-items:center;text-align:center;justify-content:center}}@media(max-width:480px){#root{padding:.65rem}.hero{padding:.85rem .75rem 1rem;border-radius:12px}.hero h1{font-size:1.45rem}.hero p{font-size:.9rem}.panel{padding:.85rem}.panel h2{font-size:1.05rem}.modeToggle{flex-direction:column}.modeToggle button{width:100%;justify-content:center}.nationalPollRow .field span{font-size:.78rem}.settingsRow{grid-template-columns:1fr}.primaryButton{width:100%;padding:.75rem 1rem;margin-top:.75rem}.ridingTable{font-size:.82rem}.ridingTable th,.ridingTable td{padding:.4rem .5rem}.mapControlsOverlay button{width:2.5rem;height:2.5rem}.mapTooltip{max-width:min(320px,calc(100vw - 1.5rem))}}
