/* CityBuilder v0.3A — geographic explorer, entirely decoupled from game saves */
.map-view-switch{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:10px 17px 11px;border-top:1px solid var(--theme-border);background:var(--theme-panel-bottom)}
.map-view-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.map-view-tabs button{border:1px solid var(--theme-border);color:var(--theme-muted);background:var(--theme-card);border-radius:7px;min-height:38px;padding:7px 13px;cursor:pointer;font-size:12px;font-weight:750}
.map-view-tabs button[aria-pressed="true"]{color:var(--theme-accent-light);border-color:var(--theme-accent);background:var(--theme-highlight)}
.map-view-tabs button:focus-visible,.geo-pane button:focus-visible,.geo-map-viewport:focus-visible{outline:2px solid var(--theme-accent-light);outline-offset:2px}
.map-view-note{font-size:10px;color:var(--theme-muted);line-height:1.3;max-width:320px}
#isoMapPane[hidden],#geoMapPane[hidden],#geoNoMap[hidden]{display:none!important}
.geo-pane{display:grid;grid-template-columns:minmax(0,1fr) 235px;background:var(--theme-map-frame);border-top:1px solid var(--theme-border);min-height:484px}
.geo-main{position:relative;min-width:0;overflow:hidden;min-height:484px;background-color:#172633;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:38px 38px}
.geo-map-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;outline:none;user-select:none}
.geo-map-viewport.dragging{cursor:grabbing}
.geo-map-tiles,.geo-map-markers,.geo-plan-grid{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.geo-map-tiles img{display:block;position:absolute;width:256px;height:256px;border:0;max-width:none;pointer-events:none;filter:saturate(.72) brightness(.78) contrast(1.07);opacity:.94}
html[data-theme="socialism"] .geo-map-tiles img{filter:saturate(.48) brightness(.68) sepia(.06)}
html[data-theme="mixed"] .geo-map-tiles img{filter:saturate(.67) brightness(.72) sepia(.10)}
.geo-map-markers{z-index:3}
.geo-plan-grid{z-index:2}
.geo-plan-cell{position:absolute;pointer-events:auto;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #b4d3ce66;background:#629ba244;border-radius:1px;cursor:crosshair;color:#fff;font-size:9px;text-shadow:0 1px 2px #000;font-weight:800}
.geo-plan-cell:focus-visible{outline:3px solid #fff;outline-offset:-2px;z-index:1}
.geo-plan-cell:hover{border:2px solid #fff;z-index:1}
.geo-plan-cell.selected{border:2px solid var(--theme-accent-light);box-shadow:inset 0 0 0 2px #000a;z-index:1}
.geo-plan-cell.water{background:#24769a65;color:#a7d7e9;cursor:not-allowed}
.geo-plan-cell.empty{background:#73b36f29}
.geo-plan-cell.residential{background:#e0bb788c}
.geo-plan-cell.highrise{background:#a0bcf3a6}
.geo-plan-cell.commercial{background:#51bbb6a6}
.geo-plan-cell.industrial{background:#ab7b7aac}
.geo-plan-cell.school,.geo-plan-cell.hospital{background:#c7e0e5aa}
.geo-plan-cell.park{background:#4fa775a6}
.geo-plan-cell.transit,.geo-plan-cell.utility{background:#b69bdd99}
.geo-plan-hint{position:absolute;pointer-events:none;border-radius:5px;background:#071a29d9;color:#edf7f7;font-size:10px;padding:4px 6px;font-weight:750;min-width:165px;text-align:center}
.geo-pin{pointer-events:auto;position:absolute;display:flex;align-items:center;gap:7px;transform:translate(-12px,-15px);background:#0c2033df;color:#edf5f7;border:1px solid #b5d0d094;border-radius:22px;padding:5px 9px 5px 5px;font-size:11px;font-weight:770;box-shadow:0 4px 13px #0008;white-space:nowrap;cursor:pointer;max-width:200px;backdrop-filter:blur(3px)}
.geo-pin-dot{background:var(--theme-accent);color:var(--theme-accent-text);width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:9px;font-weight:900;flex-shrink:0}
.geo-pin.active{border-color:var(--theme-accent);background:var(--theme-highlight);box-shadow:0 0 0 2px var(--theme-accent),0 3px 15px #0009;z-index:2}
.geo-map-viewport.compact-pins .geo-pin:not(.active){padding:3px;transform:translate(-10px,-10px)}
.geo-map-viewport.compact-pins .geo-pin:not(.active) .geo-pin-label{display:none}
.geo-map-viewport.compact-pins .geo-pin:not(.active) .geo-pin-dot{width:15px;height:15px;font-size:8px}
.geo-click-marker{position:absolute;width:14px;height:14px;border:2px solid #fff;border-radius:50%;background:var(--theme-accent);transform:translate(-50%,-50%);box-shadow:0 0 0 5px #0008;z-index:2}
.geo-map-viewport .geo-click-marker{pointer-events:none}
.geo-zoom-stack{position:absolute;z-index:5;top:14px;right:14px;display:flex;flex-direction:column;gap:5px}
.geo-zoom-stack button{background:#0b1e31e8;color:#f4f7f8;border:1px solid #527384;border-radius:7px;min-width:40px;min-height:40px;font-size:21px;cursor:pointer}
.geo-zoom-stack button:nth-last-child(-n+2){font-size:11px;font-weight:850;min-height:35px}
.geo-zoom-stack button[aria-pressed="true"]{border-color:var(--theme-accent);background:var(--theme-highlight);color:var(--theme-accent-light)}
.geo-map-label{position:absolute;left:12px;top:12px;z-index:4;max-width:calc(100% - 90px);border:1px solid #3d6170a0;border-radius:8px;padding:8px 11px;background:#0d2539e8;box-shadow:0 7px 19px #0006}
.geo-map-label strong,.geo-map-label small{display:block}
.geo-map-label strong{color:#edf8fa;font-size:13px}.geo-map-label small{color:#b4cdd2;font-size:10px;margin-top:2px;line-height:1.3}
.geo-status{position:absolute;bottom:31px;left:11px;right:11px;z-index:3;background:#08202fc9;border-radius:6px;padding:7px 9px;font-size:11px;color:#d4e6e9;line-height:1.4;pointer-events:none;max-width:520px}
.geo-attribution{position:absolute;bottom:4px;right:7px;z-index:5;background:#051a29df;color:#e6f1f5;border-radius:3px;font-size:10px;padding:3px 5px}
.geo-attribution a{color:#afe8ff;text-decoration:underline}
.geo-sidebar{min-width:0;padding:13px 12px;border-left:1px solid var(--theme-border);display:flex;flex-direction:column;gap:9px;background:var(--theme-panel-bottom)}
.geo-sidebar h3{font-size:14px;font-weight:850;margin:0}.geo-sidebar .sub{color:var(--theme-muted);font-size:11px;line-height:1.4}
.geo-district-list{display:flex;flex-direction:column;gap:5px;overflow-y:auto;max-height:287px;scrollbar-width:thin;scrollbar-color:var(--theme-border) transparent}
.geo-district-list button{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;min-height:40px;border:1px solid var(--theme-border);background:var(--theme-card);border-radius:7px;padding:8px 9px;color:#edf2f4;cursor:pointer}
.geo-district-list button strong{font-size:11px}.geo-district-list button span{font-size:10px;color:var(--theme-muted)}
.geo-district-list button[aria-pressed="true"]{background:var(--theme-highlight);border-color:var(--theme-accent)}
.geo-inspector{border-top:1px solid var(--theme-border);padding-top:10px;margin-top:auto}
.geo-inspector small{display:block;color:var(--theme-accent-light);font-size:10px;font-weight:900;letter-spacing:.06em}
.geo-inspector strong{display:block;color:#f0f5f6;font-size:12px;margin-top:4px}
.geo-inspector p{color:#b6c9d0;font-size:11px;line-height:1.45;margin:5px 0 0}
.geo-inspector .coords{font-size:10px;color:var(--theme-muted);margin-top:6px}
.geo-no-map{display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;min-height:280px;color:var(--theme-muted);font-size:13px;background:var(--theme-map-frame)}
.geo-accuracy{color:var(--theme-muted);font-size:11px;line-height:1.55;padding:11px 18px;border-top:1px solid var(--theme-border);background:var(--theme-panel-bottom)}
.geo-accuracy strong{color:#e2ebec}
@media(max-width:900px){.geo-pane{grid-template-columns:minmax(0,1fr)}.geo-sidebar{border-left:0;border-top:1px solid var(--theme-border)}.geo-district-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.geo-main{min-height:420px}}
@media(max-width:530px){.geo-main{min-height:350px}.geo-sidebar{padding:10px}.geo-district-list{grid-template-columns:repeat(2,minmax(0,1fr))}.geo-map-label strong{font-size:12px}.geo-map-label small{font-size:9px}.geo-pin{font-size:10px}.map-view-note{max-width:100%}}
