/* Map-first I.Q. workspace: shared house tokens and released records. */
.iq-map-first{background:var(--bg)}
.election-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:24px;padding-bottom:12px}
.election-heading h1{font:400 clamp(32px,4vw,52px)/1 var(--font-display);letter-spacing:.05em;margin:4px 0;color:var(--gold)}
.election-heading p{margin:4px 0;color:var(--text-dim)}
.election-heading .countdown{margin:0;border:0;padding:0;text-align:right;flex-shrink:0}
.election-heading .countdown b{color:var(--gold);font-size:26px}
.event-toolbar{display:flex;align-items:start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.office-tabs{display:flex;gap:8px;flex-wrap:wrap}
.office-tabs button,.map-heading>button,.inspector-extras button{min-height:44px;padding:8px 16px;border:1px solid var(--border-bright);color:var(--text);background:var(--bg2);border-radius:2px}
.office-tabs button[aria-pressed=true]{color:var(--gold);border-color:var(--gold);background:rgba(201,168,76,.08)}
.office-tabs small{display:block;font:10px var(--font-mono);color:var(--text-dim)}
.browse-controls{max-width:100%}.browse-controls summary,.workspace-help summary,.race-strip summary,.authority-directory summary{min-height:44px;cursor:pointer;padding:10px 0;color:var(--gold)}
.browse-controls[open]{flex-basis:100%}.browse-controls .app-controls{padding:10px 0}.app-controls select{max-width:250px}
.iq-map-first .stage{padding-top:14px}
.iq-map-first .geography-layout{grid-template-columns:minmax(0,1fr) minmax(340px,36%);gap:12px;align-items:start}
.iq-map-first .map-panel{padding:12px;min-width:0;background:var(--bg)}
.map-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.map-heading .map-trail{margin:0;flex:1;min-width:0}
.map-heading>button{padding:7px 10px;font:11px var(--font-mono)}
.iq-map-first .geomap{height:auto;min-height:380px;max-height:660px;aspect-ratio:960/620}
.iq-map-first .map-shell{background-color:var(--bg);background-image:linear-gradient(rgba(201,168,76,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,76,.025) 1px,transparent 1px);background-size:30px 30px}
.iq-map-first .geomap .region{fill:var(--bg3);stroke:rgba(201,168,76,.5);stroke-width:.8}
.iq-map-first .geomap .region:hover,.iq-map-first .geomap .region:focus{fill:rgba(201,168,76,.22);stroke:var(--gold)}
.iq-map-first .geomap .region.selected{fill:rgba(201,168,76,.25)!important}
.iq-map-first .marker-note{margin:7px 0 0;font-size:11px}
.broker-inspector{min-width:0;padding:14px;max-height:890px;overflow:auto}
.inspector-heading h2{margin:4px 0 10px;font-size:26px;overflow-wrap:anywhere}
.broker-inspector .main-tabs{margin:0 0 14px;overflow:visible;flex-wrap:wrap}
.broker-inspector .main-tabs button{padding:0 10px;min-height:44px;font-size:10px;letter-spacing:.06em;flex:1;justify-content:center}
.broker-inspector #browse-title{font-size:20px}
.broker-inspector #state-browser .state-grid{max-height:360px}
.broker-inspector .race-list{max-height:260px}
.broker-inspector .race-inventory-row .race-item{width:100%}
.broker-inspector .candidate-browser{padding:0;border:0;margin:16px 0;background:none}
.broker-inspector .candidate-browser .section-heading h2{font-size:22px}
.broker-inspector .contender-grid{grid-template-columns:1fr;gap:8px}
.broker-inspector .contender-tile{padding:12px;grid-template-columns:48px minmax(0,1fr);gap:10px}
.broker-inspector .contender-tile img,.broker-inspector .portrait-unavailable{width:48px;height:58px}
.broker-inspector .contender-tile h3{font-size:14px}
.broker-inspector .pane-frame{min-height:570px;height:650px}
.broker-inspector .tools{gap:6px}
.broker-inspector .tools button,.broker-inspector .tools a{font-size:10px;letter-spacing:0;padding:8px;overflow-wrap:anywhere}
.broker-inspector .empty-state{padding:14px}
.broker-inspector .sandbox-grid,.broker-inspector .research-metrics,.broker-inspector .research-flow,.broker-inspector .research-columns,.broker-inspector .unconnected-grid,.broker-inspector .access-grid{grid-template-columns:1fr}
.broker-inspector .research-metric{padding:10px}
.broker-inspector .released-authority-grid{grid-template-columns:1fr}
.inspector-extras{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px;margin-top:14px}
.inspector-extras button,.inspector-extras a{font-size:11px;padding:6px 8px}
.geography-layout.inspector-closed{grid-template-columns:1fr}
.inspector-closed .broker-inspector{display:none}
.race-strip{border-block:1px solid var(--border);margin:14px 0;padding:0 12px;background:var(--bg2)}
#race-strip-items{display:flex;gap:10px;overflow:auto;padding:3px 0 12px;scroll-snap-type:x proximity}
.race-strip-item{flex:0 0 245px;max-width:100%;border:1px solid var(--border);padding:10px;background:var(--bg);scroll-snap-align:start}
.race-strip-item.selected{border-color:var(--gold)}
.race-strip-title{border:0;background:none;color:var(--gold);padding:0;min-height:36px;text-align:left;font:500 12px var(--font-mono)}
.race-strip-people{display:flex;flex-direction:column;gap:4px}
.strip-person{border:0;padding:3px 0;display:flex;align-items:center;gap:8px;background:none;color:var(--text);text-align:left;min-height:44px}
.strip-person>span:last-child{overflow-wrap:anywhere;font-size:12px}
.race-strip-item small{color:var(--text-dim);font-size:11px}
.candidate-bubble{display:inline-grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;border:1px solid var(--gold);background:var(--bg3);color:var(--text);overflow:hidden;font-family:var(--font-mono)}
.candidate-bubble img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.marker-tether{stroke:var(--gold);stroke-width:.8;opacity:.65;vector-effect:non-scaling-stroke;pointer-events:none}
.map-candidate-cluster{display:flex;flex-direction:column;align-items:center;height:100%;color:var(--text);font-family:var(--font-mono)}
.map-bubbles{display:flex;justify-content:center}
.map-bubbles button{border:0;padding:0;background:none;flex-shrink:0;border-radius:50%}
.map-bubbles .candidate-bubble{width:100%;height:100%;font-size:inherit;box-shadow:0 2px 8px rgba(0,0,0,.65)}
.cluster-label{border:0;background:var(--bg);color:var(--gold);font:inherit;line-height:1.5;padding:0 4px;min-height:0}
.iq-map-first .election-scope{margin:14px 0;padding:12px;font-size:12px}
.workspace-help{font-size:13px;color:var(--text-dim)}
@media(max-width:1000px){.iq-map-first .geography-layout{grid-template-columns:minmax(0,1fr) 340px}.election-heading .countdown{max-width:160px}.broker-inspector{padding:10px}.iq-map-first .geomap{min-height:320px}}
@media(max-width:760px){.iq-map-first .geography-layout{grid-template-columns:1fr}.broker-inspector{max-height:none;overflow:visible}.iq-map-first .geomap{min-height:0;max-height:none}.iq-map-first .map-shell{min-height:0}.election-heading{align-items:start;padding-top:16px}.election-heading .countdown b{font-size:22px}.election-heading .countdown .eyebrow{font-size:9px}.election-heading h1{font-size:36px}.app-controls select{max-width:100%}.map-tag{font-size:9px;top:6px;left:8px}.compass{width:36px;right:8px;top:8px}.iq-map-first .alaska-inset .geomap{height:200px}.office-tabs button{padding:6px 12px}.broker-inspector .pane-frame{height:680px;min-height:550px}}

.election-heading>div:first-child{min-width:0;flex:1}
@media(max-width:400px){.election-heading .countdown{max-width:125px}.election-heading h1{font-size:32px}.event-toolbar{gap:8px}}

.iq-map-first .geomap .region.has-contest{fill:rgba(201,168,76,.14)}

/* Portrait markers live above the SVG: map zoom changes positions, never face size. */
.candidate-markers{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}
.marker-tethers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.map-candidate-cluster{position:absolute;width:max-content;max-width:190px;height:auto;pointer-events:auto;background:rgba(10,12,15,.88);border:1px solid var(--border-bright);border-radius:8px;padding:6px}
.map-bubbles{display:grid;grid-template-columns:repeat(2,72px);gap:5px 4px}
.map-candidate-cluster.single .map-bubbles{grid-template-columns:72px}
.map-bubbles .marker-person{width:72px;min-height:76px;height:auto;border-radius:5px;display:flex;flex-direction:column;align-items:center;gap:3px;background:transparent;color:var(--text)}
.map-bubbles .candidate-bubble{width:52px;height:52px;font-size:16px;box-shadow:0 2px 8px rgba(0,0,0,.45)}
.map-bubbles .marker-person[aria-pressed=true] .candidate-bubble{border:2px solid var(--gold-bright);box-shadow:0 0 0 3px rgba(201,168,76,.2)}
.marker-name{font:11px/1.2 var(--font-body);max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cluster-label{min-height:30px;font:11px/1.3 var(--font-mono);color:var(--gold);background:none;width:100%;padding:4px 0 0}
.marker-tether{stroke:var(--gold);stroke-width:1;opacity:.7}
.iq-map-first .zoom-ctl,.iq-map-first .zoom-hint{z-index:4}
.iq-map-first .map-panel{position:sticky;top:68px}
.broker-inspector{position:sticky;top:68px;max-height:calc(100dvh - 84px);overscroll-behavior:contain;scroll-padding-top:210px}
.inspector-navigation{position:sticky;top:-14px;z-index:5;background:var(--bg2);padding:10px 0 0;margin-top:-10px;border-bottom:1px solid var(--border)}
.inspector-heading{display:flex;align-items:center;gap:10px}
.inspector-identity{min-width:0;flex:1}
.inspector-photo{width:60px;height:60px;flex-shrink:0;border-radius:50%;overflow:hidden;border:1px solid var(--gold);background:var(--bg3)}
.inspector-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
#close-inspector{min-width:40px;min-height:40px;border:1px solid var(--border);background:var(--bg);color:var(--gold);font-size:23px}
#inspector-photo-credit{font-size:11px;margin:0 0 8px;overflow-wrap:anywhere}
.broker-inspector .main-tabs{margin-bottom:0}
.broker-inspector #map-layer,.broker-inspector #card-layer,.broker-inspector #coverage-layer,.broker-inspector #discovery-layer{padding-top:12px}
.broker-inspector .pane-frame{height:calc(100dvh - 300px);min-height:430px}
.portrait-credits{border-top:1px solid var(--border);padding:8px 0;color:var(--text-dim);font-size:12px}
.portrait-credits summary{min-height:44px;padding:10px 0;color:var(--gold);cursor:pointer}
.portrait-credits li{padding:5px 0;overflow-wrap:anywhere}
@media(max-width:760px){.iq-map-first .map-panel{position:relative;top:auto}.iq-map-first .geomap{min-height:360px;max-height:480px}.broker-inspector{position:relative;top:auto;max-height:78dvh;overflow:auto;scroll-padding-top:210px}.inspector-navigation{top:-10px}.map-bubbles .candidate-bubble{width:48px;height:48px}.map-bubbles .marker-person{min-height:70px}.map-bubbles{grid-template-columns:repeat(2,66px)}.map-candidate-cluster.single .map-bubbles{grid-template-columns:66px}.map-bubbles .marker-person{width:66px}.marker-name{max-width:66px}.map-candidate-cluster{padding:4px}.broker-inspector .pane-frame{height:480px;min-height:430px}}
@media(prefers-reduced-motion:no-preference){.map-bubbles .candidate-bubble{transition:box-shadow .15s,border-color .15s}}
