/* GENERATED by D/bids/src/p_map_css.py from the app's own map rules (home.css, map.css, state-map.css) + the D layer. Do not edit by hand. */
.mappage{--gr-white:var(--sheet);--gr-surface:var(--well);--gr-page:var(--paper);--gr-ink:var(--ink);--gr-muted:var(--ink-2);--gr-border:var(--rule);--gr-site-rule:var(--rule);--gr-navy:var(--ink);--gr-navy-mid:var(--ink-2);--gr-navy-light:var(--ink-3);--gr-on-navy-muted:var(--rule-2);--gr-coral:var(--focus);--gr-red:var(--signal);--gr-red-hover:var(--signal-hover);--gr-red-dot:var(--signal);--gr-ok:var(--ok);--gr-wip:var(--warn);--gr-amber-ink:var(--warn);--gr-link-hover:var(--link-hover);--gr-dark-link:var(--link);--gr-link-hover-on-dark:var(--link-hover);--gr-radius-pill:999px;--gr-ease-out:cubic-bezier(.22,1,.36,1);--gr-font-display:var(--display);--gr-font-body:"Instrument Sans", system-ui, sans-serif}
.scan-map.ga-map{max-width:440px;aspect-ratio:700 / 760;border:0;background:transparent;overflow:visible;
  --ga-edge:var(--gr-white);--ga-glow:var(--gr-red-dot)}
.ga-map-svg{display:block;width:100%;height:100%}
.ga-map .county{fill:var(--ga-0);stroke:var(--ga-edge);stroke-width:.7;stroke-linejoin:round;cursor:pointer}
.ga-map .county.step-1{fill:var(--ga-1)}
.ga-map .county.step-2{fill:var(--ga-2)}
.ga-map .county.step-3{fill:var(--ga-3)}
.ga-map .county.step-4{fill:var(--ga-4)}
.ga-map .county.step-5{fill:var(--ga-5)}
.ga-map .county.step-6{fill:var(--ga-6)}
.ga-map .ga-hl{pointer-events:none;stroke:var(--ga-hl-edge);stroke-width:1.6;stroke-linejoin:round;opacity:0;transform:translateY(0);filter:brightness(1.12) drop-shadow(0 3px 5px var(--ga-hl-shadow));transition:opacity .18s var(--gr-ease-out),transform .18s var(--gr-ease-out)}
.ga-map-svg.has-hl .ga-hl{opacity:1;transform:translateY(-1.5px)}
.scan-map.ga-map{--ga-hl-edge:var(--gr-white);--ga-hl-shadow:rgba(11,36,57,.45)}
.ga-map-key{width:100%;max-width:440px}
.ga-map-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;padding:0;list-style:none;font-size:12px;color:var(--gr-muted)}
.ga-map-legend li{display:inline-flex;align-items:center;gap:6px}
.ga-swatch{width:14px;height:14px;border-radius:3px;background:var(--ga-0);flex:none}
.ga-map-key .ga-swatch{--ga-glow:var(--gr-red-dot)}
.ga-swatch.step-1{background:var(--ga-1)}
.ga-swatch.step-2{background:var(--ga-2)}
.ga-swatch.step-3{background:var(--ga-3)}
.ga-swatch.step-4{background:var(--ga-4)}
.ga-swatch.step-5{background:var(--ga-5)}
.ga-swatch.step-6{background:var(--ga-6)}
.ga-map-tip{position:fixed;left:0;top:0;z-index:50;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s var(--gr-ease-out),transform .16s var(--gr-ease-out),visibility 0s linear .16s;display:grid;gap:2px;max-width:220px;padding:10px 12px;border:1px solid var(--gr-border);border-radius:8px;background:var(--gr-white);color:var(--gr-ink);box-shadow:0 8px 24px rgba(0,0,0,.2);font-size:13px;line-height:1.4}
.ga-map-tip.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .16s var(--gr-ease-out),transform .16s var(--gr-ease-out),visibility 0s}
.ga-map-tip.no-glide{transition:opacity .16s var(--gr-ease-out),visibility 0s}
@media(prefers-reduced-motion:reduce){.ga-map-tip,.ga-map-tip.is-open,.ga-map .ga-hl{transition:none}
.ga-map-svg.has-hl .ga-hl{transform:none}
}
.ga-map-tip span{color:var(--gr-muted)}
.ga-map-tip a{display:flex;align-items:center;min-height:44px;margin:-9px 0 -10px;color:var(--gr-red-hover);font-weight:700}
@media(max-width:680px){.scan-map.ga-map,.ga-map-key{max-width:100%}
}
.ga-map .ga-map-svg{touch-action:pan-y;-webkit-user-select:none;user-select:none}
.ga-map.is-zoomed .ga-map-svg{touch-action:none}
.ga-map.is-dragging .ga-map-svg{cursor:grabbing}
.ga-map:focus-visible{outline:3px solid var(--gr-coral);outline-offset:4px;border-radius:6px}
.map-ctrl{position:absolute;top:6px;right:6px;z-index:3;display:grid;gap:6px}
.map-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--gr-border);border-radius:8px;background:var(--gr-white);color:var(--gr-ink);font:600 20px/1 var(--gr-font-body);box-shadow:0 2px 8px rgba(0,0,0,.12);cursor:pointer}
@media (hover: hover) and (pointer: fine){.map-btn:hover{border-color:var(--gr-ink)}
}
.map-btn:focus-visible{outline:3px solid var(--gr-coral);outline-offset:2px}
.map-hint{margin:-6px 0 0;font-size:12px;color:var(--gr-muted);text-align:center}
.map-pins .map-pin,.map-pins .map-cluster{cursor:pointer;outline:none}
.map-pins .map-halo{fill:var(--gr-navy)}
.map-pins .map-dot{fill:var(--gr-red);stroke:var(--gr-white)}
.map-pins .is-selected .map-dot{fill:var(--gr-red-hover)}
.map-cluster text{fill:var(--gr-white);font-family:var(--gr-font-body);font-weight:700;text-anchor:middle;pointer-events:none}
.map-pins :focus-visible .map-halo{fill:var(--gr-coral)}
.map-card{position:absolute;left:0;top:0;z-index:4;display:flex;flex-direction:column;width:min(320px,calc(100% - 12px));padding:0;border:1px solid var(--gr-border);border-radius:18px;background:var(--gr-white);color:var(--gr-ink);box-shadow:0 12px 32px color-mix(in srgb,var(--gr-navy) 18%,transparent),0 1px 3px color-mix(in srgb,var(--gr-navy) 10%,transparent);font-size:13px;line-height:1.35;text-align:left}
.map-card[hidden]{display:none}
.map-sheet-grab{flex:none;padding:10px 8px 8px 16px;touch-action:none;-webkit-user-select:none;user-select:none}
.map-sheet-handle{display:none}
.map-sheet-bar{display:flex;align-items:flex-start;gap:6px}
.map-sheet-titles{flex:1 1 auto;min-width:0;display:grid;gap:2px;padding-top:5px}
.map-card-head{font:600 16px/1.3 var(--gr-font-display);letter-spacing:-.2px;color:inherit;text-wrap:balance}
.map-card.is-bid .map-card-head{font:600 13px/1.35 var(--gr-font-body);letter-spacing:0;color:var(--gr-muted)}
.map-sheet-note{font-size:12.5px;line-height:1.3;color:var(--gr-muted)}
.map-card-x,.map-sheet-back{position:relative;flex:none;display:grid;place-items:center;width:30px;height:30px;margin:2px 0 0;padding:0;border:0;border-radius:var(--gr-radius-pill);background:color-mix(in srgb,var(--gr-ink) 7%,transparent);color:var(--gr-muted);cursor:pointer;-webkit-tap-highlight-color:transparent}
.map-sheet-back{margin-left:-6px;background:none;color:var(--gr-ink)}
.map-card-x::after,.map-sheet-back::after{content:"";position:absolute;inset:-7px}
.map-card-x .map-ico{width:16px;height:16px}
.map-sheet-body{display:flex;flex-direction:column;min-height:0;padding:0 12px 12px}
.map-card.is-bid .map-sheet-body{gap:10px;padding:2px 16px 16px}
.map-bid-top{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start}
.map-card-title{font:600 17px/1.3 var(--gr-font-display);letter-spacing:-.2px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.map-bid-facts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding-left:48px}
.map-card-due{font-weight:600;color:var(--gr-muted)}
.map-card-place,.map-card-from{font-size:12.5px;color:var(--gr-muted)}
.map-card.is-bid .map-card-place{padding-left:48px}
.map-card-acts{display:grid;gap:4px;margin-top:2px}
.map-card-open{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:12px;background:var(--gr-red);color:var(--gr-white);font-weight:700;font-size:15px;text-decoration:none}
@media (hover: hover) and (pointer: fine){.map-card-open:hover{background:var(--gr-red-hover);color:var(--gr-white)}
}
.map-card-open:active{background:var(--gr-red-hover)}
.map-card-src{display:flex;align-items:center;justify-content:center;min-height:44px;color:var(--gr-red-hover);font-weight:600;text-decoration:none}
.map-card a:focus-visible,.map-card button:focus-visible{outline:3px solid var(--gr-coral);outline-offset:2px}
.map-card-scroll{margin:0 -12px;padding:2px 12px;max-height:var(--map-list-max);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;--ft:0px;--fb:0px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,var(--gr-ink) var(--ft),var(--gr-ink) calc(100% - var(--fb)),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,var(--gr-ink) var(--ft),var(--gr-ink) calc(100% - var(--fb)),transparent 100%)}
.map-card-scroll.fade-top{--ft:18px}
.map-card-scroll.fade-bottom{--fb:28px}
.map-card-list{display:grid;gap:8px;list-style:none;margin:0;padding:0;will-change:transform}
.map-card-list>li{content-visibility:auto;contain-intrinsic-size:auto 88px}
.map-row{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) 16px;gap:12px;align-items:start;width:100%;min-height:56px;padding:12px 10px 12px 12px;border:1px solid var(--gr-border);border-radius:14px;background:var(--gr-white);color:var(--gr-ink);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s var(--gr-ease-out)}
.map-row-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--gr-navy) 7%,var(--gr-white));color:var(--gr-navy-light)}
.map-row-icon .map-ico{width:20px;height:20px}
.map-row-text{display:grid;gap:3px;min-width:0}
.map-row-title{font-size:15px;line-height:1.3;font-weight:600;letter-spacing:-.1px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.map-row-agency{font-size:13px;line-height:1.35;color:var(--gr-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-row-meta{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:12.5px;line-height:1.35;color:var(--gr-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-row-go{align-self:center;display:grid;place-items:center;color:var(--gr-muted)}
.map-row-go .map-ico{width:16px;height:16px}
.map-row:active{background:var(--gr-surface);transform:scale(.985)}
@media(hover:hover){.map-row:hover{background:var(--gr-surface)}
}
.map-row:focus-visible{outline:3px solid var(--gr-coral);outline-offset:2px}
.map-chip{display:inline-flex;align-items:center;min-height:22px;padding:0 9px;border-radius:var(--gr-radius-pill);font-size:12.5px;font-weight:600;line-height:1;white-space:nowrap}
.map-chip.is-red{background:color-mix(in srgb,var(--gr-red) 11%,var(--gr-white));color:var(--gr-red-hover)}
.map-chip.is-amber{background:color-mix(in srgb,var(--gr-wip) 20%,var(--gr-white));color:var(--gr-amber-ink)}
.map-chip.is-neutral{background:color-mix(in srgb,var(--gr-ink) 7%,var(--gr-white));color:var(--gr-ink)}
.map-card-more{margin:8px 0 0;font-size:12.5px;color:var(--gr-muted);text-align:center}
.map-card-more[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.map-row{transition:none}
.map-row:active{transform:none}
}
.map-card.is-below{position:relative;left:auto;top:auto;width:100%;max-width:560px;transform:none}
.map-full{position:relative}
.map-stage{--map-top-css:96px;position:relative;height:calc(100vh - var(--map-top,var(--map-top-css)));height:calc(100dvh - var(--map-top,var(--map-top-css)));min-height:0;overflow:hidden;background:var(--gr-white)}
.map-full .scan-map.ga-map{position:absolute;inset:0;width:100%;max-width:none;height:100%;aspect-ratio:auto}
.map-full .ga-map-svg{width:100%;height:100%}
#bid-map .county{animation:none}
.map-full .map-ctrl{top:16px;right:16px;gap:8px}
.map-full .map-btn{min-width:44px;min-height:44px}
.map-vh,.map-full .map-hint{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.map-tools,.map-legend-box{position:absolute;z-index:5;border:1px solid var(--gr-border);border-radius:12px;background:var(--gr-white);color:var(--gr-ink);box-shadow:0 8px 24px rgba(11,36,57,.12)}
.map-tools{top:16px;left:16px;display:grid;gap:10px;width:min(340px,calc(100% - 92px));padding:16px}
.map-title{margin:0;font:600 20px/1.2 var(--gr-font-display);letter-spacing:-.3px}
.map-search input{box-sizing:border-box;width:100%;min-height:44px;padding:0 14px;border:1px solid var(--gr-border);border-radius:10px;background:var(--gr-surface);color:var(--gr-ink);font:inherit;font-size:16px}
.map-search input:focus-visible{outline:3px solid var(--gr-coral);outline-offset:1px}
.map-count{margin:0;font-size:14px;font-weight:600}
.map-count:empty{display:none}
.map-note,.map-missing{margin:0;font-size:13px;line-height:1.5;color:var(--gr-muted)}
.map-note a{position:relative;display:inline;color:var(--gr-ink);font-weight:600}
.map-note a::after{content:"";position:absolute;left:-8px;right:-8px;top:50%;height:44px;transform:translateY(-50%)}
.map-full .map-legend-box{left:16px;bottom:16px;width:auto;max-width:calc(100% - 32px);padding:12px 16px}
.map-legend-h{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--gr-muted)}
.map-full .map-card:not(.is-sheet){width:min(360px,calc(100% - 12px));background:color-mix(in srgb,var(--gr-white) 92%,transparent);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}
.map-full .is-zoomed .ga-label{display:none}
.map-full .ga-label{font-size:14px;font-weight:700;fill:var(--gr-ink);stroke:var(--gr-white);stroke-width:3px;paint-order:stroke;pointer-events:none}
.map-full .map-card.is-below{position:absolute;left:12px;right:12px;bottom:12px;top:auto;z-index:6;width:auto;max-width:none;padding:14px 48px 14px 14px;box-shadow:0 -4px 24px rgba(11,36,57,.18)}
.map-noscript{padding:16px}
html:has(.map-full){scroll-padding-top:var(--map-top)}
.map-full .map-card.is-list{--map-list-max:min(44dvh,340px)}
@media(max-width:680px){.map-stage{--map-top-css:78px}
.map-tools{top:12px;left:12px;width:calc(100% - 84px);padding:12px;gap:8px}
.map-title{font-size:18px}
.map-note{font-size:12px}
.map-tools:has(.map-search:not([hidden])) .map-note{display:none}
.map-full .map-legend-box{left:12px;bottom:12px;max-width:calc(100% - 24px);padding:10px 12px}
.map-full .ga-map-legend{gap:6px 10px}
.map-full .map-ctrl{top:12px;right:12px}
}
.map-full .map-card.is-sheet{position:absolute;left:0;right:0;top:8px;bottom:0;z-index:30;width:auto;max-width:none;border:0;border-top:1px solid color-mix(in srgb,var(--gr-ink) 10%,transparent);border-radius:22px 22px 0 0;background:color-mix(in srgb,var(--gr-white) 92%,transparent);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 -10px 36px color-mix(in srgb,var(--gr-navy) 16%,transparent)}
.map-full .map-card.is-sheet.is-snapping{transition:transform .44s cubic-bezier(.32,.72,0,1)}
.map-full .map-card.is-sheet .map-sheet-grab{padding:0 10px 10px 18px;cursor:grab}
.map-full .map-card.is-sheet.is-dragging .map-sheet-grab{cursor:grabbing}
.map-full .map-card.is-sheet .map-sheet-handle{position:relative;display:block;width:72px;height:22px;margin:0 auto;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.map-full .map-card.is-sheet .map-sheet-handle::before{content:"";position:absolute;left:50%;top:8px;width:36px;height:5px;margin-left:-18px;border-radius:var(--gr-radius-pill);background:color-mix(in srgb,var(--gr-ink) 28%,transparent)}
.map-full .map-card.is-sheet .map-card-head{font-size:18px}
.map-full .map-card.is-sheet.is-bid .map-card-head{font-size:13px}
.map-full .map-card.is-sheet .map-sheet-body{flex:1 1 auto;max-height:var(--sheet-body);padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.map-full .map-card.is-sheet .map-card-scroll{flex:1 1 auto;min-height:0;max-height:none}
.map-full .map-card.is-sheet .map-card-more{flex:none;min-height:26px;margin-top:6px}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.map-full .map-card.is-sheet,.map-full .map-card:not(.is-sheet){background:var(--gr-white)}
}
@media(prefers-reduced-motion:reduce){.map-full .map-card.is-sheet.is-snapping{transition:none}
}
.map-stage:has(.map-card.is-sheet:not([hidden])) .map-legend-box{visibility:hidden}
.map-stage:has(.map-card.is-sheet.is-full:not([hidden])) :is(.map-tools,.map-ctrl){visibility:hidden}
@media (pointer: fine){html,body{overscroll-behavior:none}
}
.map-chips{display:flex;gap:8px;margin:0;padding:2px 4px 4px;min-width:0;scroll-padding:0 4px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.map-chips::-webkit-scrollbar{display:none}
.map-chip{flex:0 0 auto;scroll-snap-align:start;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid var(--gr-border);border-radius:var(--gr-radius-pill);background:var(--gr-white);color:var(--gr-ink);font:600 14px/1 var(--gr-font-body);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .1s ease}
.map-chip-n{font-weight:500;color:var(--gr-muted)}
.map-chip[aria-pressed="true"]{border-color:var(--gr-navy);background:var(--gr-navy);color:var(--gr-white)}
.map-chip[aria-pressed="true"] .map-chip-n{color:var(--gr-on-navy-muted)}
.map-chip:active{transform:scale(.97)}
.map-chip:focus-visible{outline:3px solid var(--gr-coral);outline-offset:2px}
@media (hover: hover) and (pointer: fine){.map-chip:hover{border-color:var(--gr-ink)}
}
@media(prefers-reduced-motion:reduce){.map-chip{transition:none}
.map-chip:active{transform:none}
}
.map-tools{max-height:calc(100% - 24px);overflow-y:auto;overscroll-behavior:contain}
.map-tools-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.map-tools-head .map-title{flex:1 1 auto;min-width:0}
.map-fold{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;margin:-6px -6px -6px 0;padding:0;border:1px solid var(--gr-border);border-radius:var(--gr-radius-pill);background:var(--gr-white);color:var(--gr-ink);cursor:pointer;-webkit-tap-highlight-color:transparent}
.map-fold svg{width:20px;height:20px;transform:rotate(180deg);transition:transform .15s ease}
.map-fold[aria-expanded="false"] svg{transform:none}
.map-tools.is-folded{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 8px;padding:8px 8px 8px 14px}
.map-tools.is-folded .map-tools-head{display:contents}
.map-tools.is-folded .map-title{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.map-tools.is-folded .map-fold{grid-column:2;grid-row:1;margin:0}
.map-tools.is-folded .map-count{grid-column:1;grid-row:1;font-size:13px;line-height:1.3}
.map-tools.is-folded .map-count:empty{display:block;min-height:1px}
.map-tools.is-folded .map-missing{display:none}
.map-panel-body{display:grid;gap:10px;min-width:0}
.map-panel-body[hidden],.map-note[hidden]{display:none}
.map-chips-wrap{position:relative;margin:0 -4px;min-width:0}
.map-chips-fade{position:absolute;top:0;right:0;bottom:0;width:36px;pointer-events:none;opacity:0;background:linear-gradient(to right,transparent,var(--gr-white))}
.map-chips-wrap.can-right .map-chips-fade{opacity:1}
.map-arrow{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:32px;height:32px;margin-top:-16px;padding:0;border:1px solid var(--gr-border);border-radius:var(--gr-radius-pill);background:var(--gr-white);color:var(--gr-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 2px 8px color-mix(in srgb,var(--gr-navy) 16%,transparent)}
.map-arrow[hidden]{display:none}
.map-arrow svg{width:18px;height:18px}
.map-arrow-l{left:2px}
.map-arrow-r{right:2px}
.map-chips.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none;-webkit-user-select:none}
.map-chips.is-dragging .map-chip{cursor:grabbing}
@media (hover: hover) and (pointer: fine){.map-fold:hover,.map-arrow:hover{border-color:var(--gr-ink)}
}
@media(prefers-reduced-motion:reduce){.map-fold svg{transition:none}
}
.state-switch{display:inline-flex;gap:2px;margin:0 0 10px;padding:3px;border:1px solid var(--gr-border);border-radius:999px;background:var(--gr-white)}
.state-switch button{min-height:44px;min-width:44px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--gr-ink);font:600 15px/1 var(--gr-font-body);cursor:pointer;-webkit-tap-highlight-color:transparent}
.state-switch button[aria-pressed=true]{background:var(--gr-navy);color:var(--gr-white)}
@media (hover:hover) and (pointer:fine){.state-switch button[aria-pressed=false]:hover{background:var(--gr-page)}
}
.state-switch button:focus-visible{outline:3px solid var(--gr-coral);outline-offset:2px}
.state-switch button.is-quiet:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--gr-coral)}
.state-line{margin:8px 0 0;font-size:15px;line-height:1.45;color:var(--gr-ink)}
.state-see{margin:4px 0 0;font-size:15px;line-height:1.45}
.state-see a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}
.map-full .map-tools .state-line{margin:0 0 2px;font-size:14px}
.map-full .map-tools .state-see{margin:0;font-size:14px}
.ga-map[data-state]:not(.map-zoom):has(>.map-ctrl){margin-bottom:56px}
.ga-map[data-state]:not(.map-zoom)>.map-ctrl{top:calc(100% + 8px);right:0;grid-auto-flow:column}
.ga-map[data-state] .state-outline{display:none;fill:none;pointer-events:none}
.map-full[data-fit=state] .map-stage{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"tools" "map" "key";gap:24px;height:auto;min-height:0;overflow:visible;padding:12px 12px 28px}
.map-full[data-fit=state] .map-tools{position:relative;top:auto;left:auto;grid-area:tools;width:auto}
.map-full[data-fit=state] .scan-map.ga-map{position:relative;inset:auto;grid-area:map;height:auto;margin:0 0 52px}
.map-full[data-fit=state] .map-ctrl{top:calc(100% + 8px);right:0;grid-auto-flow:column}
.map-full[data-fit=state] .map-legend-box{position:relative;left:auto;bottom:auto;grid-area:key;max-width:none}
@media(min-width:900px){.map-full[data-fit=state] .map-stage{grid-template-columns:340px minmax(0,1040px);grid-template-areas:"tools map" "tools key";column-gap:32px;row-gap:16px;align-items:start;align-content:center;min-height:460px;padding:32px 32px 40px}
.map-full[data-fit=state] .scan-map.ga-map{margin:0}
.map-full[data-fit=state] .map-ctrl{top:calc(100% + 16px)}
.map-full[data-fit=state] .map-legend-box{justify-self:start}
}
h3.state-count{margin:4px 0 0;font:600 20px/1.25 var(--gr-font-display);letter-spacing:-.2px;color:var(--gr-ink)}
.state-note{margin:6px 0 16px;font-size:15px;line-height:1.45;color:var(--gr-muted)}
.sl-map .state-note{margin:-6px 0 16px}
.state-see .state-see-btn{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;padding:0 20px;border:1.5px solid var(--gr-navy);border-radius:999px;color:var(--gr-navy);font-weight:700;text-decoration:none;-webkit-tap-highlight-color:transparent}
@media (hover:hover) and (pointer:fine){.state-see .state-see-btn:hover{background:var(--gr-navy);color:var(--gr-white)}
}
.state-see .state-see-btn:focus-visible{outline:3px solid var(--gr-coral);outline-offset:2px}
@media(max-width:400px){:is(.map-full[data-fit=state],.sl-map) .ga-map-legend{display:grid;grid-template-columns:repeat(4,max-content);gap:8px 16px}
}

/* ---- the D layer (H2 BIDS) ---- */
body.mappage{display:flex;flex-direction:column;min-height:100vh;height:100dvh}
body.mappage>main{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}
.map-full{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}
.map-stage{flex:1 1 auto;height:auto!important;min-height:420px;background:var(--m-bg)}
.mappage .map-tools,.mappage .map-legend-box{border-color:var(--rule);background:var(--sheet);color:var(--ink);box-shadow:0 10px 30px color-mix(in srgb,var(--ink) 14%,transparent)}
.mappage .map-tools{border-top:4px solid var(--c)}
/* the map h1 wears H0 display class like every other h1 (critic 4); its size is the panel size, so the map still fills the screen (L476) */
.mappage h1.map-title{font-family:var(--display);font-weight:520;font-size:clamp(22px,calc(16px + 2vw),28px);line-height:1.12;letter-spacing:-.012em}
.mappage .map-kicker{margin:0;font-size:var(--fs-label,12px);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink)}
.mappage .map-note a,.mappage .state-see a{color:var(--c-deep);font-weight:600}
@media (hover: hover) and (pointer: fine){.mappage .map-note a:hover,.mappage .state-see a:hover{color:var(--c-ink)}}
.mappage .map-chip[aria-pressed="true"]{border-color:var(--c-deep);background:var(--c-deep);color:var(--sheet)}
.mappage.is-tn .map-chip[aria-pressed="true"]{color:var(--paper)}
.mappage .map-chip[aria-pressed="true"] .map-chip-n{color:inherit;opacity:.82}
.mappage .map-card-open{background:var(--signal);color:var(--on-signal)}
@media (hover: hover) and (pointer: fine){.mappage .map-card-open:hover{background:var(--signal-hover)}}
.mappage .map-tn-line{margin:0;padding:8px 10px;border-left:3px solid var(--c);background:var(--c-1);font-size:14px;line-height:1.45;color:var(--ink)}
.map-join{margin:0}
.map-join .btn{width:100%}
/* harness (run 8): each legal link is a full 44 x 44 tap target, the same floor as every other page */
.map-legal{display:flex;flex-wrap:wrap;gap:0 4px;margin-top:2px;font-size:12px}
.map-legal a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 4px;color:var(--ink-2);font-weight:500}
@media (hover: hover) and (pointer: fine){.map-legal a:hover{color:var(--ink)}}
/* L315: a bid that names no county is listed beside the map, never pinned on a guess */
.map-unplaced{border-top:1px solid var(--rule);padding-top:10px}
.map-unplaced summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;cursor:pointer;font-size:14px;font-weight:600;list-style:none}
.map-unplaced summary::-webkit-details-marker{display:none}
.map-unplaced summary::after{content:"";width:8px;height:8px;margin-right:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .15s ease}
.map-unplaced[open] summary::after{transform:rotate(-135deg)}
.map-unplaced ul{display:grid;gap:2px;max-height:min(40dvh,320px);margin:4px 0 0;padding:0;overflow-y:auto;overscroll-behavior:contain;list-style:none}
.map-unplaced li a{display:grid;gap:2px;min-height:44px;padding:8px 6px;border-radius:6px;color:var(--ink);font-weight:600;font-size:14px;line-height:1.35}
@media (hover: hover) and (pointer: fine){.map-unplaced li a:hover{background:var(--well);color:var(--ink)}}
.map-unplaced li span{font-weight:400;font-size:13px;color:var(--ink-2)}
@media(prefers-reduced-motion:reduce){.map-unplaced summary::after{transition:none}}
/* the counties: the state's own ramp (A-34). Georgia: H0's --c0..--c5 choropleth, the deepest step the family's deep red. Tennessee:
   its blue run; a county with no bid stays the page's land (rule 14: no filled county map that suggests county coverage). */
.mappage{--m-bg:var(--ga-1);--m0:var(--c0);--m1:var(--c1);--m2:var(--c2);--m3:var(--c3);--m4:var(--c4);--m5:var(--c5);--m6:var(--ga-deep);--m-line:var(--sheet)}
.mappage.is-tn{--m-bg:var(--tn-1);--m0:var(--c0);--m1:var(--tn-2);--m2:var(--tn-3);--m3:var(--tn-4);--m4:var(--tn-5);--m5:var(--tn);--m6:var(--tn-deep);--m-line:var(--land-line)}
/* night (critic 3): the first shaded step must stand off the unshaded county (it was 1.06:1 in Tennessee, 1.26:1 in Georgia), so at
   night each run starts at a step that is 3:1 or more against --c0 and climbs toward the state's lightest shade. H0 tokens only. */
:root[data-theme=dark] .mappage:not(.is-tn){--m1:var(--c3);--m2:color-mix(in srgb,var(--c3),var(--c4));--m3:var(--c4);--m4:color-mix(in srgb,var(--c4),var(--c5));--m5:var(--c5);--m6:var(--ink)}
:root[data-theme=dark] .mappage.is-tn{--m1:color-mix(in srgb,var(--tn-5) 60%,var(--tn));--m2:color-mix(in srgb,var(--tn-5) 30%,var(--tn));--m3:var(--tn);--m4:var(--tn-ink);--m5:color-mix(in srgb,var(--tn-ink),var(--tn-deep));--m6:var(--tn-deep)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .mappage:not(.is-tn){--m1:var(--c3);--m2:color-mix(in srgb,var(--c3),var(--c4));--m3:var(--c4);--m4:color-mix(in srgb,var(--c4),var(--c5));--m5:var(--c5);--m6:var(--ink)}:root:not([data-theme=light]) .mappage.is-tn{--m1:color-mix(in srgb,var(--tn-5) 60%,var(--tn));--m2:color-mix(in srgb,var(--tn-5) 30%,var(--tn));--m3:var(--tn);--m4:var(--tn-ink);--m5:color-mix(in srgb,var(--tn-ink),var(--tn-deep));--m6:var(--tn-deep)}}
.mappage .ga-map .county{fill:var(--m0);stroke:var(--m-line)}
.mappage .ga-map .county.step-1,.mappage .ga-swatch.step-1{fill:var(--m1);background:var(--m1)}
.mappage .ga-map .county.step-2,.mappage .ga-swatch.step-2{fill:var(--m2);background:var(--m2)}
.mappage .ga-map .county.step-3,.mappage .ga-swatch.step-3{fill:var(--m3);background:var(--m3)}
.mappage .ga-map .county.step-4,.mappage .ga-swatch.step-4{fill:var(--m4);background:var(--m4)}
.mappage .ga-map .county.step-5,.mappage .ga-swatch.step-5{fill:var(--m5);background:var(--m5)}
.mappage .ga-map .county.step-6,.mappage .ga-swatch.step-6{fill:var(--m6);background:var(--m6)}
.mappage .ga-swatch.step-0{background:var(--m0);box-shadow:inset 0 0 0 1px var(--rule-2)}
.mappage .ga-map[data-state] .county{stroke:var(--co-line);stroke-width:.8}
.mappage .ga-label{fill:var(--ink);stroke:var(--sheet);stroke-width:4.5px}   /* harness (run 8): a wider halo, a county name on a shaded county at night measured 4.39:1 */
.mappage .map-pins .map-halo{fill:var(--ink)}
.mappage .map-pins .map-dot{fill:var(--signal);stroke:var(--sheet)}
.mappage .map-btn{border-color:var(--rule);background:var(--sheet);color:var(--ink)}
