@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c95a17d6aa1ccc69-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/84792440f5374347-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/10735954b8957dce-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/69c8297e91a203ed-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/32ec8d161d520037-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ceda3e828136e1b8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/103fc5fac08dcb15-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Tight Fallback;src:local("Arial");ascent-override:100.51%;descent-override:25.03%;line-gap-override:0.00%;size-adjust:96.39%}.__className_a3c0d3{font-family:Inter Tight,Inter Tight Fallback;font-style:normal}.__variable_a3c0d3{--font-inter-tight:"Inter Tight","Inter Tight Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_898c26{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_898c26{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{font-family:var(--font-inter-tight),ui-sans-serif,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}#app{display:flex;flex-direction:column;height:100vh}.mono{font-family:var(--font-jetbrains-mono),ui-monospace,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.label{font-family:var(--font-inter-tight),system-ui,sans-serif;text-transform:uppercase;letter-spacing:.05em}.hdr{gap:14px;padding:11px 16px;border-bottom:1px solid #dfe5e8;background:var(--paper);flex:0 0 auto}.hdr,.hdr .mark{display:flex;align-items:center}.hdr .mark{gap:9px}.hdr .mark img{height:30px;width:30px}.hdr .wordmark{font-weight:600;letter-spacing:-.01em;font-size:16px;color:var(--ink)}.hdr .sub,.hdr .wordmark{font-family:var(--font-inter-tight),system-ui,sans-serif}.hdr .sub{text-transform:uppercase;letter-spacing:.05em;font-size:11px;color:var(--steel);border-left:1px solid #ccd6db;padding-left:12px}.hdr .count{margin-left:auto;font-size:13px;color:#4e6270}.hdr .count b{color:var(--ink);font-family:var(--font-jetbrains-mono),monospace}.hdr .freshness{margin-right:14px;color:var(--steel)}.hdr .freshness .mono{color:#5d707c}.main{flex:1 1 auto}.main,.side{display:flex;min-height:0}.side{width:440px;flex:0 0 440px;border-right:1px solid #dfe5e8;flex-direction:column;background:#fbfcfd}.mapwrap{flex:1 1 auto;position:relative;min-width:0}#map{position:absolute;inset:0}.controls{padding:11px 12px;border-bottom:1px solid #dfe5e8;flex-direction:column;flex:0 0 auto}.controls,.row{display:flex;gap:8px}.row{align-items:center;flex-wrap:wrap}.controls input[type=text],.controls select{font:inherit;padding:6px 9px;border:1px solid #c6d0d6;border-radius:6px;background:#fff;color:var(--ink)}.controls input[type=text]{flex:1 1 180px}.controls input:focus,.controls select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(20,48,62,.13)}.seg{display:inline-flex;border:1px solid #c6d0d6;border-radius:6px;overflow:hidden}.seg button{border:0;background:#fff;padding:6px 11px;font:inherit;cursor:pointer;color:#43535d;font-family:var(--font-inter-tight),system-ui,sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.seg button.on{background:var(--accent);color:#fff}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid #c6d0d6;background:#fff;cursor:pointer;color:#43535d;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-family:var(--font-inter-tight),system-ui,sans-serif;letter-spacing:.02em}.chip .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.chip.on{border-color:var(--accent)}.btn,.chip.on{color:#fff;background:var(--accent)}.btn{font:inherit;padding:6px 11px;border:1px solid var(--accent);border-radius:6px;cursor:pointer;font-family:var(--font-inter-tight),system-ui,sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.btn.ghost{background:#fff;color:var(--ink);border-color:#c6d0d6}.btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.btn:disabled{opacity:.5;cursor:default}.list{overflow-y:auto;flex:1 1 auto;min-height:0}.item{display:flex;gap:8px;padding:9px 12px;border-bottom:1px solid #ebeff1;cursor:pointer;align-items:flex-start}.item:hover{background:#f0f4f6}.item.sel{background:#e7edf0}.item.active{box-shadow:inset 3px 0 0 var(--accent)}.item input{margin-top:3px;accent-color:var(--accent)}.dist{flex:0 0 auto;min-width:40px;text-align:right;font-size:11px;color:var(--steel);margin-top:2px}.dist,.item .b{font-family:var(--font-jetbrains-mono),monospace}.item .b{font-weight:600;font-size:13px}.item .m{font-size:12px;color:#4e6270;margin-top:2px}.item .m .mono{color:#43535d}.badge{display:inline-block;font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:middle;font-family:var(--font-inter-tight),system-ui,sans-serif;letter-spacing:.03em}.badge.warm{background:#fcf3e3;color:var(--amber-ink)}.badge.incumbent{background:#eaeef0;color:#5d707c}.badge.abs{background:#eaeef0;color:#4e6270}.badge.sold{background:#fcf3e3;color:var(--amber-ink);border:1px solid var(--amber)}.badge.unv{background:#eaeef0;color:#6b7d88}.card{position:absolute;top:12px;right:12px;width:312px;background:#fff;border:1px solid #d8dfe3;border-top:3px solid var(--accent);border-radius:8px;box-shadow:0 8px 28px rgba(12,29,39,.16);padding:15px;font-size:13px;z-index:5}.card h3{margin:0 0 2px;font-size:14px;font-family:var(--font-jetbrains-mono),monospace}.card .k{color:var(--steel);font-size:10px;text-transform:uppercase;letter-spacing:.05em;margin-top:10px;font-family:var(--font-inter-tight),system-ui,sans-serif}.card .v{color:var(--ink)}.card .v.mono{font-family:var(--font-jetbrains-mono),monospace}.card .x{position:absolute;top:8px;right:10px;cursor:pointer;color:var(--steel);border:0;background:0;font-size:18px}.lasso-hint{bottom:14px;left:50%;transform:translateX(-50%);background:rgba(12,29,39,.88);color:#fff;padding:6px 12px;border-radius:6px;font-size:12px}.lasso-hint,.maptoggle{position:absolute;z-index:5}.maptoggle{top:12px;left:12px}canvas.lasso{position:absolute;inset:0;z-index:4;cursor:crosshair}.legend{position:absolute;bottom:14px;left:12px;z-index:5;width:312px;max-height:calc(100vh - 90px);overflow-y:auto;background:rgba(255,255,255,.97);border:1px solid #d8dfe3;border-radius:10px;box-shadow:0 8px 24px rgba(12,29,39,.14);font-size:12.5px}.legend.collapsed{width:auto;overflow:hidden}.legend-hd{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 14px;cursor:pointer;color:var(--ink);border-bottom:1px solid #edf0f2;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-family:var(--font-inter-tight),system-ui,sans-serif;text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.legend.collapsed .legend-hd{border-bottom:0}.legend-body{padding:6px 14px 14px}.legend-sub{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--steel);font-weight:600;margin:16px 0 7px;padding-top:12px;border-top:1px solid #eef1f3;font-family:var(--font-inter-tight),system-ui,sans-serif}.legend-sub:first-child{margin-top:8px;padding-top:0;border-top:0}.legend-row{display:flex;align-items:center;gap:9px;padding:4px 0;color:#37474f;line-height:1.45}.legend-note{font-size:11.5px;line-height:1.5;color:#4e6270;margin:5px 0 2px}.legend-note b{color:var(--ink);font-weight:600}.legend-disclaimer{font-size:10.5px;line-height:1.45;color:var(--steel);font-style:italic;margin-top:12px;padding-top:10px;border-top:1px solid #eef1f3}.legend-attrib{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--steel);margin-top:10px;font-family:var(--font-inter-tight),system-ui,sans-serif}.legend-dot{flex:0 0 auto;width:13px;height:13px;border-radius:50%;border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(12,29,39,.18)}.legend-dot.warm{background:var(--seg-warm)}.legend-dot.incumbent{background:var(--seg-incumbent)}.legend-dot.unknown{background:#5f6e76}.legend-dot.halo{background:var(--seg-warm);box-shadow:0 0 0 3px var(--paper),0 0 0 5px var(--amber)}.legend-dot.ring{background:#ccd6db;border:2.5px solid var(--ink)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper);padding:24px}.login-card{width:100%;max-width:380px;background:#fff;border-radius:14px;box-shadow:0 12px 40px rgba(12,29,39,.12);border-top:4px solid var(--accent);padding:34px 30px 22px;text-align:center}.login-card .logo{width:54px;height:54px}.login-card .wordmark{font-weight:600;letter-spacing:-.01em;font-size:19px;color:var(--ink);margin-top:12px}.login-card .wordmark,.login-card h1{font-family:var(--font-inter-tight),system-ui,sans-serif}.login-card h1{font-size:14px;margin:6px 0 4px;color:var(--steel);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.login-card .sub{color:#5d707c;font-size:13px;margin:0 0 20px}.login-card form{display:flex;flex-direction:column;gap:10px}.login-card input{font:inherit;padding:11px 12px;border:1px solid #c6d0d6;border-radius:8px}.login-card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(20,48,62,.14)}.login-card button{font-family:var(--font-inter-tight),system-ui,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:11px;border:0;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer}.login-card button:disabled{opacity:.55;cursor:default}.login-card .err{color:#c0392b;font-size:13px;min-height:18px;margin:4px 0 0}.login-disclaimer{font-size:11px;line-height:1.45;color:var(--steel);font-style:italic;margin:18px 0 0}.login-attrib{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--steel);margin:14px 0 0;font-family:var(--font-inter-tight),system-ui,sans-serif}