/* === styles-urban.css === */
:root{
  --bg:rgba(18,24,22,.86); --bg2:rgba(31,42,38,.78); --line:rgba(255,255,255,.14);
  --text:#f3f7f2; --muted:#b9c6bd; --accent:#8fd36b; --warn:#f2c66a; --danger:#ff7676;
}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#d7ddd9;font-family:Inter,Segoe UI,Arial,sans-serif;touch-action:none;color:var(--text)}
canvas{display:block;width:100%;height:100%}
button,input{font-family:inherit}.topbar{position:fixed;left:50%;top:10px;transform:translateX(-50%);height:48px;display:flex;align-items:center;gap:8px;padding:0 12px;background:rgba(15,21,20,.70);border:1px solid var(--line);box-shadow:0 14px 40px rgba(0,0,0,.24);border-radius:16px;backdrop-filter:blur(14px);z-index:7;max-width:calc(100vw - 24px);overflow-x:auto;scrollbar-width:thin}
.brand{display:flex;flex-direction:column;margin-right:8px;white-space:nowrap}.brand strong{font-size:14px}.brand span{font-size:11px;color:var(--muted)}
.hud-pill{height:32px;display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.055);font-size:12px;white-space:nowrap}.hud-pill b{color:var(--muted);font-size:11px}.hud-pill span{font-weight:800;color:#fff}.mode-toggle{cursor:pointer;color:var(--text)}
#ui{position:fixed;left:16px;top:70px;width:330px;max-height:calc(100vh - 148px);background:linear-gradient(180deg,var(--bg),rgba(12,16,15,.78));border:1px solid var(--line);box-shadow:0 18px 55px rgba(0,0,0,.32);border-radius:18px;backdrop-filter:blur(14px);z-index:5;overflow:hidden;user-select:none}
#ui.collapsed{height:48px;width:270px}#ui.collapsed .body{display:none}.head{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 16px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.035)}
.title{font-weight:800;letter-spacing:.2px;font-size:14px}.title span{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-top:1px}.iconbtn{width:32px;height:32px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--text);border-radius:10px;cursor:pointer;font-weight:800}.body{padding:12px 14px 14px;overflow:auto;max-height:calc(100vh - 188px);scrollbar-width:thin}
.row{display:grid;grid-template-columns:1fr 58px;gap:9px;align-items:center;margin:9px 0}.row label{font-size:12px;color:#e6eee6;font-weight:700}.row output{font-size:12px;color:var(--warn);text-align:right;font-variant-numeric:tabular-nums}.row input[type=range]{grid-column:1/3;width:100%;accent-color:var(--accent)}
.seedline{display:grid;grid-template-columns:1fr 94px;gap:8px;margin-bottom:10px}.seedline input{height:34px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:var(--text);padding:0 10px;font-weight:700;outline:none}.seedline button,.actions button,.start-city,.bottombar button,.zone-buttons button,.side-buttons button,.geometry-buttons button,.direction-buttons button,.lane-class-buttons button{height:34px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:var(--text);font-weight:800;cursor:pointer}.seedline button:hover,.actions button:hover,.iconbtn:hover,.sizebtn:hover,.bottombar button:hover,.start-city:hover,.zone-buttons button:hover,.side-buttons button:hover,.geometry-buttons button:hover,.direction-buttons button:hover,.lane-class-buttons button:hover{background:rgba(143,211,107,.17)}
.mapsize{margin:10px 0 6px}.mapsize b{display:block;font-size:12px;color:#e6eee6;font-weight:700;margin-bottom:7px}.sizebuttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sizebtn{height:34px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:var(--text);font-weight:800;cursor:pointer}.sizebtn.active{background:linear-gradient(180deg,rgba(143,211,107,.34),rgba(73,126,58,.30));border-color:rgba(143,211,107,.45)}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.actions button.primary{grid-column:1/3;background:linear-gradient(180deg,rgba(143,211,107,.32),rgba(73,126,58,.32));border-color:rgba(143,211,107,.45)}.start-city{width:100%;height:38px;margin-bottom:10px;background:linear-gradient(180deg,rgba(242,198,106,.28),rgba(132,88,35,.24));border-color:rgba(242,198,106,.42)}
.switches{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.switches label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.055);border:1px solid var(--line);border-radius:10px;padding:8px}.switches input{accent-color:var(--accent)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.stat{background:rgba(255,255,255,.055);border:1px solid var(--line);border-radius:10px;padding:8px}.stat b{display:block;font-size:11px;color:var(--muted);font-weight:650}.stat span{display:block;margin-top:3px;font-size:15px;font-weight:850;color:#fff;font-variant-numeric:tabular-nums}.hint{font-size:11px;line-height:1.35;color:var(--muted);margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.pill{position:fixed;right:16px;bottom:76px;background:rgba(18,24,22,.72);border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:12px;color:var(--muted);z-index:4;backdrop-filter:blur(10px)}
.bottombar{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:calc(100vw - 24px);background:rgba(15,21,20,.76);border:1px solid var(--line);border-radius:17px;padding:9px;box-shadow:0 14px 42px rgba(0,0,0,.30);z-index:7;backdrop-filter:blur(14px);overflow:auto}.bottombar button{padding:0 12px;white-space:nowrap}.bottombar button:disabled{opacity:.45;cursor:not-allowed}.bottombar button.active,.zone-buttons button.active,.side-buttons button.active,.geometry-buttons button.active,.direction-buttons button.active,.lane-class-buttons button.active,.bottombar button.speed-active{background:linear-gradient(180deg,rgba(143,211,107,.34),rgba(73,126,58,.30));border-color:rgba(143,211,107,.45)}
.tool-panel{position:fixed;right:16px;top:70px;width:260px;background:linear-gradient(180deg,var(--bg),rgba(12,16,15,.76));border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 55px rgba(0,0,0,.28);padding:12px;z-index:6;backdrop-filter:blur(14px);display:none}.city-mode .tool-panel{display:block}.panel-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900;margin-bottom:8px}.zone-buttons{display:grid;grid-template-columns:1fr;gap:7px}.side-buttons{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:7px;margin-top:8px}.side-buttons button{font-size:12px}.geometry-buttons,.direction-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.geometry-buttons button,.direction-buttons button{font-size:12px;text-transform:uppercase;letter-spacing:.03em}.zone-buttons button[data-zone-type="residential"].active{background:rgba(63,164,90,.36)}.zone-buttons button[data-zone-type="mixed"].active{background:rgba(72,179,160,.38)}.zone-buttons button[data-zone-type="commercial"].active{background:rgba(67,135,223,.36)}.zone-buttons button[data-zone-type="favela"].active{background:rgba(210,101,146,.38)}.zone-buttons button[data-zone-type="industrial"].active{background:rgba(209,156,54,.38)}.zone-buttons button[data-zone-type="erase"].active{background:rgba(231,109,109,.34)}.zone-brush-buttons button.active,#zoneGridToggle.active{background:rgba(143,211,107,.34);border-color:rgba(143,211,107,.45)}.zone-brush-wrap{margin-top:8px}.zone-grid-toggle-row{margin-top:8px;grid-template-columns:1fr}.lane-control{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:var(--muted);font-weight:800}.lane-control input{flex:1;accent-color:var(--accent)}.lane-control span{color:#fff;min-width:18px;text-align:right}.tool-hint{margin-top:10px;font-size:11px;line-height:1.35;color:var(--muted);background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:10px;padding:8px}.tool-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.tool-stats div{background:rgba(255,255,255,.055);border:1px solid var(--line);border-radius:10px;padding:7px}.tool-stats b{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.tool-stats span{display:block;margin-top:2px;font-weight:900;color:#fff}.inspector-text{margin-top:10px;border-top:1px solid var(--line);padding-top:10px;font-size:12px;color:#e7eee7;line-height:1.35;min-height:34px}
.toast{position:fixed;left:50%;bottom:78px;transform:translateX(-50%) translateY(18px);opacity:0;pointer-events:none;background:rgba(15,21,20,.90);border:1px solid var(--line);border-radius:12px;padding:10px 14px;color:#fff;font-size:13px;font-weight:800;z-index:8;transition:.18s ease}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.error{border-color:rgba(255,118,118,.55);color:#ffd7d7}
body.city-mode #ui{opacity:.36}body.city-mode #ui:hover{opacity:1}
@media(max-width:1180px){.hud-pill:nth-of-type(n+5):not(.hud-fps){display:none}.hud-fps{display:flex}.tool-panel{right:10px;width:230px}}
@media(max-width:920px){.topbar{left:10px;right:10px;transform:none;overflow:auto}.hud-pill{display:none}.hud-pill:first-of-type,.hud-fps{display:flex}#ui{left:10px;top:70px;width:calc(100vw - 20px)}.bottombar{left:10px;right:10px;transform:none;overflow:auto}.pill{display:none}.tool-panel{left:10px;right:10px;top:auto;bottom:82px;width:auto}}
.transit-actions{display:grid;grid-template-columns:1fr;gap:7px;margin-top:10px}
.transit-actions button{height:32px;border-radius:10px;border:1px solid var(--line);background:rgba(45,115,216,.16);color:var(--text);font-weight:850;cursor:pointer}
.transit-actions button:hover{background:rgba(45,115,216,.26)}

/* ===================== Transplante de interface (v2.2) ===================== */
/* Tudo aqui é só UI — nenhum gráfico de mundo do jogo antigo. */

/* --- Dock de painéis de dados (lado direito) --- */
.tn-info-dock{position:fixed;right:286px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:7px;z-index:6}
.tn-info-dock.hidden{display:none}
.tn-info-tool{width:46px;height:46px;border-radius:13px;border:1px solid var(--line);background:rgba(15,21,20,.78);backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(0,0,0,.30);cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;transition:background .12s,transform .12s}
.tn-info-tool:hover{background:rgba(143,211,107,.20);transform:translateX(-2px)}
.tn-info-tool.active{background:linear-gradient(180deg,rgba(143,211,107,.36),rgba(73,126,58,.30));border-color:rgba(143,211,107,.5)}

/* --- Painel de dados --- */
.tn-info-panel{position:fixed;right:344px;top:70px;width:320px;max-height:calc(100vh - 150px);overflow:auto;background:linear-gradient(180deg,var(--bg),rgba(12,16,15,.84));border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 60px rgba(0,0,0,.40);backdrop-filter:blur(14px);z-index:9;padding:0;font-size:13px}
.tn-info-panel.hidden{display:none}
.info-panel-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--line);background:rgba(20,28,25,.92);backdrop-filter:blur(8px);border-radius:16px 16px 0 0}
.info-panel-header strong{font-size:14px}
.info-close{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--text);cursor:pointer;font-weight:800}
.info-close:hover{background:rgba(255,118,118,.22)}
.tn-info-panel>.info-tabs,.tn-info-panel>.info-tab-body,.tn-info-panel>.info-grid,.tn-info-panel>h4,.tn-info-panel>.bar-row,.tn-info-panel>.line-card,.tn-info-panel>.info-hint,.tn-info-panel>.mini-chart{margin-left:14px;margin-right:14px}
.tn-info-panel h4{margin:13px 14px 7px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 14px}
.info-grid.small{grid-template-columns:1fr 1fr 1fr}
.info-stat{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:10px;padding:7px 9px}
.info-stat span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.info-stat strong{display:block;margin-top:2px;font-weight:900;color:#fff;font-size:14px}
.bar-row{display:flex;align-items:center;gap:8px;margin:6px 14px;font-size:12px;color:var(--muted)}
.bar-row>span{flex:0 0 116px}
.bar-row .bar{flex:1;height:8px;border-radius:6px;background:rgba(255,255,255,.08);overflow:hidden}
.bar-row .bar i{display:block;height:100%;background:var(--accent);border-radius:6px}
.bar-row>b{flex:0 0 38px;text-align:right;color:#fff}
.info-hint{margin:9px 14px;font-size:11px;line-height:1.4;color:var(--muted);background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:10px;padding:8px}
.info-tabs{display:flex;gap:6px;margin:11px 14px 4px;flex-wrap:wrap}
.info-tab{padding:6px 10px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--muted);font-weight:800;font-size:11px;cursor:pointer}
.info-tab.active{background:linear-gradient(180deg,rgba(143,211,107,.32),rgba(73,126,58,.26));border-color:rgba(143,211,107,.45);color:#fff}
.info-tab-body{padding-bottom:10px}
.line-card{margin:8px 14px;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:11px;padding:9px 10px}
.line-head{display:flex;align-items:center;gap:8px;font-size:13px}
.line-sub{margin-left:auto;font-size:11px;color:var(--muted);font-weight:600}
.fare-row{display:flex;align-items:center;gap:8px;margin-top:6px}
.fare-row label{font-size:12px;color:var(--muted)}
.fare-row input{flex:1;accent-color:var(--accent)}
.fare-label{font-weight:800;color:#fff;min-width:64px;text-align:right;font-size:12px}
.mini-chart{margin:8px 14px;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;padding:8px 9px}
.mini-chart-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin-bottom:4px}
.mini-chart-head b{font-size:13px}
.mini-chart svg{width:100%;height:54px;display:block}

/* --- Minimapa base — posição final ajustada no bloco v2.3.0 --- */
.tn-minimap{position:fixed;left:16px;bottom:74px;width:212px;background:linear-gradient(180deg,var(--bg),rgba(12,16,15,.84));border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.40);backdrop-filter:blur(14px);z-index:8;padding:8px}
.tn-minimap.hidden{display:none}
.tn-minimap-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:6px;padding:0 2px}
.tn-minimap-head b{font-size:12px}
.tn-minimap-head span{color:var(--muted);font-size:11px}
.tn-minimap canvas{width:196px;height:196px;border-radius:9px;display:block;cursor:crosshair;image-rendering:auto}
.tn-minimap-dock{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:5px;margin-top:7px}
.tn-minimap-dock button{height:28px;border-radius:8px;border:1px solid var(--line);background:rgba(143,211,107,.16);color:var(--text);font-weight:800;font-size:11px;cursor:pointer}
.tn-minimap-dock button:hover{background:rgba(143,211,107,.28)}
.tn-minimap-dock button.off{background:rgba(255,255,255,.05);color:var(--muted);opacity:.7}
.tn-minimap-dock-underground{margin-top:6px}
.tn-minimap-dock-underground button{width:100%;height:28px;border-radius:8px;border:1px solid var(--line);color:var(--text);font-weight:800;font-size:11px;cursor:pointer;background:rgba(120,140,255,.14)}
.tn-minimap-dock-underground button:hover{background:rgba(120,140,255,.26)}
.tn-minimap-dock-underground button.on{background:rgba(120,140,255,.5);border-color:rgba(120,140,255,.7)}

/* --- Painel do gestor de tráfego (TMPE) --- */
.tmpe-panel{position:fixed;right:16px;top:70px;width:260px;background:linear-gradient(180deg,var(--bg),rgba(12,16,15,.82));border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 55px rgba(0,0,0,.30);padding:12px;z-index:8;backdrop-filter:blur(14px);display:none}
.tmpe-panel.visible{display:block}
.tmpe-mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.tmpe-mode-buttons button{height:34px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:var(--text);font-weight:800;cursor:pointer;font-size:12px}
.tmpe-mode-buttons button.active{background:linear-gradient(180deg,rgba(143,211,107,.34),rgba(73,126,58,.30));border-color:rgba(143,211,107,.45)}
.tmpe-legend{margin-top:10px;display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}
.tmpe-legend div{display:flex;align-items:center;gap:8px}
.tmpe-legend .lg{width:14px;height:14px;border-radius:4px;flex:0 0 14px}
.lg-sig{background:#57c66a;box-shadow:0 0 0 2px rgba(230,193,74,.6) inset}
.lg-stop{background:#c8362b}
.lg-yield{background:#e05a3a}
.tmpe-summary{margin-top:10px}
.tmpe-clear{margin-top:10px;width:100%;height:32px;border-radius:10px;border:1px solid var(--line);background:rgba(255,118,118,.16);color:var(--text);font-weight:800;cursor:pointer}
.tmpe-clear:hover{background:rgba(255,118,118,.28)}

/* --- Botão e modal de atalhos --- */
.tn-shortcuts-btn{position:fixed;right:16px;bottom:16px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:rgba(15,21,20,.82);color:var(--text);font-weight:900;font-size:18px;cursor:pointer;z-index:10;box-shadow:0 10px 30px rgba(0,0,0,.34);backdrop-filter:blur(12px)}
.tn-shortcuts-btn:hover{background:rgba(143,211,107,.22)}
.tn-shortcuts-modal{position:fixed;inset:0;background:rgba(6,9,8,.55);backdrop-filter:blur(4px);z-index:20;display:flex;align-items:center;justify-content:center}
.tn-shortcuts-modal.hidden{display:none}
.tn-shortcuts-card{width:min(560px,92vw);max-height:84vh;overflow:auto;background:linear-gradient(180deg,var(--bg),rgba(12,16,15,.92));border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.tn-shortcuts-card header{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);background:rgba(20,28,25,.95)}
.tn-shortcuts-card header strong{font-size:16px}
.tn-sc-close{width:28px;height:28px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--text);cursor:pointer;font-weight:800}
.tn-shortcuts-body{padding:14px 18px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tn-sc-group h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}
.tn-sc-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;font-size:12px;color:var(--muted)}
.tn-sc-row kbd{flex:0 0 auto;min-width:34px;text-align:center;padding:3px 8px;border-radius:7px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:#fff;font-weight:800;font-size:11px;font-family:inherit}

/* --- Ajustes responsivos para a nova UI --- */
@media(max-width:1240px){
  .tn-info-dock{right:auto;left:16px;top:auto;bottom:300px;transform:none;flex-direction:row;flex-wrap:wrap;width:212px}
  .tn-info-panel{right:auto;left:16px;bottom:74px;top:auto;width:300px;max-height:46vh}
}
@media(max-width:920px){
  .tn-minimap,.tn-info-dock,.tn-info-panel,.tmpe-panel{display:none!important}
}


/* ===================== v2.3.0 Shell Merge — ajustes vindos do game-ui-shell v3.3 ===================== */
/* Mantém renderer/sistemas reais da v2.2.2 e aplica apenas o melhor do shell: barras mais legíveis,
   ferramentas com ícones, minimapa no lado direito sem esmagar o painel de construção e painéis de dados no lado esquerdo. */
.topbar{
  min-width:min(1120px,calc(100vw - 32px));
  height:54px;
  gap:10px;
  padding:7px 12px;
  border-radius:18px;
  background:rgba(15,24,21,.78);
}
.brand{margin-right:4px;min-width:150px}.brand strong{font-size:13px}.brand span{font-size:10px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hud-pill{height:34px;background:rgba(255,255,255,.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.bottombar{
  bottom:14px;
  padding:8px;
  gap:7px;
  border-radius:18px;
  background:rgba(15,24,21,.82);
  scrollbar-width:thin;
}
.bottombar button{min-width:54px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.bottombar button[data-tool]{height:46px;min-width:70px;flex-direction:column;gap:2px;padding:4px 8px;line-height:1.05}
.tool-ico{font-size:18px;line-height:1}.tool-label{font-size:11px;font-weight:850}.compact-action{height:34px}.danger-action{border-color:rgba(255,118,118,.28)!important}
body.city-mode #ui{transform:translateX(calc(-100% + 44px));opacity:.32;transition:transform .18s ease,opacity .18s ease}
body.city-mode #ui:hover{transform:translateX(0);opacity:1}
body.city-mode .pill{display:none}
.tn-info-dock{left:16px;right:auto;top:calc(50% + 30px);transform:translateY(-50%)}
.tn-info-tool:hover{transform:translateX(2px)}
.tn-info-panel{left:74px;right:auto;top:70px;width:326px;max-height:calc(100vh - 154px)}
.tn-minimap{left:auto;right:286px;bottom:74px;width:212px}
.tn-shortcuts-btn{right:16px;bottom:16px}
.tmpe-panel{z-index:9}
@media(max-width:1320px){
  .brand{display:none}.topbar{min-width:auto}.hud-pill:nth-of-type(n+8){display:none}.tn-minimap{right:16px;width:190px}.tn-minimap canvas{width:174px;height:174px}.tn-info-panel{width:300px}
}
@media(max-width:1180px){
  .hud-pill:nth-of-type(n+6){display:none}.bottombar button[data-tool]{min-width:58px}.tool-label{display:none}.tool-ico{font-size:20px}.tn-info-dock{bottom:300px;top:auto;transform:none;flex-direction:row;flex-wrap:wrap;width:212px}.tn-info-panel{left:16px;bottom:74px;top:auto;max-height:46vh}.tn-minimap{display:none!important}
}
@media(max-width:920px){
  body.city-mode #ui{transform:none;opacity:1}.topbar{left:10px;right:10px;transform:none;overflow:auto}.bottombar{left:10px;right:10px;transform:none}.bottombar button[data-tool]{height:38px}.tool-panel{left:10px;right:10px;top:auto;bottom:74px;width:auto}.tn-minimap,.tn-info-dock,.tn-info-panel,.tmpe-panel{display:none!important}
}

/* ===================== v2.3.2 — fluxo limpo: inicial / gerador / cidade ===================== */
.start-screen{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 25%,rgba(143,211,107,.18),transparent 34%),linear-gradient(180deg,rgba(6,12,10,.78),rgba(6,10,9,.94));backdrop-filter:blur(8px);padding:24px}
.start-card{width:min(520px,92vw);border:1px solid rgba(255,255,255,.16);border-radius:24px;background:linear-gradient(180deg,rgba(17,27,24,.92),rgba(10,16,14,.86));box-shadow:0 30px 90px rgba(0,0,0,.55);padding:30px 32px;text-align:left}
.start-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:var(--accent);font-weight:900;margin-bottom:8px}.start-card h1{font-size:52px;line-height:1;margin:0 0 12px}.start-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.45}.start-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.start-actions button{height:46px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:var(--text);font-weight:900;cursor:pointer}.start-actions button:hover{background:rgba(143,211,107,.18)}.start-actions .primary-start{background:linear-gradient(180deg,rgba(143,211,107,.36),rgba(73,126,58,.28));border-color:rgba(143,211,107,.52)}.start-meta{margin-top:14px;color:var(--muted);font-size:12px}
body:not(.start-mode) .start-screen{display:none!important}
body.start-mode .topbar,body.start-mode #ui,body.start-mode .tool-panel,body.start-mode .bottombar,body.start-mode .tn-info-dock,body.start-mode .tn-info-panel,body.start-mode .tn-minimap,body.start-mode .tmpe-panel,body.start-mode .tn-shortcuts-btn,body.start-mode .pill{display:none!important}
body.generator-mode .tool-panel,body.generator-mode .bottombar,body.generator-mode .tn-info-dock,body.generator-mode .tn-info-panel,body.generator-mode .tn-minimap,body.generator-mode .tmpe-panel,body.generator-mode .tn-shortcuts-btn,body.generator-mode .pill{display:none!important}
body.generator-mode #ui{display:block;opacity:1;transform:none;width:350px;z-index:9}
body.city-mode #ui{display:none!important}
body.city-mode .start-screen{display:none!important}
body.city-mode .bottombar{display:flex}.city-mode .tool-panel{display:block}
body.generator-mode .topbar{min-width:auto;width:auto;max-width:calc(100vw - 32px)}
body.generator-mode .topbar .hud-pill:nth-of-type(n+4){display:none}
body.generator-mode .brand{display:flex}
body.generator-mode .brand span::after{content:' • Gerador isolado'}
@media(max-width:720px){.start-actions{grid-template-columns:1fr}.start-card h1{font-size:40px}body.generator-mode #ui{left:10px;right:10px;width:auto}}

/* ===================== v2.3.4 — UI antiga adaptada: submenu único por ferramenta ===================== */
.tool-panel{
  width:300px;
  top:70px;
  right:16px;
  max-height:calc(100vh - 150px);
  overflow:auto;
  padding:0;
}
.tool-panel-head{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 13px;
  border-bottom:1px solid var(--line);
  background:rgba(20,28,25,.92);
  backdrop-filter:blur(8px);
  border-radius:16px 16px 0 0;
}
.tool-panel-head .panel-title{margin:0;color:#dfeee1}
.tool-panel-subtitle{margin-top:2px;font-size:11px;color:var(--muted);line-height:1.25}
.tool-panel-close{width:28px;height:28px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--text);font-weight:900;cursor:pointer;flex:0 0 auto}
.tool-panel-close:hover{background:rgba(255,118,118,.20)}
.tool-section{display:none;padding:12px 13px 0}
.tool-section.active{display:block}
.tool-section-title{font-size:13px;font-weight:950;letter-spacing:.03em;text-transform:uppercase;color:var(--accent);margin-bottom:9px}
.tool-empty-icon{font-size:32px;margin-bottom:8px}.tool-section[data-tool-section="none"] b{display:block;font-size:14px}.tool-section[data-tool-section="none"] p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.42}
.lane-class-panel{margin-top:10px}.lane-class-panel>b{display:block;font-size:12px;color:#fff;margin-bottom:7px}.lane-class-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.lane-class-buttons button{font-size:11px;padding:0 6px}
.tool-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.tool-mini-stats div{background:rgba(255,255,255,.055);border:1px solid var(--line);border-radius:10px;padding:7px}.tool-mini-stats b{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.tool-mini-stats span{display:block;margin-top:2px;font-weight:900;color:#fff}
.danger-hint{border-color:rgba(255,118,118,.28);background:rgba(255,118,118,.08);color:#ffdede}
.inspector-text{margin:12px 13px 13px;border-top:1px solid var(--line);padding-top:10px}
.city-mode .tool-panel{display:block}.city-mode .tool-panel[data-active-tool="tmpe"]{z-index:9}
.tn-minimap{right:332px}
@media(max-width:1320px){.tn-minimap{right:16px}.tool-panel{width:282px}}
@media(max-width:1180px){.tool-panel{right:10px;width:250px}.lane-class-buttons{grid-template-columns:repeat(2,1fr)}}
@media(max-width:920px){.tool-panel{left:10px;right:10px;top:auto;bottom:74px;width:auto;max-height:44vh}.tool-section{padding:10px 12px 0}.tool-mini-stats{grid-template-columns:repeat(2,1fr)}}


/* ===================== v2.3.5/v2.3.6 — refino visual geral ===================== */
:root{
  --bg:rgba(11,17,16,.88);
  --bg2:rgba(22,33,30,.78);
  --line:rgba(225,238,226,.105);
  --text:#edf4ed;
  --muted:#9fb0a8;
  --accent:#87c85f;
  --accent2:#55a5d8;
  --panelShadow:0 24px 70px rgba(0,0,0,.38);
}
body.city-mode::before,body.generator-mode::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(circle at 50% 42%,transparent 44%,rgba(0,0,0,.20) 100%),linear-gradient(180deg,rgba(255,245,220,.035),rgba(0,0,0,.06));
  mix-blend-mode:multiply;
}
.topbar,.bottombar,.tool-panel,.tn-info-panel,.tn-minimap,#ui{
  border-color:rgba(219,235,222,.105)!important;
  box-shadow:var(--panelShadow),inset 0 1px 0 rgba(255,255,255,.055);
}
.topbar{
  height:52px;
  background:linear-gradient(180deg,rgba(18,28,26,.82),rgba(8,14,13,.72));
  border-radius:20px;
  padding:6px 12px;
}
.brand strong{letter-spacing:.02em}.brand span{color:#91a199}
.hud-pill{
  height:32px;
  background:linear-gradient(180deg,rgba(255,255,255,.072),rgba(255,255,255,.035));
  border-color:rgba(255,255,255,.10);
  color:#eaf1e8;
}
.hud-pill b{color:#99aaa1}.hud-pill span{font-weight:900;color:#f7fbf4;text-shadow:0 1px 0 rgba(0,0,0,.22)}
.bottombar{
  bottom:13px;
  background:linear-gradient(180deg,rgba(14,24,22,.88),rgba(6,13,13,.84));
  padding:7px 9px;
}
.bottombar button,.zone-buttons button,.side-buttons button,.geometry-buttons button,.direction-buttons button,.lane-class-buttons button,.transit-actions button,.seedline button,.actions button,.start-actions button,.compact-action{
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.038));
  border-color:rgba(255,255,255,.105);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 6px 16px rgba(0,0,0,.12);
  transition:transform .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease;
}
.bottombar button:hover,.zone-buttons button:hover,.side-buttons button:hover,.geometry-buttons button:hover,.direction-buttons button:hover,.lane-class-buttons button:hover,.transit-actions button:hover,.seedline button:hover,.actions button:hover,.start-actions button:hover,.compact-action:hover{
  transform:translateY(-1px);
  background:linear-gradient(180deg,rgba(135,200,95,.22),rgba(81,130,66,.14));
  border-color:rgba(135,200,95,.38);
}
.bottombar button.active,.bottombar button.speed-active,.zone-buttons button.active,.side-buttons button.active,.geometry-buttons button.active,.direction-buttons button.active,.lane-class-buttons button.active{
  background:linear-gradient(180deg,rgba(135,200,95,.42),rgba(57,103,50,.28));
  border-color:rgba(153,220,105,.55);
  box-shadow:0 0 0 1px rgba(135,200,95,.10),0 10px 24px rgba(68,136,70,.18),inset 0 1px 0 rgba(255,255,255,.12);
}
.tool-panel{
  background:linear-gradient(180deg,rgba(14,22,20,.92),rgba(7,12,12,.86));
  border-radius:18px;
  width:306px;
}
.tool-panel-head{
  background:linear-gradient(180deg,rgba(25,37,33,.96),rgba(13,22,20,.92));
  border-radius:18px 18px 0 0;
  padding:13px 14px;
}
.tool-panel-head .panel-title{font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:#eaf7ea}.tool-panel-subtitle{color:#8fa29a}
.tool-section{padding:13px 14px 0}.tool-section-title{color:#9dda78;text-shadow:0 0 18px rgba(125,205,99,.18)}
.tool-hint,.tool-mini-stats div,.tool-stats div,.stat,.switches label{
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));
  border-color:rgba(255,255,255,.09);
}
.tool-hint{color:#aab8b1}.tool-mini-stats span,.tool-stats span,.stat span{color:#f4f9f2}
.lane-control input,.row input[type=range]{accent-color:#87c85f}.lane-control{color:#aebbb4}.lane-control span{font-weight:950}
.tn-info-dock{gap:8px}.tn-info-tool{
  width:44px;height:44px;border-radius:14px;
  background:linear-gradient(180deg,rgba(14,24,22,.86),rgba(6,12,12,.78));
  border-color:rgba(255,255,255,.10);
}
.tn-info-tool.active{box-shadow:0 0 0 1px rgba(135,200,95,.18),0 12px 26px rgba(35,88,48,.24)}
.tn-info-panel,.tn-minimap{
  background:linear-gradient(180deg,rgba(14,23,21,.90),rgba(8,13,13,.84));
  border-radius:18px;
}
.tn-minimap canvas{border-radius:12px;filter:saturate(.92) contrast(.96) brightness(.94)}
.start-screen{
  background:radial-gradient(circle at 32% 22%,rgba(123,200,93,.20),transparent 34%),radial-gradient(circle at 70% 65%,rgba(70,150,210,.12),transparent 36%),linear-gradient(180deg,rgba(5,10,9,.84),rgba(3,7,7,.96));
}
.start-card{
  background:linear-gradient(180deg,rgba(20,31,28,.94),rgba(8,13,13,.90));
  box-shadow:0 32px 100px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.07);
}
.start-card h1{letter-spacing:-.045em}.start-kicker{color:#9fe072}.start-actions .primary-start{background:linear-gradient(180deg,rgba(143,211,107,.42),rgba(63,115,54,.30))}
body.generator-mode #ui{
  background:linear-gradient(180deg,rgba(13,22,20,.92),rgba(7,12,12,.88));
  border-radius:20px;
}
.toast{background:rgba(10,16,15,.93);box-shadow:0 16px 44px rgba(0,0,0,.34)}
.inspector-text{color:#dce7df}
.danger-action:hover,.danger-hint{border-color:rgba(255,118,118,.34)!important;background:rgba(255,118,118,.09)!important}
@media(max-width:1320px){.tool-panel{width:286px}.tn-minimap{right:16px}}
@media(max-width:920px){body.city-mode::before,body.generator-mode::before{display:none}.tool-panel{max-height:45vh}}

/* ===================== v2.3.6 Visual Premium Polish ===================== */
:root{
  --bg:rgba(12,17,16,.84);
  --bg2:rgba(23,31,28,.76);
  --line:rgba(225,235,222,.105);
  --text:#eff5ed;
  --muted:#aebcaf;
  --accent:#80c864;
  --warn:#dfb45b;
  --danger:#e76d6d;
  --panel-glow:rgba(128,200,100,.09);
}
html,body{background:#cdd4cf;color:var(--text);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}
canvas{filter:saturate(.94) contrast(1.025)}
.topbar{
  height:46px;
  padding:0 13px;
  gap:7px;
  background:linear-gradient(180deg,rgba(14,20,19,.78),rgba(8,12,12,.66));
  border-color:rgba(232,238,226,.11);
  box-shadow:0 16px 44px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.08);
  border-radius:18px;
}
.brand strong{font-size:13px;letter-spacing:.04em;text-transform:uppercase}.brand span{font-size:10px;opacity:.82}.hud-pill{height:30px;padding:0 9px;background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.09);box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}.hud-pill b{font-size:10px;letter-spacing:.045em;text-transform:uppercase}.hud-pill span{font-size:12px;color:#f7fbf4}.bottombar{bottom:12px;padding:8px;gap:7px;background:linear-gradient(180deg,rgba(13,18,17,.80),rgba(8,11,11,.70));border-color:rgba(235,240,230,.12);box-shadow:0 16px 46px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.07)}.bottombar button,.seedline button,.actions button,.start-city,.zone-buttons button,.side-buttons button,.geometry-buttons button,.direction-buttons button,.lane-class-buttons button,.transit-actions button,.tmpe-clear{height:33px;border-radius:11px;border-color:rgba(255,255,255,.10);background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035));box-shadow:inset 0 1px 0 rgba(255,255,255,.055);transition:background .12s ease,border-color .12s ease,transform .12s ease,box-shadow .12s ease}.bottombar button:hover,.seedline button:hover,.actions button:hover,.start-city:hover,.zone-buttons button:hover,.side-buttons button:hover,.geometry-buttons button:hover,.direction-buttons button:hover,.lane-class-buttons button:hover,.transit-actions button:hover,.tmpe-clear:hover{background:linear-gradient(180deg,rgba(128,200,100,.20),rgba(80,128,62,.12));border-color:rgba(128,200,100,.24);transform:translateY(-1px)}.bottombar button.active,.zone-buttons button.active,.side-buttons button.active,.geometry-buttons button.active,.direction-buttons button.active,.lane-class-buttons button.active,.bottombar button.speed-active{background:linear-gradient(180deg,rgba(128,200,100,.31),rgba(58,103,49,.24));border-color:rgba(128,200,100,.42);box-shadow:0 0 0 1px rgba(128,200,100,.10),0 8px 22px rgba(50,95,42,.18),inset 0 1px 0 rgba(255,255,255,.08)}#ui,.tool-panel,.tn-info-panel,.newcore-minimap{background:linear-gradient(180deg,rgba(15,21,20,.82),rgba(9,13,13,.73));border-color:rgba(230,238,226,.105);box-shadow:0 20px 60px rgba(0,0,0,.33),inset 0 1px 0 rgba(255,255,255,.065);backdrop-filter:blur(18px) saturate(1.08)}#ui{border-radius:19px}.head{background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.018));height:49px}.title{letter-spacing:.035em}.title span{opacity:.78}.body{padding:13px 14px 15px}.row{margin:8px 0}.row label,.mapsize b{font-size:11px;letter-spacing:.02em;text-transform:uppercase;color:#dfe9de}.row output{color:#d6b46d}.row input[type=range],.lane-control input{accent-color:#78bd5f}.seedline input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.10);box-shadow:inset 0 1px 2px rgba(0,0,0,.24)}.stat,.tool-mini-stats div,.tool-stats div,.switches label,.tool-hint,.tmpe-legend,.lane-class-panel{background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.026));border-color:rgba(255,255,255,.085);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}.tool-panel{width:274px;padding:13px;border-radius:18px}.tool-panel-head{padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid rgba(255,255,255,.075)}.panel-title,.tool-section-title{font-size:11px;letter-spacing:.105em;text-transform:uppercase;color:#cfdccd}.tool-panel-subtitle{font-size:11px;color:#a8b7aa;line-height:1.25}.tool-panel-close,.iconbtn{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.055)}.tool-panel-close:hover,.iconbtn:hover{background:rgba(231,109,109,.18);border-color:rgba(231,109,109,.30)}.lane-class-buttons{gap:6px}.lane-class-buttons button{font-size:11px;padding:0 7px}.tool-hint{font-size:11px;color:#aebcaf}.danger-hint{border-color:rgba(231,109,109,.22);background:rgba(231,109,109,.09)}.start-screen{background:radial-gradient(circle at 28% 22%,rgba(128,200,100,.18),transparent 34%),radial-gradient(circle at 70% 78%,rgba(223,180,91,.12),transparent 38%),linear-gradient(145deg,#141b19,#0a0f0f 62%,#121816)}.start-card{background:linear-gradient(180deg,rgba(24,32,29,.82),rgba(11,16,15,.78));border:1px solid rgba(235,240,230,.12);box-shadow:0 30px 90px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(20px) saturate(1.08)}.start-kicker{color:#9ad17b;letter-spacing:.18em}.start-card h1{letter-spacing:-.045em;text-shadow:0 18px 52px rgba(128,200,100,.12)}.primary-start{background:linear-gradient(180deg,rgba(128,200,100,.36),rgba(68,113,54,.26));border-color:rgba(128,200,100,.38)}.newcore-minimap canvas{border-radius:12px;filter:saturate(.92) contrast(1.02)}.tn-info-tool{background:linear-gradient(180deg,rgba(15,21,20,.82),rgba(8,12,12,.72));border-color:rgba(255,255,255,.10);box-shadow:0 12px 34px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.055)}.tn-info-tool.active{background:linear-gradient(180deg,rgba(128,200,100,.28),rgba(58,103,49,.20));border-color:rgba(128,200,100,.35)}.toast{background:rgba(10,14,14,.92);border-color:rgba(235,240,230,.12);box-shadow:0 16px 44px rgba(0,0,0,.38)}.pill{background:rgba(13,18,17,.66);border-color:rgba(255,255,255,.09);box-shadow:0 12px 32px rgba(0,0,0,.24)}body.city-mode #ui{opacity:.30;filter:saturate(.85)}body.city-mode #ui:hover{opacity:1;filter:none}@media(max-width:1366px){.topbar{height:44px;gap:6px}.hud-pill{padding:0 7px}.hud-pill:nth-of-type(n+7){display:none}.tool-panel{width:256px}.tn-info-dock{right:276px}.bottombar button{padding:0 10px;font-size:12px}}@media(max-height:780px){.tool-panel{top:62px;max-height:calc(100vh - 142px);overflow:auto}.bottombar{bottom:8px}.pill{bottom:66px}.topbar{top:8px}#ui{top:62px;max-height:calc(100vh - 134px)}}

.road-type-buttons,.rail-type-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 10px}
.road-type-buttons button,.rail-type-buttons button{border:1px solid rgba(255,255,255,.14);background:linear-gradient(180deg,rgba(48,62,56,.94),rgba(24,32,30,.94));color:#edf6ef;border-radius:10px;padding:9px 10px;font-weight:800;text-transform:uppercase;font-size:12px;cursor:pointer}
.road-type-buttons button.active,.rail-type-buttons button.active{background:linear-gradient(180deg,rgba(44,93,55,.98),rgba(34,70,43,.98));border-color:rgba(132,216,120,.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 0 0 1px rgba(103,204,116,.18)}



/* ===================== v2.3.8 — fluxo clássico antigo: Novo Jogo / Gerador / Cidade ===================== */
body.start-mode #topbar,
body.start-mode #ui,
body.start-mode #toolPanel,
body.start-mode #bottombar,
body.start-mode .tn-info-dock,
body.start-mode .tn-info-panel,
body.start-mode .tn-minimap,
body.start-mode .pill,
body.start-mode .classic-menu{display:none!important}

body.generator-mode #startScreen,
body.generator-mode #topbar,
body.generator-mode #toolPanel,
body.generator-mode #bottombar,
body.generator-mode .tn-info-dock,
body.generator-mode .tn-info-panel,
body.generator-mode .tn-minimap,
body.generator-mode .pill,
body.generator-mode .classic-menu{display:none!important}

body.city-mode #startScreen,
body.city-mode #ui{display:none!important}

.classic-start-card{max-width:620px}
.classic-start-card h1{letter-spacing:-.04em}
.classic-start-actions{grid-template-columns:1.2fr 1fr 1fr}
.start-menu-hint{
  margin:14px 0 4px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:14px;
  background:rgba(255,255,255,.055);
  color:var(--muted);
  font-size:12px;
  line-height:1.42;
}
.start-menu-hint b{color:#eef7f1}

/* Topbar mais próxima do shell antigo */
.topbar{
  top:12px;
  height:54px;
  min-width:min(1120px,calc(100vw - 32px));
  padding:8px 12px;
  gap:10px;
  border-radius:16px;
  background:rgba(13,28,25,.84);
  box-shadow:0 16px 42px rgba(0,0,0,.34);
}
.hamb{
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.075);
  color:#eef7f1;
  font-weight:900;
  font-size:17px;
  cursor:pointer;
}
.hamb:hover{background:rgba(143,211,107,.18)}
.mapName{min-width:210px}
.hud-pill{height:34px;background:rgba(255,255,255,.06)}
.classic-menu{
  position:fixed;
  top:74px;
  left:calc(50% - min(560px,calc(50vw - 16px)));
  z-index:20;
  display:grid;
  gap:7px;
  padding:10px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(13,28,25,.94);
  box-shadow:0 16px 44px rgba(0,0,0,.35);
  backdrop-filter:blur(12px);
}
.classic-menu.hidden{display:none!important}
.classic-menu button{
  min-width:160px;
  height:36px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(255,255,255,.075);
  color:var(--text);
  font-weight:800;
  text-align:left;
  padding:0 12px;
  cursor:pointer;
}
.classic-menu button:hover{background:rgba(143,211,107,.17)}

/* Barra inferior em categorias, como o modelo antigo */
.classic-bottombar{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:10px;
  min-width:min(1160px,calc(100vw - 28px));
  padding:10px;
  border-radius:18px;
}
.speed-cluster,.tool-cluster,.save-cluster{display:flex;align-items:center;gap:8px}
.tool-cluster{justify-content:center}
.classic-bottombar .tool-cluster button{
  width:86px;
  height:62px;
  display:grid;
  place-items:center;
  gap:2px;
  padding:6px;
}
.classic-bottombar .tool-ico{font-size:22px;line-height:1}
.classic-bottombar .tool-label{font-size:11px;line-height:1;font-weight:800}
.classic-bottombar .compact-action{height:36px;min-width:42px;padding:0 12px}
.save-cluster .compact-action{min-width:72px}

/* Painel direito com cara de submenu único antigo */
.tool-panel{
  top:82px;
  right:18px;
  width:318px;
  border-radius:18px;
  background:rgba(13,28,25,.86);
  box-shadow:0 16px 44px rgba(0,0,0,.34);
}
.tool-panel-head{background:rgba(11,22,20,.94)}
.classic-subtitle{
  margin:-2px 0 10px;
  font-size:11px;
  line-height:1.35;
  color:var(--muted);
}
.preset-buttons,.tool-choice-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin:8px 0 10px;
}
.preset-buttons button,.tool-choice-grid button{
  min-height:34px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(255,255,255,.08);
  color:var(--text);
  font-weight:850;
  cursor:pointer;
  font-size:12px;
}
.preset-buttons button:hover,.tool-choice-grid button:hover{background:rgba(143,211,107,.17)}
.road-type-buttons,.rail-type-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.road-type-buttons button,.rail-type-buttons button{
  height:34px;
  border-radius:10px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.08);
  color:var(--text);
  font-weight:900;
  cursor:pointer;
  text-transform:uppercase;
  font-size:12px;
}
.road-type-buttons button.active,.rail-type-buttons button.active{
  background:linear-gradient(180deg,rgba(143,211,107,.34),rgba(73,126,58,.30));
  border-color:rgba(143,211,107,.45);
}

/* No modo cidade: dock antigo de relatórios fica à esquerda e minimapa à direita. */
body.city-mode .tn-info-dock{
  left:14px;
  top:50%;
  transform:translateY(-50%);
}
body.city-mode .tn-minimap{
  right:18px;
  bottom:96px;
}
body.city-mode .pill{display:none!important}

@media(max-width:1180px){
  .hud-pill:nth-of-type(n+7){display:none}
  .classic-bottombar{grid-template-columns:1fr;max-height:188px;overflow:auto}
  .speed-cluster,.tool-cluster,.save-cluster{justify-content:center;flex-wrap:wrap}
}
@media(max-width:760px){
  .classic-start-actions{grid-template-columns:1fr}
  .topbar{left:10px;right:10px;transform:none;min-width:0}
  .tool-panel{right:10px;width:min(318px,calc(100vw - 20px))}
}



/* Painel esquerdo clássico fixo */
.classic-left-panel{
  position:fixed;
  left:16px;
  top:82px;
  width:286px;
  max-height:calc(100vh - 190px);
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(13,28,25,.82);
  box-shadow:0 16px 44px rgba(0,0,0,.30);
  backdrop-filter:blur(14px);
  overflow:hidden;
  z-index:6;
  display:none;
}
body.city-mode .classic-left-panel{display:block}
body.start-mode .classic-left-panel,
body.generator-mode .classic-left-panel{display:none!important}
.classic-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px;border-bottom:1px solid var(--line);background:rgba(9,18,16,.74)}
.classic-tabs button{
  height:32px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(255,255,255,.07);
  color:var(--text);
  font-weight:850;
  font-size:11px;
  cursor:pointer;
}
.classic-tabs button.active{background:rgba(143,211,107,.24);border-color:rgba(143,211,107,.42)}
.classic-panel-body{padding:13px}
.classic-panel-body h2{
  margin:0 0 10px;
  font-size:13px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#aee8bd;
}
.classic-cards{display:grid;gap:8px}
.classic-cards article{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 11px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:12px;
  background:rgba(255,255,255,.06);
}
.classic-cards span{font-size:12px;color:var(--muted)}
.classic-cards b{font-size:13px;color:#fff;font-variant-numeric:tabular-nums}
body.city-mode .tn-info-dock{display:none!important}

.quick-buttons { display:flex; flex-wrap:wrap; gap:6px; margin:7px 0 9px; }
.quick-buttons button, .rail-mode-buttons button { min-width:42px; }
.rail-mode-buttons { display:flex; gap:6px; flex-wrap:wrap; margin:7px 0 9px; }


/* v2.3.12 - interface/ferramentas clássicas sem alterar o visual moderno do ambiente */
.classic-tool-section .classic-subtitle{font-size:11px;color:var(--muted);line-height:1.35;margin:-2px 0 10px}
.classic-tool-group{border:1px solid rgba(255,255,255,.075);background:rgba(255,255,255,.035);border-radius:12px;padding:9px;margin:8px 0}
.classic-tool-group>label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#b7c3b6;font-weight:900;margin-bottom:7px}
.classic-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.rail-system-presets{grid-template-columns:1fr 1fr 1fr}.classic-choice-grid button,.classic-stepper button,.classic-two-buttons button{min-height:33px;border-radius:10px;border:1px solid rgba(255,255,255,.10);background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035));color:var(--text);font-weight:900;cursor:pointer}.classic-choice-grid button:hover,.classic-stepper button:hover,.classic-two-buttons button:hover{background:rgba(143,211,107,.17)}.classic-choice-grid button.active,.classic-stepper button.active,.classic-two-buttons button.active{background:linear-gradient(180deg,rgba(143,211,107,.34),rgba(73,126,58,.28));border-color:rgba(143,211,107,.48)}
.classic-stepper{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.speed-quick-buttons{grid-template-columns:repeat(4,1fr)}.speed-quick-buttons button:nth-child(n+5){grid-column:span 1}.rail-speed-buttons{grid-template-columns:repeat(5,1fr)}
.hidden-control{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.classic-current{display:block;margin-top:7px;font-size:11px;color:var(--muted)}.classic-current b{color:#fff}.classic-level-readout{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 0;border:1px solid rgba(242,198,106,.18);background:rgba(242,198,106,.07);border-radius:11px;padding:8px 9px;font-size:12px;color:#f5ead1;font-weight:800}.classic-level-readout span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#b8ad95}.compact-classes{grid-template-columns:repeat(3,1fr)}.optional-advanced{opacity:.92}.tool-panel[data-active-tool="road"],.tool-panel[data-active-tool="rail"]{width:292px}.road-type-buttons,.direction-buttons{display:none!important}
body.city-mode #ui{opacity:.22;filter:saturate(.85)}body.city-mode #ui:hover{opacity:.95;filter:none}


/* v2.3.13 - polimento runtime das ferramentas clássicas */
.classic-muted-note { opacity: .86; border-style: dashed; }
.classic-muted-note .tool-hint { margin-top: 0; font-size: 12px; }
.classic-tool-section .classic-level-readout { background: rgba(0,0,0,.18); border: 1px solid rgba(255,255,255,.09); }
.tool-section[data-tool-section="road"] .road-main-presets button.active,
.tool-section[data-tool-section="rail"] .rail-main-presets button.active,
.tool-section[data-tool-section="rail"] .rail-system-presets button.active { box-shadow: inset 0 -2px 0 rgba(255,255,255,.42); }


.tmpe-class-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
.tmpe-class-grid button[data-tmpe-class="bus"].active { box-shadow: inset 0 0 0 2px rgba(210,64,54,.85); }
.tmpe-class-grid button[data-tmpe-class="bike"].active { box-shadow: inset 0 0 0 2px rgba(65,150,84,.85); }
.tmpe-class-grid button[data-tmpe-class="parking"].active { box-shadow: inset 0 0 0 2px rgba(160,170,180,.85); }
.tmpe-class-selector .classic-label { margin-top: 8px; }


/* ===================== v2.3.16 — retorno visual à UI clássica: sem painel à direita ===================== */
/* Regra desta rodada: ambiente moderno preservado; interface de jogo volta ao modelo antigo:
   topbar + barra lateral esquerda + barra inferior. Nada fixo no lado direito. */
body.city-mode .tool-panel{
  left:318px!important;
  right:auto!important;
  top:82px!important;
  width:318px!important;
  max-height:calc(100vh - 190px)!important;
  overflow:auto!important;
  border-radius:18px!important;
  background:rgba(13,28,25,.88)!important;
}
body.city-mode .classic-left-panel{
  left:16px!important;
  right:auto!important;
  top:82px!important;
  width:286px!important;
  max-height:calc(100vh - 190px)!important;
}
/* Painéis/docks modernos de informação e minimapa saem do lado direito para não quebrar o fluxo antigo. */
body.city-mode .tn-info-dock,
body.city-mode .tn-info-panel,
body.city-mode .tmpe-panel,
body.city-mode .tn-minimap,
body.city-mode .pill{
  display:none!important;
}
body.city-mode .tn-shortcuts-btn{
  left:16px!important;
  right:auto!important;
  bottom:86px!important;
}
.classic-left-panel,.tool-panel{
  box-shadow:0 16px 42px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.06)!important;
}
.classic-panel-body,.tool-section{
  font-size:12px;
}
.classic-tabs button,.classic-choice-grid button,.classic-stepper button,.classic-two-buttons button,.tmpe-class-grid button{
  min-height:31px;
}
.tool-panel-head{
  position:sticky;
  top:0;
  z-index:2;
  border-radius:14px 14px 0 0;
}
/* Evita qualquer sobra de posicionamento antigo à direita em resoluções médias. */
@media(max-width:1320px){
  body.city-mode .tool-panel{left:312px!important;right:auto!important;width:300px!important}
  body.city-mode .classic-left-panel{left:14px!important;width:282px!important}
}
@media(max-width:920px){
  body.city-mode .tool-panel{left:10px!important;right:10px!important;top:auto!important;bottom:74px!important;width:auto!important;max-height:42vh!important}
  body.city-mode .classic-left-panel{display:none!important}
}


/* ===================== v2.3.17 — arquitetura correta da UI clássica =====================
   Topbar = status/dados. Lateral esquerda = dashboards. Barra inferior = ferramentas.
   Submenus das ferramentas ficam acoplados acima da barra inferior. Lado direito fica vazio. */
body.city-mode .tool-panel{
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:78px!important;
  transform:translateX(-50%)!important;
  width:min(820px, calc(100vw - 360px))!important;
  max-height:248px!important;
  overflow:auto!important;
  border-radius:18px!important;
  padding:10px 12px!important;
  background:linear-gradient(180deg,rgba(13,26,24,.92),rgba(8,14,13,.88))!important;
  box-shadow:0 18px 46px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.07)!important;
}
body.city-mode .tool-panel[data-active-tool="none"]{
  display:none!important;
}
body.city-mode .classic-left-panel{
  left:16px!important;
  right:auto!important;
  top:82px!important;
  width:286px!important;
  max-height:calc(100vh - 190px)!important;
  transform:none!important;
}
body.city-mode .tool-panel-head{
  position:sticky!important;
  top:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  background:linear-gradient(180deg,rgba(13,26,24,.98),rgba(13,26,24,.90))!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
  border-radius:12px!important;
  padding:8px 9px!important;
  margin:0 0 8px!important;
  z-index:4!important;
}
body.city-mode .tool-section{
  padding:0!important;
}
body.city-mode .tool-section.active{
  display:block!important;
}
body.city-mode .tool-section-title{
  display:none!important;
}
body.city-mode .classic-tool-group,
body.city-mode .lane-class-panel,
body.city-mode .tmpe-legend,
body.city-mode .tool-mini-stats,
body.city-mode .tool-stats,
body.city-mode .tool-hint{
  margin-top:7px!important;
  margin-bottom:0!important;
}
body.city-mode .tool-panel .classic-tool-section.active,
body.city-mode .tool-section[data-tool-section="zone"].active,
body.city-mode .tool-section[data-tool-section="transport"].active,
body.city-mode .tool-section[data-tool-section="upgrade"].active,
body.city-mode .tool-section[data-tool-section="tmpe"].active{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(120px,1fr))!important;
  gap:8px!important;
  align-items:start!important;
}
body.city-mode .tool-panel .classic-subtitle,
body.city-mode .tool-panel .tool-hint{
  grid-column:1 / -1!important;
}
body.city-mode .tool-panel .tool-mini-stats,
body.city-mode .tool-panel .tool-stats,
body.city-mode .tmpe-summary{
  grid-column:span 2!important;
}
body.city-mode .tool-panel .classic-choice-grid,
body.city-mode .tool-panel .classic-stepper,
body.city-mode .tool-panel .classic-two-buttons,
body.city-mode .tool-panel .tmpe-lane-grid,
body.city-mode .tool-panel .tmpe-class-grid,
body.city-mode .tool-panel .lane-class-buttons{
  gap:6px!important;
}
body.city-mode .tool-panel .classic-tool-group{padding:8px!important;}
body.city-mode .tool-panel button{min-height:30px!important;}
body.city-mode .tool-panel input[type="range"]{max-height:18px!important;}
body.city-mode .tn-info-dock,
body.city-mode .tn-info-panel,
body.city-mode .tmpe-panel,
body.city-mode .tn-minimap,
body.city-mode .pill{
  display:none!important;
}
body.city-mode .tn-shortcuts-btn{
  left:16px!important;
  right:auto!important;
  bottom:86px!important;
}
body.city-mode .bottombar{
  z-index:8!important;
}
@media(max-width:1180px){
  body.city-mode .tool-panel{
    left:10px!important;
    right:10px!important;
    bottom:74px!important;
    width:auto!important;
    transform:none!important;
    max-height:270px!important;
  }
  body.city-mode .tool-panel .classic-tool-section.active,
  body.city-mode .tool-section[data-tool-section="zone"].active,
  body.city-mode .tool-section[data-tool-section="transport"].active,
  body.city-mode .tool-section[data-tool-section="upgrade"].active,
  body.city-mode .tool-section[data-tool-section="tmpe"].active{
    grid-template-columns:repeat(2,minmax(120px,1fr))!important;
  }
}
@media(max-width:920px){
  body.city-mode .classic-left-panel{display:none!important;}
  body.city-mode .tool-panel{left:10px!important;right:10px!important;bottom:74px!important;width:auto!important;max-height:44vh!important;}
}


/* ===================== v2.3.17.4 — clique clássico + submenus compactos =====================
   Construção linear confirma no pointerdown; o submenu precisa ocupar pouco espaço como no jogo antigo. */
body.city-mode .tool-panel{
  width:min(740px, calc(100vw - 360px))!important;
  max-height:158px!important;
  bottom:72px!important;
  padding:7px 9px!important;
  overflow:auto!important;
  scrollbar-width:thin;
}
body.city-mode .tool-panel-head{
  position:relative!important;
  padding:5px 7px!important;
  margin:0 0 5px!important;
  min-height:0!important;
}
body.city-mode .tool-panel .panel-title{font-size:10px!important;letter-spacing:.12em!important}
body.city-mode .tool-panel-subtitle,
body.city-mode .classic-subtitle,
body.city-mode .tool-empty-icon,
body.city-mode .optional-advanced,
body.city-mode .tool-panel .tool-hint,
body.city-mode .tool-panel .tool-mini-stats,
body.city-mode .tool-panel .tool-stats,
body.city-mode .tool-section[data-tool-section="none"] p{
  display:none!important;
}
body.city-mode .tool-panel .classic-tool-section.active,
body.city-mode .tool-section[data-tool-section="zone"].active,
body.city-mode .tool-section[data-tool-section="transport"].active,
body.city-mode .tool-section[data-tool-section="upgrade"].active,
body.city-mode .tool-section[data-tool-section="tmpe"].active{
  display:grid!important;
  grid-template-columns:1.2fr 1.05fr 1.45fr 1fr auto!important;
  gap:6px!important;
  align-items:start!important;
}
body.city-mode .tool-panel .classic-tool-group,
body.city-mode .lane-class-panel,
body.city-mode .tmpe-legend{
  margin:0!important;
  padding:6px!important;
  border-radius:10px!important;
}
body.city-mode .classic-tool-group>label,
body.city-mode .lane-class-panel>b{
  font-size:9px!important;
  margin-bottom:4px!important;
}
body.city-mode .classic-choice-grid,
body.city-mode .classic-stepper,
body.city-mode .classic-two-buttons,
body.city-mode .tmpe-lane-grid,
body.city-mode .tmpe-class-grid,
body.city-mode .lane-class-buttons{
  gap:4px!important;
}
body.city-mode .tool-panel button{
  min-height:24px!important;
  height:26px!important;
  border-radius:8px!important;
  font-size:10px!important;
  padding:0 7px!important;
}
body.city-mode .tool-panel-close{width:26px!important;height:26px!important;min-width:26px!important;padding:0!important}
body.city-mode .classic-current{
  margin-top:3px!important;
  font-size:9px!important;
}
body.city-mode .classic-level-readout{
  margin:0!important;
  padding:6px 7px!important;
  font-size:10px!important;
  align-self:stretch!important;
}
body.city-mode .speed-quick-buttons{grid-template-columns:repeat(4,1fr)!important}
body.city-mode .rail-speed-buttons{grid-template-columns:repeat(3,1fr)!important}
body.city-mode .rail-system-presets{grid-template-columns:repeat(3,1fr)!important}
body.city-mode .classic-bottombar{
  padding:7px!important;
  bottom:10px!important;
}
body.city-mode .classic-bottombar .tool-cluster button{
  width:74px!important;
  height:50px!important;
  padding:5px!important;
}
body.city-mode .classic-bottombar .tool-ico{font-size:18px!important}
body.city-mode .classic-bottombar .tool-label{font-size:10px!important}
@media(max-width:1180px){
  body.city-mode .tool-panel{left:10px!important;right:10px!important;transform:none!important;width:auto!important;max-height:168px!important}
  body.city-mode .tool-panel .classic-tool-section.active,
  body.city-mode .tool-section[data-tool-section="zone"].active,
  body.city-mode .tool-section[data-tool-section="transport"].active,
  body.city-mode .tool-section[data-tool-section="upgrade"].active,
  body.city-mode .tool-section[data-tool-section="tmpe"].active{grid-template-columns:repeat(3,minmax(110px,1fr))!important}
}


/* ===================== v2.3.17.5 — boot limpo + anti-flash =====================
   Enquanto JS não define o fluxo, só a tela inicial aparece. Evita gerador + HUD + bottombar misturados por segundos. */
body:not(.app-ready) #topbar,
body:not(.app-ready) #ui,
body:not(.app-ready) #classicLeftPanel,
body:not(.app-ready) #toolPanel,
body:not(.app-ready) #bottombar,
body:not(.app-ready) #hamburgerMenu,
body:not(.app-ready) .tn-info-dock,
body:not(.app-ready) .tn-info-panel,
body:not(.app-ready) .tn-minimap,
body:not(.app-ready) .newcore-minimap,
body:not(.app-ready) .pill,
body:not(.app-ready) .toast{display:none!important;}
body:not(.app-ready) .start-screen{display:flex!important;}
body.city-mode #ui{display:none!important;}
body.city-mode .tool-panel[data-active-tool="none"]{display:none!important;}
body.city-mode .tool-panel{max-height:142px!important;}
body.city-mode .tool-panel::-webkit-scrollbar{height:6px;width:6px;}
body.city-mode .tool-panel::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:999px;}


/* ===================== v2.3.18 — UI clássica consolidada + submenus compactos ===================== */
body.city-mode #topbar.topbar{
  top:0!important;left:0!important;right:0!important;transform:none!important;
  width:auto!important;max-width:none!important;min-width:0!important;height:52px!important;
  border-radius:0!important;padding:0 14px!important;justify-content:flex-start!important;
  gap:10px!important;background:rgba(8,18,23,.94)!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.hamb-top{width:36px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#eaf2f0;font-weight:900;cursor:pointer}
body.city-mode .brand{min-width:185px!important;width:185px!important}.brand strong{letter-spacing:.01em}.brand span{max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.city-mode .hud-pill{height:34px!important;padding:0 11px!important;min-width:auto!important;border-radius:11px!important;background:rgba(255,255,255,.055)!important}.hud-pill b{font-size:9px}.hud-pill span{font-size:12px}
body.city-mode .classic-left-panel{top:64px!important;left:10px!important;width:244px!important;max-height:calc(100vh - 148px)!important;border-radius:16px!important;background:rgba(8,20,18,.90)!important}
body.city-mode .classic-tabs{padding:8px!important;gap:5px!important}.classic-tabs button{min-height:28px!important;font-size:10px!important}
body.city-mode .classic-panel-body{padding:10px!important}.classic-panel-body h2{font-size:12px!important;margin:0 0 10px!important}.classic-cards{gap:7px!important}.classic-cards article{min-height:28px!important;padding:7px 9px!important}
body.city-mode .classic-bottombar{left:10px!important;right:10px!important;bottom:8px!important;padding:7px!important;border-radius:16px!important;background:rgba(7,13,15,.94)!important;z-index:30!important}.classic-bottombar .tool-cluster{gap:6px!important}
body.city-mode .classic-bottombar .tool-cluster button{width:72px!important;height:48px!important;border-radius:11px!important}.classic-bottombar .tool-ico{font-size:18px!important}.classic-bottombar .tool-label{font-size:10px!important}
body.city-mode .tool-panel{left:50%!important;right:auto!important;bottom:68px!important;transform:translateX(-50%)!important;width:min(760px,calc(100vw - 300px))!important;max-height:112px!important;overflow-x:auto!important;overflow-y:hidden!important;padding:6px 8px!important;border-radius:14px!important;background:rgba(9,21,19,.94)!important;z-index:25!important;box-shadow:0 14px 35px rgba(0,0,0,.42)!important}
body.city-mode .tool-panel-head{float:left!important;position:relative!important;width:138px!important;height:82px!important;margin:0 8px 0 0!important;padding:6px!important;border-radius:10px!important;display:block!important;background:rgba(255,255,255,.045)!important;border:1px solid rgba(255,255,255,.075)!important}.tool-panel-close{position:absolute!important;right:6px!important;top:6px!important}.tool-panel .panel-title{font-size:10px!important}.tool-panel-subtitle{display:none!important}
body.city-mode .tool-panel .classic-tool-section.active,body.city-mode .tool-section[data-tool-section="zone"].active,body.city-mode .tool-section[data-tool-section="transport"].active,body.city-mode .tool-section[data-tool-section="upgrade"].active,body.city-mode .tool-section[data-tool-section="tmpe"].active{display:flex!important;flex-wrap:nowrap!important;gap:7px!important;align-items:stretch!important;min-width:max-content!important}.tool-section-title,.classic-subtitle,.optional-advanced,.tool-hint,.tool-mini-stats,.tool-stats,.tmpe-summary{display:none!important}
body.city-mode .classic-tool-group,body.city-mode .lane-class-panel,body.city-mode .tmpe-legend{width:145px!important;min-width:145px!important;margin:0!important;padding:6px!important;border-radius:10px!important}.classic-tool-group>label,.lane-class-panel>b{font-size:9px!important;margin-bottom:4px!important}.classic-choice-grid,.classic-stepper,.classic-two-buttons,.tmpe-lane-grid,.tmpe-class-grid,.lane-class-buttons{gap:4px!important}.classic-choice-grid button,.classic-stepper button,.classic-two-buttons button,.tmpe-lane-grid button,.tmpe-class-grid button,.lane-class-buttons button{min-height:23px!important;height:24px!important;font-size:10px!important;border-radius:7px!important;padding:0 6px!important}.classic-current{display:none!important}.classic-level-readout{width:122px!important;min-width:122px!important;font-size:10px!important;padding:6px!important;margin:0!important}.classic-level-readout span{display:block!important;font-size:8px!important}.speed-quick-buttons{grid-template-columns:repeat(4,1fr)!important}.rail-speed-buttons{grid-template-columns:repeat(3,1fr)!important}
body.city-mode .tn-info-dock,body.city-mode .tn-info-panel,body.city-mode .tmpe-panel,body.city-mode .tn-minimap,body.city-mode .newcore-minimap,body.city-mode .pill{display:none!important}
body.generator-mode #topbar,body.generator-mode #bottombar,body.generator-mode #classicLeftPanel,body.generator-mode #toolPanel{display:none!important}
@media(max-width:1180px){body.city-mode .tool-panel{left:10px!important;right:10px!important;width:auto!important;transform:none!important;max-height:132px!important}body.city-mode .classic-left-panel{width:228px!important}.classic-bottombar .tool-cluster button{width:64px!important}}


/* v2.3.19 - Classic construction panel hotfix
   Bottom tools must behave like the old game: compact tray above bottom bar, never a large side/modal panel. */
body.city-mode .tool-panel{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:82px!important;
  transform:translateX(-50%)!important;
  width:min(760px, calc(100vw - 430px))!important;
  min-width:520px!important;
  max-height:118px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  padding:7px 9px!important;
  border-radius:13px!important;
  display:none;
  z-index:8!important;
}
body.city-mode .tool-panel[data-active-tool]:not([data-active-tool="none"]){display:block!important;}
body.city-mode .tool-panel-head{display:none!important;}
body.city-mode .tool-panel .tool-section{display:none!important;}
body.city-mode .tool-panel .tool-section.active,
body.city-mode .tool-panel .classic-tool-section.active,
body.city-mode .tool-panel .tool-section[data-tool-section="zone"].active,
body.city-mode .tool-panel .tool-section[data-tool-section="transport"].active,
body.city-mode .tool-panel .tool-section[data-tool-section="upgrade"].active,
body.city-mode .tool-panel .tool-section[data-tool-section="tmpe"].active{
  display:flex!important;
  align-items:stretch!important;
  gap:6px!important;
  flex-wrap:nowrap!important;
  padding:0!important;
  min-width:max-content!important;
}
body.city-mode .tool-section-title,
body.city-mode .classic-subtitle,
body.city-mode .tool-hint,
body.city-mode .tool-mini-stats,
body.city-mode .tool-stats,
body.city-mode .optional-advanced,
body.city-mode .tmpe-summary,
body.city-mode .classic-current{display:none!important;}
body.city-mode .classic-tool-group,
body.city-mode .lane-class-panel,
body.city-mode .tmpe-legend{
  width:128px!important;
  min-width:128px!important;
  margin:0!important;
  padding:5px!important;
  border-radius:9px!important;
}
body.city-mode .classic-tool-group>label,
body.city-mode .lane-class-panel>b{
  font-size:8px!important;
  line-height:1!important;
  margin:0 0 4px!important;
  white-space:nowrap!important;
}
body.city-mode .classic-choice-grid,
body.city-mode .classic-stepper,
body.city-mode .classic-two-buttons,
body.city-mode .tmpe-lane-grid,
body.city-mode .tmpe-class-grid,
body.city-mode .lane-class-buttons{
  gap:3px!important;
}
body.city-mode .classic-choice-grid button,
body.city-mode .classic-stepper button,
body.city-mode .classic-two-buttons button,
body.city-mode .tmpe-lane-grid button,
body.city-mode .tmpe-class-grid button,
body.city-mode .lane-class-buttons button{
  min-height:22px!important;
  height:22px!important;
  font-size:9px!important;
  border-radius:7px!important;
  padding:0 5px!important;
}
body.city-mode .classic-level-readout{
  width:104px!important;
  min-width:104px!important;
  margin:0!important;
  padding:5px 6px!important;
  font-size:9px!important;
  border-radius:9px!important;
}
body.city-mode .classic-level-readout span{font-size:7px!important;}
body.city-mode .classic-bottombar{bottom:10px!important;padding:7px!important;}
body.city-mode .classic-bottombar .tool-cluster button{height:50px!important;min-width:72px!important;padding:5px 9px!important;}
body.city-mode .classic-bottombar .tool-ico{font-size:20px!important;}
body.city-mode .classic-bottombar .tool-label{font-size:10px!important;}
@media(max-width:1100px){body.city-mode .tool-panel{left:320px!important;right:12px!important;transform:none!important;width:auto!important;min-width:0!important;}}


/* ===================== v2.3.19.2 — UI boot guard definitivo =====================
   Se o HTML/JS entra sem modo visual, nunca deixar o usuário só com o mapa sem interface. */
body.start-mode #startScreen{display:flex!important;}
body.start-mode #topbar,
body.start-mode #ui,
body.start-mode #classicLeftPanel,
body.start-mode #toolPanel,
body.start-mode #bottombar,
body.start-mode #hamburgerMenu,
body.start-mode .tn-info-dock,
body.start-mode .tn-info-panel,
body.start-mode .tn-minimap,
body.start-mode .newcore-minimap,
body.start-mode .tmpe-panel,
body.start-mode .pill{display:none!important;}

body.generator-mode #startScreen,
body.generator-mode #topbar,
body.generator-mode #classicLeftPanel,
body.generator-mode #toolPanel,
body.generator-mode #bottombar,
body.generator-mode #hamburgerMenu,
body.generator-mode .tn-info-dock,
body.generator-mode .tn-info-panel,
body.generator-mode .tn-minimap,
body.generator-mode .newcore-minimap,
body.generator-mode .tmpe-panel,
body.generator-mode .pill{display:none!important;}
body.generator-mode #ui{display:block!important;left:16px!important;top:70px!important;width:350px!important;opacity:1!important;transform:none!important;z-index:20!important;}

body.city-mode #startScreen,
body.city-mode #ui{display:none!important;}
body.city-mode #topbar{display:flex!important;}
body.city-mode #classicLeftPanel{display:block!important;}
body.city-mode #bottombar{display:flex!important;}

body.app-ready:not(.start-mode):not(.generator-mode):not(.city-mode) #startScreen{display:flex!important;}
body.app-ready:not(.start-mode):not(.generator-mode):not(.city-mode) #topbar,
body.app-ready:not(.start-mode):not(.generator-mode):not(.city-mode) #ui,
body.app-ready:not(.start-mode):not(.generator-mode):not(.city-mode) #classicLeftPanel,
body.app-ready:not(.start-mode):not(.generator-mode):not(.city-mode) #toolPanel,
body.app-ready:not(.start-mode):not(.generator-mode):not(.city-mode) #bottombar{display:none!important;}


/* ===================== v2.3.19.3 - Classic UI Layout Fix =====================
   Estado visual unico: start / generator / city. O ambiente moderno do NewCore
   continua intacto; este bloco so resolve HUD, fluxo e limites de viewport. */
*,*::before,*::after{box-sizing:border-box}

body.start-mode #startScreen{display:flex!important}
body.start-mode #topbar,
body.start-mode #ui,
body.start-mode #classicLeftPanel,
body.start-mode #toolPanel,
body.start-mode #bottombar,
body.start-mode #hamburgerMenu,
body.start-mode #tnInfoDock,
body.start-mode #tnInfoPanel,
body.start-mode #tnMinimap,
body.start-mode .tn-info-dock,
body.start-mode .tn-info-panel,
body.start-mode .tn-minimap,
body.start-mode .newcore-minimap,
body.start-mode .tmpe-panel,
body.start-mode .tn-shortcuts-btn,
body.start-mode .tn-shortcuts-modal,
body.start-mode .pill,
body.start-mode .toast{display:none!important}

body.generator-mode #startScreen,
body.generator-mode #topbar,
body.generator-mode #classicLeftPanel,
body.generator-mode #toolPanel,
body.generator-mode #bottombar,
body.generator-mode #hamburgerMenu,
body.generator-mode #tnInfoDock,
body.generator-mode #tnInfoPanel,
body.generator-mode #tnMinimap,
body.generator-mode .tn-info-dock,
body.generator-mode .tn-info-panel,
body.generator-mode .tn-minimap,
body.generator-mode .newcore-minimap,
body.generator-mode .tmpe-panel,
body.generator-mode .tn-shortcuts-btn,
body.generator-mode .tn-shortcuts-modal,
body.generator-mode .pill{display:none!important}
body.generator-mode #ui{
  display:block!important;
  left:16px!important;
  top:16px!important;
  width:min(360px,calc(100vw - 32px))!important;
  max-height:calc(100vh - 32px)!important;
  opacity:1!important;
  transform:none!important;
  z-index:20!important;
}

body.city-mode #startScreen,
body.city-mode #ui,
body.city-mode #tnInfoDock,
body.city-mode #tnInfoPanel,
body.city-mode #tnMinimap,
body.city-mode .tn-info-dock,
body.city-mode .tn-info-panel,
body.city-mode .tn-minimap,
body.city-mode .newcore-minimap,
body.city-mode .tmpe-panel,
body.city-mode .tn-shortcuts-btn,
body.city-mode .tn-shortcuts-modal,
body.city-mode .pill{display:none!important}

body.city-mode #topbar.topbar{
  display:flex!important;
  position:fixed!important;
  left:0!important;
  right:0!important;
  top:0!important;
  transform:none!important;
  width:100vw!important;
  max-width:none!important;
  min-width:0!important;
  height:52px!important;
  padding:0 12px!important;
  gap:8px!important;
  border-radius:0!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  justify-content:flex-start!important;
  scrollbar-width:thin;
  z-index:40!important;
}
body.city-mode .hamb-top{
  flex:0 0 36px!important;
  width:36px!important;
  height:34px!important;
}
body.city-mode .brand{
  flex:0 0 178px!important;
  min-width:178px!important;
  width:178px!important;
  margin:0 2px 0 0!important;
}
body.city-mode .brand span{max-width:168px!important}
body.city-mode .hud-pill{
  flex:0 0 auto!important;
  height:32px!important;
  padding:0 9px!important;
  border-radius:10px!important;
}

body.city-mode #classicLeftPanel.classic-left-panel{
  display:block!important;
  left:10px!important;
  right:auto!important;
  top:64px!important;
  width:244px!important;
  max-height:calc(100vh - 148px)!important;
  transform:none!important;
  overflow:hidden!important;
  z-index:20!important;
}
body.city-mode #classicLeftPanel .classic-tabs{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  padding:8px!important;
  gap:5px!important;
}
body.city-mode #classicLeftPanel .classic-tabs button{
  min-width:0!important;
  min-height:28px!important;
  height:28px!important;
  padding:0 6px!important;
  font-size:10px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.city-mode #classicLeftPanel .classic-panel-body{
  max-height:calc(100vh - 222px)!important;
  overflow:auto!important;
}

body.city-mode #bottombar.classic-bottombar{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  left:10px!important;
  right:10px!important;
  bottom:8px!important;
  transform:none!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  max-height:64px!important;
  padding:7px!important;
  gap:8px!important;
  overflow:hidden!important;
  border-radius:14px!important;
  z-index:35!important;
}
body.city-mode #bottombar .speed-cluster,
body.city-mode #bottombar .tool-cluster,
body.city-mode #bottombar .save-cluster{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  min-width:0!important;
}
body.city-mode #bottombar .tool-cluster{
  justify-content:center!important;
  flex-wrap:nowrap!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:thin;
}
body.city-mode #bottombar .save-cluster,
body.city-mode #bottombar .speed-cluster{flex:0 0 auto!important}
body.city-mode #bottombar button{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.city-mode #bottombar .compact-action{
  height:34px!important;
  min-width:36px!important;
  padding:0 8px!important;
  border-radius:9px!important;
  font-size:11px!important;
}
body.city-mode #bottombar .save-cluster .compact-action{
  min-width:66px!important;
}
body.city-mode #bottombar .tool-cluster button[data-tool]{
  flex:0 0 66px!important;
  width:66px!important;
  min-width:66px!important;
  height:48px!important;
  padding:4px 5px!important;
  border-radius:10px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
}
body.city-mode #bottombar .tool-ico{font-size:18px!important;line-height:1!important}
body.city-mode #bottombar .tool-label{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  font-size:9px!important;
  line-height:1.05!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

body.city-mode #toolPanel.tool-panel{
  position:fixed!important;
  display:none!important;
  left:272px!important;
  right:10px!important;
  top:auto!important;
  bottom:78px!important;
  transform:none!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  max-height:154px!important;
  padding:7px!important;
  border-radius:13px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:thin;
  z-index:34!important;
}
body.city-mode #toolPanel[data-active-tool]:not([data-active-tool="none"]){
  display:block!important;
}
body.city-mode #toolPanel .tool-panel-head,
body.city-mode #toolPanel .tool-section-title,
body.city-mode #toolPanel .classic-subtitle,
body.city-mode #toolPanel .optional-advanced,
body.city-mode #toolPanel .tool-hint,
body.city-mode #toolPanel .tool-mini-stats,
body.city-mode #toolPanel .tool-stats,
body.city-mode #toolPanel #inspectorText,
body.city-mode #toolPanel .classic-current{display:none!important}
body.city-mode #toolPanel .tool-section{display:none!important}
body.city-mode #toolPanel .tool-section.active{
  display:flex!important;
  align-items:stretch!important;
  gap:7px!important;
  flex-wrap:nowrap!important;
  min-width:max-content!important;
  padding:0!important;
}
body.city-mode #toolPanel .classic-tool-group,
body.city-mode #toolPanel .lane-class-panel,
body.city-mode #toolPanel .tmpe-legend,
body.city-mode #toolPanel .tool-choice-grid,
body.city-mode #toolPanel .zone-buttons,
body.city-mode #toolPanel .side-buttons,
body.city-mode #toolPanel .direction-buttons,
body.city-mode #toolPanel .geometry-buttons,
body.city-mode #toolPanel .tmpe-mode-buttons,
body.city-mode #toolPanel .transit-actions{
  flex:0 0 132px!important;
  width:132px!important;
  min-width:132px!important;
  margin:0!important;
  padding:6px!important;
  border-radius:9px!important;
}
body.city-mode #toolPanel .classic-tool-group>label,
body.city-mode #toolPanel .lane-class-panel>b,
body.city-mode #toolPanel .classic-label{
  display:block!important;
  margin:0 0 4px!important;
  font-size:8px!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.city-mode #toolPanel .classic-choice-grid,
body.city-mode #toolPanel .classic-stepper,
body.city-mode #toolPanel .classic-two-buttons,
body.city-mode #toolPanel .tmpe-class-grid,
body.city-mode #toolPanel .lane-class-buttons,
body.city-mode #toolPanel .segmented.compact{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:3px!important;
}
body.city-mode #toolPanel .rail-system-presets{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body.city-mode #toolPanel .classic-stepper{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body.city-mode #toolPanel .speed-quick-buttons,
body.city-mode #toolPanel .rail-speed-buttons{grid-template-columns:repeat(4,minmax(0,1fr))!important}
body.city-mode #toolPanel button{
  min-width:0!important;
  min-height:22px!important;
  height:23px!important;
  padding:0 5px!important;
  border-radius:7px!important;
  font-size:9px!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.city-mode #toolPanel .classic-level-readout{
  flex:0 0 104px!important;
  width:104px!important;
  min-width:104px!important;
  margin:0!important;
  padding:6px!important;
  border-radius:9px!important;
  font-size:9px!important;
  line-height:1.15!important;
}
body.city-mode #toolPanel .classic-level-readout span{
  display:block!important;
  margin-top:3px!important;
  font-size:7px!important;
}

@media(max-width:1366px){
  body.city-mode #topbar .hud-pill:nth-of-type(n+8){display:none!important}
  body.city-mode #bottombar .tool-cluster button[data-tool]{
    flex-basis:62px!important;
    width:62px!important;
    min-width:62px!important;
  }
  body.city-mode #bottombar .save-cluster .compact-action{min-width:62px!important}
}
@media(max-width:1100px){
  body.city-mode #classicLeftPanel.classic-left-panel{display:none!important}
  body.city-mode #toolPanel.tool-panel{
    left:10px!important;
    right:10px!important;
    bottom:78px!important;
    max-height:156px!important;
  }
  body.city-mode #bottombar.classic-bottombar{
    grid-template-columns:minmax(0,1fr)!important;
    max-height:118px!important;
  }
  body.city-mode #bottombar .speed-cluster,
  body.city-mode #bottombar .save-cluster{justify-content:center!important}
}
@media(max-width:760px){
  body.city-mode #topbar .brand{display:none!important}
  body.city-mode #topbar .hud-pill:nth-of-type(n+5){display:none!important}
  body.city-mode #toolPanel.tool-panel{max-height:42vh!important}
}


/* ===== v2.3.21 — correção final da rodada: UI/ferramentas no padrão antigo ===== */
body.city-mode #toolPanel.tool-panel{
  left:268px!important;
  right:auto!important;
  bottom:78px!important;
  width:auto!important;
  max-width:min(760px, calc(100vw - 292px))!important;
  max-height:112px!important;
  padding:6px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  border-radius:12px!important;
}
body.city-mode #toolPanel .tool-section.active{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  gap:6px!important;
  min-width:max-content!important;
}
body.city-mode #toolPanel .classic-tool-group,
body.city-mode #toolPanel .lane-class-panel,
body.city-mode #toolPanel .tmpe-legend,
body.city-mode #toolPanel .transit-actions,
body.city-mode #toolPanel .tool-choice-grid,
body.city-mode #toolPanel .zone-buttons,
body.city-mode #toolPanel .side-buttons,
body.city-mode #toolPanel .direction-buttons,
body.city-mode #toolPanel .geometry-buttons,
body.city-mode #toolPanel .tmpe-mode-buttons{
  flex:0 0 118px!important;
  min-width:118px!important;
  width:118px!important;
  padding:5px!important;
  margin:0!important;
}
body.city-mode #toolPanel .classic-tool-group>label,
body.city-mode #toolPanel .lane-class-panel>b,
body.city-mode #toolPanel .classic-label{
  font-size:8px!important;
  margin-bottom:3px!important;
}
body.city-mode #toolPanel button{
  min-height:20px!important;
  height:21px!important;
  padding:0 4px!important;
  font-size:8.5px!important;
}
body.city-mode #toolPanel .classic-level-readout{display:none!important}
body.city-mode #toolPanel .classic-subtitle,
body.city-mode #toolPanel .tool-section-title,
body.city-mode #toolPanel .tool-panel-head,
body.city-mode #toolPanel .classic-current,
body.city-mode #toolPanel .optional-advanced,
body.city-mode #toolPanel .tool-hint,
body.city-mode #toolPanel .tmpe-summary{display:none!important}
body.city-mode #bottombar.classic-bottombar{
  max-height:62px!important;
  height:62px!important;
}
body.city-mode #bottombar .tool-cluster button[data-tool]{
  flex:0 0 60px!important;
  min-width:60px!important;
  width:60px!important;
  height:46px!important;
}
body.city-mode #bottombar .tool-ico{font-size:17px!important}
body.city-mode #bottombar .tool-label{font-size:8.5px!important}
body.city-mode #classicLeftPanel.classic-left-panel{width:244px!important}
body.city-mode #topbar{height:52px!important;min-height:52px!important;}
body.city-mode #topbar .hud-pill{height:34px!important;min-width:auto!important;padding:0 10px!important;}
@media(max-width:1366px){
  body.city-mode #toolPanel.tool-panel{left:260px!important;max-width:calc(100vw - 274px)!important;}
  body.city-mode #bottombar .tool-cluster button[data-tool]{flex-basis:58px!important;width:58px!important;min-width:58px!important;}
}

/* ===== v2.4.0 - paridade de layout com o SIMURB antigo ===== */
body.city-mode #classicLeftPanel.classic-left-panel{
  display:none!important;
}
body.city-mode #tnInfoDock.tn-info-dock{
  display:flex!important;
  position:fixed!important;
  left:10px!important;
  right:auto!important;
  top:64px!important;
  bottom:auto!important;
  width:46px!important;
  max-width:46px!important;
  transform:none!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:6px!important;
  padding:7px 5px!important;
  border-radius:14px!important;
  background:rgba(7,13,15,.94)!important;
  border:1px solid rgba(235,240,230,.12)!important;
  box-shadow:0 16px 46px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.07)!important;
  backdrop-filter:blur(14px)!important;
  z-index:36!important;
}
body.city-mode #tnInfoDock.hidden{
  display:none!important;
}
body.city-mode #tnInfoDock .tn-info-tool{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  border-radius:10px!important;
  font-size:16px!important;
  line-height:1!important;
  color:#eef7ee!important;
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035))!important;
  border:1px solid rgba(255,255,255,.10)!important;
}
body.city-mode #tnInfoDock .tn-info-tool.active{
  background:linear-gradient(180deg,rgba(128,200,100,.31),rgba(58,103,49,.24))!important;
  border-color:rgba(128,200,100,.42)!important;
}
body.city-mode #tnInfoDock .tn-info-sep{
  width:24px!important;
  height:1px!important;
  margin:2px 0!important;
  background:rgba(255,255,255,.14)!important;
}
body.city-mode #tnInfoPanel.tn-info-panel{
  position:fixed!important;
  left:66px!important;
  right:auto!important;
  top:64px!important;
  bottom:auto!important;
  width:330px!important;
  max-width:min(330px,calc(100vw - 82px))!important;
  max-height:calc(100vh - 146px)!important;
  transform:none!important;
  overflow:auto!important;
  border-radius:16px!important;
  background:rgba(8,20,18,.94)!important;
  border:1px solid rgba(235,240,230,.12)!important;
  box-shadow:0 20px 60px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.07)!important;
  z-index:35!important;
}
body.city-mode #tnInfoPanel.tn-info-panel:not(.hidden){
  display:block!important;
}
body.city-mode #tnInfoPanel.tn-info-panel.hidden{
  display:none!important;
}
body.city-mode #toolPanel.tool-panel{
  left:66px!important;
  max-width:calc(100vw - 82px)!important;
}
@media(max-width:920px){
  body.city-mode #tnInfoDock.tn-info-dock{display:none!important;}
  body.city-mode #tnInfoPanel.tn-info-panel{display:none!important;}
  body.city-mode #toolPanel.tool-panel{left:10px!important;max-width:calc(100vw - 20px)!important;}
}

/* ===== v2.4.2 — submenus mais jogáveis + cards legíveis ===== */
body.city-mode #toolPanel.tool-panel{
  left:66px!important;
  right:12px!important;
  bottom:78px!important;
  width:auto!important;
  max-width:none!important;
  max-height:238px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  padding:10px 12px 12px!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,rgba(9,19,18,.96),rgba(7,13,13,.92))!important;
  border:1px solid rgba(235,240,230,.14)!important;
  box-shadow:0 22px 70px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.07)!important;
  z-index:38!important;
}
body.city-mode #toolPanel[data-active-tool="none"]{display:none!important;}
body.city-mode #toolPanel .tool-panel-head{
  display:flex!important;
  position:sticky!important;
  top:0!important;
  z-index:4!important;
  float:none!important;
  width:auto!important;
  height:auto!important;
  margin:0 0 9px!important;
  padding:8px 9px!important;
  border-radius:13px!important;
  background:rgba(255,255,255,.055)!important;
  border:1px solid rgba(255,255,255,.085)!important;
}
body.city-mode #toolPanel .tool-panel-subtitle{display:block!important;font-size:11px!important;color:#aebbae!important;line-height:1.25!important;}
body.city-mode #toolPanel .tool-panel-close{display:flex!important;align-items:center!important;justify-content:center!important;}
body.city-mode #toolPanel .tool-section{display:none!important;}
body.city-mode #toolPanel .tool-section.active,
body.city-mode #toolPanel .classic-tool-section.active,
body.city-mode #toolPanel .tool-section[data-tool-section="zone"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="transport"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="terrain"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="bus-stop"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="bus-line"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="rail-station"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="rail-line"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="upgrade"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="tmpe"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="demolish"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="inspect"].active{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr))!important;
  gap:9px!important;
  align-items:stretch!important;
  min-width:0!important;
  padding:0!important;
}
body.city-mode #toolPanel .tool-section-title,
body.city-mode #toolPanel .classic-subtitle{
  display:block!important;
  grid-column:1/-1!important;
  margin:0!important;
}
body.city-mode #toolPanel .tool-section-title{font-size:11px!important;letter-spacing:.12em!important;color:#9dda78!important;text-transform:uppercase!important;}
body.city-mode #toolPanel .classic-subtitle{font-size:11px!important;color:#aebbae!important;line-height:1.35!important;margin-top:-4px!important;}
body.city-mode #toolPanel .classic-tool-group,
body.city-mode #toolPanel .classic-group,
body.city-mode #toolPanel .lane-class-panel,
body.city-mode #toolPanel .tmpe-legend,
body.city-mode #toolPanel .transit-actions,
body.city-mode #toolPanel .tool-choice-grid,
body.city-mode #toolPanel .zone-buttons,
body.city-mode #toolPanel .side-buttons,
body.city-mode #toolPanel .direction-buttons,
body.city-mode #toolPanel .geometry-buttons,
body.city-mode #toolPanel .tmpe-mode-buttons,
body.city-mode #toolPanel .tool-mini-stats,
body.city-mode #toolPanel .tool-stats{
  flex:initial!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:9px!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.030))!important;
  border:1px solid rgba(255,255,255,.09)!important;
}
body.city-mode #toolPanel .classic-tool-group>label,
body.city-mode #toolPanel .lane-class-panel>b,
body.city-mode #toolPanel .classic-label{
  display:block!important;
  margin:0 0 7px!important;
  font-size:10px!important;
  line-height:1.1!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  color:#c9d8ca!important;
  white-space:normal!important;
}
body.city-mode #toolPanel .classic-choice-grid,
body.city-mode #toolPanel .classic-stepper,
body.city-mode #toolPanel .classic-two-buttons,
body.city-mode #toolPanel .tmpe-class-grid,
body.city-mode #toolPanel .lane-class-buttons,
body.city-mode #toolPanel .segmented.compact,
body.city-mode #toolPanel .zone-buttons,
body.city-mode #toolPanel .side-buttons,
body.city-mode #toolPanel .direction-buttons,
body.city-mode #toolPanel .geometry-buttons,
body.city-mode #toolPanel .tmpe-mode-buttons,
body.city-mode #toolPanel .transit-actions,
body.city-mode #toolPanel .tool-choice-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:6px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
body.city-mode #toolPanel .road-main-presets{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel .speed-quick-buttons{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
body.city-mode #toolPanel .rail-speed-buttons{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel button{
  min-width:0!important;
  min-height:30px!important;
  height:32px!important;
  padding:0 8px!important;
  border-radius:10px!important;
  font-size:11px!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.city-mode #toolPanel .classic-current{display:block!important;margin-top:6px!important;font-size:10px!important;color:#d9e7d8!important;}
body.city-mode #toolPanel .classic-level-readout{
  display:block!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:9px!important;
  border-radius:13px!important;
  font-size:11px!important;
  background:linear-gradient(180deg,rgba(117,181,92,.13),rgba(255,255,255,.035))!important;
  border:1px solid rgba(143,211,107,.16)!important;
}
body.city-mode #toolPanel .classic-level-readout span{display:block!important;margin-top:4px!important;font-size:9px!important;color:#aebbae!important;}
body.city-mode #toolPanel .optional-advanced{display:none!important;}
body.city-mode #toolPanel .tool-hint,
body.city-mode #toolPanel .danger-hint,
body.city-mode #toolPanel #tmpeHint{
  display:block!important;
  grid-column:1/-1!important;
  margin:0!important;
  padding:8px 10px!important;
  border-radius:12px!important;
  font-size:11px!important;
  line-height:1.35!important;
  color:#bac8ba!important;
}
body.city-mode #toolPanel .tool-mini-stats,
body.city-mode #toolPanel .tool-stats,
body.city-mode #toolPanel .tmpe-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
body.city-mode #toolPanel .lane-control{
  display:grid!important;
  grid-template-columns:auto minmax(90px,1fr) 30px!important;
  gap:8px!important;
  align-items:center!important;
  margin:0!important;
  padding:9px!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.030))!important;
  border:1px solid rgba(255,255,255,.09)!important;
}
body.city-mode #toolPanel #inspectorText.inspector-text{display:none!important;}
@media(max-width:1366px){
  body.city-mode #toolPanel.tool-panel{max-height:218px!important;}
  body.city-mode #toolPanel .tool-section.active,
  body.city-mode #toolPanel .classic-tool-section.active{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))!important;}
  body.city-mode #toolPanel button{font-size:10.5px!important;padding:0 6px!important;}
}
@media(max-width:920px){
  body.city-mode #toolPanel.tool-panel{left:10px!important;right:10px!important;bottom:74px!important;max-height:42vh!important;}
  body.city-mode #toolPanel .tool-panel-head{display:none!important;}
  body.city-mode #toolPanel .road-main-presets{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}


/* ===== v2.4.3 — ciclo dia/noite ===== */
body.city-mode #dayNightToggle.daynight-action{
  min-width:78px!important;
  padding:0 10px!important;
  letter-spacing:.01em!important;
}
body.city-mode #dayNightToggle.daynight-action.active{
  background:linear-gradient(180deg,rgba(225,174,83,.32),rgba(135,91,38,.26))!important;
  border-color:rgba(225,174,83,.46)!important;
  box-shadow:0 0 0 1px rgba(225,174,83,.12),0 8px 22px rgba(120,75,28,.18),inset 0 1px 0 rgba(255,255,255,.08)!important;
}


/* v2.4.4 compact road/zone tool polish */
body.city-mode #toolPanel.tool-panel{
  left:82px!important;
  right:auto!important;
  top:auto!important;
  bottom:82px!important;
  transform:none!important;
  width:min(420px,calc(100vw - 112px))!important;
  max-width:min(420px,calc(100vw - 112px))!important;
  max-height:34vh!important;
  overflow:auto!important;
  padding:10px 12px!important;
  border-radius:16px!important;
}
body.city-mode #toolPanel .tool-panel-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;margin-bottom:8px!important;background:none!important;border:0!important;padding:0!important;width:auto!important;height:auto!important;float:none!important}
body.city-mode #toolPanel .tool-panel-subtitle{display:block!important}
body.city-mode #toolPanel .tool-section.active,body.city-mode #toolPanel .classic-tool-section.active{display:block!important;min-width:0!important}
body.city-mode #toolPanel .classic-tool-group,body.city-mode #toolPanel .tool-section[data-tool-section="zone"] .zone-density-wrap{width:auto!important;min-width:0!important;margin:7px 0!important;padding:8px!important;border-radius:11px!important;background:rgba(255,255,255,.04)!important;border:1px solid rgba(255,255,255,.08)!important}
body.city-mode #toolPanel .classic-tool-group>label,body.city-mode #toolPanel .zone-density-title{font-size:10px!important;font-weight:900!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:#bfccb9!important;margin-bottom:6px!important}
body.city-mode #toolPanel .classic-choice-grid,body.city-mode #toolPanel .classic-stepper,body.city-mode #toolPanel .classic-two-buttons,body.city-mode #toolPanel .zone-buttons,body.city-mode #toolPanel .side-buttons,body.city-mode #toolPanel .zone-density-buttons{display:grid!important;gap:6px!important}
body.city-mode #toolPanel .road-main-presets{grid-template-columns:repeat(3,1fr)!important}
body.city-mode #toolPanel .lane-quick-buttons{grid-template-columns:repeat(5,1fr)!important}
body.city-mode #toolPanel .speed-quick-buttons{grid-template-columns:repeat(4,1fr)!important}
body.city-mode #toolPanel .zone-buttons{grid-template-columns:repeat(3,1fr)!important}
body.city-mode #toolPanel .zone-density-buttons{grid-template-columns:repeat(3,1fr)!important}
body.city-mode #toolPanel .zone-density-buttons.disabled{opacity:.55!important}
body.city-mode #toolPanel .zone-density-buttons button:disabled{opacity:.45!important;cursor:not-allowed!important}
body.city-mode #toolPanel .zone-density-hint{margin-top:6px!important;font-size:11px!important;color:#9fb19c!important}
body.city-mode #toolPanel button{min-height:29px!important;height:30px!important;font-size:11px!important;padding:0 8px!important;border-radius:8px!important}
body.city-mode #toolPanel .tool-hint,body.city-mode #toolPanel .tool-mini-stats{display:block!important}
body.city-mode #toolPanel .tool-mini-stats{margin-top:8px!important}
body.city-mode #toolPanel .tool-panel-close{display:flex!important;align-items:center!important;justify-content:center!important}
@media(max-width:1100px){body.city-mode #toolPanel.tool-panel{left:10px!important;right:10px!important;bottom:76px!important;width:auto!important;max-width:calc(100vw - 20px)!important;max-height:42vh!important}}

/* v2.4.6 terrain brush polish */
body.city-mode #toolPanel .terrain-brush-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:6px!important;margin:8px 0!important}
body.city-mode #toolPanel .terrain-brush-grid button.active{border-color:#96d36d!important;background:linear-gradient(180deg,rgba(127,180,88,.36),rgba(76,128,52,.28))!important;color:#f5ffe9!important;box-shadow:inset 0 0 0 1px rgba(185,255,145,.18)!important}

/* ===== v2.4.7 stage 3 overrides ===== */
body.city-mode #bottombar .save-cluster{display:none!important;}
body.city-mode #bottombar.classic-bottombar{
  left:10px!important;
  right:10px!important;
  transform:none!important;
  width:auto!important;
  max-width:calc(100vw - 20px)!important;
  justify-content:space-between!important;
  overflow:hidden!important;
}
body.city-mode #bottombar .tool-cluster{
  flex:1 1 auto!important;
  justify-content:center!important;
  flex-wrap:wrap!important;
}
body.city-mode #bottombar .tool-cluster button[data-tool]{
  min-width:92px!important;
  flex-basis:92px!important;
  width:92px!important;
  height:54px!important;
  padding:6px 10px!important;
}
body.city-mode #bottombar .tool-ico{font-size:19px!important;}
body.city-mode #bottombar .tool-label{font-size:10.5px!important;letter-spacing:.02em!important;display:block!important;}
body.city-mode #bottombar .speed-cluster .compact-action{min-width:56px!important;height:38px!important;font-size:13px!important;}

body.city-mode #toolPanel.tool-panel{
  left:84px!important;
  right:auto!important;
  bottom:84px!important;
  top:auto!important;
  width:min(480px,calc(100vw - 380px))!important;
  max-width:min(480px,calc(100vw - 380px))!important;
  max-height:250px!important;
  overflow:hidden!important;
  padding:12px!important;
  border-radius:18px!important;
}
body.city-mode #toolPanel .tool-section.active,
body.city-mode #toolPanel .classic-tool-section.active{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  align-items:start!important;
}
body.city-mode #toolPanel .tool-section[data-tool-section="inspect"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="demolish"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="bus-line"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="bus-stop"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="upgrade"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="tmpe"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="terrain"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="transport"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="zone"].active,
body.city-mode #toolPanel .tool-section[data-tool-section="rail"].active{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
body.city-mode #toolPanel .tool-section-title,
body.city-mode #toolPanel .classic-subtitle{
  grid-column:1 / -1!important;
}
body.city-mode #toolPanel .tool-hint,
body.city-mode #toolPanel .tool-mini-stats,
body.city-mode #toolPanel .inspector-text,
body.city-mode #toolPanel .tmpe-summary,
body.city-mode #toolPanel .tmpe-legend{
  grid-column:1 / -1!important;
}
body.city-mode #toolPanel .classic-tool-group,
body.city-mode #toolPanel .lane-class-panel,
body.city-mode #toolPanel .tmpe-mode-buttons,
body.city-mode #toolPanel .classic-group,
body.city-mode #toolPanel .transit-actions,
body.city-mode #toolPanel .terrain-brush-grid,
body.city-mode #toolPanel #terrainBackGenerator{
  width:auto!important;
  min-width:0!important;
  margin:0!important;
}
body.city-mode #toolPanel .classic-tool-group,
body.city-mode #toolPanel .lane-class-panel,
body.city-mode #toolPanel .classic-group{
  padding:9px!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.04)!important;
  border:1px solid rgba(255,255,255,.085)!important;
}
body.city-mode #toolPanel button{
  min-height:34px!important;
  height:34px!important;
  font-size:12px!important;
  padding:0 10px!important;
  border-radius:9px!important;
  white-space:nowrap!important;
}
body.city-mode #toolPanel .classic-choice-grid,
body.city-mode #toolPanel .classic-stepper,
body.city-mode #toolPanel .classic-two-buttons,
body.city-mode #toolPanel .tmpe-mode-buttons,
body.city-mode #toolPanel .transit-actions,
body.city-mode #toolPanel .lane-class-buttons,
body.city-mode #toolPanel .tmpe-class-grid,
body.city-mode #toolPanel .segmented.compact,
body.city-mode #toolPanel .terrain-brush-grid{
  display:grid!important;
  gap:6px!important;
}
body.city-mode #toolPanel .road-main-presets{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
body.city-mode #toolPanel .road-direction-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
body.city-mode #toolPanel .road-elevation-grid,body.city-mode #toolPanel .rail-elevation-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel .lane-quick-buttons{grid-template-columns:repeat(5,minmax(0,1fr))!important;}
body.city-mode #toolPanel .speed-quick-buttons{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
body.city-mode #toolPanel .road-extra-grid{grid-template-columns:1fr!important;}
body.city-mode #toolPanel .road-zone-side-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel .terrain-brush-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-column:1 / -1!important;}
body.city-mode #toolPanel .tmpe-mode-buttons{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-column:1 / -1!important;}
body.city-mode #toolPanel .tmpe-class-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
body.city-mode #toolPanel .segmented.compact{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel [data-tool-section="tmpe"] .segmented.compact:first-of-type{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel [data-tool-section="tmpe"] .segmented.compact:last-of-type{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
body.city-mode #toolPanel .tool-panel-close{display:flex!important;align-items:center!important;justify-content:center!important;}
body.city-mode #toolPanel .tool-hint{margin-top:0!important;}
body.city-mode #toolPanel .tool-mini-stats{margin-top:0!important;}
body.city-mode #toolPanel .lane-control{grid-column:span 1!important;}
body.city-mode #toolPanel[data-active-tool="road"] .tool-hint,
body.city-mode #toolPanel[data-active-tool="road"] .tool-mini-stats{display:none!important;}
body.city-mode #toolPanel[data-active-tool="road"] .optional-advanced .tool-hint{display:block!important;}
body.city-mode #toolPanel[data-active-tool="terrain"] .tool-hint{display:block!important;}

.tn-minimap{left:auto!important;right:16px!important;bottom:84px!important;width:228px!important;z-index:18!important;}
.tn-minimap canvas{width:212px!important;height:212px!important;}
.tn-minimap-dock{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
.tn-minimap-dock button{height:32px!important;font-size:11px!important;padding:0 8px!important;}

body.ui-collapsed #topbar,
body.ui-collapsed #classicLeftPanel,
body.ui-collapsed #toolPanel,
body.ui-collapsed #bottombar,
body.ui-collapsed .pill{display:none!important;}
body.ui-collapsed .tn-minimap{display:block!important;right:16px!important;bottom:16px!important;}

@media(max-width:1366px){
  body.city-mode #toolPanel.tool-panel{width:min(460px,calc(100vw - 360px))!important;max-width:min(460px,calc(100vw - 360px))!important;}
  body.city-mode #bottombar .tool-cluster button[data-tool]{min-width:84px!important;flex-basis:84px!important;width:84px!important;}
}
@media(max-width:1100px){
  body.city-mode #toolPanel.tool-panel{left:10px!important;right:10px!important;width:auto!important;max-width:calc(100vw - 20px)!important;}
  .tn-minimap{right:16px!important;bottom:148px!important;}
}
@media(max-width:920px){
  body.city-mode #toolPanel.tool-panel{max-height:46vh!important;overflow:auto!important;}
  body.city-mode #toolPanel .tool-section.active,body.city-mode #toolPanel .classic-tool-section.active{grid-template-columns:1fr!important;}
  body.city-mode #bottombar .tool-cluster button[data-tool]{min-width:72px!important;flex-basis:72px!important;width:72px!important;height:50px!important;}
  .tn-minimap{display:none!important;}
}

/* ===== v2.4.8 visual fix: minimapa, barra inferior e painel sem corte ===== */
body.city-mode .tn-minimap{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  left:auto!important;
  right:16px!important;
  bottom:78px!important;
  width:218px!important;
  z-index:40!important;
}
body.city-mode .tn-minimap canvas{width:202px!important;height:202px!important;}
body.city-mode .tn-minimap-dock{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
body.city-mode .tn-minimap-dock button{height:30px!important;font-size:11px!important;}

body.city-mode #bottombar.classic-bottombar{
  bottom:8px!important;
  min-height:58px!important;
  padding:6px!important;
  gap:8px!important;
  overflow:hidden!important;
}
body.city-mode #bottombar .speed-cluster{
  gap:5px!important;
  flex:0 0 auto!important;
}
body.city-mode #bottombar .speed-cluster .compact-action,
body.city-mode #dayNightToggle.daynight-action{
  min-width:48px!important;
  width:48px!important;
  height:34px!important;
  padding:0 6px!important;
  font-size:11px!important;
  border-radius:9px!important;
}
body.city-mode #pauseGame.compact-action{width:58px!important;min-width:58px!important;}
body.city-mode #bottombar .tool-cluster button[data-tool]{
  min-width:82px!important;
  width:82px!important;
  flex-basis:82px!important;
  height:48px!important;
}
body.city-mode #bottombar .tool-label{font-size:9.5px!important;}
body.city-mode #bottombar .tool-ico{font-size:17px!important;}

body.city-mode #toolPanel.tool-panel{
  left:68px!important;
  right:250px!important;
  width:auto!important;
  max-width:none!important;
  bottom:72px!important;
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
  padding:10px!important;
}
body.city-mode #toolPanel .tool-panel-head{
  display:flex!important;
  align-items:center!important;
  margin-bottom:6px!important;
  min-height:24px!important;
}
body.city-mode #toolPanel .tool-panel-subtitle{display:none!important;}
body.city-mode #toolPanel .tool-section.active,
body.city-mode #toolPanel .classic-tool-section.active{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(118px,1fr))!important;
  gap:7px!important;
  align-items:start!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .classic-subtitle,
body.city-mode #toolPanel[data-active-tool="road"] .tool-section-title,
body.city-mode #toolPanel[data-active-tool="road"] .tool-hint,
body.city-mode #toolPanel[data-active-tool="road"] .tool-mini-stats,
body.city-mode #toolPanel[data-active-tool="road"] .classic-level-readout,
body.city-mode #toolPanel[data-active-tool="road"] .optional-advanced{display:none!important;}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active{
  grid-template-columns:1.25fr 1fr 1.35fr 1fr!important;
}
body.city-mode #toolPanel .classic-tool-group,
body.city-mode #toolPanel .lane-class-panel,
body.city-mode #toolPanel .classic-group{
  padding:7px!important;
  border-radius:11px!important;
}
body.city-mode #toolPanel .classic-tool-group>label,
body.city-mode #toolPanel .zone-density-title{
  font-size:9px!important;
  margin-bottom:4px!important;
}
body.city-mode #toolPanel button{
  height:31px!important;
  min-height:31px!important;
  padding:0 8px!important;
  font-size:11px!important;
  border-radius:8px!important;
  text-overflow:ellipsis!important;
  overflow:hidden!important;
}
body.city-mode #toolPanel .road-main-presets{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
body.city-mode #toolPanel .lane-quick-buttons{grid-template-columns:repeat(5,minmax(0,1fr))!important;}
body.city-mode #toolPanel .speed-quick-buttons{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
body.city-mode #toolPanel .road-extra-grid{grid-template-columns:repeat(1,minmax(0,1fr))!important;}
body.city-mode #toolPanel .road-zone-side-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel[data-active-tool="road"] .compact-road-options{min-width:0!important;}

body.ui-collapsed .tn-minimap{display:block!important;right:16px!important;bottom:16px!important;}
@media(max-width:1180px){
  body.city-mode #toolPanel.tool-panel{left:10px!important;right:10px!important;bottom:70px!important;}
  body.city-mode #toolPanel .tool-section.active,body.city-mode #toolPanel .classic-tool-section.active{grid-template-columns:repeat(3,minmax(110px,1fr))!important;}
  body.city-mode .tn-minimap{display:none!important;}
}

/* ===== v2.4.11 — visual polish compacto ===== */
body.city-mode .tn-minimap,
body.city-mode .tn-minimap.hidden{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  left:auto!important;
  right:12px!important;
  bottom:76px!important;
  width:178px!important;
  z-index:80!important;
  padding:6px!important;
  border-radius:12px!important;
}
body.city-mode .tn-minimap-head{font-size:10px!important;margin-bottom:4px!important;}
body.city-mode .tn-minimap-head b{font-size:10px!important;}
body.city-mode .tn-minimap-head span{font-size:9px!important;}
body.city-mode .tn-minimap canvas{width:166px!important;height:166px!important;border-radius:8px!important;}
body.city-mode .tn-minimap-dock{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;margin-top:5px!important;}
body.city-mode .tn-minimap-dock button{height:24px!important;font-size:9px!important;padding:0 5px!important;border-radius:7px!important;}

body.city-mode #bottombar.classic-bottombar{
  min-height:48px!important;
  height:54px!important;
  padding:5px 7px!important;
  gap:6px!important;
}
body.city-mode #bottombar .speed-cluster{gap:4px!important;}
body.city-mode #bottombar .speed-cluster .compact-action,
body.city-mode #dayNightToggle.daynight-action{
  min-width:42px!important;
  width:42px!important;
  height:30px!important;
  padding:0 4px!important;
  font-size:10px!important;
  border-radius:8px!important;
}
body.city-mode #pauseGame.compact-action{min-width:50px!important;width:50px!important;}
body.city-mode #bottombar .tool-cluster{gap:5px!important;}
body.city-mode #bottombar .tool-cluster button[data-tool]{
  min-width:68px!important;
  width:68px!important;
  flex-basis:68px!important;
  height:42px!important;
  padding:3px 6px!important;
  border-radius:10px!important;
}
body.city-mode #bottombar .tool-label{font-size:8.4px!important;line-height:1!important;}
body.city-mode #bottombar .tool-ico{font-size:15px!important;}

body.city-mode #toolPanel.tool-panel{
  left:68px!important;
  right:auto!important;
  bottom:70px!important;
  top:auto!important;
  width:430px!important;
  max-width:430px!important;
  min-width:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  padding:8px!important;
  border-radius:14px!important;
  z-index:45!important;
}
body.city-mode #toolPanel .tool-panel-head{display:flex!important;align-items:center!important;margin-bottom:4px!important;min-height:20px!important;}
body.city-mode #toolPanel .tool-panel-head .panel-title{font-size:10px!important;letter-spacing:.08em!important;}
body.city-mode #toolPanel .tool-panel-close{width:24px!important;height:24px!important;border-radius:8px!important;font-size:11px!important;}
body.city-mode #toolPanel .tool-panel-subtitle,
body.city-mode #toolPanel .classic-subtitle,
body.city-mode #toolPanel .tool-section-title,
body.city-mode #toolPanel .tool-hint,
body.city-mode #toolPanel .tool-mini-stats,
body.city-mode #toolPanel .classic-level-readout,
body.city-mode #toolPanel .classic-current,
body.city-mode #toolPanel .optional-advanced{display:none!important;}
body.city-mode #toolPanel .tool-section.active,
body.city-mode #toolPanel .classic-tool-section.active,
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:5px!important;
  align-items:start!important;
}
body.city-mode #toolPanel .classic-tool-group,
body.city-mode #toolPanel .lane-class-panel,
body.city-mode #toolPanel .classic-group,
body.city-mode #toolPanel .zone-density-wrap{
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:5px!important;
  border-radius:9px!important;
  background:rgba(255,255,255,.035)!important;
  border:1px solid rgba(255,255,255,.075)!important;
}
body.city-mode #toolPanel .classic-tool-group>label,
body.city-mode #toolPanel .zone-density-title{
  font-size:7.8px!important;
  line-height:1!important;
  margin-bottom:4px!important;
  letter-spacing:.075em!important;
}
body.city-mode #toolPanel button{
  height:24px!important;
  min-height:24px!important;
  padding:0 5px!important;
  font-size:9px!important;
  line-height:1!important;
  border-radius:7px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
body.city-mode #toolPanel .classic-choice-grid,
body.city-mode #toolPanel .classic-stepper,
body.city-mode #toolPanel .classic-two-buttons,
body.city-mode #toolPanel .zone-buttons,
body.city-mode #toolPanel .side-buttons,
body.city-mode #toolPanel .zone-density-buttons,
body.city-mode #toolPanel .terrain-brush-grid,
body.city-mode #toolPanel .tmpe-mode-buttons,
body.city-mode #toolPanel .transit-actions,
body.city-mode #toolPanel .lane-class-buttons,
body.city-mode #toolPanel .tmpe-class-grid,
body.city-mode #toolPanel .segmented.compact{
  display:grid!important;
  gap:4px!important;
}
body.city-mode #toolPanel .road-main-presets{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
body.city-mode #toolPanel .lane-quick-buttons{grid-template-columns:repeat(5,minmax(0,1fr))!important;}
body.city-mode #toolPanel .speed-quick-buttons{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
body.city-mode #toolPanel .road-direction-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
body.city-mode #toolPanel .road-elevation-grid,body.city-mode #toolPanel .rail-elevation-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel .road-extra-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel .road-zone-side-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel[data-active-tool="road"] .compact-road-options{min-width:0!important;}
body.city-mode #toolPanel .zone-buttons{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel .zone-density-buttons{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel .terrain-brush-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}

@media(max-width:1180px){
  body.city-mode #toolPanel.tool-panel{width:390px!important;max-width:calc(100vw - 24px)!important;left:10px!important;bottom:62px!important;}
  body.city-mode #toolPanel .tool-section.active,body.city-mode #toolPanel .classic-tool-section.active{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  body.city-mode .tn-minimap,body.city-mode .tn-minimap.hidden{display:block!important;right:10px!important;bottom:118px!important;width:154px!important;}
  body.city-mode .tn-minimap canvas{width:142px!important;height:142px!important;}
}

/* v2.4.12: minimapa legado funcional sempre visivel na cidade.
   Usa #tnMinimap para vencer overrides antigos e media queries que escondiam .tn-minimap. */
body.city-mode #tnMinimap.tn-minimap,
body.city-mode #tnMinimap.tn-minimap.hidden{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  position:fixed!important;
  left:auto!important;
  top:auto!important;
  right:16px!important;
  bottom:84px!important;
  width:228px!important;
  z-index:80!important;
  pointer-events:auto!important;
  transform:none!important;
}
body.city-mode #tnMinimap canvas{
  width:212px!important;
  height:212px!important;
}
body.city-mode #tnMinimap .tn-minimap-dock{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
body.ui-collapsed #tnMinimap.tn-minimap,
body.ui-collapsed #tnMinimap.tn-minimap.hidden{
  display:block!important;
  right:16px!important;
  bottom:16px!important;
}
@media(max-width:1180px){
  body.city-mode #tnMinimap.tn-minimap,
  body.city-mode #tnMinimap.tn-minimap.hidden{
    display:block!important;
    right:10px!important;
    bottom:118px!important;
    width:164px!important;
  }
  body.city-mode #tnMinimap canvas{width:150px!important;height:150px!important;}
}
@media(max-width:920px){
  body.city-mode #tnMinimap.tn-minimap,
  body.city-mode #tnMinimap.tn-minimap.hidden{
    display:block!important;
    right:8px!important;
    bottom:126px!important;
    width:146px!important;
  }
  body.city-mode #tnMinimap canvas{width:132px!important;height:132px!important;}
  body.city-mode #tnMinimap .tn-minimap-dock button{height:24px!important;font-size:9px!important;padding:0 4px!important;}
}


/* ===== v2.4.13 render focus: botões do minimapa realmente controlam UI e grade ===== */
body.city-mode #tnMinimap.tn-minimap,
body.city-mode #tnMinimap.tn-minimap.hidden{
  display:block!important; visibility:visible!important; opacity:1!important; pointer-events:auto!important; z-index:120!important;
}
body.ui-collapsed #topbar,
body.ui-collapsed #classicLeftPanel,
body.ui-collapsed #toolPanel,
body.ui-collapsed #bottombar,
body.ui-collapsed .pill{display:none!important;}
body.ui-collapsed #tnMinimap.tn-minimap{display:block!important;right:16px!important;bottom:16px!important;}


/* v2.4.14 — UI colapsada realmente limpa a tela, mantendo só o botão Interface para restaurar. */
body.city-mode.ui-collapsed .topbar,
body.city-mode.ui-collapsed .bottombar,
body.city-mode.ui-collapsed #classicLeftPanel,
body.city-mode.ui-collapsed #toolPanel,
body.city-mode.ui-collapsed .tn-info-dock,
body.city-mode.ui-collapsed .tn-info-panel,
body.city-mode.ui-collapsed .tmpe-panel,
body.city-mode.ui-collapsed .pill{display:none!important}
body.city-mode .tn-minimap.minimap-ui-collapsed{width:auto!important;min-width:104px!important;padding:6px!important;right:12px!important;bottom:16px!important}
body.city-mode .tn-minimap.minimap-ui-collapsed .tn-minimap-head,
body.city-mode .tn-minimap.minimap-ui-collapsed canvas,
body.city-mode .tn-minimap.minimap-ui-collapsed [data-view-toggle]{display:none!important}
body.city-mode .tn-minimap.minimap-ui-collapsed .tn-minimap-dock{display:block!important;margin:0!important}
body.city-mode .tn-minimap.minimap-ui-collapsed [data-ui-toggle="ui"]{display:block!important;width:92px!important;height:30px!important}
body.city-mode .tn-minimap,
body.city-mode .newcore-minimap{display:block!important;visibility:visible!important;opacity:1!important}
body.city-mode.ui-collapsed .tn-minimap.minimap-ui-collapsed{display:block!important;visibility:visible!important;opacity:1!important}

/* v2.4.44 — Topbar enxuta: badge de eventos com cor semântica */
.hud-events-badge { cursor: default; }
.hud-events-badge span { font-size: 13px; font-weight: 700; transition: color .25s ease; }

/* v2.4.45 — Presets de qualidade gráfica na tela inicial */
.start-quality{margin-top:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.start-quality-label{font-size:12px;color:var(--muted)}
.quality-btn{height:32px;padding:0 12px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--text);font-size:12px;font-weight:700;cursor:pointer}
.quality-btn:hover{background:rgba(143,211,107,.16)}

/* v2.4.60: remove UI do sistema ferroviário legado; trilhos voltarão como tipo de via/renderer de estrada. */
[data-tool="rail"], [data-subtool="rail-station"], [data-subtool="rail-line"],
.tool-section[data-tool-section="rail"], .tool-section[data-tool-section="rail-station"], .tool-section[data-tool-section="rail-line"] { display:none!important; }

/* v0.9.35 - hotfix UI/minimapa: a camada final precisa ganhar dos CSS antigos. */
body.city-mode #topbar{
  left:clamp(8px,1vw,16px)!important;
  right:clamp(8px,1vw,16px)!important;
  max-width:calc(100vw - clamp(16px,2vw,32px))!important;
  transform:none!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  flex-wrap:nowrap!important;
  scrollbar-width:thin;
}
body.city-mode #topbar .hud-pill{
  flex:0 0 auto!important;
  min-width:max-content!important;
  white-space:nowrap!important;
}
body.city-mode #bottombar{
  left:clamp(8px,1vw,14px)!important;
  right:clamp(8px,1vw,14px)!important;
  bottom:clamp(8px,1.2vh,14px)!important;
  transform:none!important;
  max-width:calc(100vw - clamp(16px,2vw,28px))!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  gap:10px!important;
}
body.city-mode #bottombar .speed-cluster,
body.city-mode #bottombar .tool-cluster{
  flex:0 0 auto!important;
  min-width:max-content!important;
}
body.city-mode #bottombar .tool-cluster button[data-tool]{
  flex:0 0 clamp(64px,6.4vw,86px)!important;
  min-width:clamp(64px,6.4vw,86px)!important;
  width:clamp(64px,6.4vw,86px)!important;
}
body.city-mode #toolPanel{
  max-width:min(430px,calc(100vw - 24px))!important;
  max-height:calc(100vh - 172px)!important;
  overflow:auto!important;
}
body.city-mode #miniMapPanel{
  display:block!important;
  right:clamp(10px,1vw,16px)!important;
  bottom:clamp(82px,10vh,118px)!important;
  max-width:min(180px,calc(100vw - 24px))!important;
}
body.city-mode #miniMapCanvas{
  width:100%!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  image-rendering:auto!important;
}
body.city-mode #miniMapPanel .tn-minimap-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:6px!important;
}
body.city-mode #miniMapPanel.collapsed{
  width:auto!important;
  min-width:96px!important;
  padding:7px!important;
}
body.city-mode #miniMapPanel.collapsed .tn-minimap-head,
body.city-mode #miniMapPanel.collapsed #miniMapCanvas,
body.city-mode #miniMapPanel.collapsed .tn-minimap-actions button:not(#miniMapHide){
  display:none!important;
}
body.city-mode #miniMapPanel.collapsed .tn-minimap-actions{
  display:block!important;
}
body.city-mode.ui-collapsed #topbar,
body.city-mode.ui-collapsed #bottombar,
body.city-mode.ui-collapsed #toolPanel,
body.city-mode.ui-collapsed #tnInfoDock,
body.city-mode.ui-collapsed #tnInfoPanel,
body.city-mode.ui-collapsed #eventsPanel,
body.city-mode.ui-collapsed #transitFleetPanel,
body.city-mode.ui-collapsed #hamburgerMenu{
  display:none!important;
}
body.city-mode.ui-collapsed #miniMapPanel{
  display:block!important;
  visibility:visible!important;
}

@media (max-width:1366px), (max-height:780px){
  body.city-mode #topbar .hud-pill{font-size:10px!important;padding:6px 8px!important}
  body.city-mode #toolPanel{left:62px!important;bottom:84px!important;top:auto!important;max-height:42vh!important}
  body.city-mode #miniMapPanel{max-width:148px!important;bottom:88px!important}
  body.city-mode #bottombar .tool-label{font-size:9px!important}
  body.city-mode #bottombar .tool-cluster button[data-tool]{height:44px!important;min-width:60px!important;width:60px!important;flex-basis:60px!important}
}

@media (max-width:900px){
  body.city-mode #toolPanel{left:10px!important;right:10px!important;width:auto!important;max-width:none!important}
  body.city-mode #miniMapPanel{max-width:132px!important}
  body.city-mode #tnInfoDock{display:none!important}
}

/* v2.5.7 TMPE completo: seleção de segmento/nó + permissões por veículo */
body.city-mode #toolPanel .tmpe-selection-card{
  display:block!important;
  min-width:260px!important;
  max-width:420px!important;
  padding:8px!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:12px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.028))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045)!important;
  color:var(--text)!important;
}
body.city-mode #toolPanel .tmpe-selection-card>b{display:block!important;font-size:10px!important;letter-spacing:.08em!important;text-transform:uppercase!important;margin-bottom:6px!important;color:#dce8d8!important;}
body.city-mode #toolPanel .tmpe-selection-body{display:flex!important;flex-direction:column!important;gap:6px!important;font-size:10px!important;color:#b9c6b8!important;}
body.city-mode #toolPanel .tmpe-mini-row{display:grid!important;grid-template-columns:1fr 44px 44px!important;gap:5px!important;align-items:center!important;}
body.city-mode #toolPanel .tmpe-selected-title{font-size:11px!important;font-weight:900!important;color:#f2f7ef!important;}
body.city-mode #toolPanel .tmpe-muted{font-size:10px!important;line-height:1.25!important;color:#aebcaf!important;}
body.city-mode #toolPanel .tmpe-mini-label{font-size:9px!important;letter-spacing:.07em!important;text-transform:uppercase!important;color:#9fb09f!important;margin-top:2px!important;}
body.city-mode #toolPanel .tmpe-lane-pills,
body.city-mode #toolPanel .tmpe-vehicle-grid,
body.city-mode #toolPanel .tmpe-node-grid{display:grid!important;gap:4px!important;}
body.city-mode #toolPanel .tmpe-lane-pills{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
body.city-mode #toolPanel .tmpe-vehicle-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;}
body.city-mode #toolPanel .tmpe-node-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
body.city-mode #toolPanel .tmpe-selection-card button{
  min-height:24px!important;
  height:24px!important;
  padding:0 5px!important;
  border-radius:8px!important;
  border:1px solid rgba(255,255,255,.12)!important;
  background:rgba(255,255,255,.055)!important;
  color:#e8f0e5!important;
  font-size:9px!important;
  font-weight:800!important;
  cursor:pointer!important;
}
body.city-mode #toolPanel .tmpe-selection-card button.active{
  background:linear-gradient(180deg,rgba(128,200,100,.34),rgba(58,103,49,.24))!important;
  border-color:rgba(128,200,100,.46)!important;
  box-shadow:inset 0 0 0 1px rgba(128,200,100,.12)!important;
}
@media(max-width:1366px){body.city-mode #toolPanel .tmpe-vehicle-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}body.city-mode #toolPanel .tmpe-selection-card{min-width:240px!important;}}

/* v2.5.7 performance-demand: compact RCI demand bars in the topbar */
body.city-mode #topbar .rci-demand-pill{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-width:154px!important;
  padding:0 8px!important;
}
.rci-demand-title{
  font-size:10px!important;
  font-weight:900!important;
  color:#aebcaf!important;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.rci-demand-bars{
  display:grid;
  grid-template-rows:repeat(3,6px);
  gap:3px;
  width:88px;
}
.rci-demand-item{
  display:grid;
  grid-template-columns:10px 1fr;
  align-items:center;
  gap:4px;
  min-width:0;
}
.rci-demand-label{
  font-size:9px!important;
  line-height:1!important;
  font-weight:950!important;
  color:#f7fbf4!important;
  text-align:center;
  text-shadow:none!important;
}
.rci-demand-track{
  position:relative;
  height:6px;
  overflow:hidden;
  border-radius:3px;
  background:rgba(0,0,0,.34);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);
}
.rci-demand-fill{
  width:0%;
  height:100%;
  border-radius:3px;
  transition:width .28s ease;
}
.rci-demand-fill-r{background:linear-gradient(90deg,#3f9f55,#79d96d)}
.rci-demand-fill-c{background:linear-gradient(90deg,#246fbd,#67b9ff)}
.rci-demand-fill-i{background:linear-gradient(90deg,#c3831d,#f2c75e)}
.rci-demand-fill[data-trend="up"]{filter:saturate(1.18) brightness(1.08)}
.rci-demand-fill[data-trend="down"]{filter:saturate(.82) brightness(.86)}
@media(max-width:1366px){
  body.city-mode #topbar .rci-demand-pill{min-width:136px!important}
  .rci-demand-bars{width:74px}
}
@media(max-width:1180px){
  body.city-mode #topbar .rci-demand-pill{display:flex!important;min-width:98px!important}
  .rci-demand-title{display:none!important}
  .rci-demand-bars{width:72px}
}
@media(max-width:760px){
  body.city-mode #topbar .rci-demand-pill{display:flex!important;min-width:86px!important;padding:0 6px!important}
  .rci-demand-bars{width:62px}
}

/* v2.5.7 pass4 — minimapa recolhível e botão de retorno na bottom bar */
body.city-mode #tnMinimap.tn-minimap.minimap-hidden,
body.city-mode #tnMinimap.tn-minimap.hidden.minimap-hidden{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
body.city-mode #tnMinimap .tn-minimap-head{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
}
body.city-mode #tnMinimap .tn-minimap-head #tnMinimapMeta{margin-left:auto!important;}
body.city-mode #tnMinimap .tn-minimap-hide{
  width:22px!important;
  height:20px!important;
  min-width:22px!important;
  padding:0!important;
  border-radius:7px!important;
  border:1px solid rgba(255,255,255,.14)!important;
  background:rgba(255,255,255,.08)!important;
  color:#e7eee7!important;
  font-size:13px!important;
  line-height:1!important;
  cursor:pointer!important;
}
body.city-mode #tnMinimap .tn-minimap-hide:hover{background:rgba(143,211,107,.22)!important;}
body.city-mode #bottombar .tn-minimap-restore-btn{
  display:none!important;
  position:absolute!important;
  right:10px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:42px!important;
  min-width:42px!important;
  height:38px!important;
  padding:0!important;
  border-radius:12px!important;
  border:1px solid rgba(143,211,107,.36)!important;
  background:linear-gradient(180deg,rgba(143,211,107,.22),rgba(35,58,34,.72))!important;
  color:#fff!important;
  font-size:18px!important;
  z-index:5!important;
  box-shadow:0 8px 24px rgba(0,0,0,.28)!important;
}
body.city-mode #bottombar .tn-minimap-restore-btn.show{display:flex!important;align-items:center!important;justify-content:center!important;}
body.ui-collapsed #bottombar .tn-minimap-restore-btn{display:none!important;}

/* v2.5.7 pass13 — novo jogo, cidades procedurais e lista/teleporte */
.newgame-options,.citygen-panel{margin-top:12px;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(18,26,22,.46)}
.newgame-row{display:flex;align-items:center;gap:8px;margin:8px 0}.newgame-row span{min-width:58px;font-weight:700;color:#e8f4df}.newgame-row button{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#eef7e8;border-radius:10px;padding:7px 10px;cursor:pointer}.newgame-row button.active{background:#8fd05e;color:#132012;border-color:#c7f0a9}.newgame-row.compact button{padding:5px 8px;font-size:12px}.newgame-slider{display:grid;grid-template-columns:130px 1fr;gap:8px;align-items:center;margin:8px 0}.newgame-slider label{font-size:12px;color:#e8f4df}.citygen-panel b{display:block;margin-bottom:6px;color:#f0ffe8}.citygen-row{margin-top:7px}.city-list{display:flex;flex-direction:column;gap:7px;margin-top:12px}.city-list h3{font-size:13px;margin:4px 0;color:#e9ffd9}.city-row{display:grid;grid-template-columns:1fr auto;gap:4px 8px;text-align:left;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);border-radius:10px;padding:8px;color:#eef7e8;cursor:pointer}.city-row:hover{background:rgba(143,208,94,.18)}.city-row span{grid-column:1/2;font-size:12px;opacity:.85}.city-row em{grid-row:1/3;grid-column:2/3;align-self:center;font-style:normal;padding:4px 6px;border-radius:8px;background:rgba(255,255,255,.08)}

/* pass13b: FPS fixo/visível para medir performance, mesmo em telas 1366px. */
body.city-mode #topbar .hud-fps,
#topbar .hud-fps{
  display:flex!important;
  margin-left:auto;
  border-color:rgba(128,200,100,.22)!important;
}
body.city-mode #topbar .hud-fps b{color:#9ad17b!important;}
@media(max-width:1366px){
  body.city-mode #topbar .hud-fps,
  #topbar .hud-fps{display:flex!important;}
}

/* pass13c: FPS realmente visível no canto direito. As media queries antigas escondiam todos os hud-pill após o 5º/7º item. */
body.city-mode #topbar #newcoreFpsPill,
#topbar #newcoreFpsPill,
body.city-mode #topbar .hud-pill#newcoreFpsPill,
body.city-mode #topbar .hud-pill.hud-fps#newcoreFpsPill,
body.city-mode #topbar .hud-pill:nth-of-type(n)#newcoreFpsPill{
  display:flex!important;
  position:fixed!important;
  top:8px!important;
  right:12px!important;
  z-index:10050!important;
  margin-left:0!important;
  min-width:66px!important;
  height:34px!important;
  padding:0 10px!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  border-radius:12px!important;
  border:1px solid rgba(128,200,100,.38)!important;
  background:rgba(13,18,17,.86)!important;
  box-shadow:0 8px 26px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08)!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none!important;
}
body.city-mode #topbar #newcoreFpsPill b,
#topbar #newcoreFpsPill b{color:#9ad17b!important;font-size:9px!important;letter-spacing:.05em!important;}
body.city-mode #topbar #newcoreFps,
#topbar #newcoreFps{font-size:13px!important;font-weight:950!important;color:#dff5d8!important;}

/* pass13p: RCI volta a ficar sempre visível na topbar em 1366px, sem brigar com FPS fixo. */
body.city-mode #topbar #newcoreDemandPill,
#topbar #newcoreDemandPill,
body.city-mode #topbar .hud-pill.rci-demand-pill#newcoreDemandPill,
body.city-mode #topbar .hud-pill:nth-of-type(n)#newcoreDemandPill{
  display:flex!important;
  position:fixed!important;
  top:8px!important;
  right:88px!important;
  z-index:10049!important;
  width:128px!important;
  min-width:128px!important;
  height:34px!important;
  padding:0 8px!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  border-radius:12px!important;
  border:1px solid rgba(168,190,160,.24)!important;
  background:rgba(13,18,17,.84)!important;
  box-shadow:0 8px 26px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.07)!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
body.city-mode #topbar #newcoreDemandPill .rci-demand-title,
#topbar #newcoreDemandPill .rci-demand-title{display:block!important;font-size:9px!important;}
body.city-mode #topbar #newcoreDemandPill .rci-demand-bars,
#topbar #newcoreDemandPill .rci-demand-bars{width:62px!important;gap:2px!important;}
body.city-mode #topbar #newcoreDemandPill .rci-demand-track,
#topbar #newcoreDemandPill .rci-demand-track{height:5px!important;}
@media(max-width:1180px){
  body.city-mode #topbar #newcoreDemandPill,
  #topbar #newcoreDemandPill{right:84px!important;width:92px!important;min-width:92px!important;padding:0 6px!important;}
  body.city-mode #topbar #newcoreDemandPill .rci-demand-title,
  #topbar #newcoreDemandPill .rci-demand-title{display:none!important;}
  body.city-mode #topbar #newcoreDemandPill .rci-demand-bars,
  #topbar #newcoreDemandPill .rci-demand-bars{width:72px!important;}
}

/* ===================== SIMUTRANS URBAN Entrega 5/8 — gerenciamento de linhas ===================== */
.wide-tool-action{grid-column:1/-1;background:linear-gradient(180deg,rgba(143,211,107,.26),rgba(73,126,58,.20))!important;border-color:rgba(143,211,107,.42)!important}
.line-manager-modal{position:fixed;inset:0;z-index:45;background:rgba(3,7,6,.58);backdrop-filter:blur(7px);display:none;align-items:center;justify-content:center;padding:22px}
body.line-manager-open .line-manager-modal{display:flex}
.line-manager-card{width:min(1080px,96vw);height:min(720px,88vh);display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:linear-gradient(180deg,rgba(17,27,24,.96),rgba(9,14,13,.94));box-shadow:0 34px 110px rgba(0,0,0,.62);overflow:hidden;color:var(--text)}
.line-manager-header{height:70px;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);background:rgba(20,28,25,.92)}
.line-manager-header span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--accent);font-weight:950}.line-manager-header h2{margin:3px 0 0;font-size:20px}.line-manager-header button{width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:#fff;font-size:22px;font-weight:900;cursor:pointer}
.line-manager-body{display:grid;grid-template-columns:330px 1fr;min-height:0;flex:1}.line-manager-list{border-right:1px solid var(--line);padding:12px;overflow:auto;background:rgba(255,255,255,.025)}.line-manager-detail{padding:16px;overflow:auto}.line-empty{padding:14px;border:1px dashed rgba(255,255,255,.18);border-radius:14px;color:var(--muted);font-size:13px}.line-list-card{position:relative;width:100%;display:grid;grid-template-columns:18px 1fr auto;gap:4px 9px;align-items:center;text-align:left;margin-bottom:8px;padding:11px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.055);color:var(--text);cursor:pointer}.line-list-card:hover,.line-list-card.active{background:rgba(143,211,107,.14);border-color:rgba(143,211,107,.36)}.line-list-card b{grid-column:2/4;font-size:13px}.line-list-card em{grid-column:2/4;color:var(--muted);font-style:normal;font-size:11px}.line-list-card strong{grid-column:2/3;font-size:12px}.line-list-card small{grid-column:3/4;font-size:11px;font-weight:950}.line-color-dot{display:inline-block;width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 2px rgba(255,255,255,.12)}.line-color-dot.big{width:18px;height:18px;margin-right:9px;vertical-align:-2px}.line-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.line-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:900}.line-detail-head h3{font-size:25px;margin:4px 0 3px}.line-detail-head p{margin:0;color:var(--muted);font-size:13px}.line-actions-row{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.line-actions-row button,.line-primary,.classic-line-manager-call button{height:34px;border-radius:11px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:var(--text);font-weight:900;cursor:pointer;padding:0 10px}.line-actions-row button:hover,.line-primary:hover,.classic-line-manager-call button:hover{background:rgba(143,211,107,.17)}.line-actions-row button.danger{border-color:rgba(255,118,118,.36);color:#ffd7d7}.line-edit-grid{display:grid;grid-template-columns:1.5fr 110px 130px;gap:10px;margin:12px 0 14px}.line-edit-grid label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.05em}.line-edit-grid input{height:36px;border-radius:11px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:#fff;padding:0 10px;font-weight:850;outline:none}.line-edit-grid input[type="color"]{padding:3px}.line-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:16px}.line-metric-grid article{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.055);padding:10px}.line-metric-grid span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:950}.line-metric-grid b{display:block;margin-top:4px;font-size:15px;color:#fff}.pos{color:#9ee27e!important}.neg{color:#ff9c88!important}.line-stop-list{border-top:1px solid var(--line);padding-top:13px}.line-stop-list h4{margin:0 0 9px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.line-stop-row{display:grid;grid-template-columns:34px 1fr 90px 32px 32px 32px;gap:7px;align-items:center;margin-bottom:6px;padding:8px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.042)}.line-stop-row span{color:var(--accent);font-weight:950}.line-stop-row b{font-size:13px}.line-stop-row em{font-size:11px;color:var(--muted);font-style:normal;text-align:right}.line-stop-row button{height:28px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.07);color:#fff;font-weight:900;cursor:pointer}.line-stop-row button:disabled{opacity:.35;cursor:not-allowed}.line-manager-empty{height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;max-width:430px;margin:auto}.line-manager-empty h3{font-size:26px;margin:0 0 8px}.line-manager-empty p{margin:0 0 14px;color:var(--muted);line-height:1.45}.line-manager-note{margin-top:14px;border:1px solid rgba(143,211,107,.22);background:rgba(143,211,107,.07);border-radius:14px;padding:10px;color:#dbeed4;font-size:12px}.classic-line-manager-call{margin-top:10px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.055);padding:10px;display:grid;gap:6px}.classic-line-manager-call span{font-size:11px;color:var(--muted);line-height:1.3}
@media(max-width:820px){.line-manager-body{grid-template-columns:1fr}.line-manager-list{max-height:190px;border-right:none;border-bottom:1px solid var(--line)}.line-detail-head{display:block}.line-actions-row{justify-content:flex-start;margin-top:10px}.line-edit-grid,.line-metric-grid{grid-template-columns:1fr 1fr}.line-stop-row{grid-template-columns:28px 1fr 58px 30px 30px 30px}.line-manager-card{height:92vh}}
.fleet-panel-block{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.fleet-panel-block h4{margin:12px 0 9px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.fleet-summary-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}.fleet-summary-row article{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.052);padding:10px}.fleet-summary-row span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:950}.fleet-summary-row b{display:block;margin-top:4px;color:#fff;font-size:15px}.fleet-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.fleet-catalog-card{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.048);padding:8px;display:grid;gap:4px}.fleet-catalog-card b{display:block;font-size:12px}.fleet-catalog-card span{display:block;color:var(--muted);font-size:10px}.fleet-catalog-card p{margin:0;color:#dce8dc;font-size:11px;line-height:1.22}.fleet-catalog-card em{font-style:normal;color:var(--accent);font-size:11px;font-weight:900}.fleet-card-actions,.fleet-row-actions{display:flex;flex-wrap:wrap;gap:6px}.fleet-card-actions button,.fleet-row-actions button{height:28px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.075);color:#fff;font-weight:900;cursor:pointer;padding:0 8px;font-size:11px}.fleet-card-actions button:hover,.fleet-row-actions button:hover{background:rgba(143,211,107,.17)}.fleet-card-actions button:disabled{opacity:.38;cursor:not-allowed}.fleet-vehicle-list{display:grid;gap:7px}.fleet-vehicle-row{display:grid;grid-template-columns:1fr 1.2fr auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.042);padding:9px}.fleet-vehicle-row.assigned-here{border-color:rgba(143,211,107,.32);background:rgba(143,211,107,.075)}.fleet-vehicle-row b{display:block;font-size:13px}.fleet-vehicle-row span{display:block;color:var(--muted);font-size:11px}.fleet-vehicle-row em{font-style:normal;color:var(--muted);font-size:12px}.fleet-row-actions button.danger{border-color:rgba(255,118,118,.36);color:#ffd7d7}@media(max-width:820px){.fleet-summary-row,.fleet-catalog-grid{grid-template-columns:1fr 1fr}.fleet-vehicle-row{grid-template-columns:1fr}.fleet-row-actions{justify-content:flex-start}}
/* SIMUTRANS URBAN Entrega 7/9 — operação, intervalo, fila e lotação */
.line-operation-strip{margin:-6px 0 14px;border:1px solid rgba(143,211,107,.24);background:rgba(143,211,107,.075);border-radius:14px;padding:10px 12px;color:#dbeed4;font-size:12px;line-height:1.35}
.line-operation-strip.warn{border-color:rgba(255,184,92,.34);background:rgba(255,184,92,.085);color:#ffe1b8}
.line-operation-strip b{color:#fff}
@media(min-width:821px){.line-edit-grid{grid-template-columns:1.35fr 98px 118px 118px}.line-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* SIMUTRANS URBAN Entrega 8/9 — tarifas fixas em R$ por modal/linha */
.fare-policy-panel{border:1px solid rgba(143,211,107,.22);background:rgba(143,211,107,.055);border-radius:16px;padding:12px;margin:10px 0 14px}.fare-policy-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:10px}.fare-policy-head h4{margin:0;color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.fare-policy-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.35;max-width:620px}.fare-mode-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.fare-mode-card{border:1px solid var(--line);background:rgba(0,0,0,.16);border-radius:13px;padding:10px;display:grid;gap:8px}.fare-mode-card b{display:block;font-size:12px}.fare-mode-card span,.fare-line-override span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.fare-stepper{display:flex;align-items:center;gap:6px}.fare-stepper button,.fare-toggle-row button{height:30px;min-width:30px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:#fff;font-weight:950;cursor:pointer}.fare-stepper button:hover,.fare-toggle-row button:hover,.fare-toggle-row button.active{background:rgba(143,211,107,.18);border-color:rgba(143,211,107,.42)}.fare-stepper input{height:30px;min-width:76px;width:92px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.08);color:#fff;padding:0 8px;font-weight:900}.fare-stepper input:disabled{opacity:.58}.fare-line-override{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:13px;background:rgba(0,0,0,.12);padding:10px;margin-top:10px}.fare-line-override b{font-size:13px}.fare-toggle-row{display:flex;gap:6px;align-items:center}.fare-toggle-row button.active{color:#dfffd2}.fare-card .fare-stepper input{flex:0 0 88px}.line-edit-grid input:disabled{opacity:.72;color:#dbeed4}@media(max-width:1100px){.fare-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fare-line-override{grid-template-columns:1fr}.fare-policy-head{display:block}.fare-policy-head p{margin-top:5px}}@media(max-width:620px){.fare-mode-grid{grid-template-columns:1fr}.fare-stepper input{width:82px}}
body.city-mode #topbar .optional-hud{display:none!important}
body.city-mode #topbar{display:flex!important;align-items:center!important;gap:8px!important;left:0!important;right:0!important;top:0!important;height:50px!important;padding:0 12px!important;transform:none!important;overflow:hidden!important}
body.city-mode #topbar .brand{min-width:128px!important}
body.city-mode #topbar .hud-pill{flex:0 0 auto!important;min-width:0!important;max-width:142px!important}
body.city-mode #topbar .hud-pill span{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.city-mode #bottombar.classic-bottombar{left:10px!important;right:176px!important;bottom:10px!important;transform:none!important;display:flex!important;justify-content:center!important;align-items:center!important;gap:10px!important;max-width:none!important}
body.city-mode #bottombar .tool-cluster{margin:0 auto!important;justify-content:center!important}
body.city-mode #miniMapPanel{display:block!important;right:12px!important;bottom:10px!important;width:154px!important;max-width:154px!important;z-index:16!important}
body.city-mode #miniMapPanel canvas{width:136px!important;height:136px!important}
body.city-mode.ui-collapsed #topbar,
body.city-mode.ui-collapsed #bottombar,
body.city-mode.ui-collapsed #toolPanel,
body.city-mode.ui-collapsed .tn-info-dock,
body.city-mode.ui-collapsed .tn-info-panel,
body.city-mode.ui-collapsed .tmpe-panel,
body.city-mode.ui-collapsed .sim-inspect-panel{display:none!important}
body.city-mode #toolPanel [data-transit-side]{display:none!important}
body.city-mode #toolPanel .classic-tool-group:has([data-transit-side]){display:none!important}
.fleet-row-actions select{width:100%;height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(12,18,17,.88);color:#eef7ed;font-weight:800;font-size:11px}
.sim-inspect-panel{position:fixed;left:62px;top:72px;bottom:88px;width:min(360px,calc(100vw - 92px));max-height:none;overflow:auto;z-index:22;background:linear-gradient(180deg,rgba(13,22,21,.92),rgba(7,12,12,.86));border:1px solid rgba(190,225,180,.22);border-radius:16px;box-shadow:0 22px 68px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(18px);padding:12px;color:#eef7ed}
.sim-inspect-panel.hidden{display:none!important}
.sim-inspect-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.sim-inspect-head b{display:block;font-size:16px;letter-spacing:.02em}
.sim-inspect-head span{display:block;font-size:11px;color:#b6c7b6;margin-top:2px}
.sim-inspect-head button{width:28px;height:28px;border-radius:9px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.07);color:#fff;font-size:18px;cursor:pointer}
.sim-inspect-meta{font-size:10px;color:#9fb49f;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.sim-inspect-grid{display:grid;gap:6px}
.sim-inspect-grid div{display:grid;grid-template-columns:116px 1fr;gap:8px;align-items:center;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:7px 8px}
.sim-inspect-grid b{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#aec0ad}
.sim-inspect-grid span{font-size:12px;color:#f4fbf2;overflow-wrap:anywhere}
.sim-inspect-actions{display:flex;justify-content:flex-end;margin-top:10px}
.sim-inspect-actions button{height:32px;border-radius:10px;border:1px solid rgba(128,200,100,.38);background:linear-gradient(180deg,rgba(128,200,100,.28),rgba(58,103,49,.18));color:#fff;font-weight:900;cursor:pointer}
.transit-busy-line span{display:flex!important;align-items:center!important;gap:6px!important}
.transit-busy-line i{width:10px;height:10px;border-radius:50%;display:inline-block;box-shadow:0 0 0 1px rgba(255,255,255,.22)}
*{scrollbar-width:thin;scrollbar-color:rgba(143,211,107,.55) rgba(8,13,12,.62)}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-track{background:rgba(8,13,12,.62);border-radius:999px}
*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(143,211,107,.72),rgba(67,110,55,.72));border:2px solid rgba(8,13,12,.62);border-radius:999px}
body.city-mode .tool-panel,
body.city-mode .tn-info-panel,
body.city-mode .tmpe-popup,
body.city-mode .sim-inspect-panel,
body.city-mode .classic-menu,
body.city-mode #transitFleetPanel{max-height:calc(100vh - 118px)!important;overflow:auto!important;overscroll-behavior:contain}
body.city-mode .tool-panel{width:min(430px,calc(100vw - 88px))!important;left:62px!important;right:auto!important;top:158px!important}
body.city-mode .tn-info-panel{width:min(390px,calc(100vw - 96px))!important;right:176px!important;top:58px!important}
body.city-mode .tmpe-popup{width:min(430px,calc(100vw - 96px))!important}
body.city-mode .classic-menu{width:min(260px,calc(100vw - 24px))!important}
.finance-slider{display:grid;gap:5px;margin:7px 0;padding:8px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.045)}
.finance-slider label{display:flex;justify-content:space-between;gap:10px;font-size:11px;text-transform:uppercase;color:#b9c8b9;font-weight:900}
.finance-slider input{width:100%;accent-color:#8fd36b}
.finance-loans{display:grid;gap:7px}
.finance-loans button,.finance-debt{display:grid;gap:3px;text-align:left;border:1px solid rgba(143,211,107,.26);border-radius:10px;background:rgba(143,211,107,.10);color:#f3fbef;padding:8px;cursor:pointer}
.finance-loans button span,.finance-debt span{font-size:11px;color:#bdd0bd}
.info-action-button{width:100%;margin:8px 0;border:1px solid rgba(143,211,107,.32);border-radius:10px;background:rgba(20,31,31,.86);color:#eaf7e7;padding:9px 10px;font-weight:800;cursor:pointer}
.info-action-button.active{background:linear-gradient(180deg,#4e9a3f,#2f6f2f);border-color:rgba(190,245,154,.7);box-shadow:0 0 0 1px rgba(190,245,154,.18) inset}
.transit-fare-box{display:grid;gap:7px}
.transit-fare-box b{font-size:13px}
.transit-fare-box span{font-size:11px;color:#b9c8b9}
.transit-fare-box label{display:grid;grid-template-columns:1fr 78px;gap:8px;align-items:center;font-size:11px;color:#cbdacb;font-weight:850}
.transit-fare-box input{height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(8,13,12,.82);color:#eef7ed;padding:0 7px;font-weight:900}
@media(max-width:1366px){
  body.city-mode .tool-panel{top:146px!important;width:min(420px,calc(100vw - 84px))!important}
  body.city-mode .tn-info-panel{right:170px!important;width:340px!important}
  .classic-choice-grid button,.classic-stepper button,.classic-two-buttons button,.tmpe-mode-row button{font-size:10px!important;padding:0 6px!important}
}
@media(max-width:820px){
  body.city-mode .tool-panel,body.city-mode .tn-info-panel,body.city-mode .tmpe-popup,body.city-mode .sim-inspect-panel{left:10px!important;right:10px!important;width:auto!important;top:58px!important;bottom:82px!important;max-height:none!important}
  body.city-mode #bottombar.classic-bottombar{right:10px!important}
  body.city-mode #miniMapPanel{display:none!important}
}
@media(max-width:900px){body.city-mode #topbar .hud-pill:nth-of-type(n+6){display:none!important}.sim-inspect-panel{left:10px;right:10px;top:72px;bottom:82px;width:auto}}

/* Hotfix v0.9.36+ — Terreno, FPS discreto e barra lateral centralizada */
[data-terrain-panel].hidden{display:none!important}
.terrain-swatch-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
.terrain-swatch-grid button,.terrain-mode-grid button{min-height:32px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.075);color:var(--text);font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}
.terrain-swatch-grid button:hover,.terrain-mode-grid button:hover,.terrain-swatch-grid button.active,.terrain-mode-grid button.active{background:linear-gradient(180deg,rgba(143,211,107,.30),rgba(73,126,58,.24));border-color:rgba(143,211,107,.48)}
.terrain-swatch-grid button i{width:14px;height:14px;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),0 0 0 1px rgba(0,0,0,.35)}
body.city-mode #tnInfoDock.tn-info-dock{left:10px!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translateY(-50%)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}
body.city-mode #tnInfoDock [data-info-panel="diagnostics"],
body.city-mode #tnInfoDock .fps-toggle,
body.city-mode #tnInfoDock [id*="fps" i]{display:none!important}
body.city-mode #topbar .hud-fps{display:flex!important;margin-left:auto!important;order:999!important;max-width:54px!important;min-width:48px!important;justify-content:center!important;padding:0 8px!important}
body.city-mode #topbar .hud-fps b{display:none!important}
body.city-mode #topbar .hud-fps span{font-variant-numeric:tabular-nums!important;text-align:center!important;overflow:visible!important}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active,
body.city-mode #toolPanel[data-active-tool="zone"] .tool-section.active,
body.city-mode #toolPanel[data-active-tool="terrain"] .tool-section.active{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;align-items:start!important}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active>.tool-hint,
body.city-mode #toolPanel[data-active-tool="zone"] .tool-section.active>.tool-hint,
body.city-mode #toolPanel[data-active-tool="terrain"] .tool-section.active>.tool-hint{grid-column:1/-1!important}
@media(max-height:760px){
  body.city-mode .tool-panel{top:86px!important;max-height:calc(100vh - 164px)!important}
  body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active,
  body.city-mode #toolPanel[data-active-tool="zone"] .tool-section.active,
  body.city-mode #toolPanel[data-active-tool="terrain"] .tool-section.active{gap:7px!important}
}

/* v0.9.40 — UI sem mojibake e topbar compacta no estilo do core antigo */
body.city-mode #topbar{
  left:0!important;right:0!important;top:0!important;height:50px!important;
  display:grid!important;grid-template-columns:44px 150px 130px 150px 116px 112px 112px 112px 54px!important;
  gap:0!important;padding:0!important;transform:none!important;overflow:hidden!important;
  background:rgba(8,18,22,.94)!important;border-bottom:1px solid rgba(255,255,255,.10)!important;
}
body.city-mode #topbar .hamb-top{grid-column:1!important;margin:8px 6px!important;width:34px!important;height:34px!important;font-size:18px!important;color:#dfeee8!important}
body.city-mode #topbar .brand{grid-column:2!important;display:flex!important;flex-direction:column!important;justify-content:center!important;min-width:0!important;padding-left:4px!important}
body.city-mode #topbar .brand strong{font-size:13px!important;line-height:1!important}
body.city-mode #topbar .brand span{font-size:10px!important;color:#a7b9b1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.city-mode #topbar .hud-pill{
  display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;
  height:50px!important;min-width:0!important;max-width:none!important;border-radius:0!important;border:0!important;
  border-left:1px solid rgba(255,255,255,.09)!important;background:transparent!important;padding:0 12px!important;
}
body.city-mode #topbar .hud-pill b{display:block!important;color:#93a69e!important;font-size:9px!important;line-height:1.1!important;text-transform:uppercase!important;letter-spacing:.04em!important}
body.city-mode #topbar .hud-pill span{display:block!important;color:#fff!important;font-size:13px!important;font-weight:900!important;line-height:1.2!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.city-mode #topbar .optional-hud{display:none!important}
body.city-mode #topbar .hud-pill:has(#hudDate){grid-column:3!important;display:flex!important}
body.city-mode #topbar .hud-pill:has(#hudPop){grid-column:4!important;display:flex!important}
body.city-mode #topbar .hud-pill:has(#hudBuildings){grid-column:5!important;display:flex!important}
body.city-mode #topbar .hud-pill:has(#hudMoney){grid-column:6!important;display:flex!important}
body.city-mode #topbar .hud-pill:has(#hudNet){grid-column:7!important;display:flex!important}
body.city-mode #topbar .hud-pill:has(#hudPassengers){grid-column:8!important;display:flex!important}
body.city-mode #topbar #hudEvents{grid-column:9!important;display:flex!important;width:auto!important;min-width:0!important}
body.city-mode #topbar .hud-fps{position:fixed!important;right:8px!important;top:54px!important;width:48px!important;height:26px!important;border-radius:9px!important;background:rgba(8,18,22,.78)!important;border:1px solid rgba(143,211,107,.26)!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;z-index:19!important}
body.city-mode #topbar .hud-fps b{display:none!important}
body.city-mode #topbar .hud-fps span{font-size:12px!important;color:#bdf0a4!important;text-align:center!important}
body.city-mode #tnInfoDock.tn-info-dock{width:46px!important}
body.city-mode #tnInfoDock .tn-info-tool span{font-family:Arial,sans-serif!important;font-size:11px!important;font-weight:950!important;letter-spacing:.03em!important}
body.city-mode #bottombar .tool-ico{font-family:Arial,sans-serif!important;font-size:13px!important;font-weight:950!important;line-height:1!important;color:#ccefc5!important}
body.city-mode #bottombar .tool-label{font-size:10px!important}
body.city-mode #bottombar .speed-cluster .compact-action{font-size:12px!important}
@media(max-width:1100px){
  body.city-mode #topbar{grid-template-columns:44px 132px 126px 112px 112px 106px 54px!important}
  body.city-mode #topbar .hud-pill:has(#hudBuildings),
  body.city-mode #topbar .hud-pill:has(#hudNet),
  body.city-mode #topbar .hud-pill:has(#hudPassengers){display:none!important}
  body.city-mode #topbar .hud-pill:has(#hudDate){grid-column:3!important}
  body.city-mode #topbar .hud-pill:has(#hudPop){grid-column:4!important}
  body.city-mode #topbar .hud-pill:has(#hudMoney){grid-column:5!important}
  body.city-mode #topbar #hudEvents{grid-column:6!important}
}

/* v0.9.80: cards de linha com controle de overlay independente. */
body.city-mode #toolPanel .transit-line-card{grid-template-columns:12px minmax(0,1fr) 34px!important;cursor:pointer}
body.city-mode #toolPanel .transit-line-card>i{grid-column:1;grid-row:1/3}
body.city-mode #toolPanel .transit-line-card>b,body.city-mode #toolPanel .transit-line-card>span{grid-column:2}
body.city-mode #toolPanel .line-overlay-toggle{grid-column:3;grid-row:1/3;width:32px;height:32px;border-radius:9px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);color:#eef7ed;display:grid;place-items:center;padding:0}
body.city-mode #toolPanel .line-overlay-toggle.off{opacity:.45}
body.city-mode #toolPanel .line-overlay-toggle svg{width:15px;height:15px}

/* v0.9.201 — ferramenta Construções especiais */
.special-building-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
.special-building-grid button{min-height:42px!important;padding:7px!important}
.transit-stop-row span{display:flex;flex-direction:column;gap:2px;min-width:0}
.transit-stop-row span small{font-size:10px;color:var(--muted);font-weight:700}


/* SIMURBAN v0.9.214 — alvos de clique confiáveis no menu lateral */
body.city-mode #tnInfoDock,
body.city-mode #toolPanel,
body.city-mode .tn-info-panel,
body.city-mode .tmpe-panel{pointer-events:auto!important;isolation:isolate}
body.city-mode #tnInfoDock button,
body.city-mode #toolPanel button,
body.city-mode .tn-info-panel button,
body.city-mode .tmpe-panel button{pointer-events:auto!important;touch-action:manipulation!important;user-select:none!important;position:relative;z-index:2}
body.city-mode #tnInfoDock .ui-ico,
body.city-mode #toolPanel button>*{pointer-events:none!important}

/* SIMURBAN v0.9.215 — custo estimado acompanha o cursor durante obras lineares */
.construction-cost-tooltip{
  position:fixed;z-index:10050;pointer-events:none;min-width:176px;
  display:flex;flex-direction:column;gap:2px;padding:8px 11px;border-radius:9px;
  border:1px solid rgba(161,224,125,.50);background:rgba(7,18,20,.94);
  box-shadow:0 8px 24px rgba(0,0,0,.36);color:#f4fff1;font:800 12px/1.2 Arial,sans-serif;
  transform:translateZ(0);white-space:nowrap
}
.construction-cost-tooltip span{font-size:10px;color:#b8c8c0;font-weight:700}
.construction-cost-tooltip.insufficient{border-color:rgba(255,105,105,.72);color:#ff9d9d}
.construction-cost-tooltip.hidden{display:none!important}


/* v0.9.216 — saldo/caixa visíveis e gráfico de trânsito 24h. */
body.city-mode #topbar .hud-pill.positive #hudMoney,
body.city-mode #topbar .hud-pill.positive #hudNet{color:#79d86b!important;text-shadow:0 0 10px rgba(121,216,107,.18)!important}
body.city-mode #topbar .hud-pill.negative #hudMoney,
body.city-mode #topbar .hud-pill.negative #hudNet{color:#ff746d!important;text-shadow:0 0 10px rgba(255,116,109,.18)!important}
.traffic-history-card{border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.028);padding:9px 9px 7px;margin:7px 0 10px;overflow:hidden}
.traffic-history-legend{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:10px;color:#afbeb7;margin-bottom:3px}
.traffic-history-legend span{display:flex;align-items:center;gap:5px}.traffic-history-legend i{display:inline-block;width:15px;height:3px;border-radius:99px}
.traffic-history-legend .trips i{background:#83d26d}.traffic-history-legend .vehicles i{background:#e7bd65}
.traffic-history-legend b{font-size:11px;color:#f5faf6}.traffic-history-chart{display:block;width:100%;height:auto;min-height:132px}
.traffic-chart-grid{stroke:rgba(255,255,255,.08);stroke-width:1}.traffic-chart-line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.traffic-chart-line-trips{stroke:#83d26d}.traffic-chart-line-vehicles{stroke:#e7bd65}.traffic-chart-axis,.traffic-chart-tick{font-size:9px;fill:#899b93;font-weight:700}
.traffic-chart-axis-trips{fill:#83d26d}.traffic-chart-axis-vehicles{fill:#e7bd65}.traffic-history-card small{display:block;color:#85958e;font-size:9px;line-height:1.25;margin-top:-2px}
.traffic-history-empty{padding:16px 10px;border:1px dashed rgba(255,255,255,.10);border-radius:11px;color:#91a39a;font-size:10px;text-align:center}


/* SIMURBAN 0.10.10.1 — Seção 2: alertas globais sempre acima das janelas. */
body #toast.toast,
body.city-mode #toast.toast{
  position:fixed!important;
  left:50%!important;
  bottom:max(88px,calc(88px + env(safe-area-inset-bottom,0px)))!important;
  z-index:200000!important;
  isolation:isolate!important;
  max-width:min(620px,calc(100vw - 28px))!important;
  width:max-content!important;
  box-sizing:border-box!important;
  text-align:center!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  pointer-events:none!important;
  transform:translate3d(-50%,18px,0)!important;
  will-change:transform,opacity!important;
  box-shadow:0 18px 56px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.08)!important;
}
body #toast.toast.show,
body.city-mode #toast.toast.show{transform:translate3d(-50%,0,0)!important;}
body #toast.toast.error,
body.city-mode #toast.toast.error{
  background:rgba(45,12,15,.96)!important;
  border-color:rgba(255,118,118,.72)!important;
  color:#ffe2e2!important;
}

/* MOVEBR 0.10.10.18 — lista de paradas recolhível e saldo por veículo. */
.transit-stop-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:8px 9px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.035)}
.transit-stop-list-head b{font-size:11px;color:#dce9e4;text-transform:uppercase;letter-spacing:.06em}
.transit-stop-list-head button{height:27px;padding:0 9px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);color:#edf6f2;font-size:10px;font-weight:900;cursor:pointer}
.transit-stop-list.collapsed{display:none!important}
.fleet-finance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:7px}
.fleet-finance>span{padding:5px 6px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.035);font-size:9px!important;line-height:1.25;color:#9fb0ab!important}
.fleet-finance>span b{display:block;margin-top:2px;font-size:10px;color:#eaf3ef}
.fleet-finance>span.profit b{color:#91df87}
.fleet-finance>span.loss b{color:#ff9a91}
@media(max-width:820px){.fleet-finance{grid-template-columns:1fr}}

/* === styles-responsive-v0914.css === */
:root {
  --ui-bg: rgba(8, 15, 18, .92);
  --ui-bg-2: rgba(14, 24, 27, .94);
  --ui-line: rgba(196, 219, 214, .16);
  --ui-hot: #73b66f;
  --ui-blue: #5aa2d6;
  --ui-warn: #e3ad47;
}

body, body * {
  -webkit-user-select: none;
  user-select: none;
}

#topbar, #bottombar, #toolPanel, #hamburgerMenu, #classicLeftPanel,
.events-panel, .tmpe-popup, .pill, .toast {
  -webkit-user-select: none;
  user-select: none;
}

button, .hud-pill {
  transition: transform .12s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease, filter .18s ease;
}

button:hover {
  transform: translateY(-1px);
  border-color: rgba(143, 211, 136, .52) !important;
  filter: brightness(1.08);
}

button:active {
  transform: translateY(1px) scale(.985);
}

button.active,
button.speed-active,
.transit-line-card.active,
.tmpe-mode-row button.active,
.tmpe-lane-card button.active {
  background: linear-gradient(180deg, rgba(88, 138, 76, .88), rgba(39, 84, 49, .92)) !important;
  border-color: rgba(152, 220, 126, .72) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 0 0 1px rgba(97, 179, 87, .14), 0 8px 22px rgba(55, 118, 54, .18);
}

body.city-mode #topbar.topbar {
  left: 0;
  right: 0;
  top: 0;
  transform: none;
  width: 100%;
  max-width: none;
  min-width: 0;
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  padding-left: 10px;
  background: linear-gradient(180deg, rgba(8, 16, 20, .97), rgba(9, 18, 21, .92));
  box-shadow: 0 1px 0 rgba(255,255,255,.06), 0 14px 34px rgba(0,0,0,.24);
}

.hud-events-badge {
  cursor: pointer;
  color: #eef6f2;
}

.hud-events-badge span {
  color: #f5c869;
}

.classic-left-panel {
  background: linear-gradient(180deg, rgba(8, 16, 21, .90), rgba(8, 14, 18, .82));
  border-right-color: rgba(180, 211, 206, .14);
  box-shadow: 12px 0 34px rgba(0, 0, 0, .20);
}

.classic-tabs button {
  min-height: 44px;
  border-radius: 12px;
  margin: 2px 0;
}

.classic-cards article {
  border-radius: 8px;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.08);
}

.tool-panel {
  max-height: min(74vh, 720px);
  overflow: auto;
  scrollbar-width: thin;
  background: linear-gradient(180deg, rgba(8,16,18,.94), rgba(7,13,15,.91));
  box-shadow: 0 24px 70px rgba(0,0,0,.34);
}

.tool-panel[data-active-tool="transit"] {
  width: min(720px, calc(100vw - 298px));
}

.tool-panel[data-active-tool="upgrade"] {
  width: min(430px, calc(100vw - 24px));
}

.tool-section[data-tool-section="transit"] .classic-tool-group:has([data-transit-side]) {
  display: none !important;
}

.transit-manager {
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
}

.transit-mode-row,
.transit-actions-main,
.tmpe-mode-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.tmpe-mode-row {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 8px 0;
}

.transit-manager button,
.tmpe-popup button,
.fleet-card-actions button,
.fleet-row-actions button {
  border: 1px solid var(--ui-line);
  border-radius: 8px;
  background: rgba(255,255,255,.055);
  color: #edf6f2;
  padding: 9px 10px;
  font-weight: 900;
}

.transit-filter {
  width: 100%;
  box-sizing: border-box;
  border-radius: 8px;
  border: 1px solid var(--ui-line);
  background: rgba(255,255,255,.055);
  color: #edf6f2;
  padding: 9px 10px;
  font-weight: 800;
}

.transit-line-list,
.fleet-vehicle-list {
  display: grid;
  gap: 7px;
  max-height: 172px;
  overflow: auto;
}

.transit-line-card,
.fleet-vehicle-row,
.fleet-catalog-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 9px;
  align-items: center;
  min-width: 0;
  border: 1px solid var(--ui-line);
  border-radius: 8px;
  background: rgba(255,255,255,.045);
  color: #edf6f2;
  padding: 9px;
  text-align: left;
}

.transit-line-card i {
  width: 10px;
  height: 36px;
  border-radius: 4px;
  box-shadow: 0 0 14px currentColor;
}

.transit-line-card b,
.fleet-vehicle-row b,
.fleet-catalog-card b {
  display: block;
  font-size: 12px;
}

.transit-line-card span,
.fleet-vehicle-row span,
.fleet-catalog-card span,
.fleet-catalog-card p {
  display: block;
  margin: 2px 0 0;
  color: #aebfba;
  font-size: 10px;
}

.transit-selected-row {
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 10px;
  align-items: center;
  padding: 8px;
  border-radius: 8px;
  background: rgba(255,255,255,.04);
}

.transit-selected-row label {
  display: grid;
  gap: 4px;
  color: #b8cbc5;
  font-size: 10px;
  font-weight: 900;
}

.transit-selected-row input {
  width: 100%;
  height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
}

.fleet-catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
  max-height: 260px;
  overflow: auto;
}

.fleet-catalog-card {
  grid-template-columns: 1fr;
  align-items: start;
}

.fleet-catalog-card em,
.fleet-vehicle-row em {
  color: #f0d28a;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.fleet-vehicle-row {
  grid-template-columns: 1fr auto auto;
}

.danger,
.fleet-row-actions .danger {
  background: rgba(150, 54, 48, .36) !important;
  border-color: rgba(222, 96, 86, .44) !important;
}

.events-panel {
  position: fixed;
  top: 58px;
  right: 16px;
  width: min(340px, calc(100vw - 32px));
  z-index: 710;
  border: 1px solid var(--ui-line);
  border-radius: 10px;
  background: var(--ui-bg);
  box-shadow: 0 20px 55px rgba(0,0,0,.38);
  padding: 10px;
}

.events-panel.hidden,
.tmpe-popup.hidden {
  display: none;
}

.events-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #edf6f2;
  margin-bottom: 8px;
}

.event-row {
  width: 100%;
  display: grid;
  grid-template-columns: 14px 1fr;
  gap: 9px;
  align-items: center;
  border: 1px solid var(--ui-line);
  border-radius: 8px;
  background: rgba(255,255,255,.045);
  color: #edf6f2;
  padding: 9px;
  margin-top: 6px;
  text-align: left;
}

.event-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--ui-warn);
}

.event-accident { background: #e35b4f; }
.event-flood { background: #5aa8dd; }
.event-protest { background: #f0ead0; }
.event-roadwork { background: #eda43c; }
.event-pothole { background: #4c4035; }

.event-row small,
.event-empty,
.tmpe-help {
  display: block;
  color: #aabbb5;
  font-size: 10px;
}

.tmpe-popup {
  position: fixed;
  left: 286px;
  top: 174px;
  width: min(430px, calc(100vw - 302px));
  z-index: 705;
  border: 1px solid var(--ui-line);
  border-radius: 10px;
  background: var(--ui-bg-2);
  box-shadow: 0 20px 55px rgba(0,0,0,.40);
  padding: 12px;
  color: #edf6f2;
}

.tmpe-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.tmpe-head button {
  width: 28px;
  height: 28px;
  padding: 0;
}

.tmpe-title {
  color: #b9cbc5;
  font-size: 11px;
  font-weight: 900;
  margin-bottom: 8px;
}

.tmpe-slider {
  display: grid;
  gap: 6px;
  font-size: 11px;
  font-weight: 900;
  color: #dcebe6;
}

.tmpe-slider span {
  color: #f0d28a;
}

.tmpe-lanes {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.tmpe-lane-card {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 8px;
  align-items: center;
  padding: 8px;
  border-radius: 8px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
}

.tmpe-lane-card div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

@media (max-width: 980px) {
  body.city-mode #topbar.topbar {
    gap: 5px;
    overflow-x: auto;
    padding-right: 8px;
  }

  .classic-left-panel {
    transform: translateX(-100%);
  }

  .tool-panel {
    left: 10px !important;
    width: min(620px, calc(100vw - 20px)) !important;
  }

  .tmpe-popup {
    left: 10px;
    top: 150px;
    width: calc(100vw - 20px);
    box-sizing: border-box;
  }

  .tmpe-mode-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .tool-cluster button .tool-label {
    display: none;
  }

  .fleet-catalog-grid {
    grid-template-columns: 1fr;
  }

  .transit-selected-row,
  .tmpe-lane-card {
    grid-template-columns: 1fr;
  }
}

/* v0.9.15: core antigo + responsividade sem depender de zoom do navegador. */
body.city-mode #topbar.topbar {
  min-height: 42px;
  height: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  padding: 6px 8px;
  box-sizing: border-box;
}

body.city-mode #topbar .brand {
  min-width: 124px;
  max-width: 150px;
}

body.city-mode #topbar .hud-pill {
  min-width: 0;
  height: 28px;
  padding: 0 7px;
  gap: 4px;
  white-space: nowrap;
}

body.city-mode #topbar .hud-pill b {
  font-size: 8px;
  letter-spacing: .02em;
}

body.city-mode #topbar .hud-pill span {
  font-size: 10.5px;
}

body.city-mode .classic-left-panel {
  position: fixed;
  display: grid;
  grid-template-columns: 50px 0;
  left: 8px;
  top: 54px;
  bottom: 84px;
  width: 54px;
  transform: none !important;
  z-index: 690;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(196,219,214,.13);
  transition: width .18s ease, grid-template-columns .18s ease, background .18s ease;
}

body.city-mode .classic-left-panel:hover,
body.city-mode .classic-left-panel:focus-within {
  width: min(230px, calc(100vw - 22px));
  grid-template-columns: 50px 1fr;
}

.classic-tabs {
  padding: 8px 5px;
}

.classic-tabs button {
  width: 40px;
  height: 42px;
  min-height: 42px;
  overflow: hidden;
  text-indent: -999px;
  position: relative;
}

.classic-tabs button::before {
  content: attr(data-tool);
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-indent: 0;
  text-transform: uppercase;
  font-size: 8px;
}

.classic-panel-body {
  min-width: 154px;
  padding: 10px 10px 10px 2px;
}

body.city-mode .tool-panel {
  left: 72px;
  top: 64px;
  width: min(374px, calc(100vw - 92px));
  max-height: calc(100vh - 150px);
  box-sizing: border-box;
}

body.city-mode .tool-panel[data-active-tool="transit"] {
  width: min(374px, calc(100vw - 92px));
}

.tool-section[data-tool-section="transit"] .transit-manager > h4 {
  display: none;
}

.transit-fleet-panel {
  position: fixed;
  left: min(458px, calc(100vw - 384px));
  top: 64px;
  width: min(360px, calc(100vw - 92px));
  max-height: calc(100vh - 150px);
  overflow: auto;
  z-index: 704;
  border: 1px solid var(--ui-line);
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(8,16,18,.95), rgba(7,13,15,.93));
  box-shadow: 0 24px 70px rgba(0,0,0,.34);
  color: #edf6f2;
  padding: 10px;
  box-sizing: border-box;
}

.transit-fleet-panel.hidden {
  display: none;
}

.transit-fleet-body {
  display: grid;
  gap: 10px;
}

.transit-fleet-body h4 {
  margin: 2px 0 -2px;
  font-size: 11px;
  text-transform: uppercase;
  color: #dbeae4;
}

.tn-minimap.sim-minimap {
  position: fixed;
  right: 14px;
  bottom: 84px;
  width: 222px;
  z-index: 690;
  padding: 10px;
  border: 1px solid rgba(196,219,214,.16);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(8,16,18,.92), rgba(7,13,15,.88));
  box-shadow: 0 20px 55px rgba(0,0,0,.34);
  box-sizing: border-box;
}

.tn-minimap.sim-minimap.collapsed canvas,
.tn-minimap.sim-minimap.collapsed .tn-minimap-head,
.tn-minimap.sim-minimap.collapsed .tn-minimap-actions button:not(#miniMapHide) {
  display: none;
}

.tn-minimap-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 7px;
  color: #edf6f2;
}

.tn-minimap-head span {
  font-size: 9px;
  color: #9fb4ad;
  text-transform: uppercase;
}

#miniMapCanvas {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  height: auto;
  border-radius: 10px;
  background: #203728;
  border: 1px solid rgba(255,255,255,.08);
  cursor: crosshair;
}

.tn-minimap-actions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin-top: 8px;
}

.tn-minimap-actions button {
  padding: 7px 5px;
  border-radius: 8px;
  border: 1px solid var(--ui-line);
  background: rgba(255,255,255,.055);
  color: #edf6f2;
  font-size: 9px;
  font-weight: 900;
}

@media (max-width: 1180px) {
  .transit-fleet-panel {
    left: 72px;
    top: 64px;
    width: min(374px, calc(100vw - 92px));
  }

  body.city-mode #topbar .hud-pill {
    height: 24px;
    padding: 0 5px;
  }
}

@media (max-width: 980px) {
  body.city-mode .classic-left-panel {
    top: 52px;
    bottom: 78px;
    width: 50px;
  }

  body.city-mode .tool-panel,
  body.city-mode .tool-panel[data-active-tool="transit"],
  .transit-fleet-panel {
    left: 62px !important;
    width: calc(100vw - 74px) !important;
  }

  .tn-minimap.sim-minimap {
    width: 168px;
    right: 8px;
    bottom: 76px;
  }
}

@media (max-width: 720px) {
  body.city-mode #topbar .hud-pill {
    height: 22px;
  }

  body.city-mode .classic-left-panel {
    display: none;
  }

  body.city-mode .tool-panel,
  body.city-mode .tool-panel[data-active-tool="transit"],
  .transit-fleet-panel {
    left: 8px !important;
    width: calc(100vw - 16px) !important;
    max-height: calc(100vh - 136px);
  }

  .tn-minimap.sim-minimap {
    width: 136px;
  }
}

/* v0.9.15 final override: vence regras antigas do styles-urban.css que escondiam a sidebar. */
body.city-mode #classicLeftPanel.classic-left-panel {
  display: grid !important;
  grid-template-columns: 50px 0 !important;
  left: 8px !important;
  top: 54px !important;
  bottom: 84px !important;
  width: 54px !important;
  max-height: none !important;
  overflow: hidden !important;
}

body.city-mode #classicLeftPanel.classic-left-panel:hover,
body.city-mode #classicLeftPanel.classic-left-panel:focus-within {
  width: min(230px, calc(100vw - 22px)) !important;
  grid-template-columns: 50px 1fr !important;
}

@media (max-width: 720px) {
  body.city-mode #classicLeftPanel.classic-left-panel {
    display: grid !important;
    grid-template-columns: 44px 0 !important;
    left: 6px !important;
    top: 50px !important;
    bottom: 74px !important;
    width: 46px !important;
  }

  body.city-mode #classicLeftPanel.classic-left-panel:hover,
  body.city-mode #classicLeftPanel.classic-left-panel:focus-within {
    width: min(208px, calc(100vw - 12px)) !important;
    grid-template-columns: 44px 1fr !important;
  }

  body.city-mode .tool-panel,
  body.city-mode .tool-panel[data-active-tool="transit"],
  .transit-fleet-panel {
    left: 58px !important;
    width: calc(100vw - 66px) !important;
  }
}

/* SIMURBAN 0.10.10.2 — Trilho VLT por faixa no TMPE. */
.tmpe-lane-card div{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.tmpe-lane-card.has-vlt-track{
  border-color:rgba(100,205,220,.46);
  box-shadow:inset 3px 0 rgba(100,205,220,.74);
}
.tmpe-lane-card button.vlt-track-active{
  color:#ddfbff;
  border-color:rgba(100,220,235,.64)!important;
  background:linear-gradient(180deg,rgba(55,159,177,.38),rgba(23,92,105,.34))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 0 0 1px rgba(80,210,230,.10)!important;
}

/* SIMURBAN 0.10.10.4 — escopo do TMPE em via contínua. */
.tmpe-apply-scope{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  margin:7px 0 4px;
}
.tmpe-apply-scope button{
  min-height:34px;
  padding:7px 8px;
  border:1px solid rgba(132,166,151,.26);
  border-radius:8px;
  background:rgba(14,28,24,.78);
  color:#c9d8d1;
  font-weight:700;
  line-height:1.15;
}
.tmpe-apply-scope button.active{
  border-color:rgba(157,232,105,.66);
  color:#edffd9;
  background:linear-gradient(180deg,rgba(87,151,54,.48),rgba(42,91,34,.44));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 0 0 1px rgba(143,231,91,.10);
}
.tmpe-scope-help{
  margin:0 0 8px;
  padding:7px 8px;
  border-radius:7px;
  background:rgba(8,17,15,.56);
  color:#aebfb7;
  font-size:11px;
  line-height:1.35;
}

/* === styles-hotfix-v0918.css === */
/* SIMURBAN v0.9.18 — restauração da barra de relatórios dos cores antigos. */
body.city-mode #classicLeftPanel.classic-left-panel {
  display: none !important;
}

body.city-mode #tnInfoDock.tn-info-dock {
  display: flex !important;
  position: fixed !important;
  left: 8px !important;
  right: auto !important;
  top: 58px !important;
  bottom: auto !important;
  width: 46px !important;
  max-width: 46px !important;
  transform: none !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 4px !important;
  border-radius: 13px !important;
  background: linear-gradient(180deg, rgba(7,15,18,.95), rgba(7,13,15,.91)) !important;
  border: 1px solid rgba(214,232,226,.14) !important;
  box-shadow: 0 16px 42px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.06) !important;
  backdrop-filter: blur(13px) !important;
  z-index: 696 !important;
  overflow: visible !important;
}

body.start-mode #tnInfoDock,
body.generator-mode #tnInfoDock,
body.start-mode #tnInfoPanel,
body.generator-mode #tnInfoPanel {
  display: none !important;
}

body.city-mode #tnInfoDock .tn-info-tool {
  display: grid !important;
  place-items: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  border: 1px solid rgba(220,235,230,.11) !important;
  border-radius: 9px !important;
  background: rgba(255,255,255,.045) !important;
  color: #eaf4ef !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
  cursor: pointer !important;
  font-size: 17px !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  overflow: visible !important;
}

body.city-mode #tnInfoDock .tn-info-tool::before {
  content: none !important;
}

body.city-mode #tnInfoDock .tn-info-tool:hover {
  transform: translateX(1px) !important;
  background: rgba(105,166,101,.17) !important;
}

body.city-mode #tnInfoDock .tn-info-tool.active {
  background: linear-gradient(180deg, rgba(88,138,76,.88), rgba(39,84,49,.92)) !important;
  border-color: rgba(152,220,126,.64) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 6px 18px rgba(55,118,54,.22) !important;
}

body.city-mode #tnInfoPanel.tn-info-panel {
  display: block !important;
  position: fixed !important;
  left: 62px !important;
  right: auto !important;
  top: 58px !important;
  width: min(322px, calc(100vw - 76px)) !important;
  max-height: calc(100vh - 138px) !important;
  overflow: hidden !important;
  padding: 0 !important;
  border-radius: 13px !important;
  background: linear-gradient(180deg, rgba(8,17,20,.97), rgba(7,14,16,.94)) !important;
  border: 1px solid rgba(214,232,226,.15) !important;
  box-shadow: 0 20px 56px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.055) !important;
  backdrop-filter: blur(15px) !important;
  transform: none !important;
  z-index: 697 !important;
}

body.city-mode #tnInfoPanel.tn-info-panel.hidden {
  display: none !important;
}

#tnInfoPanel .info-panel-header {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 42px;
  padding: 0 10px 0 13px;
  border-bottom: 1px solid rgba(255,255,255,.09);
  background: rgba(13,25,27,.95);
  z-index: 2;
}

#tnInfoPanel .info-panel-header strong {
  color: #d8eee0;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}

#tnInfoPanel .info-panel-close {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 8px;
  background: rgba(255,255,255,.045);
  color: #dce8e2;
  font-size: 18px;
  cursor: pointer;
}

#tnInfoPanel .info-panel-body {
  max-height: calc(100vh - 184px);
  overflow: auto;
  padding: 11px;
  scrollbar-width: thin;
}

.info-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.info-stat-card {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(255,255,255,.085);
  border-radius: 10px;
  background: rgba(255,255,255,.045);
}

.info-stat-card span {
  display: block;
  margin-bottom: 3px;
  color: #91a69f;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.info-stat-card b {
  display: block;
  overflow: hidden;
  color: #f0f7f3;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.info-stat-card b.positive { color: #9fdb8f; }
.info-stat-card b.negative { color: #e98d84; }
.info-stat-card b.warning { color: #e8c574; }

.info-section-title {
  margin: 13px 1px 7px;
  color: #a7bab3;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.info-progress-row {
  display: grid;
  grid-template-columns: 78px 1fr 38px;
  align-items: center;
  gap: 7px;
  margin: 7px 1px;
  color: #bdcbc6;
  font-size: 10px;
}

.info-progress-track {
  height: 7px;
  overflow: hidden;
  border-radius: 6px;
  background: rgba(255,255,255,.075);
}

.info-progress-fill {
  height: 100%;
  min-width: 2px;
  border-radius: 6px;
  background: #72b875;
}

.info-progress-fill.commercial { background: #5b9fd2; }
.info-progress-fill.industrial { background: #c79b50; }
.info-progress-fill.traffic-warn { background: #d7ac55; }
.info-progress-fill.traffic-bad { background: #d66e62; }

.info-note {
  margin-top: 10px;
  padding: 8px 9px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 9px;
  background: rgba(255,255,255,.03);
  color: #91a49d;
  font-size: 10px;
  line-height: 1.4;
}

/* O submenu de ferramentas continua à direita da barra compacta de relatórios. */
body.city-mode #toolPanel.tool-panel {
  left: 62px !important;
}

@media (max-width: 720px) {
  body.city-mode #tnInfoDock.tn-info-dock {
    top: 54px !important;
    left: 6px !important;
    width: 42px !important;
    max-width: 42px !important;
    padding: 5px 3px !important;
  }
  body.city-mode #tnInfoDock .tn-info-tool {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
  }
  body.city-mode #tnInfoPanel.tn-info-panel {
    left: 54px !important;
    top: 54px !important;
    width: calc(100vw - 62px) !important;
    max-height: calc(100vh - 132px) !important;
  }
  body.city-mode #toolPanel.tool-panel {
    left: 54px !important;
    width: calc(100vw - 62px) !important;
  }
}

/* === styles-icons-v0939.css === */
/* =====================================================================
   SIMURBAN v0.9.40 — Sistema de ícones SVG + polimento da interface
   Carregado POR ÚLTIMO de propósito: precisa vencer as regras
   `!important` herdados de uma versão anterior (font-family Arial e
   content:none) e que apagavam os ícones.
   ===================================================================== */

:root {
  --ico-size: 20px;
  --ico-stroke: 1.8;
  --ui-accent: #8fd36b;
  --ui-accent-soft: rgba(143, 211, 107, .18);
  --ui-danger: #e76d6d;
  --ui-radius: 11px;
}

/* ---------------------------------------------------------------------
   1. Base do ícone
   --------------------------------------------------------------------- */
.ui-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: var(--ico-size);
  height: var(--ico-size);
  color: inherit;
  pointer-events: none;
  /* Neutraliza o Arial forçado herdado — SVG não usa fonte, mas o
     reset evita herdar métricas estranhas em textos irmãos. */
  font-family: inherit;
  line-height: 0;
}

.ui-ico svg {
  width: 100%;
  height: 100%;
  display: block;
  stroke: currentColor;
  fill: none;
  vector-effect: non-scaling-stroke;
  overflow: visible;
}

.ui-ico svg [fill="currentColor"] { fill: currentColor; }

/* ---------------------------------------------------------------------
   2. Desfaz conflitos de estilos legados
   --------------------------------------------------------------------- */
body.city-mode #bottombar .tool-ico,
body.city-mode #tnInfoDock .tn-info-tool span {
  font-family: inherit !important;
  font-weight: inherit !important;
  letter-spacing: normal !important;
  font-size: 0 !important;          /* esconde texto residual, o SVG tem tamanho próprio */
  color: inherit !important;
}

body.city-mode #tnInfoDock .tn-info-tool::before {
  content: none !important;          /* mantido: agora o ícone é SVG real, não pseudo-elemento */
}

/* ---------------------------------------------------------------------
   3. Barra inferior de ferramentas
   --------------------------------------------------------------------- */
.classic-bottombar .tool-cluster button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  position: relative;
  transition: background .14s ease, border-color .14s ease,
              transform .14s ease, box-shadow .14s ease;
}

body.city-mode #bottombar .tool-ico,
.classic-bottombar .tool-ico {
  width: 21px !important;
  height: 21px !important;
  font-size: 0 !important;
  line-height: 0 !important;
  color: #cfe6c2;
  transition: color .14s ease, transform .14s ease;
}

.classic-bottombar .tool-cluster button:hover .tool-ico { color: #eafbe0; transform: translateY(-1px); }
.classic-bottombar .tool-cluster button.active .tool-ico { color: #ffffff; }

.classic-bottombar .tool-cluster button.active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 3px;
  width: 14px;
  height: 2px;
  border-radius: 2px;
  background: var(--ui-accent);
  transform: translateX(-50%);
  box-shadow: 0 0 8px rgba(143, 211, 107, .6);
}

.classic-bottombar .tool-cluster button[data-tool="demolish"]:hover .tool-ico { color: #ffb3b3; }
.classic-bottombar .tool-cluster button[data-tool="demolish"].active { border-color: rgba(231, 109, 109, .45) !important; }
.classic-bottombar .tool-cluster button[data-tool="demolish"].active::after { background: var(--ui-danger); box-shadow: 0 0 8px rgba(231, 109, 109, .6); }

/* Cluster de velocidade: ícones + rótulo curto */
.speed-cluster .compact-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.speed-cluster .ui-ico { width: 15px; height: 15px; }
#pauseGame .ui-ico { width: 14px; height: 14px; }
#dayNightToggle .ui-ico { width: 15px; height: 15px; color: #e8c574; }
#dayNightToggle:not(.active) .ui-ico { color: #93a7c9; }

/* ---------------------------------------------------------------------
   4. Dock lateral de relatórios
   --------------------------------------------------------------------- */
body.city-mode #tnInfoDock .tn-info-tool {
  color: #cfe0d6 !important;
  font-size: 0 !important;
  transition: background .14s ease, color .14s ease, transform .14s ease !important;
}
body.city-mode #tnInfoDock .tn-info-tool .ui-ico {
  width: 19px !important;
  height: 19px !important;
  font-size: 0 !important;
}
body.city-mode #tnInfoDock .tn-info-tool:hover { color: #f0fbea !important; }
body.city-mode #tnInfoDock .tn-info-tool.active { color: #ffffff !important; }

/* Tooltip própria: o title nativo demora ~1s e some no Linux */
.tn-info-tool { position: relative; }
.tn-info-tool::after {
  content: attr(data-tip);
  position: absolute;
  left: calc(100% + 9px);
  top: 50%;
  transform: translateY(-50%) translateX(-4px);
  padding: 5px 9px;
  border-radius: 7px;
  background: rgba(8, 14, 15, .96);
  border: 1px solid rgba(255, 255, 255, .1);
  color: #e6f2ea;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .02em;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity .13s ease, transform .13s ease;
  z-index: 900;
}
.tn-info-tool:hover::after { opacity: 1; transform: translateY(-50%) translateX(0); }

/* ---------------------------------------------------------------------
   5. Botões utilitários (fechar, menu, minimapa, hamburger)
   --------------------------------------------------------------------- */
.tool-panel-close,
.info-panel-close,
#transitCloseFleet,
.hamb-top {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  font-size: 0 !important;
  color: #dce8e2;
  transition: background .13s ease, border-color .13s ease, color .13s ease;
}
.tool-panel-close .ui-ico,
.info-panel-close .ui-ico,
#transitCloseFleet .ui-ico { width: 14px; height: 14px; }
.hamb-top .ui-ico { width: 17px; height: 17px; }

.tool-panel-close:hover,
.info-panel-close:hover,
#transitCloseFleet:hover { color: #ffd2d2; }
.hamb-top:hover { color: #eafbe0; }

.tool-empty-icon {
  display: grid !important;
  place-items: center;
  width: 44px;
  height: 44px;
  margin: 0 auto 10px !important;
  border-radius: 13px;
  border: 1px dashed rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .035);
  color: #8fa79b;
  font-size: 0 !important;
}
.tool-empty-icon .ui-ico { width: 20px; height: 20px; }

/* Minimapa: ícone + texto, alinhados */
.tn-minimap-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: background .13s ease, color .13s ease;
}
.tn-minimap-actions .ui-ico { width: 13px; height: 13px; opacity: .92; }
.tn-minimap-actions button.active .ui-ico { color: var(--ui-accent); opacity: 1; }

/* Menu hamburger: ícone + rótulo */
.classic-menu > button {
  display: flex;
  align-items: center;
  gap: 9px;
  text-align: left;
}
.classic-menu > button .ui-ico { width: 15px; height: 15px; opacity: .85; }
.classic-menu > button:hover .ui-ico { opacity: 1; color: var(--ui-accent); }
.classic-menu #clearCity:hover .ui-ico { color: var(--ui-danger); }
.menu-seed-row button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.menu-seed-row button .ui-ico { width: 13px; height: 13px; }

/* Badge de eventos na topbar */
#hudEvents { display: inline-flex; align-items: center; gap: 6px; }
#hudEvents .ui-ico { width: 13px; height: 13px; opacity: .9; }

/* ---------------------------------------------------------------------
   6. Botões de opção com ícone (zonas, terreno, transporte)
   --------------------------------------------------------------------- */
.zone-buttons button,
.terrain-mode-grid button,
.transit-mode-row button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.zone-buttons .ui-ico,
.terrain-mode-grid .ui-ico,
.transit-mode-row .ui-ico { width: 14px; height: 14px; opacity: .88; }
.zone-buttons button.active .ui-ico,
.terrain-mode-grid button.active .ui-ico,
.transit-mode-row button.active .ui-ico { opacity: 1; }

.zone-buttons button[data-zone-type="residential"] .ui-ico { color: #7fce80; }
.zone-buttons button[data-zone-type="mixed"] .ui-ico { color: #9b59c7; }
.zone-buttons button[data-zone-type="commercial"] .ui-ico { color: #6cb6e6; }
.zone-buttons button[data-zone-type="favela"] .ui-ico { color: #9a6336; }
.zone-buttons button[data-zone-type="industrial"] .ui-ico { color: #e2b160; }
.zone-buttons button[data-zone-type="erase"] .ui-ico { color: #dd8f8f; }
#zoneGridToggle { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
#zoneGridToggle .ui-ico { width: 13px; height: 13px; }

.transit-actions-main button,
#transitOpenFleet,
#vehiclesOpenFleet,
#transitFinishLine,
#transitCancelLine {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.transit-actions-main .ui-ico,
#transitOpenFleet .ui-ico,
#vehiclesOpenFleet .ui-ico,
#transitFinishLine .ui-ico,
#transitCancelLine .ui-ico { width: 13px; height: 13px; opacity: .9; }
#transitDeleteLine:hover .ui-ico,
#transitCancelLine:hover .ui-ico { color: var(--ui-danger); }

/* Botão "Localizar" do inspetor (criado dinamicamente pelo Game.js) */
.sim-inspect-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.sim-inspect-actions .ui-ico { width: 13px; height: 13px; }

/* ---------------------------------------------------------------------
   7. Acessibilidade e responsividade
   --------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .ui-ico,
  .classic-bottombar .tool-cluster button,
  .tn-info-tool::after { transition: none !important; }
}

/* Notebook 1366x768 */
@media (max-width: 1366px) {
  body.city-mode #bottombar .tool-ico,
  .classic-bottombar .tool-ico { width: 19px !important; height: 19px !important; }
  body.city-mode #tnInfoDock .tn-info-tool .ui-ico { width: 18px !important; height: 18px !important; }
}

/* Telas estreitas: some o rótulo, fica só o ícone (por isso o title/tooltip importa) */
@media (max-width: 980px) {
  .classic-bottombar .tool-label { display: none; }
  body.city-mode #bottombar .tool-ico,
  .classic-bottombar .tool-ico { width: 22px !important; height: 22px !important; }
  .classic-bottombar .tool-cluster button { min-width: 46px; }
}

@media (max-width: 720px) {
  .tn-info-tool::after { display: none; }  /* sem hover em touch */
  .tn-minimap-actions button { gap: 0; }
  .tn-minimap-actions .ui-ico { width: 14px; height: 14px; }
}

/* Toque: alvo mínimo confortável */
@media (pointer: coarse) {
  .classic-bottombar .tool-cluster button { min-height: 48px; }
  .tool-panel-close,
  .info-panel-close,
  #transitCloseFleet { min-width: 32px; min-height: 32px; }
}

/* === styles-ui-v0964.css === */
/* =====================================================================
   SIMURBAN v0.9.64 — consolidação responsiva da interface
   Carregado por último para neutralizar as camadas legadas do core antigo.
   ===================================================================== */

:root{
  --v964-panel:linear-gradient(180deg,rgba(12,25,24,.97),rgba(7,15,16,.96));
  --v964-card:rgba(255,255,255,.052);
  --v964-card-strong:rgba(255,255,255,.075);
  --v964-line:rgba(214,236,226,.14);
  --v964-muted:#91a69d;
  --v964-accent:#8fd36b;
  --v964-danger:#e97b72;
}

/* ---------- Topbar: marca à esquerda, dados realmente centralizados, FPS à direita ---------- */
body.city-mode #topbar.topbar{
  position:fixed!important;
  inset:0 0 auto 0!important;
  width:100%!important;
  max-width:none!important;
  height:52px!important;
  transform:none!important;
  display:grid!important;
  grid-template-columns:210px minmax(0,1fr) 68px!important;
  align-items:stretch!important;
  gap:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
  border-radius:0!important;
  background:rgba(7,17,21,.96)!important;
  box-shadow:0 8px 30px rgba(0,0,0,.22)!important;
  backdrop-filter:blur(16px)!important;
  z-index:50!important;
}
body.city-mode #topbar .topbar-brand-zone{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  min-width:0!important;
  padding:0 10px!important;
  border-right:1px solid rgba(255,255,255,.08)!important;
}
body.city-mode #topbar .hamb-top{
  position:static!important;
  width:34px!important;
  height:34px!important;
  margin:0!important;
  flex:0 0 34px!important;
  border-radius:10px!important;
}
body.city-mode #topbar .brand{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  padding:0!important;
}
body.city-mode #topbar .brand strong{font-size:13px!important;line-height:1.05!important;letter-spacing:.035em!important}
body.city-mode #topbar .brand span{font-size:9px!important;color:#9eafa8!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.city-mode #topbar .topbar-center{
  min-width:0!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  overflow:hidden!important;
}
body.city-mode #topbar .topbar-center>.hud-pill{
  position:relative!important;
  inset:auto!important;
  flex:0 1 116px!important;
  width:auto!important;
  min-width:82px!important;
  max-width:132px!important;
  height:52px!important;
  margin:0!important;
  padding:0 11px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  border:0!important;
  border-left:1px solid rgba(255,255,255,.075)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.city-mode #topbar .topbar-center>.hud-pill:first-child{border-left:0!important}
body.city-mode #topbar .topbar-center>.hud-pill b{
  display:block!important;
  color:#8fa39a!important;
  font-size:8.5px!important;
  font-weight:950!important;
  line-height:1.05!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
}
body.city-mode #topbar .topbar-center>.hud-pill>span{
  display:block!important;
  max-width:100%!important;
  margin-top:3px!important;
  color:#f5faf7!important;
  font-size:12px!important;
  font-weight:950!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.city-mode #topbar #hudEvents{
  flex:0 0 64px!important;
  min-width:64px!important;
  max-width:64px!important;
  align-items:center!important;
  padding:0 6px!important;
}
body.city-mode #topbar #hudEvents .ui-ico{position:absolute!important;top:5px!important;left:50%!important;transform:translateX(-50%)!important;width:12px!important;height:12px!important;color:#b9c9c2!important}
body.city-mode #topbar #hudEvents b{margin-top:8px!important}
body.city-mode #topbar #hudEvents>span:last-child{overflow:visible!important}
body.city-mode #topbar #hudRci{
  flex:0 0 128px!important;
  min-width:128px!important;
  max-width:128px!important;
  padding:0 10px!important;
}
body.city-mode #topbar #hudRci .rci-demand-bars{display:grid!important;width:100%!important;grid-template-rows:repeat(3,5px)!important;gap:2px!important;margin-top:4px!important}
body.city-mode #topbar #hudRci .rci-demand-item{display:grid!important;grid-template-columns:9px 1fr!important;gap:4px!important;align-items:center!important}
body.city-mode #topbar #hudRci .rci-demand-label{font-size:8px!important;color:#eff8ee!important;font-weight:950!important;line-height:1!important}
body.city-mode #topbar #hudRci .rci-demand-track{display:block!important;height:5px!important;border-radius:99px!important;background:rgba(0,0,0,.38)!important;overflow:hidden!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.09)!important}
body.city-mode #topbar #hudRci .rci-demand-fill{display:block!important;height:100%!important;width:5%;border-radius:99px!important;transition:width .28s ease!important}
body.city-mode #topbar .topbar-fps-zone{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-left:1px solid rgba(255,255,255,.09)!important;
}
body.city-mode #topbar .topbar-fps-zone .hud-fps{
  position:static!important;
  inset:auto!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  width:54px!important;
  min-width:54px!important;
  max-width:54px!important;
  height:38px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(143,211,107,.24)!important;
  border-radius:10px!important;
  background:rgba(143,211,107,.065)!important;
  box-shadow:none!important;
}
body.city-mode #topbar .topbar-fps-zone .hud-fps b{display:block!important;color:#83b96d!important;font-size:8px!important;line-height:1!important}
body.city-mode #topbar .topbar-fps-zone .hud-fps span{display:block!important;color:#c9f3b7!important;font-size:12px!important;font-weight:950!important;line-height:1.15!important;overflow:visible!important}
.topbar-hidden-metrics{display:none!important}

/* ---------- Menu hambúrguer ---------- */
body.city-mode #hamburgerMenu.classic-menu{
  position:fixed!important;
  left:10px!important;
  right:auto!important;
  top:60px!important;
  width:min(340px,calc(100vw - 20px))!important;
  max-height:calc(100vh - 72px)!important;
  padding:12px!important;
  overflow:auto!important;
  display:grid!important;
  gap:10px!important;
  border:1px solid var(--v964-line)!important;
  border-radius:16px!important;
  background:var(--v964-panel)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.06)!important;
  z-index:80!important;
}
body.city-mode #hamburgerMenu.hidden{display:none!important}
.classic-menu-head{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 6px;border-bottom:1px solid rgba(255,255,255,.08)}
.classic-menu-head b{display:block;font-size:14px;color:#f2f8f4}.classic-menu-head span{display:block;margin-top:2px;font-size:10px;color:var(--v964-muted)}
body.city-mode #hamburgerMenu .menu-seed-row{display:grid!important;grid-template-columns:minmax(0,1fr) 78px!important;gap:8px!important;padding:0!important}
body.city-mode #hamburgerMenu .menu-seed-row input{height:38px!important;border-radius:10px!important;background:rgba(255,255,255,.055)!important;border:1px solid var(--v964-line)!important}
body.city-mode #hamburgerMenu .menu-seed-row button{height:38px!important;display:flex!important;gap:6px!important;align-items:center!important;justify-content:center!important;border-radius:10px!important}
.classic-menu-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
body.city-mode #hamburgerMenu .classic-menu-actions button{
  min-height:46px!important;
  height:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:9px!important;
  padding:8px 10px!important;
  border-radius:11px!important;
  border:1px solid var(--v964-line)!important;
  background:var(--v964-card)!important;
  color:#edf6f1!important;
  font-size:11px!important;
  font-weight:900!important;
  text-align:left!important;
}
body.city-mode #hamburgerMenu .classic-menu-actions button:hover{background:rgba(143,211,107,.13)!important;border-color:rgba(143,211,107,.30)!important}
body.city-mode #hamburgerMenu .classic-menu-actions button:nth-child(4),body.city-mode #hamburgerMenu .classic-menu-actions .danger-menu-action{grid-column:1/-1!important}
body.city-mode #hamburgerMenu .classic-menu-actions .danger-menu-action{border-color:rgba(233,123,114,.28)!important;color:#ffd8d4!important}
body.city-mode #hamburgerMenu .ui-ico{width:17px!important;height:17px!important}

/* ---------- Painéis de ferramentas ---------- */
body.city-mode #toolPanel.tool-panel{
  position:fixed!important;
  left:62px!important;
  right:auto!important;
  top:70px!important;
  bottom:auto!important;
  transform:none!important;
  width:min(430px,calc(100vw - 250px))!important;
  min-width:300px!important;
  max-width:calc(100vw - 250px)!important;
  max-height:calc(100vh - 152px)!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid var(--v964-line)!important;
  border-radius:17px!important;
  background:var(--v964-panel)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.06)!important;
  z-index:38!important;
}
body.city-mode #toolPanel[data-active-tool="none"],
body.city-mode #toolPanel[data-active-tool="inspect"],
body.city-mode #toolPanel[data-active-tool="vehicles"],
body.city-mode #toolPanel[data-active-tool="upgrade"],
body.city-mode #toolPanel[data-active-tool="demolish"]{display:none!important}
body.city-mode #toolPanel[data-active-tool="road"],
body.city-mode #toolPanel[data-active-tool="rail"],
body.city-mode #toolPanel[data-active-tool="zone"],
body.city-mode #toolPanel[data-active-tool="lines"],
body.city-mode #toolPanel[data-active-tool="terrain"]{display:block!important}
body.city-mode #toolPanel .tool-panel-head{
  position:sticky!important;
  inset:0 0 auto 0!important;
  float:none!important;
  width:auto!important;
  height:auto!important;
  min-height:54px!important;
  margin:0!important;
  padding:10px 12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
  border-radius:0!important;
  background:rgba(255,255,255,.025)!important;
  z-index:2!important;
}
body.city-mode #toolPanel .tool-panel-head>div{min-width:0!important}
body.city-mode #toolPanel .tool-panel-head .panel-title{display:block!important;margin:0!important;color:#eef7f1!important;font-size:13px!important;line-height:1.1!important;letter-spacing:.06em!important}
body.city-mode #toolPanel .tool-panel-subtitle{display:block!important;margin-top:3px!important;color:var(--v964-muted)!important;font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.city-mode #toolPanel .tool-panel-close{position:static!important;display:flex!important;width:30px!important;height:30px!important;flex:0 0 30px!important}
body.city-mode #toolPanel .tool-section{display:none!important}
body.city-mode #toolPanel .tool-section.active{
  display:block!important;
  max-height:calc(100vh - 210px)!important;
  overflow:auto!important;
  padding:12px!important;
  box-sizing:border-box!important;
}
body.city-mode #toolPanel .tool-section-title,body.city-mode #toolPanel .classic-subtitle{display:none!important}
body.city-mode #toolPanel .classic-tool-group,
body.city-mode #toolPanel .zone-density-wrap,
body.city-mode #toolPanel .zone-buttons,
body.city-mode #toolPanel .side-buttons,
body.city-mode #toolPanel .geometry-buttons{
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:10px!important;
  border:1px solid rgba(255,255,255,.085)!important;
  border-radius:12px!important;
  background:var(--v964-card)!important;
  box-sizing:border-box!important;
}
body.city-mode #toolPanel .classic-tool-group>label,
body.city-mode #toolPanel .zone-density-title{
  display:block!important;
  margin:0 0 8px!important;
  color:#aebeb7!important;
  font-size:9px!important;
  font-weight:950!important;
  line-height:1!important;
  letter-spacing:.07em!important;
  text-transform:uppercase!important;
}
body.city-mode #toolPanel button{
  min-width:0!important;
  height:34px!important;
  min-height:34px!important;
  padding:0 9px!important;
  border-radius:9px!important;
  border:1px solid rgba(255,255,255,.11)!important;
  background:rgba(255,255,255,.055)!important;
  color:#e9f2ec!important;
  font-size:10px!important;
  font-weight:900!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.city-mode #toolPanel button:hover{background:rgba(143,211,107,.13)!important;border-color:rgba(143,211,107,.28)!important}
body.city-mode #toolPanel button.active{background:linear-gradient(180deg,rgba(143,211,107,.33),rgba(67,112,55,.27))!important;border-color:rgba(143,211,107,.50)!important;color:#fff!important}
body.city-mode #toolPanel .tool-hint{display:block!important;margin:0!important;padding:9px 10px!important;border-radius:11px!important;color:#9eb0a8!important;font-size:9.5px!important;line-height:1.35!important;background:rgba(255,255,255,.035)!important}
body.city-mode #toolPanel .classic-current,body.city-mode #toolPanel .classic-level-readout{display:none!important}

/* Ícones de vias: somente níveis, desenho e extras preservam texto. */
.icon-choice-grid{display:grid!important;gap:7px!important}
.road-main-presets{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.lane-quick-buttons{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.speed-quick-buttons{grid-template-columns:repeat(6,minmax(0,1fr))!important}
body.city-mode #toolPanel .icon-choice{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:42px!important;
  min-height:42px!important;
  padding:0!important;
  overflow:visible!important;
}
body.city-mode #toolPanel .icon-choice .ui-ico{width:22px!important;height:22px!important;color:#cfe0d8!important}
body.city-mode #toolPanel .icon-choice.active .ui-ico{color:#fff!important;filter:drop-shadow(0 0 5px rgba(143,211,107,.30))}
body.city-mode #toolPanel .icon-choice::after{
  content:attr(data-tip);
  position:absolute;
  left:50%;bottom:calc(100% + 7px);
  transform:translate(-50%,4px);
  padding:5px 7px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:7px;
  background:rgba(5,12,13,.98);
  color:#edf6f1;
  font-size:9px;
  font-weight:850;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transition:.12s ease;
  z-index:20;
}
body.city-mode #toolPanel .icon-choice:hover::after{opacity:1;transform:translate(-50%,0)}

/* Estradas: grade compacta e responsiva. */
body.city-mode #toolPanel[data-active-tool="road"]{width:min(470px,calc(100vw - 250px))!important}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:start!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group:has(.speed-quick-buttons),
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group:has(.road-extra-grid),
body.city-mode #toolPanel[data-active-tool="road"] .tool-hint{grid-column:1/-1!important}
body.city-mode #toolPanel[data-active-tool="road"] .speed-quick-buttons .ui-ico{width:20px!important;height:20px!important}
body.city-mode #toolPanel[data-active-tool="road"] .geometry-buttons,
body.city-mode #toolPanel[data-active-tool="road"] .road-elevation-grid,
body.city-mode #toolPanel[data-active-tool="road"] .road-extra-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;padding:0!important;border:0!important;background:none!important}
body.city-mode #toolPanel[data-active-tool="road"] .road-elevation-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}

/* Trilhos: cada card ocupa uma linha; tipos usam ícones. */
body.city-mode #toolPanel[data-active-tool="rail"]{width:min(330px,calc(100vw - 90px))!important}
body.city-mode #toolPanel[data-active-tool="rail"] .classic-tool-section.active{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
body.city-mode #toolPanel[data-active-tool="rail"] .rail-main-presets{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
body.city-mode #toolPanel[data-active-tool="rail"] .geometry-buttons,
body.city-mode #toolPanel[data-active-tool="rail"] .rail-elevation-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;padding:0!important;border:0!important;background:none!important}
body.city-mode #toolPanel[data-active-tool="rail"] .rail-elevation-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body.city-mode #toolPanel[data-active-tool="rail"] .tool-hint{grid-column:auto!important}

/* Zoneamento: RCI saiu daqui; cards em uma coluna. */
body.city-mode #toolPanel[data-active-tool="zone"]{width:min(350px,calc(100vw - 90px))!important}
body.city-mode #toolPanel[data-active-tool="zone"] .tool-section.active{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons,
body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-buttons,
body.city-mode #toolPanel[data-active-tool="zone"] .zone-brush-buttons{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons button{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:9px!important;height:38px!important;padding:0 11px!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons button .ui-ico{width:18px!important;height:18px!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-grid-toggle-row{display:grid!important;grid-template-columns:1fr!important}

/* Linhas: biblioteca e edição lado a lado, sem áreas desperdiçadas. */
body.city-mode #toolPanel[data-active-tool="lines"]{
  width:min(780px,calc(100vw - 250px))!important;
  max-width:calc(100vw - 250px)!important;
}
body.city-mode #toolPanel[data-active-tool="lines"] .lines-tool-section.active{display:block!important;padding:12px!important}
.lines-layout{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(340px,1.1fr);gap:10px;align-items:start}
.lines-pane{min-width:0;padding:11px;border:1px solid rgba(255,255,255,.085);border-radius:13px;background:var(--v964-card)}
.lines-pane-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:9px}.lines-pane-head b{font-size:12px;color:#eef7f1}.lines-pane-head span{font-size:9px;color:var(--v964-muted);text-align:right}
.transit-mode-row,.transit-actions-main,.line-route-actions{display:grid!important;gap:7px!important}
.transit-mode-row{grid-template-columns:1fr 1fr!important;margin-bottom:8px!important}
.transit-actions-main{grid-template-columns:1fr 1fr!important;margin-bottom:8px!important}
body.city-mode #toolPanel[data-active-tool="lines"] button{display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;height:34px!important}
body.city-mode #toolPanel[data-active-tool="lines"] button .ui-ico{width:15px!important;height:15px!important}
.transit-filter{width:100%;height:36px;box-sizing:border-box;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:rgba(0,0,0,.22);color:#eff7f2;padding:0 10px;font-weight:800;outline:none}
.transit-filter:focus{border-color:rgba(143,211,107,.42);box-shadow:0 0 0 2px rgba(143,211,107,.08)}
.transit-line-list{display:grid;gap:7px;margin-top:8px;max-height:210px;overflow:auto;padding-right:2px}
body.city-mode #toolPanel .transit-line-card{height:auto!important;min-height:48px!important;display:grid!important;grid-template-columns:12px 1fr!important;gap:2px 8px!important;align-items:center!important;justify-content:stretch!important;text-align:left!important;padding:8px!important;overflow:hidden!important}
.transit-line-card i{grid-row:1/3;width:10px;height:32px;border-radius:99px}.transit-line-card b{font-size:11px}.transit-line-card span{font-size:9px;color:var(--v964-muted);white-space:normal!important;line-height:1.25}
.transit-empty{padding:12px;border:1px dashed rgba(255,255,255,.13);border-radius:10px;color:var(--v964-muted);font-size:10px;text-align:center}
.lines-detail-pane .transit-selected-row{display:grid!important;grid-template-columns:58px minmax(0,1fr)!important;gap:9px!important;align-items:start!important;margin:0 0 9px!important;padding:0!important;border:0!important;background:none!important}
.line-color-control{display:grid;gap:4px;color:var(--v964-muted);font-size:9px;font-weight:900;text-transform:uppercase}.line-color-control input{width:100%;height:34px;padding:3px;border-radius:9px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.22)}
#transitLineSummary{min-width:0;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(0,0,0,.16)}
#transitLineSummary .transit-fare-box{gap:6px!important}#transitLineSummary .transit-fare-box b{font-size:11px!important}#transitLineSummary .transit-fare-box span{font-size:9px!important}#transitLineSummary .transit-fare-box label{grid-template-columns:1fr 72px!important;font-size:9px!important}#transitLineSummary .transit-fare-box input{height:27px!important;font-size:10px!important}
body.city-mode #toolPanel .wide-fleet-button{width:100%!important;margin:0 0 9px!important;background:rgba(143,211,107,.12)!important;border-color:rgba(143,211,107,.28)!important}
.line-route-actions{grid-template-columns:1fr 1fr!important}.line-route-actions #transitRemoveLine{grid-column:1/-1!important}.primary-action{background:linear-gradient(180deg,rgba(143,211,107,.30),rgba(67,112,55,.25))!important;border-color:rgba(143,211,107,.44)!important}.danger-action{border-color:rgba(233,123,114,.30)!important;color:#ffd7d2!important}
.lines-help{margin:9px 0 0;padding:8px;border-radius:9px;background:rgba(255,255,255,.028);color:#99aaa2;font-size:9px;line-height:1.35}

/* Veículos: uma única janela, catálogo simples e botão de compra íntegro. */
body.city-mode #transitFleetPanel.transit-fleet-panel{
  position:fixed!important;
  left:62px!important;
  right:auto!important;
  top:70px!important;
  bottom:auto!important;
  transform:none!important;
  width:min(470px,calc(100vw - 90px))!important;
  max-width:calc(100vw - 90px)!important;
  max-height:calc(100vh - 90px)!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid var(--v964-line)!important;
  border-radius:17px!important;
  background:var(--v964-panel)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.06)!important;
  z-index:45!important;
}
body.city-mode #transitFleetPanel.hidden{display:none!important}
body.city-mode #transitFleetPanel .tool-panel-head{position:sticky!important;top:0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;min-height:54px!important;padding:10px 12px!important;border-bottom:1px solid rgba(255,255,255,.08)!important;background:rgba(10,21,20,.98)!important;z-index:2!important}
body.city-mode #transitFleetPanel .tool-panel-head .panel-title{margin:0!important;color:#eef7f1!important;font-size:13px!important}.transit-fleet-panel .tool-panel-subtitle{display:block!important;font-size:9px!important}
body.city-mode #transitFleetPanel #transitCloseFleet{position:static!important;width:30px!important;height:30px!important}
.transit-fleet-body{max-height:calc(100vh - 145px)!important;overflow:auto!important;padding:12px!important}
.transit-fleet-body>.transit-selected-row{display:grid!important;grid-template-columns:auto 1fr!important;gap:8px!important;align-items:center!important;padding:9px!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:11px!important;background:var(--v964-card)!important}.transit-fleet-body>.transit-selected-row>span{font-size:9px!important;color:var(--v964-muted)!important;text-transform:uppercase!important;font-weight:950!important}.transit-fleet-body>.transit-selected-row>b{font-size:11px!important;color:#f1f8f3!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.city-mode #transitFleetPanel h4{margin:13px 0 8px!important;color:#aebeb7!important;font-size:9px!important;letter-spacing:.07em!important;text-transform:uppercase!important}
body.city-mode #transitFleetPanel .fleet-catalog-grid{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
body.city-mode #transitFleetPanel .fleet-catalog-card{padding:10px!important;border-radius:12px!important;gap:5px!important}.fleet-catalog-card b{font-size:12px!important}.fleet-catalog-card span,.fleet-catalog-card p,.fleet-catalog-card em{font-size:10px!important}.fleet-catalog-card p{line-height:1.3!important}
body.city-mode #transitFleetPanel .fleet-card-actions{display:block!important;margin-top:2px!important}
body.city-mode #transitFleetPanel .fleet-card-actions button{
  width:100%!important;
  height:34px!important;
  min-height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  padding:0 10px!important;
  border-radius:9px!important;
  overflow:hidden!important;
  line-height:1!important;
}
body.city-mode #transitFleetPanel .fleet-card-actions button .ui-ico{position:static!important;width:15px!important;height:15px!important;flex:0 0 15px!important}
body.city-mode #transitFleetPanel .fleet-vehicle-row{grid-template-columns:minmax(0,1fr)!important;gap:7px!important;padding:9px!important}.fleet-row-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:7px!important}.fleet-row-actions select{height:32px!important}.fleet-row-actions button{height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important}

/* ---------- Minimapa: botões só com ícones + tooltip imediato ---------- */
body.city-mode #miniMapPanel{
  display:block!important;
  position:fixed!important;
  right:12px!important;
  bottom:82px!important;
  width:168px!important;
  max-width:168px!important;
  padding:9px!important;
  overflow:visible!important;
  border-radius:15px!important;
  z-index:28!important;
}
body.city-mode #miniMapPanel canvas{display:block!important;width:150px!important;height:150px!important;border-radius:10px!important}
body.city-mode #miniMapPanel .tn-minimap-actions{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:6px!important;margin-top:7px!important;overflow:visible!important}
body.city-mode #miniMapPanel .minimap-icon-button{
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  height:34px!important;
  min-height:34px!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:9px!important;
  overflow:visible!important;
  font-size:0!important;
}
body.city-mode #miniMapPanel .minimap-icon-button .ui-ico{width:16px!important;height:16px!important}
body.city-mode #miniMapPanel .minimap-icon-button::after{
  content:attr(data-tip);
  position:absolute;
  right:calc(100% + 8px);
  top:50%;
  transform:translate(4px,-50%);
  padding:6px 8px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:8px;
  background:rgba(5,12,13,.98);
  color:#edf6f1;
  font-size:9.5px;
  font-weight:850;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transition:.12s ease;
  box-shadow:0 8px 24px rgba(0,0,0,.30);
  z-index:100;
}
body.city-mode #miniMapPanel .minimap-icon-button:hover::after{opacity:1;transform:translate(0,-50%)}
body.city-mode #miniMapPanel.collapsed{width:52px!important;min-width:52px!important;padding:8px!important}
body.city-mode #miniMapPanel.collapsed .tn-minimap-head,body.city-mode #miniMapPanel.collapsed #miniMapCanvas,body.city-mode #miniMapPanel.collapsed .minimap-icon-button:not(#miniMapHide){display:none!important}
body.city-mode #miniMapPanel.collapsed .tn-minimap-actions{display:block!important;margin:0!important}

/* ---------- Ocultar UI: absolutamente tudo some, exceto o botão de retorno ---------- */
.ui-restore-button{display:none;position:fixed;right:16px;bottom:16px;z-index:200;width:auto;height:42px;padding:0 14px;border:1px solid rgba(143,211,107,.42);border-radius:12px;background:linear-gradient(180deg,rgba(81,143,62,.94),rgba(42,84,38,.94));color:#fff;font-weight:950;box-shadow:0 12px 34px rgba(0,0,0,.42);cursor:pointer;align-items:center;justify-content:center;gap:7px}.ui-restore-button .ui-ico{width:17px;height:17px}
body.city-mode.ui-collapsed #topbar,
body.city-mode.ui-collapsed #bottombar,
body.city-mode.ui-collapsed #toolPanel,
body.city-mode.ui-collapsed #tnInfoDock,
body.city-mode.ui-collapsed #tnInfoPanel,
body.city-mode.ui-collapsed #miniMapPanel,
body.city-mode.ui-collapsed #eventsPanel,
body.city-mode.ui-collapsed #transitFleetPanel,
body.city-mode.ui-collapsed #hamburgerMenu,
body.city-mode.ui-collapsed #tmpeInspector,
body.city-mode.ui-collapsed #inspectPanel,
body.city-mode.ui-collapsed #toast,
body.city-mode.ui-collapsed .pill{display:none!important}
body.city-mode.ui-collapsed #uiRestoreButton{display:flex!important}
body.start-mode #uiRestoreButton,body.generator-mode #uiRestoreButton{display:none!important}

/* ---------- Dock lateral sempre centralizado verticalmente ---------- */
body.city-mode #tnInfoDock.tn-info-dock{
  position:fixed!important;
  left:10px!important;
  right:auto!important;
  top:50%!important;
  bottom:auto!important;
  transform:translateY(-50%)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  width:42px!important;
  z-index:34!important;
}

/* Bottom bar deixa espaço real para o minimapa. */
body.city-mode #bottombar.classic-bottombar{left:10px!important;right:196px!important;bottom:10px!important;transform:none!important;max-width:none!important;justify-content:center!important}

/* ---------- Responsividade ---------- */
@media(max-width:1366px){
  body.city-mode #topbar.topbar{grid-template-columns:192px minmax(0,1fr) 62px!important}
  body.city-mode #topbar .topbar-center>.hud-pill{flex-basis:104px!important;min-width:72px!important;padding:0 8px!important}
  body.city-mode #topbar #hudRci{flex-basis:112px!important;min-width:112px!important;max-width:112px!important}
  body.city-mode #toolPanel[data-active-tool="lines"]{width:min(720px,calc(100vw - 245px))!important}
}
@media(max-width:1120px){
  body.city-mode #topbar.topbar{grid-template-columns:166px minmax(0,1fr) 58px!important}
  body.city-mode #topbar .topbar-center>.hud-pill:has(#hudBuildings),body.city-mode #topbar .topbar-center>.hud-pill:has(#hudPassengers){display:none!important}
  body.city-mode #toolPanel.tool-panel,body.city-mode #transitFleetPanel.transit-fleet-panel{left:60px!important;max-width:calc(100vw - 80px)!important}
  body.city-mode #toolPanel[data-active-tool="lines"]{width:calc(100vw - 80px)!important;max-width:calc(100vw - 80px)!important}
  .lines-layout{grid-template-columns:1fr 1fr!important}
}
@media(max-width:860px){
  body.city-mode #topbar.topbar{grid-template-columns:52px minmax(0,1fr) 56px!important}
  body.city-mode #topbar .brand{display:none!important}
  body.city-mode #topbar .topbar-brand-zone{padding:0 8px!important}
  body.city-mode #topbar .topbar-center>.hud-pill:has(#hudNet){display:none!important}
  body.city-mode #toolPanel.tool-panel,body.city-mode #transitFleetPanel.transit-fleet-panel{left:10px!important;right:10px!important;width:auto!important;min-width:0!important;max-width:none!important;top:62px!important}
  body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active{grid-template-columns:1fr!important}
  body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group:has(.speed-quick-buttons),body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group:has(.road-extra-grid),body.city-mode #toolPanel[data-active-tool="road"] .tool-hint{grid-column:auto!important}
  .lines-layout{grid-template-columns:1fr!important}
  body.city-mode #miniMapPanel{display:none!important}
  body.city-mode #bottombar.classic-bottombar{right:10px!important}
  body.city-mode #tnInfoDock.tn-info-dock{display:none!important}
}
@media(max-width:620px){
  body.city-mode #topbar .topbar-center>.hud-pill:has(#hudMoney),body.city-mode #topbar #hudRci{display:none!important}
  body.city-mode #topbar .topbar-center>.hud-pill{min-width:76px!important}
  .classic-menu-actions{grid-template-columns:1fr!important}
  body.city-mode #hamburgerMenu .classic-menu-actions button{grid-column:1!important}
  .speed-quick-buttons{grid-template-columns:repeat(3,1fr)!important}
  .lane-quick-buttons{grid-template-columns:repeat(5,1fr)!important}
}

/* === styles-ui-v0965.css === */
/* =====================================================================
   SIMURBAN v0.9.65 — compactação final da interface e fluxo de frota
   Carregado depois de styles-ui-v0964.css.
   ===================================================================== */

:root{
  --v965-bottom-gap:82px;
  --v965-panel-line:rgba(214,236,226,.14);
  --v965-card:rgba(255,255,255,.052);
}

/* ---------- Topbar compacta: RCI vertical, frota e eventos por ícone ---------- */
body.city-mode #topbar.topbar{
  grid-template-columns:190px minmax(0,1fr) 64px!important;
}
body.city-mode #topbar .topbar-center>.hud-pill{
  flex:0 1 102px!important;
  min-width:66px!important;
  max-width:116px!important;
  padding:0 8px!important;
}
body.city-mode #topbar .hud-fleet-pill{
  flex-basis:76px!important;
  min-width:68px!important;
  max-width:82px!important;
}
body.city-mode #topbar #hudRci{
  flex:0 0 94px!important;
  min-width:94px!important;
  max-width:94px!important;
  padding:0 8px!important;
  align-items:center!important;
}
body.city-mode #topbar #hudRci>b{align-self:flex-start!important}
body.city-mode #topbar #hudRci .rci-demand-bars{
  width:56px!important;
  height:27px!important;
  margin:2px auto 0!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-end!important;
  justify-content:center!important;
  gap:8px!important;
}
body.city-mode #topbar #hudRci .rci-demand-item{
  width:12px!important;
  height:27px!important;
  display:flex!important;
  flex-direction:column-reverse!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:2px!important;
}
body.city-mode #topbar #hudRci .rci-demand-label{
  display:block!important;
  width:auto!important;
  height:7px!important;
  color:#edf7f0!important;
  font-size:7px!important;
  line-height:7px!important;
  font-weight:950!important;
}
body.city-mode #topbar #hudRci .rci-demand-track{
  position:relative!important;
  display:block!important;
  width:7px!important;
  height:18px!important;
  border-radius:3px 3px 2px 2px!important;
  background:rgba(0,0,0,.40)!important;
  overflow:hidden!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10)!important;
}
body.city-mode #topbar #hudRci .rci-demand-fill{
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:100%!important;
  height:5%!important;
  min-height:1px!important;
  border-radius:2px 2px 1px 1px!important;
  transition:height .28s ease!important;
}
body.city-mode #topbar #hudEvents{
  position:relative!important;
  flex:0 0 50px!important;
  min-width:50px!important;
  max-width:50px!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  padding:0 5px!important;
}
body.city-mode #topbar #hudEvents .ui-ico{
  position:static!important;
  transform:none!important;
  width:16px!important;
  height:16px!important;
  color:#d9e6df!important;
}
body.city-mode #topbar #hudEvents #hudEventsCount{
  margin:0!important;
  color:#f5faf7!important;
  font-size:12px!important;
  line-height:1!important;
  overflow:visible!important;
}

/* ---------- Menu hambúrguer sem rolagem e sem save rápido ---------- */
body.city-mode #hamburgerMenu.classic-menu{
  width:min(330px,calc(100vw - 20px))!important;
  max-height:none!important;
  overflow:hidden!important;
  gap:8px!important;
  padding:11px!important;
}
body.city-mode #hamburgerMenu .classic-menu-actions{
  grid-template-columns:1fr 1fr!important;
  gap:7px!important;
}
body.city-mode #hamburgerMenu .classic-menu-actions button{
  grid-column:auto!important;
  min-height:44px!important;
}
body.city-mode #hamburgerMenu .classic-menu-actions .danger-menu-action{grid-column:auto!important}

/* ---------- Todas as ferramentas surgem junto à bottombar ---------- */
body.city-mode #toolPanel.tool-panel{
  top:auto!important;
  bottom:var(--v965-bottom-gap)!important;
  max-height:calc(100vh - 146px)!important;
  overflow:hidden!important;
}
body.city-mode #toolPanel .tool-section.active{
  max-height:calc(100vh - 204px)!important;
  overflow-x:hidden!important;
  box-sizing:border-box!important;
}
body.city-mode #toolPanel.hidden-tool-panel,
body.city-mode #toolPanel.fleet-stage-open{display:none!important}
body.city-mode #toolPanel[data-active-tool="inspect"]{display:none!important}
body.city-mode #toolPanel[data-active-tool="vehicles"]{
  display:block!important;
  width:min(310px,calc(100vw - 90px))!important;
  min-width:0!important;
}
body.city-mode #toolPanel[data-active-tool="vehicles"] .tool-section.active{
  display:grid!important;
  gap:8px!important;
  padding:10px!important;
  overflow:hidden!important;
}
body.city-mode #toolPanel[data-active-tool="vehicles"] .classic-tool-group{padding:8px!important}
body.city-mode #toolPanel[data-active-tool="vehicles"] #vehiclesOpenFleet{width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important}

/* ---------- Estradas compactas e sem rolagem horizontal ---------- */
body.city-mode #toolPanel[data-active-tool="road"]{
  width:min(390px,calc(100vw - 90px))!important;
  min-width:0!important;
  max-width:390px!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  padding:10px!important;
  overflow:hidden!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group{
  padding:8px!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group:has(.speed-quick-buttons),
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group:has(.road-extra-grid),
body.city-mode #toolPanel[data-active-tool="road"] .tool-hint{grid-column:1/-1!important}
body.city-mode #toolPanel[data-active-tool="road"] .icon-choice{
  height:44px!important;
  min-height:44px!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .road-main-presets .ui-ico{
  width:30px!important;
  height:30px!important;
  stroke-width:1.9!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .lane-quick-buttons .ui-ico{
  width:27px!important;
  height:27px!important;
  stroke-width:2!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .speed-quick-buttons{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:5px!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .speed-quick-buttons .icon-choice{
  height:46px!important;
  padding:2px 0 0!important;
  flex-direction:column!important;
  gap:0!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .speed-quick-buttons .ui-ico{
  width:19px!important;
  height:19px!important;
}
.choice-number,.speed-value{
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#eff8f1;
  font-weight:950;
  pointer-events:none;
}
.choice-number{
  right:3px;
  bottom:3px;
  min-width:14px;
  height:14px;
  padding:0 2px;
  border-radius:5px;
  background:rgba(0,0,0,.44);
  font-size:8px;
}
.speed-value{
  position:static;
  height:13px;
  font-size:8px;
  line-height:1;
}
body.city-mode #toolPanel .icon-choice.active .choice-number,
body.city-mode #toolPanel .icon-choice.active .speed-value{color:#fff}

/* ---------- Trilhos compactos e baixos ---------- */
body.city-mode #toolPanel[data-active-tool="rail"]{
  width:min(300px,calc(100vw - 90px))!important;
  min-width:0!important;
  bottom:var(--v965-bottom-gap)!important;
}
body.city-mode #toolPanel[data-active-tool="rail"] .classic-tool-section.active{
  gap:8px!important;
  padding:10px!important;
  overflow:hidden!important;
}
body.city-mode #toolPanel[data-active-tool="rail"] .classic-tool-group{padding:8px!important}
body.city-mode #toolPanel[data-active-tool="rail"] .rail-main-presets .ui-ico{width:28px!important;height:28px!important;stroke-width:2!important}

/* ---------- Zoneamento estreito; tipos 2x2 em cards quadrados ---------- */
body.city-mode #toolPanel[data-active-tool="zone"]{
  width:min(270px,calc(100vw - 90px))!important;
  min-width:0!important;
  max-width:270px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .tool-section.active{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  padding:10px!important;
  overflow:hidden!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons:not(.zone-grid-toggle-row){
  display:grid!important;
  grid-template-columns:repeat(2,102px)!important;
  justify-content:center!important;
  grid-column:1/-1!important;
  gap:7px!important;
  padding:0!important;
  border:0!important;
  background:none!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons:not(.zone-grid-toggle-row) button{
  aspect-ratio:1/1!important;
  width:102px!important;
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:8px!important;
  white-space:normal!important;
  text-align:center!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons:not(.zone-grid-toggle-row) button .ui-ico{width:25px!important;height:25px!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-wrap{padding:7px!important;min-width:0!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-buttons,
body.city-mode #toolPanel[data-active-tool="zone"] .zone-brush-buttons{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
  padding:0!important;
  border:0!important;
  background:none!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-grid-toggle-row{
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-column:1/-1!important;
  padding:0!important;
  border:0!important;
  background:none!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .tool-hint{grid-column:1/-1!important;font-size:8.2px!important;line-height:1.25!important;padding:6px 7px!important}


body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-title{font-size:8px!important;margin-bottom:6px!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-buttons button,
body.city-mode #toolPanel[data-active-tool="zone"] .zone-brush-buttons button{height:30px!important;min-height:30px!important;padding:0 3px!important;font-size:8px!important}

/* ---------- Linhas menores, sem estouro horizontal ---------- */
body.city-mode #toolPanel[data-active-tool="lines"]{
  width:min(590px,calc(100vw - 90px))!important;
  min-width:0!important;
  max-width:590px!important;
}
body.city-mode #toolPanel[data-active-tool="lines"] .lines-tool-section.active{
  padding:10px!important;
  overflow-x:hidden!important;
}
body.city-mode #toolPanel[data-active-tool="lines"] .lines-layout{
  grid-template-columns:minmax(220px,.82fr) minmax(0,1.18fr)!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
}
body.city-mode #toolPanel[data-active-tool="lines"] .lines-pane{padding:9px!important;min-width:0!important;overflow:hidden!important}
body.city-mode #toolPanel[data-active-tool="lines"] .transit-line-list{max-height:168px!important}
body.city-mode #toolPanel[data-active-tool="lines"] #transitLineSummary .transit-fare-box label{grid-template-columns:minmax(0,1fr) 66px!important}
body.city-mode #toolPanel[data-active-tool="lines"] .lines-help{font-size:8.5px!important;padding:7px!important}

/* ---------- Veículos em duas etapas: seletor primeiro, catálogo depois ---------- */
body.city-mode #transitFleetPanel.transit-fleet-panel{
  top:auto!important;
  bottom:var(--v965-bottom-gap)!important;
  left:62px!important;
  width:min(420px,calc(100vw - 90px))!important;
  max-width:420px!important;
  max-height:calc(100vh - 146px)!important;
  overflow:hidden!important;
}
body.city-mode #transitFleetPanel .transit-fleet-body{
  max-height:calc(100vh - 204px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:10px!important;
}
body.city-mode #transitFleetPanel .fleet-catalog-grid{grid-template-columns:1fr!important;gap:7px!important}
body.city-mode #transitFleetPanel .fleet-catalog-card{padding:9px!important}
body.city-mode #transitFleetPanel .fleet-card-actions button{border-radius:9px!important;position:relative!important;overflow:hidden!important}
body.city-mode #transitFleetPanel .fleet-vehicle-row{overflow:hidden!important}

/* ---------- Terreno menor, duas colunas no topo, sem barras ---------- */
body.city-mode #toolPanel[data-active-tool="terrain"]{
  width:min(380px,calc(100vw - 90px))!important;
  min-width:0!important;
  max-width:380px!important;
}
body.city-mode #toolPanel[data-active-tool="terrain"] .tool-section.active{
  display:grid!important;
  grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)!important;
  gap:8px!important;
  padding:10px!important;
  overflow:hidden!important;
}
body.city-mode #toolPanel[data-active-tool="terrain"] .terrain-tool-group{padding:8px!important;min-width:0!important}
body.city-mode #toolPanel[data-active-tool="terrain"] .terrain-tool-group[data-terrain-panel]{grid-column:1/-1!important}
body.city-mode #toolPanel[data-active-tool="terrain"] .tool-hint{grid-column:1/-1!important;font-size:8.7px!important;padding:7px 8px!important}
body.city-mode #toolPanel[data-active-tool="terrain"] .terrain-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
body.city-mode #toolPanel[data-active-tool="terrain"] .three-col{grid-template-columns:1fr!important;gap:6px!important}
body.city-mode #toolPanel[data-active-tool="terrain"] .terrain-swatch-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
body.city-mode #toolPanel[data-active-tool="terrain"] [data-terrain-panel="path"] .terrain-swatch-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
body.city-mode #toolPanel[data-active-tool="terrain"] button{height:32px!important;min-height:32px!important;padding:0 7px!important;font-size:9px!important}

/* ---------- Minimapa na mesma linha/rodapé da bottombar ---------- */
body.city-mode #miniMapPanel{
  bottom:10px!important;
}
body.city-mode #bottombar.classic-bottombar{
  left:10px!important;
  right:196px!important;
  bottom:10px!important;
}

/* ---------- Controles de tempo preservam ícones ao atualizar o texto ---------- */
body.city-mode #bottombar .speed-cluster .compact-action{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
}
body.city-mode #bottombar #pauseGame .ui-ico,
body.city-mode #bottombar #dayNightToggle .ui-ico{display:block!important;width:14px!important;height:14px!important;flex:0 0 14px!important}
body.city-mode #bottombar .compact-label{display:inline!important}

@media(max-width:1120px){
  body.city-mode #topbar.topbar{grid-template-columns:166px minmax(0,1fr) 58px!important}
  body.city-mode #topbar .topbar-center>.hud-pill{flex-basis:88px!important;min-width:60px!important;padding:0 6px!important}
  body.city-mode #topbar .topbar-center>.hud-pill:has(#hudPassengers){display:none!important}
  body.city-mode #toolPanel.tool-panel,body.city-mode #transitFleetPanel.transit-fleet-panel{left:60px!important;right:auto!important;top:auto!important;bottom:var(--v965-bottom-gap)!important}
}

@media(max-width:860px){
  body.city-mode #toolPanel.tool-panel,body.city-mode #transitFleetPanel.transit-fleet-panel{
    left:10px!important;
    right:10px!important;
    width:auto!important;
    max-width:none!important;
    bottom:72px!important;
  }
  body.city-mode #toolPanel[data-active-tool="lines"] .lines-layout{grid-template-columns:1fr!important}
  body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active{grid-template-columns:1fr!important;overflow-y:auto!important}
  body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group:has(.speed-quick-buttons),
  body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group:has(.road-extra-grid),
  body.city-mode #toolPanel[data-active-tool="road"] .tool-hint{grid-column:auto!important}
  body.city-mode #miniMapPanel{display:none!important}
  body.city-mode #bottombar.classic-bottombar{right:10px!important}
}
body.city-mode #transitFleetPanel .fleet-mode-row{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:7px!important;
  margin:0 0 8px!important;
}
body.city-mode #transitFleetPanel .fleet-mode-row button{
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  border:1px solid rgba(255,255,255,.11)!important;
  border-radius:9px!important;
  background:rgba(255,255,255,.055)!important;
  color:#edf6f1!important;
  font-size:10px!important;
  font-weight:900!important;
}
body.city-mode #transitFleetPanel .fleet-mode-row button.active{
  background:linear-gradient(180deg,rgba(143,211,107,.33),rgba(67,112,55,.27))!important;
  border-color:rgba(143,211,107,.5)!important;
}
body.city-mode #transitFleetPanel .fleet-mode-row .ui-ico{width:15px!important;height:15px!important}

/* === styles-ui-v0966.css === */
/* =====================================================================
   SIMURBAN v0.9.66 — setas corretas, frota separada e TMPE por escopo
   Carregado depois de styles-ui-v0965.css.
   ===================================================================== */

/* Estradas: ícones maiores e leitura direta das direções/faixas. */
body.city-mode #toolPanel[data-active-tool="road"] .road-main-presets .icon-choice{
  min-height:50px!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .road-main-presets .ui-ico{
  width:35px!important;
  height:35px!important;
  stroke-width:2.15!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .lane-quick-buttons .icon-choice{
  min-height:48px!important;
  padding:4px 2px!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .lane-quick-buttons .ui-ico{
  width:31px!important;
  height:31px!important;
  stroke-width:2.15!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .choice-number{display:none!important}

/* Zoneamento: densidade e pincel em blocos inteiros, um abaixo do outro. */
body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-wrap{
  grid-column:1/-1!important;
  width:100%!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-wrap:not(.zone-brush-wrap){order:2!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-brush-wrap{order:3!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons:not(.zone-grid-toggle-row){order:1!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-grid-toggle-row{order:4!important}
body.city-mode #toolPanel[data-active-tool="zone"] .tool-hint{order:5!important}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-buttons,
body.city-mode #toolPanel[data-active-tool="zone"] .zone-brush-buttons{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Primeira etapa de Veículos: somente frota já comprada. */
body.city-mode #toolPanel[data-active-tool="vehicles"]{
  width:min(430px,calc(100vw - 90px))!important;
  max-width:430px!important;
}
body.city-mode #toolPanel[data-active-tool="vehicles"] .tool-section.active{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  padding:10px!important;
  overflow:hidden!important;
}
.owned-fleet-toolbar{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}
.owned-fleet-toolbar button,
.owned-fleet-buy{
  min-height:35px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:rgba(255,255,255,.055);
  color:#eef7f1;
  font-size:10px;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  cursor:pointer;
}
.owned-fleet-toolbar button.active{
  background:linear-gradient(180deg,rgba(143,211,107,.34),rgba(67,112,55,.27));
  border-color:rgba(143,211,107,.52);
}
.owned-fleet-toolbar .ui-ico,.owned-fleet-buy .ui-ico{width:15px;height:15px}
.owned-fleet-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:31px;
  padding:0 9px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:9px;
  background:rgba(0,0,0,.15);
  color:#b9c9bf;
  font-size:9px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.owned-fleet-summary b{color:#fff;font-size:13px}
body.city-mode #toolPanel[data-active-tool="vehicles"] .owned-fleet-list{
  max-height:min(310px,calc(100vh - 390px));
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:2px;
}
body.city-mode #toolPanel[data-active-tool="vehicles"] .fleet-vehicle-row{
  grid-template-columns:minmax(0,1fr)!important;
  gap:6px!important;
  padding:9px!important;
}
body.city-mode #toolPanel[data-active-tool="vehicles"] .fleet-vehicle-row em{
  font-size:9px!important;
  color:#aebeb4!important;
}
body.city-mode #toolPanel[data-active-tool="vehicles"] .fleet-row-actions{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:7px!important;
}
body.city-mode #toolPanel[data-active-tool="vehicles"] .fleet-row-actions select,
body.city-mode #toolPanel[data-active-tool="vehicles"] .fleet-row-actions button{height:32px!important}
.owned-fleet-buy{
  width:100%;
  background:linear-gradient(180deg,rgba(143,211,107,.28),rgba(67,112,55,.22));
  border-color:rgba(143,211,107,.42);
}

/* Segunda etapa: somente catálogo de compra. */
body.city-mode #transitFleetPanel.transit-fleet-panel{
  width:min(540px,calc(100vw - 90px))!important;
  max-width:540px!important;
}
body.city-mode #transitFleetPanel .transit-fleet-body{
  padding:11px!important;
}
body.city-mode #transitFleetPanel .purchase-destination-row{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  min-height:34px!important;
  margin:0 0 9px!important;
  padding:0 9px!important;
  border:1px solid rgba(255,255,255,.09)!important;
  border-radius:9px!important;
  background:rgba(0,0,0,.15)!important;
}
body.city-mode #transitFleetPanel .purchase-destination-row span{
  color:#9fb2a7!important;
  font-size:8px!important;
  font-weight:950!important;
  text-transform:uppercase!important;
  letter-spacing:.06em!important;
}
body.city-mode #transitFleetPanel .purchase-destination-row b{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:#edf7f1!important;
  font-size:10px!important;
}
body.city-mode #transitFleetPanel .fleet-catalog-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
}
body.city-mode #transitFleetPanel .fleet-catalog-card{
  min-width:0!important;
  padding:10px!important;
}
body.city-mode #transitFleetPanel .fleet-card-actions button{
  width:100%!important;
  min-height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
}

/* TMPE: escopos visualmente separados e seleção junto à bottombar. */
body.city-mode #tmpeInspector.tmpe-popup{
  top:auto!important;
  bottom:82px!important;
  left:62px!important;
  width:min(450px,calc(100vw - 90px))!important;
  max-height:calc(100vh - 150px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
.tmpe-scope-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin:0 0 9px;
}
.tmpe-scope-row span{
  min-height:29px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:4px 7px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:8px;
  background:rgba(255,255,255,.04);
  color:#9fb2a7;
  font-size:8.5px;
  font-weight:900;
  text-align:center;
}
.tmpe-scope-row span.active{
  border-color:rgba(143,211,107,.48);
  background:rgba(143,211,107,.18);
  color:#f1faee;
}

@media(max-width:860px){
  body.city-mode #transitFleetPanel .fleet-catalog-grid{grid-template-columns:1fr!important}
  body.city-mode #toolPanel[data-active-tool="vehicles"]{max-width:none!important}
  body.city-mode #tmpeInspector.tmpe-popup{left:10px!important;right:10px!important;width:auto!important;bottom:72px!important}
}

/* SIMURBAN v0.9.126 — TMPE temporizado e conectores faixa-a-faixa */
.tmpe-section{
  margin-top:10px;
  padding:9px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:9px;
  background:rgba(255,255,255,.035);
}
.tmpe-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
  color:#e9f4ef;
  font-size:10px;
}
.tmpe-section-head span{color:#9fd18b;font-size:9px;font-weight:900}
.tmpe-phase-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.tmpe-phase-grid label{
  display:grid;
  grid-template-columns:1fr 62px 12px;
  align-items:center;
  gap:5px;
  min-height:31px;
  padding:5px 6px;
  border-radius:7px;
  background:rgba(0,0,0,.16);
  color:#b8cbc4;
  font-size:9px;
  font-weight:850;
}
.tmpe-phase-grid input{
  min-width:0;
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.13);
  border-radius:6px;
  background:#101918;
  color:#f3d58a;
  padding:5px;
  font-weight:950;
}
.tmpe-phase-grid small{color:#83958e;font-size:8px}
.tmpe-connectors.enabled{border-color:rgba(107,204,245,.30)}
.tmpe-connector-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:8px;
}
.tmpe-connector-columns>div>b{
  display:block;
  margin-bottom:5px;
  color:#aebfba;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.tmpe-connector-list{
  display:grid;
  gap:5px;
  max-height:150px;
  overflow:auto;
  padding-right:2px;
}
.tmpe-connector-list button{
  min-height:28px;
  padding:5px 7px;
  text-align:left;
  font-size:8.5px;
  border-color:rgba(255,255,255,.09);
}
.tmpe-connector-list button.source{border-color:#ff9a4d!important;box-shadow:inset 3px 0 #ff9a4d}
.tmpe-connector-list button.connected{border-color:#78e66b!important;box-shadow:inset 3px 0 #78e66b}
.tmpe-connector-list button:disabled{opacity:.36;cursor:not-allowed}
@media(max-width:620px){
  .tmpe-phase-grid,.tmpe-connector-columns{grid-template-columns:1fr}
}

/* SIMURBAN v0.9.127 — benchmark de desempenho reproduzível */
#menuBenchmark.running {
  opacity: .72;
  cursor: progress;
}

.benchmark-hud {
  position: fixed;
  z-index: 2200;
  top: 154px;
  right: 18px;
  width: min(310px, calc(100vw - 36px));
  padding: 11px 12px 10px;
  border: 1px solid rgba(129, 219, 139, .42);
  border-radius: 12px;
  background: rgba(8, 18, 20, .94);
  box-shadow: 0 12px 32px rgba(0, 0, 0, .36), inset 0 0 0 1px rgba(255,255,255,.025);
  color: #e9f3eb;
  backdrop-filter: blur(8px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}

.benchmark-hud.hidden {
  display: none !important;
}

.benchmark-hud-title,
.benchmark-hud-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
}

.benchmark-hud-title {
  font-size: 12px;
  letter-spacing: .055em;
}

.benchmark-hud-title strong {
  color: #9fdb8f;
  font-variant-numeric: tabular-nums;
}

.benchmark-record-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #ef665f;
  box-shadow: 0 0 0 4px rgba(239, 102, 95, .14), 0 0 12px rgba(239, 102, 95, .7);
  animation: benchmarkPulse 1.05s infinite;
}

.benchmark-hud-title b {
  margin-right: auto;
}

.benchmark-hud-line {
  margin-top: 8px;
  color: #c8d8ca;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.benchmark-progress {
  height: 4px;
  margin-top: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
}

.benchmark-progress i {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #6fba69, #a7df91);
  transition: width .35s linear;
}

.benchmark-hud small {
  display: block;
  margin-top: 7px;
  overflow: hidden;
  color: #8fa497;
  font-size: 10px;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.benchmark-hud.finished {
  border-color: rgba(111, 186, 105, .62);
}

.benchmark-hud.finished .benchmark-record-dot {
  background: #78c879;
  animation: none;
  box-shadow: 0 0 0 4px rgba(120, 200, 121, .14);
}

@keyframes benchmarkPulse {
  0%, 100% { transform: scale(.82); opacity: .72; }
  50% { transform: scale(1.12); opacity: 1; }
}

@media (max-width: 720px) {
  .benchmark-hud {
    top: 116px;
    right: 10px;
    width: min(290px, calc(100vw - 20px));
  }
}

/* SIMURBAN v0.9.213 — preferência do TPME explícita por aproximação */
.tmpe-priority-editor{
  border-color:rgba(255,255,255,.13);
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(0,0,0,.11));
}
.tmpe-priority-legend{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin-bottom:8px;
}
.tmpe-priority-legend span{
  min-height:30px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:6px 7px;
  border-radius:8px;
  font-size:8.5px;
  line-height:1.18;
  font-weight:950;
}
.tmpe-priority-legend i{
  width:11px;
  height:11px;
  border-radius:3px;
  flex:0 0 11px;
  box-shadow:0 0 0 1px rgba(255,255,255,.26),0 0 12px currentColor;
}
.tmpe-priority-legend .priority{color:#bff8cb;background:rgba(64,194,96,.13);border:1px solid rgba(85,228,119,.35)}
.tmpe-priority-legend .priority i{background:#55e477}
.tmpe-priority-legend .stop{color:#ffc0bc;background:rgba(214,65,59,.14);border:1px solid rgba(255,81,74,.38)}
.tmpe-priority-legend .stop i{background:#ff514a}
.tmpe-priority-list{
  display:grid;
  gap:6px;
}
.tmpe-priority-list button{
  width:100%;
  min-height:43px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:8px;
  padding:7px 9px;
  text-align:left;
  border-radius:9px;
  cursor:pointer;
}
.tmpe-priority-list button span{display:grid;gap:2px;min-width:0}
.tmpe-priority-list button b{font-size:10px;color:#f3f8f1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tmpe-priority-list button small{font-size:8px;color:#9fb0aa}
.tmpe-priority-list button strong{
  min-width:82px;
  text-align:center;
  font-size:8.5px;
  letter-spacing:.055em;
  padding:6px 7px;
  border-radius:7px;
}
.tmpe-priority-list button.priority{
  border-color:rgba(85,228,119,.62)!important;
  background:linear-gradient(180deg,rgba(85,228,119,.25),rgba(33,108,54,.16))!important;
  box-shadow:inset 4px 0 #55e477,0 0 0 1px rgba(85,228,119,.07);
}
.tmpe-priority-list button.priority strong{color:#d8ffe0;background:rgba(85,228,119,.18);border:1px solid rgba(85,228,119,.34)}
.tmpe-priority-list button.stop{
  border-color:rgba(255,81,74,.54)!important;
  background:linear-gradient(180deg,rgba(255,81,74,.19),rgba(105,29,27,.15))!important;
  box-shadow:inset 4px 0 #ff514a;
}
.tmpe-priority-list button.stop strong{color:#ffd2cf;background:rgba(255,81,74,.18);border:1px solid rgba(255,81,74,.34)}
.tmpe-priority-list button:hover{filter:brightness(1.14)}
@media(max-width:620px){
  .tmpe-priority-legend{grid-template-columns:1fr}
  .tmpe-priority-list button{grid-template-columns:1fr}
  .tmpe-priority-list button strong{justify-self:stretch}
}


/* Seção 7 — seleção múltipla e atribuição de frota em lote. */
.owned-fleet-bulk{
  display:grid;
  gap:7px;
  padding:8px;
  border:1px solid rgba(143,211,107,.22);
  border-radius:10px;
  background:rgba(20,42,31,.34);
}
.owned-fleet-bulk-selection,
.owned-fleet-bulk-assignment{
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr);
  align-items:center;
  gap:6px;
}
.owned-fleet-bulk-assignment{grid-template-columns:minmax(0,1fr) auto}
.owned-fleet-bulk button,
.owned-fleet-bulk select{
  min-height:31px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(255,255,255,.055);
  color:#eef7f1;
  font-size:9px;
  font-weight:900;
  padding:0 8px;
}
.owned-fleet-bulk select option{background:#102019;color:#eef7f1}
.owned-fleet-bulk button:disabled{opacity:.42;cursor:not-allowed}
.owned-fleet-bulk-selection b{
  justify-self:end;
  color:#bfe2b0;
  font-size:9px;
  white-space:nowrap;
}
body.city-mode #toolPanel[data-active-tool="vehicles"] .fleet-vehicle-row{
  position:relative;
  padding-left:39px!important;
}
.fleet-select-control{
  position:absolute;
  left:10px;
  top:11px;
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  cursor:pointer;
}
.fleet-select-control input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.fleet-select-control span{
  width:16px;
  height:16px;
  margin:0!important;
  border:1px solid rgba(255,255,255,.28);
  border-radius:5px;
  background:rgba(0,0,0,.25);
  box-sizing:border-box;
}
.fleet-select-control input:checked + span{
  border-color:rgba(143,211,107,.9);
  background:linear-gradient(180deg,#8fd36b,#4f8c43);
  box-shadow:inset 0 0 0 3px rgba(10,25,15,.62),0 0 10px rgba(143,211,107,.28);
}
.fleet-vehicle-row.fleet-selected{
  border-color:rgba(143,211,107,.62)!important;
  background:rgba(91,145,68,.18)!important;
}

/* === styles-ui-v0967.css === */
/* =====================================================================
   SIMURBAN v0.9.67 — transporte funcional, rota por faixa e janelas pareadas
   Carregado depois de styles-ui-v0966.css.
   ===================================================================== */

:root{
  --v967-fleet-owned-w:430px;
  --v967-fleet-buy-w:640px;
  --v967-fleet-gap:12px;
  --v967-fleet-total:1042px;
}

/* Zoneamento: mesma leitura visual, bem menos altura. */
body.city-mode #toolPanel[data-active-tool="zone"]{
  width:min(270px,calc(100vw - 90px))!important;
  max-width:270px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .tool-section.active{
  gap:6px!important;
  padding:8px!important;
  max-height:none!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .classic-subtitle{
  font-size:8px!important;
  line-height:1.15!important;
  max-height:20px!important;
  overflow:hidden!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons:not(.zone-grid-toggle-row){
  grid-template-columns:repeat(2,84px)!important;
  gap:6px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons:not(.zone-grid-toggle-row) button{
  width:84px!important;
  min-width:84px!important;
  height:84px!important;
  aspect-ratio:1/1!important;
  gap:5px!important;
  padding:6px!important;
  font-size:9px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons:not(.zone-grid-toggle-row) button .ui-ico{
  width:22px!important;
  height:22px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-wrap{
  padding:6px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-title{
  margin-bottom:4px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-density-buttons button,
body.city-mode #toolPanel[data-active-tool="zone"] .zone-brush-buttons button{
  height:27px!important;
  min-height:27px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-grid-toggle-row button{
  height:31px!important;
  min-height:31px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .tool-hint{display:none!important}

/* Frota + compras: duas janelas independentes, lado a lado e centralizadas. */
body.city-mode.fleet-purchase-layout #toolPanel[data-active-tool="vehicles"]{
  display:block!important;
  position:fixed!important;
  width:var(--v967-fleet-owned-w)!important;
  max-width:var(--v967-fleet-owned-w)!important;
  min-width:0!important;
  left:max(12px,calc(50vw - var(--v967-fleet-total) / 2))!important;
  right:auto!important;
  bottom:82px!important;
  top:auto!important;
  transform:none!important;
  max-height:min(560px,calc(100vh - 120px))!important;
  z-index:44!important;
}
body.city-mode.fleet-purchase-layout #toolPanel[data-active-tool="vehicles"] .tool-section.active{
  max-height:min(415px,calc(100vh - 210px))!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
body.city-mode #transitFleetPanel.transit-fleet-panel{
  width:min(var(--v967-fleet-buy-w),calc(100vw - 24px))!important;
  max-width:var(--v967-fleet-buy-w)!important;
  bottom:82px!important;
  top:auto!important;
  max-height:min(470px,calc(100vh - 150px))!important;
  overflow:hidden!important;
}
body.city-mode #transitFleetPanel.transit-fleet-panel.hidden{display:none!important}
body.city-mode.fleet-purchase-layout #transitFleetPanel.transit-fleet-panel{
  display:block!important;
  left:max(calc(12px + var(--v967-fleet-owned-w) + var(--v967-fleet-gap)),calc(50vw - var(--v967-fleet-total) / 2 + var(--v967-fleet-owned-w) + var(--v967-fleet-gap)))!important;
  right:auto!important;
  transform:none!important;
}
body.city-mode #transitFleetPanel .tool-panel-head{
  float:none!important;
  position:relative!important;
  width:100%!important;
  height:auto!important;
  min-height:54px!important;
  margin:0!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  padding:9px 12px!important;
  border-radius:0!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
  background:rgba(10,21,20,.98)!important;
}
body.city-mode #transitFleetPanel .tool-panel-head>div{
  min-width:0!important;
  width:auto!important;
}
body.city-mode #transitFleetPanel .tool-panel-head .panel-title{
  display:block!important;
  font-size:13px!important;
  line-height:1.1!important;
}
body.city-mode #transitFleetPanel .tool-panel-subtitle{
  display:block!important;
  margin-top:3px!important;
  font-size:9px!important;
  line-height:1.2!important;
}
body.city-mode #transitFleetPanel .transit-fleet-body{
  max-height:min(500px,calc(100vh - 180px))!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:10px!important;
}
body.city-mode #transitFleetPanel .fleet-catalog-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
}
body.city-mode #transitFleetPanel .fleet-catalog-card{
  display:flex!important;
  flex-direction:column!important;
  min-height:118px!important;
}
body.city-mode #transitFleetPanel .fleet-card-actions{
  margin-top:auto!important;
}

/* Em telas menores, as duas janelas continuam utilizáveis sem estouro. */
@media(max-width:1120px){
  :root{--v967-fleet-owned-w:360px;--v967-fleet-buy-w:510px;--v967-fleet-total:882px}
  body.city-mode #transitFleetPanel .fleet-catalog-grid{grid-template-columns:1fr!important}
}
@media(max-width:900px){
  body.city-mode.fleet-purchase-layout #toolPanel[data-active-tool="vehicles"]{display:none!important}
  body.city-mode #transitFleetPanel.transit-fleet-panel.hidden{display:none!important}
body.city-mode.fleet-purchase-layout #transitFleetPanel.transit-fleet-panel{
  display:block!important;
    left:10px!important;
    right:10px!important;
    width:auto!important;
    max-width:none!important;
  }
}


body.city-mode #transitFleetPanel .fleet-catalog-card{padding:8px!important;gap:4px!important}
body.city-mode #transitFleetPanel .fleet-catalog-card b{font-size:12px!important}
body.city-mode #transitFleetPanel .fleet-catalog-card span{font-size:10px!important}
body.city-mode #transitFleetPanel .fleet-catalog-card p{font-size:11px!important;line-height:1.22!important}
body.city-mode #transitFleetPanel .fleet-card-actions button{height:28px!important;padding:0 8px!important;font-size:11px!important}

/* === styles-ui-v0974.css === */
/* SIMURBAN v0.9.73 — hotfix de entrada das configurações gráficas */
.quality-settings-screen.hidden{display:none!important}
.quality-settings-screen{
  position:fixed;inset:0;z-index:980;display:grid;place-items:center;padding:18px;
  background:rgba(3,8,9,.78);backdrop-filter:blur(10px)
}
.quality-settings-card{
  width:min(820px,calc(100vw - 28px));border:1px solid rgba(209,235,229,.22);border-radius:22px;
  background:linear-gradient(160deg,rgba(24,40,39,.98),rgba(8,16,18,.98));
  box-shadow:0 32px 110px rgba(0,0,0,.58);padding:24px;color:#eef7f3
}
.quality-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.quality-settings-head h2{margin:5px 0 4px;font-size:28px}
.quality-settings-head p{margin:0;max-width:610px;color:#aebfba;font-size:13px;line-height:1.45}
#qualitySettingsClose{width:38px;height:38px;flex:0 0 auto;border-radius:11px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#fff;font-size:23px;cursor:pointer}
#qualitySettingsClose:hover{background:rgba(255,255,255,.12)}
.quality-profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:22px}
.quality-profile-grid button{min-width:0;min-height:150px;padding:16px;text-align:left;border-radius:15px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.055);color:#eef7f3;cursor:pointer;transition:.16s ease}
.quality-profile-grid button:hover{transform:translateY(-2px);background:rgba(255,255,255,.09)}
.quality-profile-grid button.active{border-color:#7fca77;background:linear-gradient(160deg,rgba(84,143,82,.42),rgba(39,80,55,.24));box-shadow:inset 0 0 0 1px rgba(126,205,116,.24),0 12px 30px rgba(0,0,0,.18)}
.quality-profile-grid b{display:block;font-size:19px;margin-bottom:5px}
.quality-profile-grid span{display:block;color:#cfe1db;font-size:12px;font-weight:800;margin-bottom:13px}
.quality-profile-grid small{display:block;color:#8fa49e;font-size:10px;line-height:1.45}
.quality-current-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;margin-top:16px;padding:13px 14px;border-radius:13px;border:1px solid rgba(255,255,255,.10);background:rgba(0,0,0,.15)}
.quality-current-row>div:first-child{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:baseline}
.quality-current-row span{font-size:11px;color:#9fb2ac}.quality-current-row b{font-size:13px}.quality-current-row small{color:#829790;font-size:10px}
.quality-photo-hint{display:flex;align-items:center;gap:8px;white-space:nowrap}
.quality-photo-hint kbd{padding:5px 8px;border-radius:7px;background:#dbe9e3;color:#14201d;font-weight:950;box-shadow:0 2px 0 #8ca29a;font-size:11px}
.quality-menu-icon{font-size:17px;line-height:1;width:20px;text-align:center;color:#b8d7cb}
.start-actions #openQualityFromStart{background:rgba(65,95,91,.78)}
body.photo-capturing{cursor:progress}
@media(max-width:760px){
  .quality-settings-card{padding:18px;max-height:calc(100vh - 22px);overflow:auto}
  .quality-profile-grid{grid-template-columns:1fr 1fr}
  .quality-current-row{grid-template-columns:1fr}
  .quality-photo-hint{white-space:normal}
}
@media(max-width:430px){.quality-profile-grid{grid-template-columns:1fr}.quality-profile-grid button{min-height:116px}}

/* v0.9.77 — seis categorias de zoneamento em grade 3x2. */
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons:not(.zone-grid-toggle-row){
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;
  max-width:246px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons:not(.zone-grid-toggle-row) button{
  width:76px!important;
  aspect-ratio:1/1!important;
  padding:6px!important;
  gap:5px!important;
  font-size:11px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] .zone-buttons:not(.zone-grid-toggle-row) button .ui-ico{
  width:21px!important;height:21px!important;
}
body.city-mode #toolPanel[data-active-tool="zone"] [data-zone-density]:disabled{
  opacity:.34!important;cursor:not-allowed!important;
}

/* v0.9.81 — direção manual e correção definitiva do ocultar UI. */
body.city-mode.ui-collapsed #tnInfoDock,
body.city-mode.ui-collapsed #classicLeftPanel{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body.city-mode #driveRandomVehicle.drive-random-vehicle{
  color:#d9f0e2;
  border-color:rgba(125,205,135,.24);
}
body.city-mode #driveRandomVehicle.drive-random-vehicle:hover{
  color:#fff;
  background:linear-gradient(180deg,rgba(70,135,81,.78),rgba(34,75,48,.78))!important;
  border-color:rgba(133,222,145,.52)!important;
}

body.city-mode .sim-inspect-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

/* v0.9.185 — painel de inspeção dimensionado pelo conteúdo. */
body.city-mode .sim-inspect-panel{
  left:62px!important;
  right:auto!important;
  top:72px!important;
  bottom:auto!important;
  height:auto!important;
  min-width:286px!important;
  max-width:min(440px,calc(100vw - 92px))!important;
  max-height:calc(100vh - 166px)!important;
  overflow:auto!important;
  padding:11px!important;
}
body.city-mode .sim-inspect-panel.inspect-compact{width:min(310px,calc(100vw - 92px))!important}
body.city-mode .sim-inspect-panel.inspect-medium{width:min(360px,calc(100vw - 92px))!important}
body.city-mode .sim-inspect-panel.inspect-tall{width:min(410px,calc(100vw - 92px))!important}
body.city-mode .sim-inspect-grid div{
  grid-template-columns:minmax(84px,auto) minmax(118px,1fr)!important;
  align-items:start!important;
}
body.city-mode .sim-inspect-actions{justify-content:flex-start!important}
body.city-mode .sim-inspect-actions button{flex:1 1 auto;min-width:88px;padding-inline:10px}
@media(max-width:900px){
  body.city-mode .sim-inspect-panel,
  body.city-mode .sim-inspect-panel.inspect-compact,
  body.city-mode .sim-inspect-panel.inspect-medium,
  body.city-mode .sim-inspect-panel.inspect-tall{
    left:10px!important;right:10px!important;top:62px!important;bottom:auto!important;width:auto!important;max-width:none!important;max-height:calc(100vh - 146px)!important
  }
}

/* === styles-ui-v0983.css === */
.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}@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-fixed-note{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:8px 10px;border:1px solid rgba(113,191,105,.2);border-radius:9px;background:rgba(113,191,105,.06);color:#e8f2ee;font-size:11px;box-sizing:border-box}.quality-fixed-note b{color:#b8e4cf}.quality-fixed-note span{text-align:right;color:#9eb4aa}
.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}

/* === styles-ui-v0984.css === */
/* SIMURBAN v0.9.284 — quatro tipos principais de via em grade 2×2. */
body.city-mode #toolPanel .road-main-presets{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

/* === styles-hotfix-v0920.css === */
.simulation-metrics-card{width:min(1180px,96vw);max-height:94vh;padding:24px 24px 20px}
.simulation-metrics-head{margin-bottom:14px}
.simulation-metrics-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 14px}
.simulation-metrics-summary>div{min-width:0;padding:11px 12px;border:1px solid rgba(141,202,178,.18);border-radius:12px;background:linear-gradient(150deg,rgba(79,132,105,.14),rgba(255,255,255,.035))}
.simulation-metrics-summary span{display:block;margin-bottom:4px;color:#8eaaa1;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.simulation-metrics-summary b{display:block;color:#e9f5f0;font-size:12px;line-height:1.35}
.simulation-metrics-table-wrap{max-height:min(62vh,680px);overflow:auto;border:1px solid #2a4147;border-radius:14px;background:#0c1519;scrollbar-gutter:stable}
.simulation-metrics-table{width:100%;min-width:820px;border-collapse:separate;border-spacing:0;color:#d9e5e1;font-size:12px;line-height:1.42}
.simulation-metrics-table thead th{position:sticky;top:0;z-index:3;padding:11px 13px;border-bottom:1px solid #39535a;background:#16242a;color:#a9c2ba;text-align:left;font-size:10px;font-weight:900;letter-spacing:.055em;text-transform:uppercase}
.simulation-metrics-table thead th:nth-child(1){width:18%}.simulation-metrics-table thead th:nth-child(2){width:50%}.simulation-metrics-table thead th:nth-child(3){width:32%}
.simulation-metrics-table tbody td{padding:11px 13px;border-bottom:1px solid rgba(112,143,151,.13);vertical-align:top}
.simulation-metrics-table tbody tr:not(.metrics-section-row):hover td{background:rgba(104,174,139,.055)}
.simulation-metrics-table tbody td:first-child{color:#9cd1b4;font-weight:900}
.simulation-metrics-table tbody td:nth-child(2){color:#c7d5d1}
.simulation-metrics-table tbody td:nth-child(3){color:#eef7f3}
.simulation-metrics-table tbody b{color:#fff;font-weight:900}
.simulation-metrics-table .metrics-section-row th{position:sticky;top:38px;z-index:2;padding:8px 13px;border-top:1px solid #37534a;border-bottom:1px solid #29423a;background:#183029;color:#82c8a0;text-align:left;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.simulation-metrics-note{margin:12px 2px 0;padding:10px 12px;border:1px solid rgba(109,166,139,.18);border-radius:10px;background:rgba(77,125,101,.10);color:#a9beb7;font-size:11px;line-height:1.5}
.simulation-metrics-note b{color:#cfe7da}
@media(max-width:860px){.simulation-metrics-summary{grid-template-columns:1fr 1fr}.simulation-metrics-card{padding:16px 12px}.simulation-metrics-table-wrap{max-height:65vh}}
@media(max-width:520px){.simulation-metrics-summary{grid-template-columns:1fr}.simulation-metrics-head h2{font-size:24px}}

/* === styles-ui-v0986.css === */
/* SIMURBAN 0.9.286 — correção de altura da ferramenta Estradas.
   A seção ativa era limitada a uma altura menor que o próprio painel e ainda
   recebia overflow:hidden do layout compacto, cortando os botões de Extras. */
body.city-mode #toolPanel[data-active-tool="road"]{
  max-height:calc(100vh - 126px)!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active{
  max-height:calc(100vh - 184px)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-bottom:12px!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group:has(.road-extra-grid){
  min-height:62px!important;
  align-self:start!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .road-extra-grid{
  min-height:34px!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .road-extra-grid button{
  min-height:32px!important;
  height:32px!important;
}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active::-webkit-scrollbar{width:8px}
body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active::-webkit-scrollbar-thumb{
  background:rgba(139,207,98,.42);
  border:2px solid transparent;
  border-radius:8px;
  background-clip:padding-box;
}

/* Em 768p/720p o conteúdo cabe sem sacrificar os botões ou sobrepor a bottombar. */
@media (max-height:800px) and (min-width:1101px){
  body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-section.active{
    gap:6px!important;
    padding:8px 8px 10px!important;
  }
  body.city-mode #toolPanel[data-active-tool="road"] .classic-tool-group{padding:7px!important}
  body.city-mode #toolPanel[data-active-tool="road"] .icon-choice{
    height:40px!important;
    min-height:40px!important;
  }
  body.city-mode #toolPanel[data-active-tool="road"] .speed-quick-buttons .icon-choice{
    height:42px!important;
    min-height:42px!important;
  }
}

/* === styles-ui-v0987.css === */
/* v0.10.10.10 — VLT independente + direção livre + cockpit */
.tmpe-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 7px;color:#dff7e9;font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.tmpe-section-title small{color:#8fa7af;font-size:10px;font-weight:700;letter-spacing:0;text-transform:none}
.tmpe-lane-card>div{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.tmpe-vlt-section{margin-top:12px;padding:10px;border:1px solid rgba(78,214,173,.36);border-radius:12px;background:linear-gradient(145deg,rgba(21,59,53,.72),rgba(9,25,29,.82))}
.tmpe-vlt-section .tmpe-section-title{margin:0 0 8px}
.tmpe-vlt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.tmpe-vlt-toggle{display:grid;gap:2px;min-height:45px;padding:8px 10px;border:1px solid #39535b;border-radius:9px;background:#142329;color:#d4e0e4;text-align:left;cursor:pointer}
.tmpe-vlt-toggle b{font-size:11px}.tmpe-vlt-toggle span{font-size:10px;color:#8fa7af}
.tmpe-vlt-toggle.active{border-color:#55e1b0;background:linear-gradient(145deg,#145744,#123b38);box-shadow:0 0 0 1px rgba(85,225,176,.14) inset}
.tmpe-vlt-toggle.active span{color:#aaf1d7}
.driver-hud{width:min(370px,calc(100vw - 30px));min-width:0!important;grid-template-columns:1fr auto!important;padding:14px 15px!important}
body.driver-mode .driver-pedals{display:grid!important}
.driver-controls-panel{grid-column:1/-1;display:grid;gap:7px;margin-top:3px;padding-top:9px;border-top:1px solid rgba(255,255,255,.14)}
.driver-controls-panel>b{color:#8df1bc;font-size:10px;letter-spacing:.12em}
.driver-controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;color:#bdc9cd;font-size:10px}
.driver-controls-grid span{display:flex;align-items:center;gap:4px;min-width:0}
.driver-controls-grid kbd{display:inline-grid;place-items:center;min-width:21px;height:19px;padding:0 5px;border:1px solid #60737a;border-bottom-width:2px;border-radius:5px;background:#1a292f;color:#fff;font:800 9px/1 Arial,sans-serif;box-shadow:0 1px 0 #0007}
@media(max-width:620px){.driver-hud{right:12px!important;bottom:12px!important;width:calc(100vw - 24px)}.driver-controls-grid{grid-template-columns:1fr 1fr}}

/* MOVEBR 0.10.10.25 — mobilidade visual e iluminação reforçada */
.transit-line-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}
.transit-line-meta span,.transit-line-kpis article{padding:8px 9px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.045);color:#dbe8e1;font-size:10px;font-weight:800;text-align:center}
.transit-line-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.transit-line-kpis article small{display:block;color:#9fb4aa;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.transit-line-kpis article b{display:block;margin-top:3px;color:#fff;font-size:12px}
.owned-fleet-filters{display:grid;gap:8px;margin-top:8px}
.owned-fleet-assignment-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.owned-fleet-assignment-row button,.tmpe-speed-grid button,.tmpe-stepper button{height:32px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);color:#eef6f0;font-size:11px;font-weight:900;cursor:pointer}
.owned-fleet-assignment-row button.active,.tmpe-speed-grid button.active{background:linear-gradient(180deg,rgba(143,211,107,.30),rgba(67,112,55,.25));border-color:rgba(143,211,107,.44)}
.fleet-search{margin:0!important}
body.city-mode #toolPanel[data-active-tool="vehicles"] .owned-fleet-list{max-height:calc(100vh - 420px)!important;overflow:auto!important;padding-right:4px}
body.city-mode #toolPanel[data-active-tool="vehicles"] .fleet-vehicle-row{grid-template-columns:auto minmax(0,1fr) auto!important;align-items:start!important}
.fleet-vehicle-main{display:grid;gap:4px;min-width:0}
.fleet-finance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:2px}
.fleet-finance span{padding:7px 8px;border-radius:9px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);font-size:10px;line-height:1.2}
.fleet-finance .profit b{color:#7cf0a6}.fleet-finance .loss b{color:#ffb0a7}
body.city-mode #toolPanel[data-active-tool="lines"] .lines-layout{grid-template-columns:minmax(280px,.92fr) minmax(380px,1.08fr)!important}
body.city-mode #toolPanel[data-active-tool="lines"] .transit-line-list{max-height:230px!important}
body.city-mode #toolPanel .transit-line-card{grid-template-columns:12px minmax(0,1fr) auto auto!important;gap:3px 8px!important}
body.city-mode #toolPanel .transit-line-card>b,body.city-mode #toolPanel .transit-line-card>span{grid-column:2!important}
body.city-mode #toolPanel .transit-line-card .line-rename-button{grid-column:3;grid-row:1/3;align-self:center}
body.city-mode #toolPanel .transit-line-card .line-overlay-toggle{grid-column:4;grid-row:1/3;align-self:center}
.tmpe-speed-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.tmpe-lane-count-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.tmpe-stepper{display:grid;grid-template-columns:32px 1fr 32px;gap:6px;align-items:center}
.tmpe-stepper b{display:flex;align-items:center;justify-content:center;height:32px;border-radius:10px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.045);color:#fff;font-size:11px}
.tmpe-phase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.tmpe-phase-grid label{display:grid;gap:5px;color:#dce8e1;font-size:10px;font-weight:800}
.tmpe-priority-list button{cursor:pointer}
@media(max-width:900px){
  .transit-line-meta,.transit-line-kpis,.fleet-finance,.tmpe-phase-grid,.tmpe-speed-grid{grid-template-columns:1fr 1fr!important}
  .owned-fleet-assignment-row{grid-template-columns:1fr!important}
}

/* MOVEBR 0.10.10.26 — gerenciamento separado de linhas e veículos */
body.start-mode #transitManagementPanel,
body.generator-mode #transitManagementPanel,
body.city-mode.ui-collapsed #transitManagementPanel,
body.driver-mode #transitManagementPanel{display:none!important}

body.city-mode #transitManagementPanel.transit-management-panel{
  position:fixed!important;
  left:62px!important;
  top:58px!important;
  right:auto!important;
  bottom:auto!important;
  display:flex!important;
  flex-direction:column!important;
  width:min(850px,calc(100vw - 250px))!important;
  min-width:620px!important;
  max-width:calc(100vw - 250px)!important;
  max-height:calc(100vh - 138px)!important;
  overflow:hidden!important;
  padding:0!important;
  border:1px solid rgba(214,232,226,.16)!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,rgba(8,18,20,.985),rgba(7,14,16,.97))!important;
  box-shadow:0 24px 68px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.055)!important;
  backdrop-filter:blur(16px)!important;
  transform:none!important;
  z-index:698!important;
}
body.city-mode #transitManagementPanel.transit-management-panel.hidden{display:none!important}
.transit-management-head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  min-height:58px;padding:9px 12px 9px 16px;box-sizing:border-box;
  border-bottom:1px solid rgba(255,255,255,.09);background:rgba(13,26,26,.96)
}
.transit-management-head>div{display:grid;gap:3px;min-width:0}
.transit-management-head b{color:#f1f8f3;font-size:14px;letter-spacing:.045em}
.transit-management-head span{color:#93aaa0;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.transit-management-head button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:rgba(255,255,255,.055);color:#eaf4ef;cursor:pointer}
.transit-management-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.075);background:rgba(255,255,255,.02)}
.transit-management-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;height:36px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:rgba(255,255,255,.045);color:#cbd9d2;font-size:11px;font-weight:900;cursor:pointer}
.transit-management-tabs button.active{border-color:rgba(143,211,107,.48);background:linear-gradient(180deg,rgba(101,161,80,.35),rgba(45,92,53,.34));color:#f4fff6}
.transit-management-tabs .ui-ico,.transit-management-head .ui-ico{width:17px;height:17px}
.transit-management-body{min-height:0;overflow:hidden;padding:12px;box-sizing:border-box}
.transit-manager-section{display:none;min-height:0;max-height:calc(100vh - 278px);overflow:auto;padding-right:3px;box-sizing:border-box}
.transit-manager-section.active{display:block}
.transit-management-panel .lines-layout{display:grid!important;grid-template-columns:minmax(260px,.86fr) minmax(360px,1.14fr)!important;gap:12px!important;align-items:start!important}
.transit-management-panel .lines-pane{min-width:0;padding:11px;border:1px solid rgba(255,255,255,.09);border-radius:13px;background:rgba(255,255,255,.035)}
.transit-management-panel .lines-pane-head{display:grid;gap:2px;margin-bottom:9px}
.transit-management-panel .lines-pane-head b{color:#eef8f1;font-size:12px}
.transit-management-panel .lines-pane-head span{color:#8fa69c;font-size:9px}
.transit-management-panel .transit-mode-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px}
.transit-management-panel [data-line-manager-mode]{height:34px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:rgba(255,255,255,.05);color:#dce8e1;font-size:10px;font-weight:900;cursor:pointer}
.transit-management-panel [data-line-manager-mode].active{border-color:rgba(143,211,107,.46);background:rgba(91,147,72,.28);color:#f4fff4}
.transit-management-panel .manager-line-actions{display:grid;grid-template-columns:1fr;margin-bottom:8px}
.transit-management-panel .transit-line-list{max-height:calc(100vh - 400px)!important;min-height:185px!important;overflow:auto!important;padding-right:3px}
.transit-management-panel .transit-line-card{grid-template-columns:12px minmax(0,1fr) auto auto!important;gap:3px 8px!important}
.transit-management-panel .transit-line-card>b,.transit-management-panel .transit-line-card>span{grid-column:2!important}
.transit-management-panel .transit-line-card .line-rename-button{grid-column:3;grid-row:1/3;align-self:center}
.transit-management-panel .transit-line-card .line-overlay-toggle{grid-column:4;grid-row:1/3;align-self:center}
.transit-management-panel .transit-selected-row{display:grid;gap:10px}
.transit-management-panel #transitLineSummary{min-height:210px;max-height:calc(100vh - 365px);overflow:auto;padding-right:3px}
.manager-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:11px 12px;border:1px solid rgba(255,255,255,.09);border-radius:13px;background:rgba(255,255,255,.035)}
.manager-section-heading>div{display:grid;gap:3px;min-width:0}.manager-section-heading b{color:#eef8f1;font-size:12px}.manager-section-heading span{color:#91a69d;font-size:9px}
.manager-section-heading button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:156px;height:34px;border:1px solid rgba(143,211,107,.44);border-radius:10px;background:linear-gradient(180deg,rgba(96,158,76,.38),rgba(45,91,52,.34));color:#f2fff4;font-size:10px;font-weight:900;cursor:pointer}
.transit-management-panel .owned-fleet-list{max-height:calc(100vh - 448px)!important;min-height:180px!important;overflow:auto!important;padding-right:4px}
.transit-management-panel .fleet-vehicle-row{grid-template-columns:auto minmax(0,1fr) auto!important;align-items:start!important}

/* A barra inferior inicia ações; o gerenciamento fica na lateral. */
body.city-mode #toolPanel[data-active-tool="lines"]{width:min(430px,calc(100vw - 250px))!important;min-width:320px!important}
body.city-mode #toolPanel[data-active-tool="lines"] .line-creation-only{padding:13px!important}
body.city-mode #toolPanel[data-active-tool="lines"] .transit-create-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important}
body.city-mode #toolPanel[data-active-tool="lines"] .transit-draft-summary{display:grid;gap:3px;margin-top:9px;padding:9px 10px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.04)}
body.city-mode #toolPanel[data-active-tool="lines"] .transit-draft-summary b{color:#edf8f0;font-size:11px}
body.city-mode #toolPanel[data-active-tool="lines"] .transit-draft-summary span{color:#93a99f;font-size:9px}
body.city-mode #bottombar [data-tool="lines"],body.city-mode #bottombar [data-tool="vehicles"]{width:82px!important;min-width:82px!important;flex-basis:82px!important}
body.city-mode #bottombar [data-tool="lines"] .tool-label,body.city-mode #bottombar [data-tool="vehicles"] .tool-label{white-space:nowrap;font-size:8px!important}

/* Catálogo de compra independente da antiga tela combinada. */
body.city-mode #transitFleetPanel.transit-fleet-panel{z-index:699!important}
body.city-mode.fleet-purchase-layout #transitFleetPanel.transit-fleet-panel{
  display:block!important;left:50%!important;right:auto!important;top:70px!important;bottom:auto!important;
  width:min(720px,calc(100vw - 140px))!important;max-width:720px!important;
  max-height:calc(100vh - 150px)!important;transform:translateX(-50%)!important
}
body.city-mode #transitFleetPanel .transit-fleet-body{max-height:calc(100vh - 225px)!important}
body.city-mode #transitFleetPanel .fleet-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}

/* Paradas com várias linhas podem gerar muitos detalhes. */
body.city-mode #inspectPanel[data-inspect-kind="stop"]{max-height:calc(100vh - 145px)!important;overflow:hidden!important}
body.city-mode #inspectPanel[data-inspect-kind="stop"] .sim-inspect-grid{max-height:calc(100vh - 315px)!important;overflow:auto!important;padding-right:4px}

@media(max-width:1050px){
  body.city-mode #transitManagementPanel.transit-management-panel{width:calc(100vw - 82px)!important;max-width:calc(100vw - 82px)!important;min-width:0!important}
  .transit-management-panel .lines-layout{grid-template-columns:1fr 1fr!important}
}
@media(max-width:760px){
  body.city-mode #transitManagementPanel.transit-management-panel{left:8px!important;right:8px!important;top:56px!important;width:auto!important;max-width:none!important;max-height:calc(100vh - 132px)!important}
  .transit-management-panel .lines-layout{grid-template-columns:1fr!important}
  .transit-manager-section{max-height:calc(100vh - 270px)}
  .transit-management-panel .transit-line-list,.transit-management-panel #transitLineSummary,.transit-management-panel .owned-fleet-list{max-height:240px!important}
  body.city-mode.fleet-purchase-layout #transitFleetPanel.transit-fleet-panel{left:8px!important;right:8px!important;top:62px!important;width:auto!important;max-width:none!important;transform:none!important}
  body.city-mode #transitFleetPanel .fleet-catalog-grid{grid-template-columns:1fr!important}
  .manager-section-heading{align-items:stretch;flex-direction:column}.manager-section-heading button{width:100%}
}

/* Base de polimento das janelas de transporte, mantida na build MOVEBR 0.10.10.30. */
body.city-mode #transitManagementPanel.transit-management-panel{
  width:min(980px,calc(100vw - 180px))!important;
  max-width:calc(100vw - 180px)!important;
  height:min(780px,calc(100vh - 132px))!important;
  max-height:calc(100vh - 132px)!important
}
.transit-management-body{display:flex;flex:1;min-height:0}
.transit-manager-section{width:100%;height:100%;max-height:none!important}
.transit-management-panel .lines-layout{height:100%;grid-template-columns:minmax(310px,.84fr) minmax(450px,1.16fr)!important}
.transit-management-panel .lines-pane{display:flex;flex-direction:column;min-height:0}
.transit-management-panel .transit-line-list{flex:1;max-height:none!important;min-height:220px!important}
.transit-management-panel #transitLineSummary{flex:1;max-height:none!important;min-height:0!important}
.transit-management-panel .owned-fleet-list{max-height:none!important;min-height:220px!important}
.transit-operation-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.transit-operation-kpis article{min-width:0;padding:7px 6px;border:1px solid rgba(255,255,255,.09);border-radius:9px;background:rgba(255,255,255,.04);text-align:center}
.transit-operation-kpis small{display:block;color:#91a79d;font-size:8px;font-weight:900;text-transform:uppercase}
.transit-operation-kpis b{display:block;margin-top:3px;color:#f2f8f4;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profit{color:#79e9a0!important}.loss{color:#ffaaa1!important}
.transit-management-panel .owned-fleet-summary{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;background:none!important;border:0!important;padding:0!important}
.transit-management-panel .owned-fleet-summary article{padding:8px 9px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.045);min-width:0}
.transit-management-panel .owned-fleet-summary article span{display:block;color:#91a69d;font-size:8px;font-weight:900;text-transform:uppercase}
.transit-management-panel .owned-fleet-summary article b{display:block;margin-top:3px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.city-mode.fleet-purchase-layout #transitFleetPanel.transit-fleet-panel{
  width:min(920px,calc(100vw - 110px))!important;max-width:920px!important;
  height:min(790px,calc(100vh - 126px))!important;max-height:calc(100vh - 126px)!important
}
body.city-mode #transitFleetPanel .transit-fleet-body{height:calc(100% - 55px);max-height:none!important;box-sizing:border-box}
body.city-mode #transitFleetPanel .fleet-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-height:none!important}
body.city-mode #transitFleetPanel .purchase-destination-row{grid-template-columns:auto minmax(230px,1fr)!important;align-items:center!important}
body.city-mode #transitFleetPanel .purchase-destination-row select{height:34px;min-width:0;border:1px solid rgba(255,255,255,.13);border-radius:9px;background:#102019;color:#eef7f1;padding:0 9px;font-size:10px;font-weight:800}
.purchase-destination-status{grid-column:1/-1;color:#91aa9e!important;font-size:9px!important;font-weight:700!important;white-space:normal!important}
.fleet-catalog-specs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.fleet-catalog-specs span{min-width:0;padding:6px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.035)}
.fleet-catalog-specs small{display:block;color:#8fa69b;font-size:8px;text-transform:uppercase;font-weight:900}
.fleet-catalog-specs b{display:block;margin-top:2px!important;font-size:9px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fleet-requirement{color:#9fc9b0;font-size:9px;font-weight:800}
@media(max-width:1050px){
  body.city-mode #transitManagementPanel.transit-management-panel{width:calc(100vw - 82px)!important;max-width:calc(100vw - 82px)!important}
  .transit-management-panel .lines-layout{grid-template-columns:minmax(270px,.9fr) minmax(390px,1.1fr)!important}
}
@media(max-width:760px){
  body.city-mode #transitManagementPanel.transit-management-panel{width:auto!important;max-width:none!important;height:calc(100vh - 128px)!important}
  .transit-management-panel .lines-layout{height:auto;grid-template-columns:1fr!important}
  .transit-operation-kpis,.transit-management-panel .owned-fleet-summary,.fleet-catalog-specs{grid-template-columns:1fr 1fr!important}
  body.city-mode.fleet-purchase-layout #transitFleetPanel.transit-fleet-panel{width:auto!important;max-width:none!important;height:calc(100vh - 120px)!important}
}

/* === styles-ui-v0988.css === */
/* MOVEBR 0.10.10.30 — densidade confortável para operação prolongada. */
:root{--compact-gap:6px;--compact-radius:8px}

/* Janelas de gerenciamento: cabeçalho fixo e apenas a lista longa rola. */
body.city-mode #transitManagementPanel.transit-management-panel{
  width:min(840px,calc(100vw - 150px))!important;
  max-width:calc(100vw - 150px)!important;
  height:min(640px,calc(100vh - 118px))!important;
  max-height:calc(100vh - 118px)!important;
  border-radius:12px!important
}
.transit-management-head{min-height:44px!important;padding:6px 9px 6px 12px!important}
.transit-management-head b{font-size:12px!important}.transit-management-head span{font-size:9px!important}
.transit-management-head button{width:28px!important;height:28px!important;border-radius:7px!important}
.transit-management-tabs{gap:5px!important;padding:6px 8px!important}
.transit-management-tabs button{height:30px!important;border-radius:8px!important;font-size:10px!important}
.transit-management-body{padding:8px!important}
.transit-management-panel .lines-layout{grid-template-columns:minmax(250px,.78fr) minmax(390px,1.22fr)!important;gap:8px!important}
.transit-management-panel .lines-pane{padding:8px!important;border-radius:10px!important}
.transit-management-panel .lines-pane-head{margin-bottom:6px!important}.transit-management-panel .lines-pane-head b{font-size:11px!important}
.transit-management-panel .transit-mode-row{gap:5px!important;margin-bottom:6px!important}
.transit-management-panel [data-line-manager-mode]{height:29px!important;border-radius:7px!important;font-size:9px!important}
.transit-management-panel .manager-line-actions{margin-bottom:5px!important}.transit-management-panel .manager-line-actions button{height:28px!important}
.transit-filter{height:29px!important;min-height:29px!important;padding:0 8px!important;font-size:10px!important;border-radius:7px!important}
.transit-line-meta{gap:4px!important;margin-top:5px!important}.transit-line-meta span{padding:5px!important;border-radius:7px!important;font-size:8px!important}
.transit-management-panel .transit-line-list{min-height:150px!important}
.transit-management-panel .transit-line-card{min-height:42px!important;padding:6px!important;border-radius:8px!important;gap:2px 6px!important}
.transit-management-panel .transit-line-card>b{font-size:10px!important}.transit-management-panel .transit-line-card>span{font-size:8px!important;line-height:1.2!important}
.transit-management-panel .line-rename-button{height:25px!important;padding:0 6px!important;font-size:8px!important}.transit-management-panel .line-overlay-toggle{width:25px!important;height:25px!important}
.transit-management-panel .transit-selected-row{gap:6px!important}.transit-management-panel .line-color-control{min-height:28px!important}
#transitLineSummary .transit-fare-box{gap:4px!important}#transitLineSummary .transit-fare-box>b{font-size:11px!important}#transitLineSummary .transit-fare-box>span{font-size:8px!important;line-height:1.25!important}
#transitLineSummary .transit-fare-box label{font-size:8px!important;grid-template-columns:1fr 64px!important;gap:5px!important}#transitLineSummary .transit-fare-box input{height:25px!important;font-size:9px!important}
.transit-line-kpis,.transit-operation-kpis{gap:4px!important}.transit-line-kpis article,.transit-operation-kpis article{padding:4px!important;border-radius:7px!important}.transit-line-kpis article small,.transit-operation-kpis small{font-size:7px!important}.transit-line-kpis article b,.transit-operation-kpis b{font-size:9px!important;margin-top:1px!important}
.transit-stop-list-head{margin-top:3px!important;padding-top:4px!important}.transit-stop-row{min-height:34px!important;padding:4px 5px!important;gap:5px!important}.transit-stop-row b{font-size:8px!important}.transit-stop-row span small{font-size:7px!important}.transit-stop-row button{height:24px!important;font-size:8px!important}

/* Frota: toolbar e ações ficam visíveis; somente os veículos rolam. */
.manager-section-heading{margin-bottom:6px!important;padding:7px 8px!important;border-radius:9px!important}.manager-section-heading b{font-size:11px!important}.manager-section-heading span{font-size:8px!important}.manager-section-heading button{min-width:132px!important;height:29px!important;border-radius:7px!important;font-size:9px!important}
.transit-management-panel .owned-fleet-toolbar{gap:5px!important}.transit-management-panel .owned-fleet-toolbar button{height:29px!important;font-size:9px!important}
.transit-management-panel .owned-fleet-summary{gap:4px!important}.transit-management-panel .owned-fleet-summary article{padding:5px 6px!important;border-radius:7px!important}.transit-management-panel .owned-fleet-summary article span{font-size:7px!important}.transit-management-panel .owned-fleet-summary article b{font-size:9px!important;margin-top:1px!important}
.owned-fleet-filters{gap:5px!important;margin-top:5px!important}.owned-fleet-assignment-row{gap:5px!important}.owned-fleet-assignment-row button{height:27px!important;border-radius:7px!important;font-size:9px!important}
.owned-fleet-bulk{gap:5px!important;margin:5px 0!important;padding:5px!important;border-radius:8px!important}.owned-fleet-bulk-selection,.owned-fleet-bulk-assignment{gap:5px!important}.owned-fleet-bulk button,.owned-fleet-bulk select{height:27px!important;border-radius:7px!important;font-size:9px!important}.owned-fleet-bulk-selection b{font-size:8px!important}
.transit-management-panel .owned-fleet-list{min-height:150px!important;gap:4px!important}
.transit-management-panel .fleet-vehicle-row{gap:5px!important;padding:6px!important;border-radius:8px!important;align-items:center!important}.fleet-vehicle-main{gap:2px!important}.fleet-vehicle-row b{font-size:10px!important}.fleet-vehicle-row span,.fleet-vehicle-row em{font-size:8px!important}.fleet-finance{gap:3px!important}.fleet-finance span{padding:3px 4px!important;border-radius:6px!important;font-size:7px!important}.fleet-row-actions{gap:4px!important}.fleet-row-actions select,.fleet-row-actions button{height:26px!important;font-size:8px!important;border-radius:7px!important}

/* Compra: catálogo mais curto, em três colunas quando houver largura. */
body.city-mode.fleet-purchase-layout #transitFleetPanel.transit-fleet-panel{
  width:min(840px,calc(100vw - 100px))!important;max-width:840px!important;
  height:min(650px,calc(100vh - 110px))!important;max-height:calc(100vh - 110px)!important;
  border-radius:12px!important
}
body.city-mode #transitFleetPanel .tool-panel-head{min-height:42px!important;padding:7px 9px!important;margin:0!important}
body.city-mode #transitFleetPanel .transit-fleet-body{height:calc(100% - 42px)!important;padding:8px!important;overflow:hidden!important}
body.city-mode #transitFleetPanel .fleet-mode-row{gap:5px!important;margin-bottom:5px!important}body.city-mode #transitFleetPanel .fleet-mode-row button{height:29px!important;font-size:9px!important}
body.city-mode #transitFleetPanel .purchase-destination-row{padding:5px 7px!important;gap:5px!important;border-radius:8px!important}body.city-mode #transitFleetPanel .purchase-destination-row select{height:28px!important}
body.city-mode #transitFleetPanel #transitFleetMount{min-height:0!important;height:calc(100% - 89px)!important;overflow:auto!important;padding-right:3px!important}
body.city-mode #transitFleetPanel .fleet-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important}
body.city-mode #transitFleetPanel .fleet-catalog-card{padding:6px!important;border-radius:8px!important;gap:3px!important}.fleet-catalog-card>b{font-size:10px!important}.fleet-catalog-card>span,.fleet-catalog-card>p,.fleet-catalog-card>em{font-size:8px!important;line-height:1.18!important}.fleet-catalog-specs{grid-template-columns:1fr 1fr!important;gap:3px!important}.fleet-catalog-specs span{padding:3px!important;border-radius:5px!important}.fleet-card-actions button{height:25px!important;font-size:8px!important;border-radius:6px!important}

/* Demais janelas e cartões: mesma escala tipográfica e menos rolagem. */
body.city-mode #toolPanel.tool-panel{border-radius:11px!important;padding:8px 9px!important}
body.city-mode #toolPanel .tool-panel-head{padding-bottom:6px!important;margin-bottom:6px!important}.tool-panel-close{width:27px!important;height:27px!important}.tool-hint{margin-top:6px!important;padding:5px 6px!important;border-radius:7px!important;font-size:9px!important;line-height:1.25!important}
.classic-choice-grid{gap:5px!important}.classic-choice-grid button{min-height:28px!important;height:auto!important;padding:4px 6px!important;border-radius:7px!important;font-size:9px!important}
.special-building-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.special-building-grid button{display:flex!important;align-items:center!important;justify-content:center!important;gap:4px!important}.special-building-grid .ui-ico{width:15px!important;height:15px!important}
.tn-info-panel{width:min(360px,calc(100vw - 28px))!important;max-height:calc(100vh - 130px)!important}.info-panel-header{min-height:38px!important}.info-panel-body{padding:7px!important}.info-card,.report-card,.event-card{padding:7px!important;border-radius:8px!important}
.sim-inspect-grid>div{min-height:25px!important;padding:3px 5px!important}.sim-inspect-grid b,.sim-inspect-grid span{font-size:8px!important}.sim-inspect-actions button{height:27px!important;font-size:8px!important}

/* Ícones novos são bicolores; o estado ativo ganha brilho sem recolorir tudo. */
.ui-ico .ui-icon-color{overflow:visible}.active>.ui-ico .ui-icon-color,.active .ui-ico .ui-icon-color{filter:brightness(1.18) saturate(1.12) drop-shadow(0 0 3px rgba(126,231,223,.28))}

@media(max-width:1050px){
  body.city-mode #transitManagementPanel.transit-management-panel{width:calc(100vw - 76px)!important;max-width:calc(100vw - 76px)!important}
  .transit-management-panel .lines-layout{grid-template-columns:minmax(230px,.82fr) minmax(340px,1.18fr)!important}
  body.city-mode #transitFleetPanel .fleet-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  body.city-mode #transitManagementPanel.transit-management-panel{width:auto!important;max-width:none!important;height:calc(100vh - 112px)!important}
  .transit-management-panel .lines-layout{grid-template-columns:1fr!important;height:auto!important}.transit-manager-section{overflow:auto!important}
  body.city-mode.fleet-purchase-layout #transitFleetPanel.transit-fleet-panel{width:auto!important;max-width:none!important;height:calc(100vh - 102px)!important}
  body.city-mode #transitFleetPanel .fleet-catalog-grid{grid-template-columns:1fr!important}
  .special-building-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

