/* nx_overrides_apple_starlink_v1.css
   Objetivo:
   - "polish" final sem reescrever páginas
   - vencer Tabler defaults (navbar/tables/forms)
   - NOC sem cards brancos, tudo dark premium
*/

/* ===== Base tokens (dark SpaceX/Starlink) ===== */
:root{
  --nx-ink: rgba(255,255,255,.92);
  --nx-muted: rgba(255,255,255,.62);
  --nx-line: rgba(255,255,255,.10);
  --nx-line2: rgba(255,255,255,.14);

  --nx-bg0: #05070b;
  --nx-bg1: #070a10;

  --nx-surface: rgba(255,255,255,.06);
  --nx-surface2: rgba(255,255,255,.08);

  --nx-glass: rgba(10,12,16,.58);
  --nx-glass2: rgba(10,12,16,.36);

  --nx-accent: #2d6bff;          /* azul limpo, não neon */
  --nx-accent2: #86a7ff;
  --nx-ok: #28d17c;
  --nx-warn: #f7c948;
  --nx-bad: #ff4d5e;

  --nx-r: 14px;
  --nx-r2: 18px;

  --nx-shadow: 0 18px 44px rgba(0,0,0,.45);
  --nx-shadow2: 0 10px 26px rgba(0,0,0,.32);
}

/* ===== Fundo e tipografia ===== */
html, body{
  color: var(--nx-ink) !important;
  background:
    radial-gradient(900px 520px at 18% 18%, rgba(45,107,255,.16), transparent 55%),
    radial-gradient(720px 520px at 82% 24%, rgba(134,167,255,.10), transparent 55%),
    radial-gradient(900px 620px at 50% 100%, rgba(40,209,124,.06), transparent 60%),
    linear-gradient(180deg, var(--nx-bg0), var(--nx-bg1)) !important;
}

body, button, input, select, textarea{
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter",
               "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

/* ===== Topbar: matar o “cinza claro” ===== */
header.navbar,
.nx-topbar{
  background: rgba(10,12,16,.62) !important;
  border-bottom: 1px solid var(--nx-line) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.nx-topbar .container-xl,
.nx-topbar-inner{
  max-width: 1440px;
}

.nx-brand h1{ color: rgba(255,255,255,.92) !important; }
.nx-brand .sub{ color: rgba(255,255,255,.60) !important; }

/* Links da navbar (sutil, Apple-like) */
.navbar .nav-link,
.nx-nav .nav-link{
  color: rgba(255,255,255,.78) !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  padding: 10px 12px !important;
  background: transparent !important;
}

.navbar .nav-link:hover,
.nx-nav .nav-link:hover{
  color: rgba(255,255,255,.92) !important;
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.08) !important;
}

.navbar .nav-link[aria-current="page"],
.nx-nav .nav-link[aria-current="page"]{
  color: rgba(255,255,255,.94) !important;
  background: rgba(45,107,255,.12) !important;
  border-color: rgba(45,107,255,.28) !important;
  box-shadow: 0 10px 18px rgba(0,0,0,.22);
}

/* “chip admin” e similares */
.nx-chip{
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  color: rgba(255,255,255,.86) !important;
}

/* ===== Forms (inputs/selects): matar branco ===== */
.form-control, .form-select,
.nx-input, .nx-select, input, select, textarea{
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  color: rgba(255,255,255,.90) !important;
  border-radius: 12px !important;
}

.form-control::placeholder, .nx-input::placeholder{
  color: rgba(255,255,255,.45) !important;
}

.form-control:focus, .form-select:focus,
.nx-input:focus, .nx-select:focus{
  outline: none !important;
  box-shadow: 0 0 0 4px rgba(45,107,255,.18) !important;
  border-color: rgba(45,107,255,.38) !important;
}

/* ===== Cards ===== */
.card, .nx-card{
  background: linear-gradient(180deg, rgba(10,12,16,.56), rgba(10,12,16,.34)) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 18px !important;
  box-shadow: var(--nx-shadow2) !important;
}

/* ===== Tabelas: matar thead branco / fundo branco ===== */
.table, table, .nx-table{
  color: rgba(255,255,255,.88) !important;
}

.table thead th, table thead th, .nx-table thead th{
  background: rgba(255,255,255,.04) !important;
  color: rgba(255,255,255,.70) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
}

.table tbody td, table tbody td, .nx-table tbody td{
  background: transparent !important;
  border-top: 1px solid rgba(255,255,255,.06) !important;
}

.table tbody tr:hover td, table tbody tr:hover td{
  background: rgba(255,255,255,.04) !important;
}

/* ===== NOC: remover “cards brancos” das métricas ===== */
.nx-noc-grid{
  gap: 18px !important;
}

.nx-noc-card{
  background: linear-gradient(180deg, rgba(10,12,16,.62), rgba(10,12,16,.38)) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 20px !important;
  box-shadow: var(--nx-shadow2) !important;
}

.nx-noc-card .nx-metric{
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 14px !important;
}

.nx-noc-card .nx-metric .k{
  color: rgba(255,255,255,.55) !important;
}

.nx-noc-card .nx-metric .v{
  color: rgba(255,255,255,.92) !important;
}

.nx-noc-card-foot{
  border-top: 1px solid rgba(255,255,255,.08) !important;
}

.nx-link, a{
  color: rgba(140,175,255,.92) !important;
}

.nx-link:hover, a:hover{
  color: rgba(190,210,255,.98) !important;
  text-decoration: none !important;
}

/* ===== Toggle de tema: discreto ===== */
#nxThemeToggle{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 9999;
  border-radius: 999px;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(10,12,16,.55);
  color: rgba(255,255,255,.85);
  box-shadow: 0 12px 26px rgba(0,0,0,.35);
}
#nxThemeToggle:hover{
  background: rgba(255,255,255,.08);
  border-color: rgba(45,107,255,.28);
}

/* ===== Scrollbar (opcional) ===== */
*::-webkit-scrollbar{ height: 10px; width: 10px; }
*::-webkit-scrollbar-thumb{ background: rgba(255,255,255,.12); border-radius: 999px; }
*::-webkit-scrollbar-thumb:hover{ background: rgba(255,255,255,.18); }


/* NX_VISUAL_HOTFIX_V2
   Alvos:
   - Tabler navbar (evitar cinza claro)
   - nav-link.active (pílula azul agressiva)
   - NOC métricas brancas (forçar dark/glass)
   - tabelas (thead branco / bg branco)
*/

/* Força esquema dark para componentes nativos */
:root{ color-scheme: dark; }

/* ===== Tabler variables (muito eficaz contra defaults) ===== */
:root{
  --tblr-body-bg: transparent;
  --tblr-bg-surface: transparent;
  --tblr-bg-surface-secondary: transparent;

  --tblr-navbar-bg: rgba(10,12,16,.62);
  --tblr-navbar-border-color: rgba(255,255,255,.10);

  --tblr-card-bg: rgba(10,12,16,.44);
  --tblr-card-cap-bg: rgba(10,12,16,.44);
  --tblr-border-color: rgba(255,255,255,.10);

  --tblr-table-bg: transparent;
  --tblr-table-striped-bg: rgba(255,255,255,.03);
  --tblr-table-hover-bg: rgba(255,255,255,.04);
}

/* ===== Navbar: matar qualquer “light skin” ===== */
.navbar,
header.navbar,
.nx-topbar{
  background: rgba(10,12,16,.62) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
}

/* Tabler às vezes pinta containers internos */
.navbar .container,
.navbar .container-fluid,
.navbar .container-xl{
  background: transparent !important;
}

/* Links: neutralizar estado active do Tabler/Bootstrap */
.navbar .nav-link,
.nx-nav .nav-link{
  background: transparent !important;
  border-color: transparent !important;
}

.navbar .nav-link.active,
.navbar .nav-link:active,
.navbar .nav-link[aria-current="page"],
.nx-nav .nav-link.active,
.nx-nav .nav-link:active,
.nx-nav .nav-link[aria-current="page"]{
  background: rgba(45,107,255,.12) !important;
  border: 1px solid rgba(45,107,255,.28) !important;
  color: rgba(255,255,255,.94) !important;
  box-shadow: 0 10px 18px rgba(0,0,0,.22) !important;
}

/* Evitar “chip/pílula” clara aplicada em UL/LI */
.navbar-nav,
.navbar-nav .nav-item{
  background: transparent !important;
}

/* ===== Tabelas: matar thead branco + backgrounds ===== */
.table,
table,
.nx-table{
  background: transparent !important;
}

.table thead,
table thead,
.nx-table thead{
  background: rgba(255,255,255,.04) !important;
}

.table thead th,
table thead th,
.nx-table thead th{
  background: rgba(255,255,255,.04) !important;
  color: rgba(255,255,255,.70) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
}

.table-responsive,
.table-responsive *{
  background-color: transparent !important;
}

/* Alguns layouts do Tabler usam .card-table */
.card-table thead th{
  background: rgba(255,255,255,.04) !important;
}

/* ===== NOC: “cards brancos” (aumentar especificidade) ===== */
.nx-page.nx-noc-v6e4 .nx-noc-card,
.nx-page.nx-noc-v6e5 .nx-noc-card{
  background: linear-gradient(180deg, rgba(10,12,16,.64), rgba(10,12,16,.38)) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
}

.nx-page.nx-noc-v6e4 .nx-noc-card .nx-metric,
.nx-page.nx-noc-v6e5 .nx-noc-card .nx-metric,
.nx-page.nx-noc-v6e4 .nx-noc-card .nx-noc-metrics .nx-metric,
.nx-page.nx-noc-v6e5 .nx-noc-card .nx-noc-metrics .nx-metric{
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  color: rgba(255,255,255,.92) !important;
}

/* Se algum CSS antigo pintou “branco” via background-color */
.nx-page.nx-noc-v6e4 .nx-noc-card .nx-metric *,
.nx-page.nx-noc-v6e5 .nx-noc-card .nx-metric *{
  background: transparent !important;
}

/* Rodapé do card */
.nx-noc-card-foot{
  border-top: 1px solid rgba(255,255,255,.08) !important;
}


/* NX_VISUAL_HOTFIX_V3
   Alvos:
   - Card/surface/tabler (evitar branco persistente)
   - Inputs/selects/tabler forms
   - Dropdown/menu/tabler
   - Table wrappers (table-responsive/card-table)
   - Navbar toggler/ícones (quando ficam “claros”)
*/

/* ===== Surfaces: matar branco em cards/tabler ===== */
.card,
.card-header,
.card-body,
.card-footer{
  background: rgba(10,12,16,.44) !important;
  border-color: rgba(255,255,255,.10) !important;
  color: rgba(255,255,255,.92) !important;
}

.card-header{
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
}
.card-footer{
  border-top: 1px solid rgba(255,255,255,.08) !important;
}

/* wrappers comuns do Tabler */
.page-wrapper,
.page-body{
  background: transparent !important;
}

/* ===== Forms: inputs/selects dark premium ===== */
.form-control,
.form-select,
.input-group-text{
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
}

.form-control::placeholder{
  color: rgba(255,255,255,.45) !important;
}

.form-control:focus,
.form-select:focus{
  box-shadow: 0 0 0 .2rem rgba(45,107,255,.12) !important;
  border-color: rgba(45,107,255,.35) !important;
}

/* ===== Dropdown / menus ===== */
.dropdown-menu{
  background: rgba(10,12,16,.92) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.92) !important;
}
.dropdown-item{
  color: rgba(255,255,255,.88) !important;
}
.dropdown-item:hover{
  background: rgba(255,255,255,.06) !important;
}

/* ===== Tables: wrapper do Tabler costuma “clarear” ===== */
.table-responsive{
  background: transparent !important;
}
.table-responsive .card-table,
.table-responsive .table{
  background: transparent !important;
}

/* se existir “barra branca” no topo da tabela */
.card-table thead,
.card-table thead tr,
.card-table thead th{
  background: rgba(255,255,255,.04) !important;
}

/* ===== Navbar toggler (ícone e botão) ===== */
.navbar-toggler{
  border-color: rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.04) !important;
}
.navbar-toggler-icon{
  filter: invert(1) opacity(.85);
}

/* ===== NOC: reforço extra para qualquer bloco que insiste em branco ===== */
.nx-page.nx-noc-v6e4 .nx-noc-card .nx-metric,
.nx-page.nx-noc-v6e5 .nx-noc-card .nx-metric{
  background-color: rgba(255,255,255,.06) !important;
}


/* NX_VISUAL_HOTFIX_V4
   Alvos:
   - MapLibre/Mapbox controls (zoom/compass/attrib) no tema dark/glass
   - Dock esquerdo/painel contexto do mapa (seletor amplo porém seguro)
   - Refinos finais de forms/tables para evitar “cinza claro”
*/

/* ====== MapLibre / Mapbox Controls ====== */
.maplibregl-ctrl-group,
.mapboxgl-ctrl-group{
  background: rgba(10,12,16,.62) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 18px 40px rgba(0,0,0,.45) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  overflow: hidden !important;
}

.maplibregl-ctrl-group button,
.mapboxgl-ctrl-group button{
  background: transparent !important;
  border: 0 !important;
  color: rgba(255,255,255,.90) !important;
}

/* Ícones default costumam ser “pretos”; inverter ajuda no fundo escuro */
.maplibregl-ctrl-group button,
.mapboxgl-ctrl-group button{
  filter: invert(1) saturate(0) brightness(1.2);
}

.maplibregl-ctrl-group button:hover,
.mapboxgl-ctrl-group button:hover{
  background: rgba(255,255,255,.08) !important;
}

/* Attribution / scale */
.maplibregl-ctrl-attrib,
.mapboxgl-ctrl-attrib{
  background: rgba(10,12,16,.55) !important;
  color: rgba(255,255,255,.70) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 12px !important;
  padding: 6px 10px !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

.maplibregl-ctrl-scale,
.mapboxgl-ctrl-scale{
  background: rgba(10,12,16,.55) !important;
  color: rgba(255,255,255,.80) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 10px !important;
}

/* Popup */
.maplibregl-popup-content,
.mapboxgl-popup-content{
  background: rgba(10,12,16,.78) !important;
  color: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 16px !important;
  box-shadow: 0 22px 60px rgba(0,0,0,.55) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}
.maplibregl-popup-tip,
.mapboxgl-popup-tip{
  border-top-color: rgba(10,12,16,.78) !important;
  border-bottom-color: rgba(10,12,16,.78) !important;
}

/* ====== MAP Dock / Panels (seletor amplo) ======
   Observação: como seu dock/context parecem ser UI própria (não Tabler),
   usamos uma lista de ids/classes comuns. Não altera o mapa em si.
*/
#dock, #mapDock, #nxMapDock, #missionDock,
#context, #mapContext, #nxMapContext, #missionContext,
.map-dock, .dock, .dock-panel, .nx-dock,
.map-context, .context, .context-panel, .nx-context,
.mission-dock, .mission-panel, .mission-context{
  background: rgba(10,12,16,.55) !important;
  color: rgba(255,255,255,.90) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 18px !important;
  box-shadow: 0 22px 60px rgba(0,0,0,.55) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

/* inputs e selects dentro dos painéis do mapa */
#dock input, #dock select, #dock textarea,
#context input, #context select, #context textarea,
.map-dock input, .map-dock select, .map-dock textarea,
.map-context input, .map-context select, .map-context textarea,
.dock input, .dock select, .dock textarea,
.context input, .context select, .context textarea{
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 14px !important;
  outline: none !important;
}

#dock input::placeholder, #context input::placeholder,
.map-dock input::placeholder, .map-context input::placeholder,
.dock input::placeholder, .context input::placeholder{
  color: rgba(255,255,255,.40) !important;
}

/* botões dentro do mapa (se existirem como <button>) */
#dock button, #context button,
.map-dock button, .map-context button,
.dock button, .context button{
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.92) !important;
  border-radius: 999px !important;
}

/* ====== refinamentos finais (forms/tables) ====== */
.form-control, .form-select,
input.form-control, select.form-select, textarea.form-control{
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.92) !important;
  border-color: rgba(255,255,255,.12) !important;
}

.form-control:focus, .form-select:focus{
  border-color: rgba(106,168,255,.55) !important;
  box-shadow: 0 0 0 .18rem rgba(106,168,255,.18) !important;
}

.table, .table thead, .table tbody,
.table-responsive,
.card-table{
  background: transparent !important;
}

/* thead mais “glass”, sem bloco claro */
.table thead th,
.nx-table thead th{
  background: rgba(255,255,255,.04) !important;
  color: rgba(255,255,255,.72) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
}



/* NX_VISUAL_HOTFIX_V5
   Alvos reais (mapa.html):
   - Sidebar: #nxMapSidebar .nx-map-sidebar .nx-map-item...
   - Canvas:  #nxMapCanvas #map
   - MapLibre: .maplibregl-ctrl* / popup / attrib
   Objetivo:
   - Remover qualquer "cinza claro" restante no /mapa
   - Uniformizar glass/dark com o resto do produto
*/

/* ====== MAPA: shell/sidebar/list/itens ====== */
body.engine-maplibre #nxMapShell.nx-map-shell,
body.engine-leaflet  #nxMapShell.nx-map-shell{
  color: rgba(255,255,255,.92) !important;
}

body.engine-maplibre #nxMapSidebar,
body.engine-maplibre .nx-map-sidebar{
  background: rgba(10,12,16,.58) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 18px !important;
  box-shadow: 0 22px 60px rgba(0,0,0,.55) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

body.engine-maplibre .nx-map-sidebar-head .nx-sub{
  color: rgba(255,255,255,.60) !important;
}

/* Search no mapa */
body.engine-maplibre #nxMapSearch.nx-input{
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 14px !important;
}
body.engine-maplibre #nxMapSearch::placeholder{
  color: rgba(255,255,255,.40) !important;
}
body.engine-maplibre #nxMapSearch:focus{
  border-color: rgba(106,168,255,.55) !important;
  box-shadow: 0 0 0 .18rem rgba(106,168,255,.18) !important;
  outline: none !important;
}

/* Lista + scroll mais "premium" (sem forçar cor global de scrollbar) */
body.engine-maplibre .nx-map-list{
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.22) rgba(255,255,255,.06);
}

/* Item */
body.engine-maplibre .nx-map-item{
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 16px !important;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
body.engine-maplibre .nx-map-item:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(106,168,255,.28) !important;
}

body.engine-maplibre .nx-map-item-name{
  color: rgba(255,255,255,.92) !important;
}
body.engine-maplibre .nx-map-item-meta{
  color: rgba(255,255,255,.70) !important;
}

/* Ações (Abrir/Centralizar) */
body.engine-maplibre .nx-map-item-actions .nx-btn{
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.92) !important;
}
body.engine-maplibre .nx-map-item-actions .nx-btn:hover{
  border-color: rgba(106,168,255,.45) !important;
  background: rgba(106,168,255,.10) !important;
}

/* ====== MAPA: canvas wrapper (evitar “caixa clara”) ====== */
body.engine-maplibre #nxMapCanvas,
body.engine-maplibre .nx-map-canvas-wrap{
  background: transparent !important;
  border: 0 !important;
}

/* Garantir que o mapa não herde nenhum “bg” claro */
body.engine-maplibre #map.nx-map-canvas{
  background: transparent !important;
}

/* ====== MAPLIBRE: controles (maior especificidade) ====== */
body.engine-maplibre .maplibregl-ctrl.maplibregl-ctrl-group,
body.engine-maplibre .maplibregl-ctrl-group{
  background: rgba(10,12,16,.62) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 18px 40px rgba(0,0,0,.45) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  overflow: hidden !important;
}

body.engine-maplibre .maplibregl-ctrl-group button{
  background: transparent !important;
  border: 0 !important;
}

/* Os ícones do MapLibre vêm em background-image no CSS vendor.
   Forçar "invert" no botão costuma resolver 100% (ícone preto -> branco). */
body.engine-maplibre .maplibregl-ctrl-group button{
  filter: invert(1) saturate(0) brightness(1.2);
}

body.engine-maplibre .maplibregl-ctrl-group button:hover{
  background: rgba(255,255,255,.08) !important;
}

/* Attribution */
body.engine-maplibre .maplibregl-ctrl-attrib{
  background: rgba(10,12,16,.55) !important;
  color: rgba(255,255,255,.70) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 12px !important;
  padding: 6px 10px !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}
body.engine-maplibre .maplibregl-ctrl-attrib a{
  color: rgba(255,255,255,.72) !important;
  text-decoration: none !important;
}
body.engine-maplibre .maplibregl-ctrl-attrib a:hover{
  color: rgba(255,255,255,.92) !important;
  text-decoration: underline !important;
}

/* Popup */
body.engine-maplibre .maplibregl-popup-content{
  background: rgba(10,12,16,.78) !important;
  color: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 16px !important;
  box-shadow: 0 22px 60px rgba(0,0,0,.55) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}
body.engine-maplibre .maplibregl-popup-close-button{
  color: rgba(255,255,255,.75) !important;
}
body.engine-maplibre .maplibregl-popup-close-button:hover{
  color: rgba(255,255,255,.92) !important;
}

/* NX_UI_GRAPHICS_CONSOLIDATED_V1_BEGIN */
/* ------------------------------------------------------------------
   CONSOLIDATED THEME LAYER (dark premium / Starlink-ish)
   - paleta consistente
   - navbar/nav hover/active
   - cards/kpi
   - table
   - buttons
   - forms/selects (dark dropdown)
------------------------------------------------------------------ */

:root{
  --nx-bg-0: #070A0F;
  --nx-bg-1: #0B1020;
  --nx-surface-0: rgba(255,255,255,.035);
  --nx-surface-1: rgba(255,255,255,.055);
  --nx-surface-2: rgba(255,255,255,.075);
  --nx-border-0: rgba(255,255,255,.10);
  --nx-border-1: rgba(255,255,255,.14);

  --nx-text-0: rgba(255,255,255,.92);
  --nx-text-1: rgba(255,255,255,.72);
  --nx-text-2: rgba(255,255,255,.52);

  --nx-accent: #2F6BFF;        /* azul */
  --nx-accent-2: #00D3A7;      /* verde/teal */
  --nx-warn: #FFB020;
  --nx-danger: #FF4D6D;

  --nx-radius: 14px;
  --nx-radius-sm: 10px;

  --nx-shadow: 0 12px 30px rgba(0,0,0,.35);
  --nx-shadow-sm: 0 10px 22px rgba(0,0,0,.25);
}

/* Melhor baseline de render (evita inputs brancos em tema dark) */
html, body{
  color-scheme: dark;
}

body{
  color: var(--nx-text-0) !important;
  background:
    radial-gradient(1100px 520px at 14% 26%, rgba(47,107,255,.18), rgba(0,0,0,0) 60%),
    radial-gradient(900px 420px at 70% 86%, rgba(0,211,167,.12), rgba(0,0,0,0) 55%),
    linear-gradient(180deg, var(--nx-bg-1), var(--nx-bg-0)) !important;
}

/* Containers/espaçamento: evita layout “disforme/esticado” */
.container, .container-fluid{
  padding-left: 18px !important;
  padding-right: 18px !important;
}
@media (min-width: 1400px){
  .container, .container-fluid{
    max-width: 1320px !important;
  }
}

/* Superfícies (cards/painéis) */
.card, .modal-content, .dropdown-menu{
  background: linear-gradient(180deg, var(--nx-surface-2), var(--nx-surface-0)) !important;
  border: 1px solid var(--nx-border-0) !important;
  border-radius: var(--nx-radius) !important;
  box-shadow: var(--nx-shadow-sm);
  backdrop-filter: blur(10px);
}
.card:hover{
  border-color: var(--nx-border-1) !important;
}

/* Topbar / Navbar */
.navbar, .topbar, header{
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01)) !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  backdrop-filter: blur(10px);
}

.navbar a, .navbar .nav-link, header a{
  color: var(--nx-text-1) !important;
  text-decoration: none !important;
  letter-spacing: .2px;
}
.navbar a:hover, .navbar .nav-link:hover, header a:hover{
  color: var(--nx-text-0) !important;
}

.navbar .nav-link.active,
.navbar .nav-item.active .nav-link{
  color: var(--nx-text-0) !important;
  position: relative;
}
.navbar .nav-link.active:after,
.navbar .nav-item.active .nav-link:after{
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: -8px;
  height: 2px;
  background: linear-gradient(90deg, rgba(47,107,255,0), rgba(47,107,255,1), rgba(47,107,255,0));
  border-radius: 2px;
  opacity: .95;
}

/* Títulos/subtítulos */
h1,h2,h3,h4,h5{
  color: var(--nx-text-0) !important;
}
small, .text-muted{
  color: var(--nx-text-2) !important;
}

/* Table (Fleet Overview) */
.table{
  color: var(--nx-text-1) !important;
  border-color: rgba(255,255,255,.10) !important;
}
.table thead th{
  color: rgba(255,255,255,.70) !important;
  background: rgba(255,255,255,.045) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 11px;
}
.table tbody tr{
  border-color: rgba(255,255,255,.08) !important;
}
.table tbody tr:hover{
  background: rgba(47,107,255,.06) !important;
}
.table td, .table th{
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  vertical-align: middle !important;
}

/* Badges / Status pills (se forem badges/labels) */
.badge, .pill, .status, .tag{
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background: rgba(255,255,255,.04) !important;
  color: var(--nx-text-1) !important;
}

/* Buttons (Bootstrap-like) */
.btn{
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: none !important;
}
.btn:focus, .btn:focus-visible{
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(47,107,255,.22) !important;
}

.btn-primary{
  background: linear-gradient(180deg, rgba(47,107,255,.95), rgba(47,107,255,.78)) !important;
  border-color: rgba(47,107,255,.55) !important;
  color: #fff !important;
}
.btn-primary:hover{
  filter: brightness(1.08);
}

.btn-success{
  background: linear-gradient(180deg, rgba(0,211,167,.95), rgba(0,211,167,.78)) !important;
  border-color: rgba(0,211,167,.55) !important;
  color: #00110d !important;
}
.btn-danger{
  background: linear-gradient(180deg, rgba(255,77,109,.95), rgba(255,77,109,.78)) !important;
  border-color: rgba(255,77,109,.55) !important;
  color: #fff !important;
}

.btn-outline-primary{
  background: rgba(47,107,255,.08) !important;
  border-color: rgba(47,107,255,.45) !important;
  color: rgba(230,238,255,.95) !important;
}
.btn-outline-primary:hover{
  background: rgba(47,107,255,.16) !important;
}

/* Inputs / Selects */
.form-control, .form-select, input, select, textarea{
  background: rgba(255,255,255,.03) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: var(--nx-radius-sm) !important;
  color: var(--nx-text-0) !important;
}
.form-control::placeholder, input::placeholder, textarea::placeholder{
  color: var(--nx-text-2) !important;
}
.form-control:focus, .form-select:focus, input:focus, select:focus, textarea:focus{
  border-color: rgba(47,107,255,.55) !important;
  box-shadow: 0 0 0 3px rgba(47,107,255,.20) !important;
  outline: none !important;
}

/* Dropdown do select (onde o browser permite) */
select, .form-select{
  color-scheme: dark;
}
select option{
  background: #0B1020;
  color: rgba(255,255,255,.92);
}

/* Dropdown menus (se houver) */
.dropdown-menu{
  padding: 8px !important;
}
.dropdown-item{
  border-radius: 10px !important;
  color: var(--nx-text-1) !important;
}
.dropdown-item:hover{
  background: rgba(47,107,255,.12) !important;
  color: var(--nx-text-0) !important;
}

/* Scrollbar (webkit) */
*::-webkit-scrollbar{ height: 10px; width: 10px; }
*::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.14);
  border-radius: 999px;
}
*::-webkit-scrollbar-thumb:hover{
  background: rgba(255,255,255,.20);
}

/* ------------------------------------------------------------------ */
/* NX_UI_GRAPHICS_CONSOLIDATED_V1_END */

/* NX_UI_GRAPHICS_FIX_CLIENT_COLUMN_V2_BEGIN */
/*
  Objetivo:
  - Garantir legibilidade do conteúdo em tabelas (especialmente coluna CLIENTE)
  - Corrigir casos onde o valor vem como .text-muted/.text-secondary e “some” no dark
  - Escopo limitado a tabelas para não afetar cards/topbar.
*/

/* Base de texto dentro de tabelas */
table, .table {
  color: rgba(235, 245, 255, 0.92);
}

/* Evita “apagado” por opacity herdada dentro de células */
table td, .table td,
table td * , .table td * {
  opacity: 1 !important;
}

/* Bootstrap/tema: classes que normalmente apagam conteúdo no dark */
table .text-muted,
table .text-secondary,
table .text-body-secondary,
.table .text-muted,
.table .text-secondary,
.table .text-body-secondary {
  color: rgba(205, 220, 240, 0.85) !important;
  opacity: 1 !important;
}

/* Se CLIENTE vier como link */
table td a, .table td a {
  color: rgba(225, 240, 255, 0.92);
  text-decoration: none;
}
table td a:hover, .table td a:hover {
  color: rgba(160, 205, 255, 0.98);
  text-decoration: underline;
}

/* Se vier como badge/pill pequena */
table .badge, .table .badge,
table .pill,  .table .pill {
  opacity: 1 !important;
}

/* NX_UI_GRAPHICS_FIX_CLIENT_COLUMN_V2_END */

/* NX_UI_FIX_CLIENT_VISIBLE_TABLEPOLISH_V1_BEGIN */
/* Objetivo:
   - Forçar visibilidade da coluna CLIENTE (2ª coluna) na tabela do Fleet Overview
   - Corrigir cores/contraste e hover
   - Melhorar espaçamento sem deformar layout
*/

:root{
  --nx-accent: #3B82F6;          /* azul */
  --nx-text-1: rgba(255,255,255,.92);
  --nx-text-2: rgba(255,255,255,.70);
  --nx-line: rgba(255,255,255,.10);
  --nx-surface: rgba(255,255,255,.04);
  --nx-surface-2: rgba(255,255,255,.06);
}

/* Header da tabela (mais “premium”) */
.nx-fleet-table thead th,
table thead th{
  color: var(--nx-text-2) !important;
  letter-spacing: .10em;
  text-transform: uppercase;
  font-weight: 600;
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03)) !important;
  border-bottom: 1px solid var(--nx-line) !important;
}

/* Linhas e hover */
.nx-fleet-table tbody tr,
table tbody tr{
  border-bottom: 1px solid var(--nx-line) !important;
}
.nx-fleet-table tbody tr:hover,
table tbody tr:hover{
  background: rgba(59,130,246,.08) !important;
}

/* Células */
.nx-fleet-table td,
table td{
  color: var(--nx-text-1) !important;
}

/* --- FIX PRINCIPAL: CLIENTE (2ª coluna) --- */
/* Alguns temas responsivos escondem colunas com display:none/max-width/opacity */
.nx-fleet-table th:nth-child(2),
.nx-fleet-table td:nth-child(2),
table th:nth-child(2),
table td:nth-child(2){
  display: table-cell !important;
  visibility: visible !important;
  opacity: 1 !important;
  max-width: none !important;
  width: auto !important;
  color: var(--nx-text-1) !important;
}

/* Se CLIENTE estiver “apagado” por span interno */
.nx-fleet-table td:nth-child(2) * ,
table td:nth-child(2) *{
  color: var(--nx-text-1) !important;
  opacity: 1 !important;
}

/* Melhorar “pill” de status e botões sem exagero */
.badge, .nx-badge, .status-pill{
  border-color: rgba(255,255,255,.14) !important;
}

button, .btn, .nx-btn{
  border-color: rgba(255,255,255,.14) !important;
}

/* Inputs/select: borda e foco coerentes */
input, select, textarea{
  color: var(--nx-text-1) !important;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
}
input:focus, select:focus, textarea:focus{
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(59,130,246,.22) !important;
  border-color: rgba(59,130,246,.55) !important;
}

/* NX_UI_FIX_CLIENT_VISIBLE_TABLEPOLISH_V1_END */

/* NX_UI_THEME_POLISH_V1_BEGIN */
/* Objetivo:
   - reduzir “vazio” (mais densidade)
   - melhorar contraste (depth)
   - padronizar cards/toolbar/tabela
*/

/* Paleta base */
:root{
  --nx-accent: #3B82F6;
  --nx-ok: #22C55E;
  --nx-bad: #EF4444;
  --nx-warn: #F59E0B;

  --nx-t1: rgba(255,255,255,.92);
  --nx-t2: rgba(255,255,255,.72);
  --nx-t3: rgba(255,255,255,.52);

  --nx-line: rgba(255,255,255,.10);
  --nx-line2: rgba(255,255,255,.14);

  --nx-bg: #070A12;
  --nx-panel: rgba(255,255,255,.045);
  --nx-panel2: rgba(255,255,255,.065);
}

/* Fundo mais “limpo” e consistente */
html, body{
  background: radial-gradient(900px 420px at 20% 10%, rgba(59,130,246,.22), transparent 55%),
              radial-gradient(900px 420px at 70% 55%, rgba(16,185,129,.15), transparent 60%),
              var(--nx-bg) !important;
  color: var(--nx-t1) !important;
}

/* Ajuste global de tipografia (um pouco mais “tech”) */
body{
  letter-spacing: .01em;
}
h1,h2,h3,.nx-h1,.nx-h2{
  color: var(--nx-t1) !important;
}

/* Topbar / nav: dar corpo e hierarquia */
.topbar, .nx-topbar, header, .navbar{
  background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.25)) !important;
  border-bottom: 1px solid var(--nx-line) !important;
  backdrop-filter: blur(10px);
}
.topbar a, .nx-topbar a, header a, .navbar a{
  color: var(--nx-t2) !important;
}
.topbar a:hover, .nx-topbar a:hover, header a:hover, .navbar a:hover{
  color: var(--nx-t1) !important;
}

/* Cards: menos altura, mais contraste e “shine” */
.card, .nx-card, .nx-kpi-card > *{
  background: linear-gradient(180deg, var(--nx-panel2), var(--nx-panel)) !important;
  border: 1px solid var(--nx-line) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  border-radius: 14px !important;
}
.card::before, .nx-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius: 14px;
  background: radial-gradient(600px 180px at 20% 0%, rgba(255,255,255,.06), transparent 55%);
  opacity:.9;
}
.card, .nx-card{ position: relative; }

/* KPI: reduzir padding e fonte ficar mais “dashboard” */
.nx-kpi-grid{
  gap: 12px !important;
}
.nx-kpi-card{
  min-height: unset !important;
}
.nx-kpi-card .nx-kpi-value,
.nx-kpi-card .value{
  font-weight: 700 !important;
}
.nx-kpi-card .nx-kpi-sub,
.nx-kpi-card .sub{
  color: var(--nx-t3) !important;
}

/* Fleet container */
.nx-fleet-wrap{
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02)) !important;
  border: 1px solid var(--nx-line) !important;
  border-radius: 14px !important;
  padding: 14px !important;
}

/* Toolbar (busca/select/botão): parecer “componentes” */
.nx-fleet-tools input,
.nx-fleet-tools select,
#nxFleetControls input,
#nxFleetControls select{
  height: 38px !important;
  border-radius: 12px !important;
  background: rgba(0,0,0,.22) !important;
  border: 1px solid var(--nx-line2) !important;
  color: var(--nx-t1) !important;
}
.nx-fleet-tools input::placeholder,
#nxFleetControls input::placeholder{
  color: rgba(255,255,255,.42) !important;
}
.nx-fleet-tools input:focus,
.nx-fleet-tools select:focus,
#nxFleetControls input:focus,
#nxFleetControls select:focus{
  outline: none !important;
  border-color: rgba(59,130,246,.55) !important;
  box-shadow: 0 0 0 3px rgba(59,130,246,.20) !important;
}

/* Botões: mais consistentes */
.btn, .nx-btn, button{
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.16) !important;
}
.btn-primary, .nx-btn-primary{
  background: rgba(59,130,246,.18) !important;
  border-color: rgba(59,130,246,.40) !important;
  color: var(--nx-t1) !important;
}
.btn-primary:hover, .nx-btn-primary:hover{
  background: rgba(59,130,246,.26) !important;
}

/* Tabela: mais densa e legível */
.table{
  color: var(--nx-t1) !important;
}
.table thead th{
  color: rgba(255,255,255,.62) !important;
  background: rgba(255,255,255,.06) !important;
  border-bottom: 1px solid var(--nx-line2) !important;
  font-size: 11px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}
.table td{
  padding-top: 11px !important;
  padding-bottom: 11px !important;
  border-top: 1px solid rgba(255,255,255,.08) !important;
  vertical-align: middle !important;
}

/* Zebra suave */
.table tbody tr:nth-child(odd){
  background: rgba(255,255,255,.018) !important;
}
.table tbody tr:hover{
  background: rgba(59,130,246,.08) !important;
}

/* Colunas “mono” */
.nx-mono, .mono, code{
  color: rgba(255,255,255,.72) !important;
}

/* Pills (status) mais vivos */
.nx-pill, .status-pill, .badge{
  border-color: rgba(255,255,255,.16) !important;
}
.nx-pill.online, .badge.bg-success{
  background: rgba(34,197,94,.14) !important;
  border-color: rgba(34,197,94,.35) !important;
}
.nx-pill.offline, .badge.bg-danger{
  background: rgba(239,68,68,.14) !important;
  border-color: rgba(239,68,68,.35) !important;
}

/* NX_UI_THEME_POLISH_V1_END */

/* NX_UI_THEME_POLISH_V2_BEGIN */
/* Ajustes v2:
   - KPIs mais compactos e alinhados
   - Fleet header/toolbar mais “tight”
   - Tabela: densidade, largura e ações mais compactas
*/

/* ===== KPI GRID ===== */
.nx-kpi-grid{
  gap: 12px !important;
  margin-top: 8px !important;
}
.nx-kpi-card,
.nx-kpi-card > *,
.nx-kpi-card .card{
  min-height: 96px !important;
}
.nx-kpi-card .nx-kpi-title,
.nx-kpi-card .title{
  font-size: 11px !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  opacity: .85 !important;
}
.nx-kpi-card .nx-kpi-value,
.nx-kpi-card .value{
  font-size: 28px !important;
  line-height: 1.05 !important;
  margin-top: 6px !important;
}
.nx-kpi-card .nx-kpi-sub,
.nx-kpi-card .sub{
  font-size: 12px !important;
  opacity: .70 !important;
  margin-top: 6px !important;
}

/* ===== Fleet header/toolbar ===== */
.nx-fleet-head{
  align-items: center !important;
  margin-bottom: 10px !important;
}
.nx-fleet-title{
  font-size: 16px !important;
  font-weight: 700 !important;
}
.nx-fleet-sub{
  font-size: 12px !important;
  opacity: .70 !important;
}

.nx-fleet-tools,
#nxFleetControls{
  gap: 10px !important;
}
.nx-fleet-tools input,
#nxFleetControls input{
  min-width: 520px !important;
}
@media (max-width: 1200px){
  .nx-fleet-tools input,
  #nxFleetControls input{
    min-width: 280px !important;
  }
}
.nx-fleet-tools select,
#nxFleetControls select{
  width: 220px !important;
}

/* Botão +Nova: mais “call-to-action” */
.nx-fleet-tools .nx-btn,
#nxFleetControls .nx-btn{
  height: 38px !important;
  padding: 0 14px !important;
  font-weight: 600 !important;
  border-radius: 999px !important;
}

/* ===== Tabela ===== */
.table-responsive{
  border-radius: 12px !important;
  overflow: hidden !important;
}

.table thead th{
  font-size: 10.5px !important;
  letter-spacing: .10em !important;
  text-transform: uppercase !important;
  padding: 10px 12px !important;
}
.table td{
  padding: 10px 12px !important;
  font-size: 12.5px !important;
}

/* “Nome” e “Cliente” com mais peso; GPS menos destaque */
.table td:nth-child(1) { font-weight: 700 !important; } /* Nome */
.table td:nth-child(2) { font-weight: 600 !important; opacity: .92 !important; } /* Cliente */
.table td:nth-child(11){ opacity: .65 !important; font-size: 11.5px !important; } /* GPS (ajusta se colunas mudarem) */

/* Larguras (heurística – melhora leitura) */
#nxFleet th:nth-child(1), #nxFleet td:nth-child(1){ min-width: 220px !important; } /* Nome */
#nxFleet th:nth-child(2), #nxFleet td:nth-child(2){ min-width: 140px !important; } /* Cliente */
#nxFleet th:nth-child(3), #nxFleet td:nth-child(3){ min-width: 120px !important; } /* Tecnologia */
#nxFleet th:nth-child(4), #nxFleet td:nth-child(4){ min-width: 140px !important; } /* Kit */
#nxFleet th:nth-child(5), #nxFleet td:nth-child(5){ min-width: 90px !important; }  /* Plano */
#nxFleet th:nth-child(6), #nxFleet td:nth-child(6){ min-width: 110px !important; } /* Status */
#nxFleet th:nth-child(7), #nxFleet td:nth-child(7){ min-width: 90px !important; text-align:center !important; } /* Download */
#nxFleet th:nth-child(8), #nxFleet td:nth-child(8){ min-width: 90px !important; text-align:center !important; } /* Upload */
#nxFleet th:nth-child(9), #nxFleet td:nth-child(9){ min-width: 95px !important; text-align:center !important; } /* Uso */
#nxFleet th:nth-child(10),#nxFleet td:nth-child(10){ min-width: 95px !important; text-align:center !important; } /* Uso/Plano */
#nxFleet th:nth-child(11),#nxFleet td:nth-child(11){ min-width: 150px !important; } /* GPS */
#nxFleet th:last-child, #nxFleet td:last-child{ min-width: 210px !important; } /* Ações */

/* Botões de ação mais compactos */
#nxFleet td:last-child .nx-btn,
#nxFleet td:last-child button,
#nxFleet td:last-child .btn{
  height: 32px !important;
  padding: 0 12px !important;
  font-size: 12px !important;
}

/* Pills status: mais alinhadas verticalmente */
.nx-pill, .status-pill, .badge{
  height: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 10px !important;
}

/* NX_UI_THEME_POLISH_V2_END */
