.aux-settings-screen{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:24px;background:rgba(5,12,16,.9);backdrop-filter:blur(12px)}
.aux-settings-screen.hidden{display:none}.aux-settings-card{width:min(1050px,96vw);max-height:92vh;overflow:auto;padding:24px;border:1px solid rgba(255,255,255,.15);border-radius:18px;background:linear-gradient(155deg,#172329,#0d1519);box-shadow:0 24px 80px #000b;color:#eef7f8}
.aux-settings-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.aux-settings-head h2{margin:3px 0 6px;font-size:28px}.aux-settings-head p{margin:0;color:#9fb1b7}.aux-settings-head>button{min-width:42px;min-height:42px;border-radius:50%;font-size:24px}
.gamepad-status{padding:11px 14px;margin-bottom:16px;border-radius:10px;background:#0a1114;border:1px solid #2b4048;color:#bad9df}.controls-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:10px}.controls-grid label{display:grid;grid-template-columns:minmax(90px,1fr) minmax(110px,1fr) auto;gap:8px;align-items:center;padding:10px;border-radius:10px;background:#111c21}.controls-grid select,.controls-grid button,.heightmap-importer input,.aux-settings-card input,.aux-settings-card select{min-height:36px}
.control-tuning-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;margin:16px 0}.control-tuning-grid label{padding:10px;border-radius:10px;background:#111c21}.control-tuning-grid input[type=range]{width:100%}.control-live{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.control-live span{display:grid;gap:5px}.control-live i,.driver-pedals i{display:block;height:8px;border-radius:10px;background:linear-gradient(90deg,#62d48d var(--value,0%),#26363c var(--value,0%))}.aux-actions,.heightmap-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.shortcut-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px}.shortcut-grid section{padding:14px;border:1px solid #294049;border-radius:12px;background:#101a1f}.shortcut-grid h3{margin:0 0 8px;color:#8fd6b1}.shortcut-grid p{margin:6px 0;color:#c4d0d4}.shortcut-grid kbd{padding:2px 6px;border:1px solid #567078;border-bottom-width:2px;border-radius:5px;background:#19272d;color:#fff}
.heightmap-importer{margin-top:14px;padding:12px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(4,12,15,.42)}.heightmap-head{display:flex;justify-content:space-between;margin-bottom:9px}.heightmap-head span{color:#88cfab}.heightmap-importer canvas{display:block;width:100%;height:120px;margin:8px 0;border-radius:8px;background:linear-gradient(135deg,#111,#444)}.heightmap-values{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.heightmap-values label{display:grid;gap:4px;font-size:12px}.heightmap-values input{width:100%;box-sizing:border-box}.heightmap-importer p{font-size:11px;line-height:1.4;color:#aebdc1}.heightmap-actions{margin-top:9px}.heightmap-open-button{display:grid;gap:4px;width:100%;margin-top:12px;padding:13px 15px;text-align:left;border:1px solid rgba(124,205,139,.42);border-radius:12px;background:linear-gradient(135deg,rgba(45,92,58,.72),rgba(16,39,34,.88));color:#eef8ef}.heightmap-open-button small{color:#b9d7c2}.heightmap-screen-card{width:min(1080px,calc(100vw - 36px))}.heightmap-layout{display:grid;grid-template-columns:minmax(300px,.88fr) minmax(330px,1.12fr);gap:18px;align-items:start}.heightmap-map-preview-panel{min-width:0}.heightmap-map-preview-panel canvas{width:min(100%,420px)!important;height:auto!important;aspect-ratio:1}.heightmap-screen-card .heightmap-importer{margin-top:0}
.driver-hud{position:fixed;right:26px;bottom:24px;z-index:3000;display:none;grid-template-columns:auto auto;gap:8px 14px;align-items:center;min-width:220px;padding:15px 17px;border:1px solid rgba(255,255,255,.25);border-radius:18px;background:rgba(5,10,12,.88);box-shadow:0 12px 38px #0009;color:#fff;font-family:Arial,sans-serif;pointer-events:none}.driver-road-name{grid-column:1/-1;max-width:290px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c9f5df;font-size:13px;font-weight:800;letter-spacing:.02em}.driver-speed{display:flex;align-items:baseline;gap:6px}.driver-speed b{font-size:44px;line-height:.9;font-variant-numeric:tabular-nums}.driver-speed span{font-size:12px;color:#aebbc0}.driver-gear{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#1d3037;color:#8df1bc;font-size:24px;font-weight:900}.driver-pedals{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:10px;color:#aebbc0}
body.driver-mode .driver-hud{display:grid}body.driver-mode #topbar,body.driver-mode #bottombar,body.driver-mode #tnInfoDock,body.driver-mode #tnInfoPanel,body.driver-mode #miniMapPanel,body.driver-mode #hamburgerMenu,body.driver-mode #eventsPanel,body.driver-mode #tmpeInspector,body.driver-mode #inspectPanel,body.driver-mode #transitFleetPanel,body.driver-mode #toolPanel,body.driver-mode .pill,body.driver-mode #uiRestoreButton,body.driver-mode #ui,body.driver-mode .toast,body.driver-mode .start-screen,body.driver-mode .aux-settings-screen,body.driver-mode .quality-settings-screen,body.driver-mode .generator-screen{display:none!important}body.driver-mode #game{inset:0!important}body.driver-mode .driver-pedals{display:none!important}
/* A UI antiga possui regras com !important e especificidade alta. No modo
   motorista, uma whitelist de filhos garante que reste apenas a cena, a chuva
   e o velocímetro, independentemente dessas regras legadas. */
html body.city-mode.driver-mode> *:not(#game):not(#driverDashboard):not(#driverHud):not(#screenRain){display:none!important}
html body.city-mode.driver-mode #driverHud.driver-hud{display:grid!important}
.driver-dashboard{position:fixed;inset:auto 0 0;z-index:2990;display:none;pointer-events:none;overflow:hidden}
.driver-dashboard img{display:block;width:100vw;height:auto;max-width:none;filter:drop-shadow(0 -8px 18px rgba(0,0,0,.38))}
html body.city-mode.driver-mode #driverDashboard.driver-dashboard{display:block!important}
html body.city-mode.driver-mode.driver-mode-no-dashboard #driverDashboard.driver-dashboard,html body.city-mode.driver-mode.cyclist-camera-mode #driverDashboard.driver-dashboard{display:none!important}

.gamepad-connect-row,.control-driving-options{display:grid;grid-template-columns:minmax(190px,1fr) minmax(220px,1.5fr) auto;gap:10px;align-items:end;margin:12px 0;padding:12px;border:1px solid rgba(255,255,255,.10);border-radius:13px;background:rgba(255,255,255,.035)}
.gamepad-connect-row label,.control-driving-options label{display:grid;gap:6px;font-size:11px;color:#dbe5da}.gamepad-connect-row select,.control-driving-options select{min-height:36px;border-radius:9px;background:#18211f;color:#eef4ec;border:1px solid rgba(255,255,255,.14);padding:0 9px}.gamepad-connect-row button{height:36px}.control-driving-options #gpuStatus{align-self:center;font-size:11px;color:#9fcba1;line-height:1.35}
.loading-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,rgba(35,61,54,.96),rgba(7,12,12,.985));transition:opacity .22s ease,visibility .22s ease}.loading-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-overlay>div{width:min(430px,calc(100vw - 40px));display:grid;grid-template-columns:42px 1fr;gap:5px 14px;padding:22px;border:1px solid rgba(143,211,107,.24);border-radius:18px;background:rgba(15,23,21,.92);box-shadow:0 22px 80px rgba(0,0,0,.42)}.loading-spinner{grid-row:1/4;width:34px;height:34px;border:3px solid rgba(255,255,255,.13);border-top-color:#8fd36b;border-radius:50%;animation:simurban-spin .8s linear infinite}.loading-overlay b{font-size:16px}.loading-overlay small{color:#aebcaf}.loading-overlay progress{grid-column:2;width:100%;height:7px;accent-color:#78bd5f}.loading-overlay .loading-percent{grid-column:2;justify-self:end;color:#8fd36b;font-variant-numeric:tabular-nums;font-weight:800}@keyframes simurban-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.gamepad-connect-row,.control-driving-options{grid-template-columns:1fr}}
.screen-rain{position:fixed;inset:-14vh -9vw;z-index:3;pointer-events:none;opacity:0;overflow:hidden;transition:opacity .35s ease;background-image:repeating-linear-gradient(101deg,transparent 0 8px,rgba(209,232,241,.70) 9px,transparent 10px 22px);background-size:138px 126px;transform:translate3d(0,0,0);animation:simurban-rain-screen .24s linear infinite}
.screen-rain::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(31,43,50,var(--rain-veil-opacity,0)),rgba(38,50,57,var(--rain-veil-opacity,0))),radial-gradient(ellipse at center,rgba(78,91,98,var(--rain-mist-opacity,0)) 0%,rgba(72,86,94,calc(var(--rain-mist-opacity,0) * .90)) 34%,rgba(64,78,86,calc(var(--rain-mist-opacity,0) * .72)) 61%,rgba(58,70,77,calc(var(--rain-mist-opacity,0) * .30)) 82%,transparent 96%),linear-gradient(to bottom,rgba(156,178,186,var(--rain-horizon-a,0)) 0%,rgba(128,151,160,var(--rain-horizon-b,0)) 29%,rgba(103,126,136,var(--rain-horizon-c,0)) 55%,transparent 82%);backdrop-filter:blur(var(--rain-blur,0px)) saturate(.82);animation:simurban-rain-horizon 2.0s ease-in-out infinite alternate}
.screen-rain::after{content:"";position:absolute;inset:-8vh -5vw;background-image:repeating-linear-gradient(99deg,transparent 0 13px,rgba(189,218,232,.54) 14px,transparent 15px 32px);background-size:182px 156px;animation:simurban-rain-screen .36s linear infinite reverse}
html.weather-raining .screen-rain{opacity:var(--rain-opacity,0)}
@keyframes simurban-rain-screen{to{background-position:-46px 238px}}
@keyframes simurban-rain-horizon{from{transform:translateY(-1.8%);opacity:.86}to{transform:translateY(1.8%);opacity:1}}
@media(max-width:760px){.aux-settings-screen{padding:8px}.aux-settings-card{padding:16px}.controls-grid,.control-tuning-grid,.shortcut-grid,.heightmap-layout{grid-template-columns:1fr}.controls-grid label{grid-template-columns:1fr}.control-live{grid-template-columns:repeat(2,1fr)}.heightmap-values{grid-template-columns:1fr}.driver-hud{right:12px;bottom:12px}}
#generatorScreen .generator-card {
  box-sizing: border-box;
  max-height: calc(100vh - 24px);
  overflow-y: auto;
}

/* v0.9.94 R3 — menu sem corte e perfil gráfico totalmente personalizado. */
body.city-mode #hamburgerMenu.classic-menu{
  width:min(390px,calc(100vw - 20px))!important;
  max-height:calc(100vh - 72px)!important;
  box-sizing:border-box!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
body.city-mode #hamburgerMenu .menu-seed-row,
body.city-mode #hamburgerMenu .menu-seed-row>*{min-width:0!important;box-sizing:border-box!important}
body.city-mode #hamburgerMenu .menu-seed-row input{width:100%!important}

.quality-settings-card{width:min(980px,calc(100vw - 28px));max-height:calc(100vh - 36px);overflow:auto;box-sizing:border-box}
.quality-render-resolution{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:12px 15px;border:1px solid rgba(132,205,170,.18);border-radius:12px;background:rgba(4,12,14,.34);color:#e8f2ee}.quality-render-resolution span{display:grid;gap:3px}.quality-render-resolution small{color:#91aaa3;font-weight:400}.quality-render-resolution select{min-width:260px;height:38px;padding:0 10px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#152421;color:#ecf6f1}
.quality-profile-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.quality-profile-grid button{min-height:132px;padding:14px}
.quality-custom-panel.hidden{display:none!important}
.quality-custom-panel{margin-top:14px;padding:15px;border:1px solid rgba(132,205,170,.18);border-radius:15px;background:rgba(4,12,14,.34)}
.quality-custom-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.quality-custom-head b{display:block;font-size:15px}.quality-custom-head span{display:block;margin-top:3px;color:#91aaa3;font-size:11px}
.quality-custom-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quality-custom-grid section{display:grid;gap:9px;align-content:start;padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.025)}
.quality-custom-grid h3{margin:0 0 2px;color:#b8e4cf;font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.quality-switch,.quality-field{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.045);color:#e8f2ee;font-size:11px;box-sizing:border-box}
.quality-switch>span{min-width:0}.quality-switch b{display:block;font-size:12px}.quality-switch small{display:block;margin-top:2px;color:#879b95;font-size:9px;line-height:1.25}.quality-switch input{width:20px;height:20px;flex:0 0 auto;accent-color:#71bf69;cursor:pointer}
.quality-field select{min-width:112px;height:32px;padding:0 8px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#152421;color:#ecf6f1}.quality-range{display:grid;grid-template-columns:1fr}.quality-range input{width:100%;accent-color:#71bf69}.quality-range output{float:right;color:#9fe095;font-weight:900}
@media(max-width:820px){.quality-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quality-custom-grid{grid-template-columns:1fr}.quality-render-resolution{align-items:stretch;flex-direction:column}.quality-render-resolution select{width:100%;min-width:0}}
@media(max-width:430px){body.city-mode #hamburgerMenu.classic-menu{width:calc(100vw - 16px)!important;left:8px!important}.quality-profile-grid{grid-template-columns:1fr}}

/* v0.9.102 — configurações gráficas em rascunho, aplicadas somente no botão. */
.quality-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
.quality-actions button{min-width:118px;padding:11px 18px;border-radius:10px;font-weight:800;cursor:pointer}
.quality-action-secondary{border:1px solid rgba(255,255,255,.14);background:#17211f;color:#c8d4d0}
.quality-action-primary{border:1px solid #58c594;background:#237b5b;color:#fff;box-shadow:0 8px 24px rgba(35,123,91,.28)}
.quality-action-primary:hover{filter:brightness(1.08)}

/* v0.9.120: clima adaptativo sem matar a animação. No zoom distante/FPS baixo
   removemos apenas o blur de tela inteira e desaceleramos a camada secundária. */
html.weather-low-cost-atmosphere .screen-rain::before{backdrop-filter:none!important;animation:simurban-rain-horizon 3.2s ease-in-out infinite alternate!important}
html.weather-low-cost-atmosphere .screen-rain::after{display:block!important;opacity:.42;animation:simurban-rain-screen .62s linear infinite reverse!important}
html.weather-low-cost-atmosphere .screen-rain{animation:simurban-rain-screen .38s linear infinite!important;will-change:background-position,opacity}

/* v0.9.133 — profundidade urbana estilo city builder. O desfoque fica apenas
   no horizonte, atrás da UI, e a névoa mascara o plano distante sem remover
   fachadas PNG dos prédios. */
.simurban-horizon-lens{
  position:absolute;
  inset:-3px;
  z-index:2;
  pointer-events:none;
  visibility:hidden;
  opacity:0;
  background:
    linear-gradient(to bottom,
      rgba(132,151,155,var(--horizon-haze,0)) 0%,
      rgba(119,139,144,calc(var(--horizon-haze,0) * .92)) 30%,
      rgba(103,124,130,calc(var(--horizon-haze,0) * .62)) 54%,
      rgba(88,108,114,calc(var(--horizon-haze,0) * .20)) 72%,
      transparent 86%);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 44%,rgba(0,0,0,.72) 61%,transparent 86%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 44%,rgba(0,0,0,.72) 61%,transparent 86%);
  transition:opacity .28s ease,visibility .28s ease;
  will-change:opacity;
  transform:translateZ(0);
}
.simurban-horizon-lens.active{visibility:visible}
body.start-mode .simurban-horizon-lens,
body.generator-mode .simurban-horizon-lens{visibility:hidden!important;opacity:0!important}
/* v0.9.166 — catálogo visual e portes dos pincéis de árvores. */
body.city-mode #toolPanel [data-terrain-panel="tree"] .tree-species-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(78px,1fr))!important;
  gap:7px!important;
}
body.city-mode #toolPanel [data-terrain-panel="tree"] .tree-species-grid button{
  height:58px!important;
  min-height:58px!important;
  padding:4px 5px!important;
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  align-items:center!important;
  gap:5px!important;
  overflow:hidden!important;
}
body.city-mode #toolPanel .terrain-tree-thumb{
  width:42px!important;
  height:48px!important;
  border-radius:7px!important;
  display:block!important;
  background-image:var(--tree-thumb)!important;
  background-size:cover!important;
  background-position:center!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 2px 8px rgba(0,0,0,.3)!important;
}
body.city-mode #toolPanel .tree-species-grid button span{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:9px!important;
}
body.city-mode #toolPanel .tree-size-title{margin-top:9px!important}
body.city-mode #toolPanel [data-terrain-panel="tree"] .tree-size-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(72px,1fr))!important;
  gap:6px!important;
}
@media(max-width:900px){
  body.city-mode #toolPanel [data-terrain-panel="tree"] .tree-species-grid{grid-template-columns:repeat(2,minmax(90px,1fr))!important}
}

/* v0.9.187: visão/controle de pedestre não reutiliza cockpit de veículo. */
html body.city-mode.driver-mode.pedestrian-camera-mode #driverDashboard.driver-dashboard,html body.city-mode.driver-mode.pedestrian-camera-mode #driverHud.driver-hud{display:none!important}

/* v0.9.196 — sombras fotográficas independentes no perfil personalizado. */
.quality-photo-shadow-switch{border-color:rgba(246,211,106,.28)!important;background:linear-gradient(135deg,rgba(246,211,106,.08),rgba(86,175,132,.05))!important}
.quality-photo-shadow-switch b{color:#f7e6a0!important}
.quality-field-locked{opacity:.48;filter:saturate(.55)}
.quality-field-locked select,.quality-field-locked input{cursor:not-allowed}


/* v0.9.208: cockpit real; painel PNG legado desativado em todos os modais. */
html body #driverDashboard.driver-dashboard{display:none!important}
