html,body{margin:0;padding:0;height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}#map{position:absolute;inset:0}#ui{position:absolute;top:16px;left:16px;z-index:1000;box-sizing:border-box;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;background:#fff;color:#222;border-radius:12px;padding:24px;box-shadow:0 8px 24px #00000029;font-size:1rem;line-height:1.55;scrollbar-color:#a7b4ca #f3f5f9}#ui .header{margin:0 0 12px;color:#204285;font-size:1.5rem;font-weight:700;line-height:1.2;text-align:left;text-wrap:balance}#ui .subheader{margin:0 0 20px;padding-bottom:16px;border-bottom:2px solid #ecb11f;color:#204285;font-size:1rem;font-weight:600;text-align:left}#ui p{margin:0 0 20px}#ui ::selection{background:#ecb11f;color:#222}#ui :focus-visible{outline:2px solid #1f6feb;outline-offset:3px}#address{box-sizing:border-box;width:100%;min-height:48px;padding:12px;font:inherit;color:#222;background:#fff;border-radius:6px;border:1px solid #a7b4ca;caret-color:#204285}#address::placeholder{color:#555;opacity:1}#address:hover{border-color:#204285}#address:focus{border-color:#1f6feb}#search{margin-top:0;width:100%;min-height:48px;padding:12px 20px;font:inherit;font-weight:600;border:none;border-radius:6px;background:#204285;color:#fff;cursor:pointer}#search:hover{background:#183365}#search:active{background:#12274e}#results{margin:20px 0 0;padding-left:0;list-style:none}#results:empty{margin:0}#results li{padding:6px 0;font-size:13px;color:#333;border-bottom:1px solid rgba(0,0,0,.05)}#results strong{display:block;margin-top:10px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#666}#results .results-note{margin-bottom:10px;padding:10px 12px;border:0;border-left:3px solid #ecb11f;background:#fff8e6;font-size:13px;line-height:1.5}.header{font-size:1.2rem;text-align:center}.subheader{font-size:1.1rem;text-align:center}#popoverBackdrop{position:fixed;inset:0;background:#14223a94;z-index:3000}#popover{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-sizing:border-box;width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;background:#fff;color:#222;border-radius:12px;padding:40px;box-shadow:0 20px 56px #00000040;z-index:3100;font-size:1rem;line-height:1.65;scrollbar-color:#a7b4ca #f3f5f9}#popover .header{margin:0 0 12px;color:#204285;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;line-height:1.2;text-align:left;text-wrap:balance}#popover .subheader{margin:0 0 24px;padding-bottom:20px;border-bottom:2px solid #ecb11f;color:#204285;font-size:1rem;font-weight:600;text-align:left}#popover p{margin:0 0 20px}#popover p:last-child{margin-bottom:0}#popover a{color:#204285;text-underline-offset:3px}#popover a:hover{text-decoration-thickness:2px}#popover strong{font-weight:600}#popover ul{margin:0 0 24px;padding-left:24px}#popover li+li{margin-top:8px}#popover>div{margin:24px 0}#popover img{max-width:100%;height:auto!important}#popover ::selection{background:#ecb11f;color:#222}#getStarted{display:block;margin:24px 0 28px;width:100%;min-height:48px;padding:12px 20px;font:inherit;font-weight:600;border:none;border-radius:6px;background:#204285;color:#fff;cursor:pointer}#getStarted:hover{background:#183365}#getStarted:active{background:#12274e}#popover :focus-visible{outline:2px solid #1f6feb;outline-offset:3px}@media(max-width:640px){#popover{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:24px 20px;line-height:1.55}}#attribution{position:fixed;bottom:5px;right:5px;background:#ffffff73;padding:3px}#detailPanel{--response-ink: #222;--response-blue: #204285;--response-rule: #dce2ec;position:fixed;inset:16px 16px 16px auto;box-sizing:border-box;width:min(1120px,calc(100vw - 32px));overflow:auto;overscroll-behavior:contain;background:#fff;color:var(--response-ink);border-radius:12px;box-shadow:0 14px 40px #0000002e;z-index:2000;scrollbar-color:#204285 #eef1f6;scroll-padding-top:var(--response-header-height, 130px)}#detailPanel *,#detailPanel *:before,#detailPanel *:after{box-sizing:border-box}#detailPanel::selection,#detailPanel ::selection{background:#ecb11f;color:#222}#detailHeader{position:sticky;top:0;z-index:4;background:#fff;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px 32px 24px;border-bottom:2px solid #ecb11f}.detail-heading{min-width:0}#detailTitle{margin:0;color:var(--response-blue);font-size:1.75rem;line-height:1.2;letter-spacing:-.025em;overflow-wrap:anywhere}#detailRace{margin:10px 0 0;color:#444;font-size:1rem;line-height:1.5}.detail-actions{display:flex;flex-shrink:0;gap:8px}#closePanel,#shareResponses{flex-shrink:0;min-height:44px;padding:8px 16px;border:1px solid var(--response-rule);border-radius:6px;background:#fff;color:var(--response-blue);font:inherit;font-weight:600;cursor:pointer}#closePanel:hover,#shareResponses:hover{background:#eef1f6;border-color:#204285}#detailPanel :focus-visible,.result-race:focus-visible,.result-candidate:focus-visible{outline:2px solid #1f6feb;outline-offset:3px}.response-toolbar{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,300px);gap:16px 24px;padding:20px 32px 16px;background:#f3f5f9;border-bottom:1px solid var(--response-rule)}.candidate-selection{border:0;padding:0;margin:0;min-width:0}.candidate-selection legend,.question-jump{font-size:.875rem;font-weight:600;color:#204285}.candidate-selection legend{margin-bottom:10px}.candidate-toggles{display:flex;flex-wrap:wrap;gap:8px;padding:3px;margin:-3px}.candidate-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid #a7b4ca;border-radius:6px;background:#fff;font-size:.875rem;line-height:1.4}.candidate-toggle:has(:checked){border-color:#204285;color:#204285}.candidate-toggle:hover{background:#e6edf9}.candidate-toggle-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.candidate-toggle:has(:disabled) .candidate-toggle-label{cursor:default}.candidate-toggle input{accent-color:#204285;width:16px;height:16px;margin:0;flex-shrink:0}.questionnaire-pdf-link{color:#204285;font-size:.8125rem;font-weight:650;white-space:nowrap;text-underline-offset:3px}.questionnaire-pdf-link:hover{text-decoration-thickness:2px}#detailTitle .questionnaire-pdf-link{font-size:.875rem;letter-spacing:normal;vertical-align:middle}.question-jump{display:flex;flex-direction:column;gap:10px;min-width:0}.question-select{width:100%;min-height:44px;padding:8px 12px;border:1px solid #a7b4ca;border-radius:6px;background:#fff;color:#222;font:inherit;font-weight:400;text-overflow:ellipsis}.response-status{grid-column:1 / -1;margin:0;color:#555;font-size:.8125rem;line-height:1.5}.response-questions{padding:0 32px 40px}.response-question{padding:32px 0 36px;border-bottom:1px solid var(--response-rule)}.response-question:last-child{border-bottom:0;padding-bottom:0}.question-heading{margin:0;max-width:75ch;font-size:1.125rem;line-height:1.55;font-weight:650;color:#204285;text-wrap:pretty}.question-position{margin:10px 0 24px;font-size:.8125rem;color:#555;font-variant-numeric:tabular-nums}.answer-grid{display:grid;grid-template-columns:repeat(var(--candidate-count),minmax(0,1fr));overflow-x:auto;gap:28px;padding-bottom:8px}.candidate-answer{min-width:0}.answer-candidate{margin:0 0 12px;padding:12px 0;border-top:2px solid #ecb11f;font-size:1rem;line-height:1.4;color:#204285}.answer-text{margin:0;max-width:72ch;font-size:1rem;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.answer-empty{color:#666;font-style:italic}#detailPanel[data-view=single] .response-questions{max-width:800px;margin-inline:auto}#detailPanel[data-view=single] .answer-grid{grid-template-columns:minmax(0,1fr)}.response-empty{font-size:1rem;line-height:1.6;padding-block:24px}.result-race,.result-candidate{display:block;width:100%;min-height:44px;padding:8px 4px;border:0;background:transparent;color:#204285;font:inherit;text-align:left;cursor:pointer}.result-race{font-weight:700}.result-race:hover,.result-candidate:hover{text-decoration:underline;text-underline-offset:3px}@media(max-width:640px){#detailPanel{inset:0;width:100%;border-radius:0}#detailHeader{padding:24px 20px 20px;gap:12px}#detailTitle{font-size:1.5rem}#detailRace{font-size:.875rem}.response-toolbar{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px 20px}.candidate-chooser[open] .candidate-toggles{max-height:180px;overflow:auto}.question-jump{gap:6px}.response-questions{padding:0 20px 32px}.response-question{padding-block:28px}.answer-grid{grid-template-columns:minmax(0,1fr);gap:28px;overflow:visible}.question-heading{font-size:1.0625rem}}.candidate-chooser summary{min-height:44px;padding:12px;border:1px solid #a7b4ca;border-radius:6px;background:#fff;color:#204285;cursor:pointer;font-size:.875rem;font-weight:600}.candidate-chooser[open] summary{margin-bottom:12px}#detailPanel[data-view=single] .response-toolbar:has(>.question-jump:first-child){grid-template-columns:minmax(0,1fr)}@media(min-width:641px)and (max-width:1100px){.answer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}#detailPanel[data-view=compare]{width:calc(100vw - 32px)}.question-header{position:sticky;top:var(--response-header-height, 130px);z-index:1;background:#fff;padding-block:12px;margin-top:-12px;margin-bottom:12px;max-height:40vh;overflow-y:auto}.question-header .question-position{margin-bottom:0}@media(max-width:640px){#detailPanel[data-view=compare]{width:100%}}@media(max-width:640px),(max-height:600px){#detailHeader{align-items:center;gap:12px;padding:10px 16px}#detailTitle{font-size:1.125rem;line-height:1.3;letter-spacing:normal}#detailRace{margin-top:4px;font-size:.75rem;line-height:1.4}#closePanel{padding:8px 12px;font-size:.875rem}.question-header{position:static;max-height:none;overflow:visible}}#districtControls{position:fixed;right:16px;bottom:40px;z-index:1100;width:min(270px,calc(100vw - 32px));box-sizing:border-box;max-height:calc(100dvh - 56px);overflow-y:auto;padding:12px 16px;background:#fff;color:#204285;border-radius:8px;box-shadow:0 4px 18px #00000029;font-size:.875rem}#districtControls label{display:flex;gap:10px;align-items:center;min-height:44px;cursor:pointer}#districtControls input{width:18px;height:18px;margin:0;accent-color:#204285}.district-toggle{font-weight:650}#districtTypes{padding:8px 0 0;margin:8px 0 0;border:0;border-top:1px solid #dce2ec}#districtTypes legend{padding:0 4px 0 0;font-weight:600}#districtTypes label:after{content:"";width:24px;flex-shrink:0;margin-left:auto;border-top:2px solid #204285}#districtTypes label:has([value=council]):after{border-top-color:#996f08;border-top-style:dashed}#districtTypes label:has([value=mayor]):after{border-top:3px dotted #a33860}#districtTypes label:has([value=congress]):after{border-top:3px solid #6842a6}#districtTypes label:has([value=assembly]):after{border-top:2px dashed #16745c}#districtTypes label:has([value=senate]):after{border-top:2px dotted #bd5027}#districtStatus{margin:12px 0 4px;color:#444;line-height:1.5}#districtSearchNote{margin:4px 0;color:#444;line-height:1.5}#districtControls button{min-height:44px;padding:8px 0;border:0;background:none;color:#204285;text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer}#districtControls :focus-visible{outline:2px solid #1f6feb;outline-offset:3px}#districtHover{position:fixed;z-index:1200;pointer-events:none;max-width:min(320px,calc(100vw - 32px));padding:10px 14px;border-radius:6px;background:#204285;color:#fff;box-shadow:0 4px 12px #0000002e;font-size:.875rem;line-height:1.5}#districtHover div+div{margin-top:6px}#mapPanels{display:contents}@media(max-width:640px){#map{position:fixed}#mapPanels{position:relative;z-index:1100;display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;padding:12px 12px 48px;pointer-events:none}#mapPanels>*{pointer-events:auto}#ui{position:sticky;top:0;left:auto;width:calc(100% + 24px);margin:-12px -12px 0;max-height:100dvh;padding:0;overflow:visible;border-radius:0 0 12px 12px}#searchPanelBody{box-sizing:border-box;width:100%;max-height:100dvh;overflow-y:auto;padding:16px 20px}body.has-searched #searchIntro{display:none}#districtControls{position:fixed;right:0;bottom:0;left:0;width:100%;margin:0;max-height:calc(100dvh - 24px);border-radius:12px 12px 0 0}}.search-actions{display:flex;gap:12px;margin-top:12px}#clearSearch,#shareSearch{flex-shrink:0;min-height:48px;padding:12px;border:1px solid #a7b4ca;border-radius:6px;background:#fff;color:#204285;font:inherit;font-weight:600;cursor:pointer}#clearSearch:hover,#shareSearch:hover{background:#eef1f6;border-color:#204285}#clearSearch:active,#shareSearch:active{background:#dfe6f1}#ui .panel-toggle,#districtControls .panel-toggle{position:absolute;top:8px;right:8px;z-index:2;width:36px;height:36px;min-height:36px;margin:0;padding:0;border:2px solid #fff;border-radius:50%;background:#204285;color:#fff;box-shadow:0 3px 10px #00000047;font:inherit;font-size:1.35rem;font-weight:700;line-height:1;text-align:center;text-decoration:none;cursor:pointer}#ui .panel-toggle[hidden],#districtControls .panel-toggle[hidden]{display:none}#ui.minimized{height:44px;padding:0;overflow:visible;background:transparent;box-shadow:none;pointer-events:none}#ui.minimized .panel-toggle{pointer-events:auto}#districtControls.minimized{width:44px;height:44px;border-radius:12px;padding:0;overflow:visible}#ui.minimized .panel-toggle{top:8px;right:8px;width:36px;height:36px;min-height:36px}#districtControls.minimized .panel-toggle{top:4px;right:4px;width:36px;height:36px;min-height:36px}#ui .panel-toggle:hover,#districtControls .panel-toggle:hover{background:#183365}@media(max-width:640px){#districtControls.minimized{right:12px;bottom:12px;left:auto}}
