.revenue-potential [hidden] { display: none !important; }
.revenue-potential .modal-dialog { max-width: min(1480px, calc(100vw - 32px)); margin: 8px auto; }
.revenue-potential .modal-dialog-scrollable { height: calc(100% - 16px); }
.revenue-potential .modal-content { border: 0; border-radius: 20px; color: #132144; box-shadow: 0 24px 90px rgb(15 35 65 / 25%); }
.revenue-potential .modal-header { display: flex; gap: 24px; padding: 12px 18px; align-items: center; overflow: visible; }
.revenue-potential__title { flex-shrink: 0; }
.revenue-potential__source { font-size: 12px; margin-top: 4px; }
.revenue-potential__source a { color: #195bc0; text-decoration: underline; }
.revenue-potential .modal-title { color: #132144; font-size: 28px; font-weight: 700; }
.revenue-potential__close { display: grid; flex-shrink: 0; place-items: center; width: 40px; height: 40px; margin-left: auto; padding: 8px; color: #dc3545; background: transparent; border: 0; border-radius: 8px; }
.revenue-potential__close svg { width: 24px; height: 24px; }
.revenue-potential__close:hover, .revenue-potential__close:focus-visible { color: #b02a37; background: #fcebed; outline-color: #dc3545; }
.revenue-potential .modal-body { padding: 8px 18px 12px; }
.revenue-potential__selectors { display: flex; flex: 1; gap: 14px; align-items: flex-end; margin: 0; min-width: 0; }
.revenue-potential__selectors > div { flex: 1; min-width: 0; }
.revenue-potential__selectors .form-label { margin-bottom: 6px; font-size: 13px; }
.revenue-potential__selectors .dropdown-toggle { border: 1px solid #d9e2eb; background: #fff; color: #132144; }
.revenue-potential__selectors .dropdown-toggle::after { display: none; }
.revenue-potential__selectors .bootstrap-select .dropdown-menu { max-width: min(400px, 85vw); }
.revenue-potential__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; }
.revenue-potential__layout.has-results { grid-template-columns: minmax(0, 1.1fr) minmax(420px, 1fr); }
.revenue-potential__map-panel { min-width: 0; padding: 14px; border: 1px solid #e3ecef; border-radius: 14px; background: linear-gradient(150deg, #f5fbfa, #fff 65%); }
.revenue-potential__map-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 34px; }
.revenue-potential__map-toolbar h3 { margin: 0; font-size: 17px; color: #183e45; font-weight: 600; }
.revenue-potential__map-toolbar .breadcrumb { align-items: center; gap: 6px 0; font-size: 17px; }
.revenue-potential__map-toolbar .breadcrumb-item { display: flex; align-items: baseline; }
.revenue-potential__map-toolbar .breadcrumb-item[hidden]:first-child ~ .breadcrumb-item { padding-left: 0; }
.revenue-potential__map-toolbar .breadcrumb-item[hidden]:first-child ~ .breadcrumb-item::before { display: none; }
.revenue-potential__breadcrumb-link { padding: 0; border: 0; background: transparent; color: #195bc0; font: inherit; text-align: left; text-decoration: underline; text-underline-offset: 2px; }
.revenue-potential__breadcrumb-link:hover { color: #12458f; }
.revenue-potential__breadcrumb-link:focus-visible { outline: 2px solid #195bc0; outline-offset: 3px; border-radius: 2px; }
.revenue-potential__map-viewport { width: 100%; max-width: 1050px; height: clamp(260px, calc(100dvh - 200px), 640px); margin: 0 auto; overflow: hidden; }
.revenue-potential__layout.is-state .revenue-potential__map-viewport { max-width: none; height: auto; aspect-ratio: var(--revenue-state-aspect, 1); max-height: max(420px, calc(100dvh - 180px)); }
#revenueMap { display: block; width: 100%; height: 100%; touch-action: pan-y; transition: opacity .18s ease; }
#revenueMap.is-fading { opacity: 0; pointer-events: none; }
#revenueMap .revenue-map-region { cursor: pointer; outline: none; }
#revenueMap .revenue-map-region > path:not(.revenue-map-callout) { fill: #c6e4e0; stroke: #538787; stroke-width: .8; vector-effect: non-scaling-stroke; transition: fill .15s; }
#revenueMap .revenue-map-region:hover > path,
#revenueMap .revenue-map-region:focus-visible > path { fill: #83c7ba; stroke: #075f53; stroke-width: 1.8; }
#revenueMap .revenue-map-county > path { fill: #d8eee8; stroke: #82afa6; stroke-width: .6; }
#revenueMap .revenue-map-region[aria-pressed="true"] > path { fill: #09795f; stroke: #064a3c; stroke-width: 1.4; }
#revenueMap text { fill: #173f47; font-family: inherit; font-weight: 600; text-anchor: middle; dominant-baseline: central; cursor: pointer; }
#revenueMap .revenue-map-county text { font-weight: 500; paint-order: stroke; stroke: #f5fbf9; stroke-width: .5px; stroke-linejoin: round; }
#revenueMap .revenue-map-county[aria-pressed="true"] text { fill: #fff; stroke: transparent; font-weight: 700; }
#revenueMap .revenue-map-callout { stroke: #6c8f97; stroke-width: .7; fill: none; vector-effect: non-scaling-stroke; pointer-events: none; }
#revenueMap .revenue-map-county-outline { fill: #edf4f2; stroke: #426e67; stroke-width: 1.3; vector-effect: non-scaling-stroke; }
#revenueMap .revenue-map-city path { fill: #b7ddd1; stroke: #5b9786; stroke-width: .6; vector-effect: non-scaling-stroke; }
#revenueMap .revenue-map-city-labels text { font-weight: 500; paint-order: stroke; stroke: #fff; stroke-width: .12em; stroke-linejoin: round; cursor: default; }
.revenue-potential__results { min-width: 0; border: 1px solid #e0e9e6; border-radius: 14px; overflow: hidden; }
.revenue-potential__results-heading { padding: 16px 18px; background: #eff8f4; border-bottom: 1px solid #e0e9e6; }
.revenue-potential__results-heading h3 { margin: 0 0 5px; color: #183e45; font-size: 19px; font-weight: 700; }
.revenue-potential__table-wrap { max-height: 500px; overflow: auto; }
.revenue-potential .table { color: #223a48; font-size: 13px; }
.revenue-potential .table th { position: sticky; top: 0; z-index: 1; background: #fff; padding: 12px; font-size: 12px; border-bottom: 1px solid #e3ecef; }
.revenue-potential .table td { padding: 12px; vertical-align: top; border-bottom: 1px solid #edf1f3; color: #223a48; }
.revenue-potential .table td:first-child { font-weight: 700; font-variant-numeric: tabular-nums; }
.revenue-potential .text-green { color: #087443 !important; font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 991px) {
    .revenue-potential .modal-header { flex-wrap: wrap; gap: 10px 16px; }
    .revenue-potential__selectors { flex-basis: 100%; order: 3; }
    .revenue-potential__layout.has-results { grid-template-columns: minmax(0, 1fr); }
    .revenue-potential__table-wrap { max-height: none; }
}
@media (max-width: 575px) {
    .revenue-potential .modal-dialog { max-width: calc(100vw - 16px); margin: 8px; }
    .revenue-potential .modal-header { padding: 12px 14px; }
    .revenue-potential .modal-body { padding: 14px; }
    .revenue-potential .modal-title { font-size: 24px; }
    .revenue-potential__selectors { flex-wrap: wrap; gap: 10px; }
    .revenue-potential__selectors > div { flex-basis: calc(50% - 5px); }
    .revenue-potential__map-panel { padding: 8px; }
    .revenue-potential__map-viewport { height: 330px; }
    .revenue-potential__map-toolbar h3, .revenue-potential__map-toolbar .breadcrumb { font-size: 15px; }
    .revenue-potential .table td, .revenue-potential .table th { padding: 10px 8px; }
    .revenue-potential .text-green { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    #revenueMap, #revenueMap .revenue-map-region > path { transition: none; }
}
