.city-overview{position:fixed;inset:0;z-index:60;background:#f7f3e8;color:#2b5142;display:flex;flex-direction:column}.map-header{height:92px;flex-shrink:0;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d8dcca}.map-header small{font-size:9px;letter-spacing:2px;color:#8c9a78}.map-header h2{font:27px Georgia,serif;margin:7px 0}.map-header>div:last-child{display:flex;align-items:center;gap:20px}.map-header button,.map-floating button,.map-zoom button{background:#fff9e9;border:1px solid #d6d9bd;border-radius:10px;padding:12px 17px;font-size:12px}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;flex:1;min-height:0}.map-stage{position:relative;overflow:hidden;background:#dce4cc}.map-stage canvas{width:100%;height:100%;display:block;touch-action:none}.map-floating{position:absolute;top:20px;left:20px;display:flex;gap:8px}.map-floating button{box-shadow:0 3px 12px #3d56311a;font-size:10px}.map-compass{position:absolute;right:22px;top:24px;font:22px Georgia;display:grid;text-align:center}.map-compass small{font:10px sans-serif}.map-zoom{position:absolute;right:18px;bottom:80px;display:grid;gap:5px}.map-zoom button{font-size:22px;width:42px;padding:9px}.map-travel{position:absolute;bottom:22px;left:20px;right:75px;background:#254f42ed;border:1px solid #c8cda7;border-radius:12px;padding:15px;color:#f9efd5;font-size:12px;line-height:1.6}.map-legend{position:absolute;bottom:83px;left:20px;display:flex;gap:15px;font-size:9px;color:#546a50;background:#f4f0decc;padding:8px;border-radius:5px}.map-sidebar{background:#fbf7ec;overflow:auto;padding:22px;border-left:1px solid #d4dac5;scrollbar-width:thin}.map-neighborhood small{font-size:8px;letter-spacing:1px;color:#8d9a7c}.map-neighborhood h3{font:25px Georgia;margin:12px 0}.map-neighborhood p{font-size:10px;line-height:1.7;color:#8a957b}.map-search input{width:100%;border:1px solid #d5dbc6;padding:11px;border-radius:8px;background:#f3f1df;font-size:11px}.map-filter{display:flex;gap:5px;overflow:auto;padding:12px 0}.map-filter button{font-size:9px;white-space:nowrap;padding:8px 10px;background:#e9eada;border-radius:15px}.map-destinations{display:grid;gap:6px}.map-destinations button{display:flex;align-items:center;gap:12px;padding:10px;text-align:left;background:#f1efdf;border:1px solid transparent;border-radius:9px}.map-destinations button.active{border-color:#799b75;background:#e2e8cf}.map-destinations i{width:10px;height:25px;border-radius:5px}.map-destinations span:nth-child(2){flex:1}.map-destinations b{display:block;font-size:11px;font-weight:500}.map-destinations small{display:block;font-size:10px;color:#92a080;margin-top:5px}.map-selected{position:sticky;bottom:42px;padding:16px;background:#fcf6e3;border:1px solid #d7d9bf;border-radius:12px;margin-top:18px;box-shadow:0 -5px 25px #304f2820}.map-selected small{font-size:8px;color:#929d7c;letter-spacing:1.2px}.map-selected h3{font:21px Georgia;margin:10px 0}.map-selected p{font-size:10px;color:#83916f;line-height:1.7}.map-selected button,.map-garage{width:100%;background:#315f4b;color:#fff5dc;border-radius:8px;padding:12px;font-size:11px}.map-garage{position:sticky;bottom:0;margin-top:12px;background:#e5e7d2;color:#3c604a;border:1px solid #cfd5b8}.city-map-open .bottom-dock,.city-map-open .topbar{visibility:hidden}
.vehicle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.vehicle-card{background:#f0eedf;border:1px solid #d9d8bd;border-radius:14px;padding:22px}.vehicle-card svg{width:100%;height:140px}.vehicle-card h4{font:26px Georgia;margin:14px 0 7px}.vehicle-card p{font-size:12px;color:#77896c;line-height:1.8}.vehicle-card strong{font:25px Georgia;color:#987849;display:block;margin:18px 0}.vehicle-card button{margin-top:10px;font-size:12px}.vehicle-colors{display:flex;gap:12px;margin:22px 0}.vehicle-colors button{width:35px;height:35px;border:4px solid #faf6e9;border-radius:50%;outline:1px solid #c6c9ac}.vehicle-colors button.active{outline:3px solid #385f43}.vehicle-detail{max-width:520px;margin:0 auto}.vehicle-detail svg{width:100%;height:240px}.factory-banner{background:linear-gradient(120deg,#335f4d,#718f74);color:#fff5d8;border-radius:14px;padding:25px;margin:22px 0}.factory-banner h3{font:28px Georgia;margin:12px 0}.factory-banner p{font-size:12px;line-height:1.8}.factory-banner button{background:#f5e8c7;color:#31533d;margin-top:12px}.factory-topic{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.factory-topic button{text-align:left;background:#edeedb;border:1px solid #d9dbc0;border-radius:11px;padding:18px}.factory-topic b,.factory-topic small{display:block}.factory-topic small{font-size:10px;color:#8e997c;margin-top:10px}.factory-progress{height:7px;background:#e1e6ce;border-radius:5px;overflow:hidden;margin:18px 0}.factory-progress span{display:block;height:100%;background:#587d53}.factory-list{display:grid;gap:7px}.factory-list button{text-align:left;padding:15px;background:#f0ecdd;border:1px solid #ded8bc;border-radius:9px;display:flex;justify-content:space-between;align-items:center}.factory-list b{font-size:18px;font-weight:500}.factory-list small{display:block;font-size:11px;color:#879575;margin-top:7px}.factory-list i{font-style:normal;font-size:10px;white-space:nowrap}.factory-success{padding:32px;text-align:center;border-radius:12px;background:#e6edda;color:#375c41}.factory-success strong{font:40px Georgia;display:block;margin:18px}.factory-success p{line-height:1.9}.factory-stats{display:flex;gap:20px;font-size:12px;margin:18px 0}.factory-stats b{font:27px Georgia;display:block;margin-bottom:7px}
@media(max-width:800px){.map-header{height:76px;padding:14px 18px}.map-header h2{font-size:21px}.map-header button{padding:9px 12px;font-size:10px}.map-header>div:last-child{gap:10px}.map-layout{grid-template-columns:1fr;grid-template-rows:minmax(260px,1fr) 260px}.map-sidebar{padding:14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.65fr);gap:10px;border-left:0;border-top:1px solid #cfd4b8}.map-neighborhood{display:none}.map-search{grid-column:1/-1}.map-filter{grid-column:1/-1;padding:0}.map-destinations{max-height:220px;overflow:auto}.map-selected{position:static;margin:0;align-self:start;padding:12px}.map-selected h3{font-size:17px}.map-garage{grid-column:1/-1;position:static;margin:0}.map-floating{left:10px;top:10px;gap:5px}.map-floating button{font-size:8px;padding:9px}.map-floating button:last-child{display:none}.map-compass{right:12px;top:13px;font-size:17px}.map-travel{bottom:10px;left:10px;font-size:10px;padding:10px}.map-legend{display:none}.map-zoom{bottom:65px;right:10px}.map-zoom button{width:32px;font-size:18px;padding:6px}.vehicle-grid{grid-template-columns:1fr}.factory-topic{grid-template-columns:1fr 1fr}.vehicle-detail svg{height:170px}}

.factory-workbench{border:1px solid #cbd7bb;background:linear-gradient(150deg,#f4edd7,#d9e1cb);padding:18px;border-radius:12px;margin:12px 0 24px;overflow:hidden}.factory-workbench>span{font-size:9px;letter-spacing:1.2px;color:#6e805e}.factory-belt{display:flex;gap:45px;height:58px;align-items:flex-end;border-bottom:9px solid #7d9384;margin:14px 0;background:repeating-linear-gradient(90deg,transparent 0 20px,#d4dcc7 21px 23px)}.factory-belt i{font-size:38px;color:#b79568;font-style:normal;animation:factoryBoxes 3s ease-in-out infinite alternate}.factory-belt i:nth-child(2){color:#abbea0}.factory-belt i:nth-child(3){color:#b88069}.factory-workbench small{font-size:9px;color:#81916f}@keyframes factoryBoxes{to{transform:translateX(28px)}}@media(prefers-reduced-motion:reduce){.factory-belt i{animation:none}}
@media(max-width:800px){.map-filter{min-height:34px;overflow-y:hidden}}

/* Keep the city reachable while a shop, home, or job panel is open. */
.panel-map-button{align-self:center;flex-shrink:0;max-width:125px;min-height:40px;padding:10px 13px;margin:0 12px;background:#315f4b;color:#fff5dc;border:1px solid #557b5e;border-radius:10px;font-size:11px;font-weight:600;line-height:1.5}
.bottom-dock .city-map-dock{background:#315f4b;color:#fff5dc;min-width:84px}
.city-map-open #worldLabels,.city-map-open .quest-card,.city-map-open .job-shortcut,.city-map-open .side-controls,.city-map-open .walking-hint,.city-map-open .scene-caption,.city-map-open .interaction{visibility:hidden}
.map-header{padding-top:max(14px,env(safe-area-inset-top))}
@media(max-width:540px){.bottom-dock .city-map-dock{min-width:0}.city-map-dock b{max-width:57px;text-align:center;line-height:1.25}.panel-map-button{font-size:10px;max-width:102px;margin:0 8px;padding:8px;min-height:40px}.immersive .panel-map-button{margin-right:25px}.panel-top>div:first-child{min-width:0;flex:1}.map-header small{font-size:7px;letter-spacing:1px}.map-header h2{font-size:22px}}
