/* ==========================================================================
   GMG Tema — camada visual única (claro / escuro)
   Carregada por último. Só altera cores, bordas, cantos, sombras e tipografia;
   não muda tamanhos/posições para não quebrar layouts existentes.
   Tema escuro: html[data-tema="escuro"] (definido por GMGTema.js).
   ========================================================================== */

:root {
  --gmg-fonte: Poppins, "Segoe UI", Roboto, Arial, sans-serif;

  --gmg-bg: #f5f6fa;
  --gmg-surface: #ffffff;
  --gmg-surface-2: #f7f8fb;
  --gmg-surface-3: #eef0f6;
  --gmg-hover: #f2f4fa;
  --gmg-border: #e6e8ef;
  --gmg-border-forte: #d5d9e4;
  --gmg-text: #1f2533;
  --gmg-text-2: #4b5468;
  --gmg-muted: #7b8396;
  --gmg-placeholder: #9aa1b2;

  --gmg-primary: #4f5bd5;
  --gmg-primary-hover: #4350c4;
  --gmg-primary-suave: #eef0fd;
  --gmg-primary-texto: #ffffff;
  --gmg-success: #12a670;
  --gmg-success-suave: #e7f7f0;
  --gmg-danger: #e5484d;
  --gmg-danger-suave: #fdecec;
  --gmg-warning: #d98a0b;
  --gmg-warning-suave: #fdf4e3;
  --gmg-info: #2f80ed;
  --gmg-info-suave: #e9f2fe;

  --gmg-raio: 10px;
  --gmg-raio-sm: 8px;
  --gmg-raio-lg: 16px;
  --gmg-sombra-sm: 0 1px 2px rgba(16, 24, 40, .06);
  --gmg-sombra: 0 8px 24px rgba(16, 24, 40, .08);
  --gmg-sombra-lg: 0 24px 64px rgba(16, 24, 40, .16);
  --gmg-foco: 0 0 0 3px rgba(79, 91, 213, .18);
  --gmg-overlay: rgba(15, 20, 34, .45);

  color-scheme: light;
}

html[data-tema="escuro"] {
  --gmg-bg: #0d1117;
  --gmg-surface: #161b26;
  --gmg-surface-2: #1b2130;
  --gmg-surface-3: #232a3b;
  --gmg-hover: #222a3a;
  --gmg-border: #2a3244;
  --gmg-border-forte: #38425a;
  --gmg-text: #e6e9f0;
  --gmg-text-2: #c3c9d6;
  --gmg-muted: #8f98ab;
  --gmg-placeholder: #6f788c;

  --gmg-primary: #7c86f2;
  --gmg-primary-hover: #919af5;
  --gmg-primary-suave: #252b4a;
  --gmg-primary-texto: #0d1117;
  --gmg-success: #34c48b;
  --gmg-success-suave: #133126;
  --gmg-danger: #f07278;
  --gmg-danger-suave: #3a1c20;
  --gmg-warning: #f0b14a;
  --gmg-warning-suave: #3a2c12;
  --gmg-info: #6aa8f7;
  --gmg-info-suave: #172a44;

  --gmg-sombra-sm: 0 1px 2px rgba(0, 0, 0, .4);
  --gmg-sombra: 0 10px 28px rgba(0, 0, 0, .45);
  --gmg-sombra-lg: 0 28px 72px rgba(0, 0, 0, .6);
  --gmg-foco: 0 0 0 3px rgba(124, 134, 242, .28);
  --gmg-overlay: rgba(0, 0, 0, .6);

  /* tokens antigos da barra "glass" (custom.css) */
  --glass-bg: rgba(22, 27, 38, .72);
  --glass-brd: rgba(255, 255, 255, .08);
  --glass-shadow: 0 14px 36px rgba(0, 0, 0, .45);
  --text-hi: #e6e9f0;
  --text-med: #c3c9d6;

  color-scheme: dark;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html body,
html body.m-page--fluid {
  font-family: var(--gmg-fonte);
  color: var(--gmg-text);
  background-color: var(--gmg-bg);
}

html[data-tema] a { color: var(--gmg-primary); }
html[data-tema] a:hover { color: var(--gmg-primary-hover); }
html[data-tema] .m--font-brand, html[data-tema] .text-primary { color: var(--gmg-primary) !important; }
html[data-tema] .text-muted, html[data-tema] .m--font-metal { color: var(--gmg-muted) !important; }
html[data-tema="escuro"] .text-dark, html[data-tema="escuro"] .m--font-dark { color: var(--gmg-text) !important; }
html[data-tema] hr { border-color: var(--gmg-border); }
html[data-tema] ::selection { background: var(--gmg-primary); color: #fff; }

html[data-tema="escuro"] h1, html[data-tema="escuro"] h2, html[data-tema="escuro"] h3,
html[data-tema="escuro"] h4, html[data-tema="escuro"] h5, html[data-tema="escuro"] h6,
html[data-tema="escuro"] label, html[data-tema="escuro"] legend,
html[data-tema="escuro"] .modal-title, html[data-tema="escuro"] strong, html[data-tema="escuro"] b {
  color: inherit;
}

/* barras de rolagem discretas */
html[data-tema] * { scrollbar-width: thin; scrollbar-color: var(--gmg-border-forte) transparent; }
html[data-tema] *::-webkit-scrollbar { width: 10px; height: 10px; }
html[data-tema] *::-webkit-scrollbar-thumb { background: var(--gmg-border-forte); border-radius: 10px; border: 2px solid transparent; background-clip: padding-box; }
html[data-tema] *::-webkit-scrollbar-track { background: transparent; }

/* --------------------------------------------------------------------------
   Botões
   -------------------------------------------------------------------------- */
html[data-tema] .btn {
  border-radius: var(--gmg-raio);
  font-weight: 500;
  box-shadow: none;
  transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s;
}
html[data-tema] .btn:focus, html[data-tema] .btn.focus { box-shadow: var(--gmg-foco) !important; }
html[data-tema] .btn-sm { border-radius: var(--gmg-raio-sm); }

html[data-tema] .btn-primary, html[data-tema] .btn-brand, html[data-tema] .btn-accent {
  background: var(--gmg-primary) !important; border-color: var(--gmg-primary) !important; color: var(--gmg-primary-texto) !important;
}
html[data-tema] .btn-primary:hover, html[data-tema] .btn-brand:hover, html[data-tema] .btn-accent:hover {
  background: var(--gmg-primary-hover) !important; border-color: var(--gmg-primary-hover) !important;
}
html[data-tema] .btn-success {
  background: var(--gmg-success) !important; border-color: var(--gmg-success) !important; color: #fff !important;
}
html[data-tema] .btn-danger {
  background: var(--gmg-danger) !important; border-color: var(--gmg-danger) !important; color: #fff !important;
}
html[data-tema] .btn-warning {
  background: var(--gmg-warning) !important; border-color: var(--gmg-warning) !important; color: #fff !important;
}
html[data-tema] .btn-info {
  background: var(--gmg-info) !important; border-color: var(--gmg-info) !important; color: #fff !important;
}
html[data-tema] .btn-secondary, html[data-tema] .btn-metal, html[data-tema] .btn-light, html[data-tema] .btn-default, html[data-tema] .btn-outline-metal {
  background: var(--gmg-surface) !important; border: 1px solid var(--gmg-border-forte) !important; color: var(--gmg-text-2) !important;
}
html[data-tema] .btn-secondary:hover, html[data-tema] .btn-metal:hover, html[data-tema] .btn-light:hover, html[data-tema] .btn-default:hover, html[data-tema] .btn-outline-metal:hover {
  background: var(--gmg-hover) !important; color: var(--gmg-text) !important;
}
html[data-tema] .btn-outline-primary, html[data-tema] .btn-outline-brand {
  background: transparent !important; border-color: var(--gmg-primary) !important; color: var(--gmg-primary) !important;
}
html[data-tema] .btn-outline-primary:hover, html[data-tema] .btn-outline-brand:hover {
  background: var(--gmg-primary-suave) !important;
}
html[data-tema] .btn-outline-danger { background: transparent !important; border-color: var(--gmg-danger) !important; color: var(--gmg-danger) !important; }
html[data-tema] .btn-outline-danger:hover { background: var(--gmg-danger-suave) !important; }
html[data-tema] .btn-outline-success { background: transparent !important; border-color: var(--gmg-success) !important; color: var(--gmg-success) !important; }
html[data-tema] .btn-outline-success:hover { background: var(--gmg-success-suave) !important; }
html[data-tema] .btn-link { color: var(--gmg-primary) !important; }
html[data-tema] .btn:disabled, html[data-tema] .btn.disabled { opacity: .5; }

/* botões de ação do GeoBook */
html[data-tema] .geobook-action-btn,
html[data-tema] .geobook-icon-btn {
  background: var(--gmg-surface) !important; border: 1px solid var(--gmg-border-forte) !important; color: var(--gmg-text-2) !important;
  border-radius: var(--gmg-raio-sm) !important;
}
html[data-tema] .geobook-action-btn.primary { color: var(--gmg-primary) !important; border-color: var(--gmg-primary) !important; }
html[data-tema] .geobook-action-btn.primary:hover { background: var(--gmg-primary) !important; color: var(--gmg-primary-texto) !important; }
html[data-tema] .geobook-action-btn.danger { color: var(--gmg-danger) !important; border-color: var(--gmg-danger) !important; }
html[data-tema] .geobook-action-btn.danger:hover { background: var(--gmg-danger) !important; color: #fff !important; }
html[data-tema] .geobook-icon-btn:hover, html[data-tema] .geobook-action-btn:hover { background: var(--gmg-hover) !important; color: var(--gmg-primary) !important; }
html[data-tema] .geobook-link-btn { color: var(--gmg-primary) !important; }

/* --------------------------------------------------------------------------
   Campos de formulário
   -------------------------------------------------------------------------- */
html[data-tema] .form-control,
html[data-tema] .custom-select,
html[data-tema] .m-input,
html[data-tema] .modal input[type="text"], html[data-tema] .modal input[type="number"], html[data-tema] .modal input[type="email"],
html[data-tema] .modal input[type="password"], html[data-tema] .modal input[type="search"], html[data-tema] .modal input[type="date"],
html[data-tema] .modal input[type="month"], html[data-tema] .modal input[type="tel"], html[data-tema] .modal select, html[data-tema] .modal textarea,
html[data-tema] .gm-style-iw input[type="text"], html[data-tema] .gm-style-iw select, html[data-tema] .gm-style-iw textarea,
html[data-tema] .bootbox input, html[data-tema] .bootbox select, html[data-tema] .bootbox textarea {
  background-color: var(--gmg-surface) !important;
  border: 1px solid var(--gmg-border-forte) !important;
  color: var(--gmg-text) !important;
  border-radius: var(--gmg-raio) !important;
  box-shadow: none;
}
html[data-tema] .form-control:focus,
html[data-tema] .custom-select:focus,
html[data-tema] .m-input:focus,
html[data-tema] .modal input:focus, html[data-tema] .modal select:focus, html[data-tema] .modal textarea:focus,
html[data-tema] .gm-style-iw input:focus, html[data-tema] .gm-style-iw select:focus {
  border-color: var(--gmg-primary) !important;
  box-shadow: var(--gmg-foco) !important;
  outline: none;
}
html[data-tema] .form-control[readonly], html[data-tema] .form-control:disabled,
html[data-tema] input[readonly], html[data-tema] select:disabled {
  background-color: var(--gmg-surface-2) !important;
  color: var(--gmg-text-2) !important;
}
html[data-tema] .form-control::placeholder, html[data-tema] input::placeholder, html[data-tema] textarea::placeholder { color: var(--gmg-placeholder) !important; }
html[data-tema] .input-group-text, html[data-tema] .m-input-icon__icon {
  background: var(--gmg-surface-2); border-color: var(--gmg-border-forte); color: var(--gmg-muted);
}
html[data-tema] .m-checkbox > span, html[data-tema] .m-radio > span {
  background: var(--gmg-surface) !important; border-color: var(--gmg-border-forte) !important;
}
html[data-tema] .m-checkbox > input:checked ~ span, html[data-tema] .m-radio > input:checked ~ span {
  background: var(--gmg-primary) !important; border-color: var(--gmg-primary) !important;
}
html[data-tema] input[type="checkbox"], html[data-tema] input[type="radio"] { accent-color: var(--gmg-primary); }
html[data-tema="escuro"] select option { background: var(--gmg-surface); color: var(--gmg-text); }
html[data-tema="escuro"] .form-control-plaintext, html[data-tema="escuro"] .col-form-label { color: var(--gmg-text); }

/* --------------------------------------------------------------------------
   Modais (Bootstrap, Metronic, bootbox e GeoBook)
   -------------------------------------------------------------------------- */
html[data-tema] .modal-backdrop.show { background: var(--gmg-overlay); opacity: 1; }
html[data-tema] .modal-content {
  background: var(--gmg-surface) !important;
  color: var(--gmg-text);
  border: 1px solid var(--gmg-border) !important;
  border-radius: var(--gmg-raio-lg) !important;
  box-shadow: var(--gmg-sombra-lg) !important;
}
html[data-tema] .modal-header {
  background: var(--gmg-surface) !important;
  border-bottom: 1px solid var(--gmg-border) !important;
  color: var(--gmg-text) !important;
  border-top-left-radius: var(--gmg-raio-lg); border-top-right-radius: var(--gmg-raio-lg);
}
html[data-tema] .modal-header .modal-title, html[data-tema] .modal-header h3, html[data-tema] .modal-header h4, html[data-tema] .modal-header h5 {
  color: var(--gmg-text) !important; font-weight: 600;
}
html[data-tema] .modal-body { color: var(--gmg-text); }
html[data-tema] .modal-footer {
  background: var(--gmg-surface) !important;
  border-top: 1px solid var(--gmg-border) !important;
  border-bottom-left-radius: var(--gmg-raio-lg); border-bottom-right-radius: var(--gmg-raio-lg);
}
html[data-tema] .modal .close, html[data-tema] .modal-header .close {
  color: var(--gmg-muted) !important; text-shadow: none; opacity: 1;
}
html[data-tema] .modal .close:hover { color: var(--gmg-text) !important; }

/* GeoBook modal v2 e Pessoas (estilos do index.html) */
html[data-tema] #modalCombinado .modal-content,
html[data-tema] #modalAreasPessoa .modal-content { background: var(--gmg-surface) !important; }
html[data-tema] #modalCombinado .m-portlet__head,
html[data-tema] .geobook-modal-v2 .geobook-modal-header,
html[data-tema] .geobook-modal-v2 .geobook-modal-footer { background: var(--gmg-surface) !important; border-color: var(--gmg-border) !important; }
html[data-tema] #modalCombinado .m-portlet__head-text,
html[data-tema] .geobook-modal-v2 .geobook-modal-title,
html[data-tema] .geobook-modal-v2 .geobook-modal-title h3,
html[data-tema] .geobook-section-toolbar h4 { color: var(--gmg-text) !important; }
html[data-tema] #modalCombinado .m-portlet__head-icon,
html[data-tema] .geobook-modal-v2 .geobook-modal-title i { color: var(--gmg-primary) !important; }
html[data-tema] .geobook-modal-v2 .geobook-modal-title small,
html[data-tema] .geobook-section-toolbar small { color: var(--gmg-muted) !important; }
html[data-tema] .geobook-modal-v2 .geobook-modal-close { color: var(--gmg-muted) !important; }

/* Botão "x" vermelho de fechar dos modais antigos: vira botão neutro */
html[data-tema] #modalCombinado .btn-danger[style*='float:right'],
html[data-tema] #modalMinhasAreas .btn-danger[style*='float:right'],
html[data-tema] .modal .btn-danger.btn-fechar-x {
  background: var(--gmg-surface-2) !important; border: 1px solid var(--gmg-border) !important;
}
html[data-tema] #modalCombinado .btn-danger[style*='float:right'] b,
html[data-tema] #modalMinhasAreas .btn-danger[style*='float:right'] b { color: var(--gmg-text-2) !important; }

/* --------------------------------------------------------------------------
   Portlets / cartões Metronic e GeoBook
   -------------------------------------------------------------------------- */
html[data-tema] .m-portlet,
html[data-tema] .card {
  background: var(--gmg-surface) !important;
  border-color: var(--gmg-border) !important;
  color: var(--gmg-text);
  border-radius: var(--gmg-raio-lg);
}
html[data-tema] .m-portlet .m-portlet__head,
html[data-tema] .card-header,
html[data-tema] .card-footer,
html[data-tema] .m-portlet .m-portlet__foot {
  background: var(--gmg-surface) !important; border-color: var(--gmg-border) !important;
}
html[data-tema] .m-portlet .m-portlet__head .m-portlet__head-text,
html[data-tema] .m-portlet__head-caption h3 { color: var(--gmg-text) !important; }
html[data-tema] .m-portlet.m-portlet--head-solid-bg .m-portlet__head { background: var(--gmg-surface-2) !important; }

html[data-tema] .geobook-people-card,
html[data-tema] .geobook-people-filter-card,
html[data-tema] .geobook-people-table-wrap,
html[data-tema] .geobook-filter-bar,
html[data-tema] .geobook-filter,
html[data-tema] .geobook-upload-queue-card,
html[data-tema] .geobook-upload-empty {
  background: var(--gmg-surface) !important; border-color: var(--gmg-border) !important; color: var(--gmg-text);
}
html[data-tema] .geobook-people-filter-card, html[data-tema] .geobook-filter-bar { background: var(--gmg-surface-2) !important; }
html[data-tema] .geobook-people-card strong { color: var(--gmg-text) !important; }
html[data-tema] .geobook-people-card span { color: var(--gmg-muted) !important; }
html[data-tema] .geobook-tag, html[data-tema] .geobook-access-badge.is-contact { background: var(--gmg-surface-3) !important; color: var(--gmg-text) !important; }
html[data-tema] .geobook-access-badge.is-active { background: var(--gmg-success-suave) !important; color: var(--gmg-success) !important; }

/* Centrais de configuração/administração/documentos do GeoBook */
html[data-tema] .geobook-config-center,
html[data-tema] .geobook-admin-center,
html[data-tema] .geobook-docs-center,
html[data-tema] .geobook-office-center,
html[data-tema] .geobook-config-panel,
html[data-tema] .geobook-config-focus-panel,
html[data-tema] .geobook-config-context,
html[data-tema] .geobook-submodal,
html[data-tema] .geobook-nested-modal,
html[data-tema] .geobook-field-modal {
  background-color: var(--gmg-surface) !important; color: var(--gmg-text) !important; border-color: var(--gmg-border) !important;
}
html[data-tema] .geobook-config-tabs-wrap,
html[data-tema] .geobook-config-tabs { background: var(--gmg-surface) !important; border-color: var(--gmg-border) !important; }
html[data-tema] .geobook-config-tab { color: var(--gmg-muted) !important; }
html[data-tema] .geobook-config-tab.active,
html[data-tema] .geobook-config-tab.is-active { color: var(--gmg-primary) !important; }
html[data-tema] .geobook-config-context-title { color: var(--gmg-text) !important; }

/* --------------------------------------------------------------------------
   Abas
   -------------------------------------------------------------------------- */
html[data-tema] .nav-tabs { border-bottom-color: var(--gmg-border) !important; }
html[data-tema] .nav-tabs .nav-link,
html[data-tema] .m-tabs-line .m-tabs__link,
html[data-tema] .m-tabs .m-tabs__link {
  color: var(--gmg-muted) !important; background: transparent !important; border-color: transparent !important;
}
html[data-tema] .nav-tabs .nav-link:hover,
html[data-tema] .m-tabs-line .m-tabs__link:hover { color: var(--gmg-text) !important; }
html[data-tema] .nav-tabs .nav-link.active,
html[data-tema] .m-tabs-line .m-tabs__link.active,
html[data-tema] .m-tabs-line a.m-tabs__link.active {
  color: var(--gmg-primary) !important; border-bottom: 2px solid var(--gmg-primary) !important; background: transparent !important;
}
html[data-tema] .nav-pills .nav-link.active { background: var(--gmg-primary) !important; color: var(--gmg-primary-texto) !important; }

/* --------------------------------------------------------------------------
   Tabelas (Bootstrap, mDatatable, DataTables, GeoBook)
   -------------------------------------------------------------------------- */
html[data-tema] .table,
html[data-tema] table.dataTable,
html[data-tema] .m-datatable__table { color: var(--gmg-text-2) !important; background: transparent !important; }
html[data-tema] .table th, html[data-tema] .table td,
html[data-tema] table.dataTable th, html[data-tema] table.dataTable td { border-color: var(--gmg-border) !important; }
html[data-tema] .table thead th,
html[data-tema] table.dataTable thead th,
html[data-tema] .m-datatable .m-datatable__table .m-datatable__head .m-datatable__row > .m-datatable__cell,
html[data-tema] .geobook-people-table th, html[data-tema] .geobook-people-areas-table th,
html[data-tema] .gb-lite-table th, html[data-tema] .gb-scenario-table th, html[data-tema] .gb-area-scenario-table th,
html[data-tema] .geobook-users-table th {
  background: var(--gmg-surface-2) !important; color: var(--gmg-muted) !important;
  font-weight: 600; border-bottom: 1px solid var(--gmg-border) !important;
}
html[data-tema] .m-datatable .m-datatable__table .m-datatable__head .m-datatable__row > .m-datatable__cell > span,
html[data-tema] .m-datatable .m-datatable__table .m-datatable__head .m-datatable__row > .m-datatable__cell > span > i { color: var(--gmg-muted) !important; }
html[data-tema] .m-datatable .m-datatable__table .m-datatable__body .m-datatable__row,
html[data-tema] .m-datatable .m-datatable__table .m-datatable__head,
html[data-tema] .m-datatable .m-datatable__table .m-datatable__head .m-datatable__row { background: transparent !important; }
html[data-tema] .m-datatable .m-datatable__table .m-datatable__body .m-datatable__row > .m-datatable__cell,
html[data-tema] .m-datatable .m-datatable__table .m-datatable__body .m-datatable__row > .m-datatable__cell > span { color: var(--gmg-text-2) !important; border-color: var(--gmg-border) !important; }
html[data-tema] .m-datatable .m-datatable__table .m-datatable__body .m-datatable__row.m-datatable__row--even > .m-datatable__cell,
html[data-tema] .table-striped tbody tr:nth-of-type(odd) { background: var(--gmg-surface-2) !important; }
html[data-tema] .m-datatable .m-datatable__table .m-datatable__body .m-datatable__row:hover > .m-datatable__cell,
html[data-tema] .table-hover tbody tr:hover { background: var(--gmg-hover) !important; }
html[data-tema] .geobook-people-table td, html[data-tema] .geobook-people-areas-table td,
html[data-tema] .gb-lite-table td, html[data-tema] .gb-scenario-table td, html[data-tema] .gb-area-scenario-table td,
html[data-tema] .geobook-users-table td { color: var(--gmg-text-2) !important; border-color: var(--gmg-border) !important; background: transparent !important; }

/* paginação */
html[data-tema] .m-datatable__pager-link, html[data-tema] .page-link,
html[data-tema] .dataTables_wrapper .dataTables_paginate .paginate_button {
  color: var(--gmg-text-2) !important; background: transparent !important; border-color: var(--gmg-border) !important; border-radius: var(--gmg-raio-sm) !important;
}
html[data-tema] .m-datatable__pager-link--active, html[data-tema] .page-item.active .page-link,
html[data-tema] .dataTables_wrapper .dataTables_paginate .paginate_button.current {
  background: var(--gmg-primary) !important; border-color: var(--gmg-primary) !important; color: var(--gmg-primary-texto) !important;
}
html[data-tema="escuro"] .m-datatable__pager-info, html[data-tema="escuro"] .dataTables_info,
html[data-tema="escuro"] .dataTables_length, html[data-tema="escuro"] .dataTables_filter { color: var(--gmg-muted) !important; }

/* --------------------------------------------------------------------------
   Menus suspensos (Bootstrap e Metronic)
   -------------------------------------------------------------------------- */
html[data-tema] .dropdown-menu,
html[data-tema] .m-dropdown__wrapper .m-dropdown__content,
html[data-tema] .m-dropdown__wrapper .m-dropdown__inner,
html[data-tema] .geobook-tools-menu,
html[data-tema] .geobook-tools-dropdown .dropdown-menu {
  background: var(--gmg-surface) !important;
  border: 1px solid var(--gmg-border) !important;
  border-radius: 12px !important;
  box-shadow: var(--gmg-sombra) !important;
  color: var(--gmg-text);
}
html[data-tema] .m-dropdown__wrapper .m-dropdown__arrow { color: var(--gmg-surface) !important; }
html[data-tema] .dropdown-item,
html[data-tema] .m-nav .m-nav__item > .m-nav__link .m-nav__link-text,
html[data-tema] .m-nav .m-nav__item > .m-nav__link .m-nav__link-icon { color: var(--gmg-text-2) !important; }
html[data-tema] .dropdown-item:hover,
html[data-tema] .m-nav .m-nav__item > .m-nav__link:hover { background: var(--gmg-hover) !important; border-radius: 8px; }
html[data-tema] .m-nav .m-nav__item > .m-nav__link:hover .m-nav__link-text,
html[data-tema] .m-nav .m-nav__item > .m-nav__link:hover .m-nav__link-icon { color: var(--gmg-primary) !important; }
html[data-tema] .m-nav .m-nav__section .m-nav__section-text,
html[data-tema] .dropdown-header { color: var(--gmg-muted) !important; }
html[data-tema] .m-nav .m-nav__separator, html[data-tema] .dropdown-divider { border-color: var(--gmg-border) !important; }

/* --------------------------------------------------------------------------
   Alertas, badges, toasts, SweetAlert2, popovers
   -------------------------------------------------------------------------- */
html[data-tema] .alert { border-radius: var(--gmg-raio); border: 1px solid var(--gmg-border); }
html[data-tema] .alert-success { background: var(--gmg-success-suave) !important; color: var(--gmg-success) !important; border-color: transparent; }
html[data-tema] .alert-danger { background: var(--gmg-danger-suave) !important; color: var(--gmg-danger) !important; border-color: transparent; }
html[data-tema] .alert-warning { background: var(--gmg-warning-suave) !important; color: var(--gmg-warning) !important; border-color: transparent; }
html[data-tema] .alert-info, html[data-tema] .alert-primary { background: var(--gmg-info-suave) !important; color: var(--gmg-info) !important; border-color: transparent; }
html[data-tema] .badge { border-radius: 6px; font-weight: 600; }

html[data-tema] .swal2-popup {
  background: var(--gmg-surface) !important; color: var(--gmg-text) !important;
  border-radius: var(--gmg-raio-lg) !important; box-shadow: var(--gmg-sombra-lg);
}
html[data-tema] .swal2-title { color: var(--gmg-text) !important; font-weight: 600 !important; }
html[data-tema] .swal2-html-container, html[data-tema] .swal2-content { color: var(--gmg-text-2) !important; }
html[data-tema] .swal2-styled { border-radius: var(--gmg-raio) !important; font-weight: 500 !important; }
html[data-tema] .swal2-styled.swal2-confirm { background: var(--gmg-primary) !important; color: var(--gmg-primary-texto) !important; }
html[data-tema] .swal2-styled.swal2-cancel { background: var(--gmg-surface-3) !important; color: var(--gmg-text) !important; }
html[data-tema] .swal2-styled.swal2-deny { background: var(--gmg-danger) !important; }
html[data-tema] .swal2-input, html[data-tema] .swal2-textarea, html[data-tema] .swal2-select {
  background: var(--gmg-surface) !important; color: var(--gmg-text) !important; border-color: var(--gmg-border-forte) !important; border-radius: var(--gmg-raio) !important;
}
html[data-tema] .swal2-container.swal2-backdrop-show { background: var(--gmg-overlay) !important; }

html[data-tema] #toast-container > .toast { border-radius: var(--gmg-raio) !important; box-shadow: var(--gmg-sombra) !important; opacity: .97; }

html[data-tema] .popover, html[data-tema] .tooltip-inner {
  background: var(--gmg-surface); color: var(--gmg-text); border-color: var(--gmg-border); border-radius: var(--gmg-raio-sm);
}
html[data-tema="escuro"] .tooltip-inner { background: var(--gmg-surface-3); }
html[data-tema="escuro"] .popover-header { background: var(--gmg-surface-2); color: var(--gmg-text); border-color: var(--gmg-border); }
html[data-tema="escuro"] .popover-body { color: var(--gmg-text-2); }

/* --------------------------------------------------------------------------
   Janela de informação do Google Maps (InfoWindow da área)
   -------------------------------------------------------------------------- */
html[data-tema] .gm-style .gm-style-iw-c {
  background: var(--gmg-surface) !important; color: var(--gmg-text) !important;
  border-radius: var(--gmg-raio-lg) !important; box-shadow: var(--gmg-sombra-lg) !important;
}
html[data-tema] .gm-style .gm-style-iw-d { color: var(--gmg-text); }
html[data-tema] .gm-style .gm-style-iw-tc::after { background: var(--gmg-surface) !important; }
html[data-tema] .gm-style .gm-style-iw-chr button span,
html[data-tema] .gm-style button.gm-ui-hover-effect > span { background-color: var(--gmg-muted) !important; }
html[data-tema="escuro"] .gm-style .gm-style-iw-d table,
html[data-tema="escuro"] .gm-style .gm-style-iw-d tr,
html[data-tema="escuro"] .gm-style .gm-style-iw-d th,
html[data-tema="escuro"] .gm-style .gm-style-iw-d td { background: transparent !important; color: var(--gmg-text-2) !important; border-color: var(--gmg-border) !important; }
html[data-tema="escuro"] .gm-style .gm-style-iw-d tr:nth-child(odd) > * { background: var(--gmg-surface-2) !important; }
html[data-tema] .geobook-marker-infowindow { color: var(--gmg-text); }

/* --------------------------------------------------------------------------
   Barra de ferramentas do mapa, logo e controles
   -------------------------------------------------------------------------- */
html[data-tema] .gmap-toolbar { font-family: var(--gmg-fonte); }
html[data-tema="escuro"] .gmap-toolbar .divider { background: rgba(255, 255, 255, .1); }
html[data-tema="escuro"] .gmap-toolbar button:hover,
html[data-tema="escuro"] .gmap-toolbar .segmented > label:hover { background: rgba(255, 255, 255, .08); }
html[data-tema="escuro"] .gmap-toolbar input,
html[data-tema="escuro"] .gmap-toolbar .search input { background: rgba(255, 255, 255, .06) !important; color: var(--gmg-text) !important; border-color: rgba(255, 255, 255, .1) !important; }
html[data-tema="escuro"] .gmap-toolbar i, html[data-tema="escuro"] .gmap-toolbar svg { color: var(--gmg-text-2); fill: currentColor; }

html[data-tema="escuro"] .pac-container { background: var(--gmg-surface); border-color: var(--gmg-border); box-shadow: var(--gmg-sombra); }
html[data-tema="escuro"] .pac-item { color: var(--gmg-muted); border-color: var(--gmg-border); }
html[data-tema="escuro"] .pac-item:hover { background: var(--gmg-hover); }
html[data-tema="escuro"] .pac-item-query { color: var(--gmg-text); }

html[data-tema="escuro"] .geobook-map-restore-bar { background: var(--gmg-surface) !important; color: var(--gmg-text) !important; border-color: var(--gmg-border) !important; }

/* Botão de tema (inserido por GMGTema.js) */
.gmg-tema-btn { font-size: 16px; line-height: 1; }
.gmg-tema-btn .gmg-tema-icone { display: inline-block; width: 18px; text-align: center; }

/* --------------------------------------------------------------------------
   jsTree (documentos / pasta padrão)
   -------------------------------------------------------------------------- */
html[data-tema="escuro"] .jstree-default .jstree-anchor,
html[data-tema="escuro"] .jstree-proton .jstree-anchor { color: var(--gmg-text-2) !important; }
html[data-tema="escuro"] .jstree-default .jstree-hovered,
html[data-tema="escuro"] .jstree-proton .jstree-hovered { background: var(--gmg-hover) !important; box-shadow: none !important; color: var(--gmg-text) !important; }
html[data-tema="escuro"] .jstree-default .jstree-clicked,
html[data-tema="escuro"] .jstree-proton .jstree-clicked { background: var(--gmg-primary-suave) !important; color: var(--gmg-text) !important; box-shadow: none !important; }
html[data-tema="escuro"] .vakata-context { background: var(--gmg-surface) !important; border-color: var(--gmg-border) !important; box-shadow: var(--gmg-sombra) !important; }
html[data-tema="escuro"] .vakata-context li > a { color: var(--gmg-text-2) !important; text-shadow: none !important; }
html[data-tema="escuro"] .vakata-context .vakata-context-hover > a { background: var(--gmg-hover) !important; box-shadow: none !important; }

/* --------------------------------------------------------------------------
   Portlets flutuantes do mapa e quick-sidebar
   -------------------------------------------------------------------------- */
html[data-tema="escuro"] .m-quick-sidebar,
html[data-tema="escuro"] #collapseExample .card,
html[data-tema="escuro"] #legenda, html[data-tema="escuro"] #eleva, html[data-tema="escuro"] #curva,
html[data-tema="escuro"] #portlet-sentinel {
  background: var(--gmg-surface) !important; color: var(--gmg-text) !important; border-color: var(--gmg-border) !important;
}

/* --------------------------------------------------------------------------
   Modo escuro: estilos embutidos no HTML gerado por JavaScript
   (fundo branco/claro e texto escuro fixos nos atributos style="")
   -------------------------------------------------------------------------- */
html[data-tema="escuro"] .modal [style*="background:#fff"], html[data-tema="escuro"] .modal [style*="background: #fff"],
html[data-tema="escuro"] .modal [style*="background:#ffffff"], html[data-tema="escuro"] .modal [style*="background: #ffffff"],
html[data-tema="escuro"] .modal [style*="background-color:#fff"], html[data-tema="escuro"] .modal [style*="background-color: #fff"],
html[data-tema="escuro"] .modal [style*="background:white"], html[data-tema="escuro"] .modal [style*="background: white"],
html[data-tema="escuro"] .modal [style*="background-color: white"], html[data-tema="escuro"] .modal [style*="background-color:white"],
html[data-tema="escuro"] .gm-style-iw [style*="background:#fff"], html[data-tema="escuro"] .gm-style-iw [style*="background: #fff"],
html[data-tema="escuro"] .gm-style-iw [style*="background-color: #fff"], html[data-tema="escuro"] .gm-style-iw [style*="background-color:#fff"],
html[data-tema="escuro"] .gm-style-iw [style*="background: white"], html[data-tema="escuro"] .gm-style-iw [style*="background-color: white"] {
  background: var(--gmg-surface) !important;
}
html[data-tema="escuro"] .modal [style*="background:#f"], html[data-tema="escuro"] .modal [style*="background: #f"],
html[data-tema="escuro"] .modal [style*="background-color:#f"], html[data-tema="escuro"] .modal [style*="background-color: #f"],
html[data-tema="escuro"] .gm-style-iw [style*="background:#f"], html[data-tema="escuro"] .gm-style-iw [style*="background: #f"],
html[data-tema="escuro"] .gm-style-iw [style*="background-color: #f"] {
  background: var(--gmg-surface-2) !important;
}
html[data-tema="escuro"] .modal [style*="color:#000"], html[data-tema="escuro"] .modal [style*="color: #000"],
html[data-tema="escuro"] .modal [style*="color:#1"], html[data-tema="escuro"] .modal [style*="color: #1"],
html[data-tema="escuro"] .modal [style*="color:#2"], html[data-tema="escuro"] .modal [style*="color: #2"],
html[data-tema="escuro"] .modal [style*="color:#3"], html[data-tema="escuro"] .modal [style*="color: #3"],
html[data-tema="escuro"] .gm-style-iw [style*="color:#000"], html[data-tema="escuro"] .gm-style-iw [style*="color: #000"],
html[data-tema="escuro"] .gm-style-iw [style*="color:#1"], html[data-tema="escuro"] .gm-style-iw [style*="color: #1"],
html[data-tema="escuro"] .gm-style-iw [style*="color:#2"], html[data-tema="escuro"] .gm-style-iw [style*="color: #2"],
html[data-tema="escuro"] .gm-style-iw [style*="color:#3"], html[data-tema="escuro"] .gm-style-iw [style*="color: #3"] {
  color: var(--gmg-text) !important;
}
html[data-tema="escuro"] .modal [style*="border:1px solid #e"], html[data-tema="escuro"] .modal [style*="border: 1px solid #e"],
html[data-tema="escuro"] .modal [style*="border:1px solid #d"], html[data-tema="escuro"] .modal [style*="border: 1px solid #d"] {
  border-color: var(--gmg-border) !important;
}

/* --------------------------------------------------------------------------
   Estudo de viabilidade (GMGViabilidade) no modo escuro
   -------------------------------------------------------------------------- */
html[data-tema="escuro"] .gv-caixa { background: var(--gmg-bg); }
html[data-tema="escuro"] .gv-rodape,
html[data-tema="escuro"] .gv-tipo, html[data-tema="escuro"] .gv-salvo, html[data-tema="escuro"] .gv-vazio,
html[data-tema="escuro"] .gv-avancado, html[data-tema="escuro"] .gv-vivo, html[data-tema="escuro"] .gv-kpi,
html[data-tema="escuro"] .gv-grafico, html[data-tema="escuro"] .gv-terreno div, html[data-tema="escuro"] .gv-barras,
html[data-tema="escuro"] .gv-tab td {
  background: var(--gmg-surface); border-color: var(--gmg-border); color: var(--gmg-text);
}
html[data-tema="escuro"] .gv-h, html[data-tema="escuro"] .gv-h4, html[data-tema="escuro"] .gv-rot,
html[data-tema="escuro"] .gv-tipo strong, html[data-tema="escuro"] .gv-mini b, html[data-tema="escuro"] .gv-kpi b { color: var(--gmg-text); }
html[data-tema="escuro"] .gv-mini div, html[data-tema="escuro"] .gv-barra div { background: var(--gmg-surface-2); }
html[data-tema="escuro"] .gv-entrada, html[data-tema="escuro"] .gv-campo select,
html[data-tema="escuro"] .gv-nome, html[data-tema="escuro"] .gv-slot { background: var(--gmg-surface-2); border-color: var(--gmg-border-forte); color: var(--gmg-text); }
html[data-tema="escuro"] .gv-entrada input { color: var(--gmg-text); }
html[data-tema="escuro"] .gv-btn-sec { background: var(--gmg-primary-suave); color: var(--gmg-primary); }
html[data-tema="escuro"] .gv-terreno-mini { background: var(--gmg-primary-suave); color: var(--gmg-text); }
html[data-tema="escuro"] .gv-terreno b { color: var(--gmg-primary); }
html[data-tema="escuro"] .gv-alertas li { background: var(--gmg-warning-suave); border-color: transparent; color: var(--gmg-warning); }
html[data-tema="escuro"] .gv-selo { background: var(--gmg-surface-2) !important; color: var(--gmg-text-2); }
html[data-tema="escuro"] .gv-sens td { color: #111827; }

/* --------------------------------------------------------------------------
   Tela de login
   -------------------------------------------------------------------------- */
html[data-tema="escuro"] .m-login__wrapper, html[data-tema="escuro"] .m-login__container,
html[data-tema="escuro"] .login-card, html[data-tema="escuro"] .m-login .m-login__form {
  color: var(--gmg-text);
}

/* ==========================================================================
   Reforços de prioridade
   O custom.css, o <style> do index.html e os estilos injetados pelo GeoBook
   usam seletores com id (#modalCombinado, #modalMinhasAreas...). :is() com um
   id "fantasma" (#gmg-r) dá a mesma prioridade de id sem depender de qual modal.
   ========================================================================== */

/* Variáveis do GeoBook (GeoBookModalUI.js) passam a seguir o tema */
html[data-tema] {
  --gb-primary: var(--gmg-primary);
  --gb-primary-dark: var(--gmg-primary-hover);
  --gb-success: var(--gmg-success);
  --gb-danger: var(--gmg-danger);
  --gb-text: var(--gmg-text);
  --gb-muted: var(--gmg-muted);
  --gb-soft: var(--gmg-surface-2);
  --gb-border: var(--gmg-border);
  --gb-head: var(--gmg-surface-2);
  --gb-shadow: var(--gmg-sombra-lg);
}

/* Abas ativas dos modais com regra por id */
html[data-tema] :is(.modal, #gmg-r) .m-tabs__link.active,
html[data-tema] :is(.modal, #gmg-r) .nav-link.active {
  color: var(--gmg-primary) !important; border-bottom-color: var(--gmg-primary) !important;
}
html[data-tema] :is(.modal, #gmg-r) .m-tabs__link:not(.active) { color: var(--gmg-muted) !important; }
html[data-tema] :is(.modal, #gmg-r) .m-portlet__head-text { color: var(--gmg-text) !important; }
html[data-tema] :is(.modal, #gmg-r) .m-portlet__head-icon { color: var(--gmg-primary) !important; }

/* Barra de ações e botões do GeoBook */
html[data-tema] :is(.modal, #gmg-r) .geobook-v2-toolbar {
  background: var(--gmg-surface) !important; border-color: var(--gmg-border) !important; box-shadow: none !important;
}
html[data-tema] :is(.modal, #gmg-r) .geobook-btn:not(.geobook-btn-primary):not(.geobook-btn-success),
html[data-tema] :is(.modal, #gmg-r) .geobook-row-access-btn {
  background: var(--gmg-surface) !important; border-color: var(--gmg-border-forte) !important; color: var(--gmg-text-2) !important;
  box-shadow: none !important;
}
html[data-tema] :is(.modal, #gmg-r) .geobook-btn:not(.geobook-btn-primary):not(.geobook-btn-success):hover,
html[data-tema] :is(.modal, #gmg-r) .geobook-row-access-btn:hover { background: var(--gmg-hover) !important; color: var(--gmg-primary) !important; transform: none; }
html[data-tema] :is(.modal, #gmg-r) .geobook-btn-primary { box-shadow: none !important; color: var(--gmg-primary-texto) !important; }
html[data-tema] :is(.modal, #gmg-r) .geobook-btn-success { box-shadow: none !important; }
html[data-tema] :is(.modal, #gmg-r) .geobook-btn { font-weight: 600 !important; border-radius: var(--gmg-raio) !important; }

/* Filtros da lista de áreas */
html[data-tema] :is(.modal, #gmg-r) .geobook-filter-bar {
  background: var(--gmg-surface-2) !important; border-color: var(--gmg-border) !important; border-radius: 12px !important;
}
html[data-tema] :is(.modal, #gmg-r) .geobook-filter-bar label { color: var(--gmg-muted) !important; }

/* Nome da área na lista */
html[data-tema] :is(.modal, #gmg-r) .geobook-area-open { color: var(--gmg-text) !important; }
html[data-tema] :is(.modal, #gmg-r) .geobook-area-open i { color: var(--gmg-primary) !important; }
html[data-tema] :is(.modal, #gmg-r) .geobook-area-open:hover { color: var(--gmg-primary) !important; }

/* Corpo dos modais e tabelas internas */
html[data-tema] :is(.modal, #gmg-r) .modal-body { background: var(--gmg-surface) !important; color: var(--gmg-text); }
html[data-tema] :is(.modal, #gmg-r) .m-datatable .m-datatable__table .m-datatable__head .m-datatable__row > .m-datatable__cell,
html[data-tema] :is(.modal, #gmg-r) .table thead th,
html[data-tema] :is(.modal, #gmg-r) .gb-lite-table th {
  background: var(--gmg-surface-2) !important; color: var(--gmg-muted) !important; border-color: var(--gmg-border) !important;
}
html[data-tema="escuro"] :is(.modal, #gmg-r) .table td,
html[data-tema="escuro"] :is(.modal, #gmg-r) .table-bordered td,
html[data-tema="escuro"] :is(.modal, #gmg-r) .gb-lite-table td {
  background-color: transparent !important; color: var(--gmg-text-2) !important; border-color: var(--gmg-border) !important;
}
html[data-tema] :is(.modal, #gmg-r) .table-bordered,
html[data-tema] :is(.modal, #gmg-r) .table-bordered th { border-color: var(--gmg-border) !important; }

/* Tabela "lite" do GeoBook (Pessoas, Grupos, Contatos) */
html[data-tema] :is(.modal, #gmg-r) .gb-lite-wrap { background: transparent !important; border-color: var(--gmg-border) !important; }
html[data-tema] :is(.modal, #gmg-r) .gb-lite-page {
  background: var(--gmg-surface) !important; border: 1px solid var(--gmg-border) !important; color: var(--gmg-text-2) !important;
}
html[data-tema] :is(.modal, #gmg-r) .gb-lite-page.active,
html[data-tema] :is(.modal, #gmg-r) .gb-lite-page.is-active { background: var(--gmg-primary) !important; border-color: var(--gmg-primary) !important; color: var(--gmg-primary-texto) !important; }
html[data-tema] :is(.modal, #gmg-r) .gb-lite-count,
html[data-tema] :is(.modal, #gmg-r) .gb-lite-page-size,
html[data-tema] :is(.modal, #gmg-r) .gb-lite-page-size span { color: var(--gmg-muted) !important; }
html[data-tema] :is(.modal, #gmg-r) .geobook-count-pill {
  background: var(--gmg-primary-suave) !important; color: var(--gmg-primary) !important; border-color: transparent !important;
}

/* Pessoas: botão fechar e "Adicionar pessoa" sem sombra pesada */
html[data-tema] #modalCombinado #cadastrarUsuario { background: var(--gmg-primary) !important; border-color: var(--gmg-primary) !important; box-shadow: none !important; }
html[data-tema] :is(.modal, #gmg-r) input[name='searchUsuarios'],
html[data-tema] :is(.modal, #gmg-r) input[name="searchAreas"],
html[data-tema] :is(.modal, #gmg-r) input[name="searchEstudos"] {
  background: var(--gmg-surface) !important; border-color: var(--gmg-border-forte) !important; color: var(--gmg-text) !important;
}

/* Pessoas / Contatos: nome e selos */
html[data-tema] :is(.modal, #gmg-r) .gb-person-main { color: var(--gmg-text) !important; }
html[data-tema] :is(.modal, #gmg-r) .gb-person-main + *, html[data-tema] :is(.modal, #gmg-r) .gb-person-sub { color: var(--gmg-muted) !important; }
html[data-tema="escuro"] :is(.modal, #gmg-r) .gb-access-badge,
html[data-tema="escuro"] :is(.modal, #gmg-r) .gb-contact-badge { background: var(--gmg-surface-3) !important; color: var(--gmg-text-2) !important; border-color: transparent !important; }
html[data-tema="escuro"] :is(.modal, #gmg-r) .gb-contact-badge-corretor { background: var(--gmg-info-suave) !important; color: var(--gmg-info) !important; }
html[data-tema="escuro"] :is(.modal, #gmg-r) .gb-contact-badge-proprietario { background: var(--gmg-success-suave) !important; color: var(--gmg-success) !important; }

/* Campos e botões dentro de modais e da janela da área (vencem regras por id do custom.css) */
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) :is(.form-control, .custom-select, select, textarea,
  input[type="text"], input[type="number"], input[type="email"], input[type="password"], input[type="search"], input[type="date"], input[type="tel"]) {
  background-color: var(--gmg-surface) !important; border-color: var(--gmg-border-forte) !important; color: var(--gmg-text) !important;
}
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) :is(.form-control, select, input)[readonly],
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) :is(.form-control, select, input):disabled { background-color: var(--gmg-surface-2) !important; color: var(--gmg-text-2) !important; }
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) .btn-secondary,
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) .btn-metal,
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) .geobook-tools-toggle,
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) .geobook-contact-add {
  background: var(--gmg-surface) !important; border: 1px solid var(--gmg-border-forte) !important; color: var(--gmg-text-2) !important;
}
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) .geobook-contact-add { color: var(--gmg-success) !important; }
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) .geobook-tools-toggle:hover,
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) .btn-secondary:hover,
html[data-tema] :is(.modal, .gm-style-iw, #gmg-r) .geobook-contact-add:hover { background: var(--gmg-hover) !important; }
html[data-tema] .gm-style-iw .geobook-iw-section-row span,
html[data-tema] .gm-style-iw .geobook-iw-section-row td { color: var(--gmg-primary) !important; }
html[data-tema="escuro"] :is(.modal, #gmg-r) label,
html[data-tema="escuro"] :is(.modal, #gmg-r) .control-label,
html[data-tema="escuro"] :is(.modal, #gmg-r) .col-form-label { color: var(--gmg-text-2) !important; }
html[data-tema] .custom-file-control, html[data-tema] .custom-file-label {
  background: var(--gmg-surface) !important; border-color: var(--gmg-border-forte) !important; color: var(--gmg-text-2) !important; border-radius: var(--gmg-raio) !important;
}
html[data-tema="escuro"] .custom-file-control::before, html[data-tema="escuro"] .custom-file-label::after {
  background: var(--gmg-surface-3) !important; color: var(--gmg-text) !important; border-color: var(--gmg-border-forte) !important;
}

/* ==========================================================================
   Responsividade (celular e tablet)
   ========================================================================== */
@media (max-width: 767px) {
  /* Barra do mapa compacta: busca na 1ª linha, ferramentas na 2ª */
  html[data-tema] #gmg-toolbar {
    gap: 2px !important; padding: 4px !important; margin-top: 6px !important;
    max-width: calc(100vw - 12px) !important; border-radius: 14px !important;
  }
  html[data-tema] #gmg-toolbar .divider { display: none !important; }
  html[data-tema] #gmg-toolbar .group:has(.search-wrap),
  html[data-tema] #gmg-toolbar .search-wrap { flex: 1 1 100% !important; min-width: 0 !important; order: -1; }
  html[data-tema] #gmg-toolbar .search-input { min-width: 0 !important; width: 100% !important; }
  html[data-tema] #gmg-toolbar button,
  html[data-tema] #gmg-toolbar .segmented > label { padding: 6px 7px !important; height: 32px !important; }
  html[data-tema] #gmg-toolbar .label { display: none !important; }

  /* Modais em tela cheia */
  html[data-tema] :is(.modal, #gmg-r) .modal-dialog {
    margin: 0 !important; width: 100% !important; max-width: 100% !important; min-height: 100% !important;
    padding: 0 !important;
  }
  html[data-tema] :is(.modal, #gmg-r) .modal-content {
    border-radius: 0 !important; min-height: 100vh; border: 0 !important;
  }
  html[data-tema] :is(.modal, #gmg-r) .modal-header,
  html[data-tema] :is(.modal, #gmg-r) .modal-footer { border-radius: 0 !important; }
  html[data-tema] :is(.modal, #gmg-r) .modal-body { padding: 14px !important; }
  html[data-tema] :is(.modal, #gmg-r) .modal-footer { flex-wrap: wrap; gap: 8px; }
  html[data-tema] :is(.modal, #gmg-r) .modal-footer > .btn { flex: 1 1 auto; }

  /* Cabeçalho de portlet com abas: título em cima, abas roláveis embaixo */
  html[data-tema] :is(.modal, #gmg-r) .m-portlet__head {
    flex-wrap: wrap !important; height: auto !important; min-height: 0 !important; padding: 10px 44px 0 4px !important; gap: 4px;
  }
  html[data-tema] :is(.modal, #gmg-r) .m-portlet__head-caption { width: 100%; }
  html[data-tema] :is(.modal, #gmg-r) .m-portlet__head-tools { width: 100%; overflow-x: auto; }
  html[data-tema] :is(.modal, #gmg-r) .m-portlet__head-tools .nav-tabs,
  html[data-tema] :is(.modal, #gmg-r) .m-portlet__head-tools .m-tabs {
    flex-wrap: nowrap !important; white-space: nowrap; margin: 0 !important;
  }
  html[data-tema] :is(.modal, #gmg-r) .m-tabs__link { padding: 10px 12px !important; font-size: 14px !important; }
  html[data-tema] :is(.modal, #gmg-r) .m-portlet__body { padding: 12px 0 0 !important; }

  /* Tabelas: rolagem horizontal em vez de espremer colunas */
  html[data-tema] :is(.modal, #gmg-r) .gb-lite-wrap,
  html[data-tema] :is(.modal, #gmg-r) .m-datatable,
  html[data-tema] :is(.modal, #gmg-r) .table-responsive,
  html[data-tema] :is(.modal, #gmg-r) .geobook-people-table-wrap {
    overflow-x: auto !important; -webkit-overflow-scrolling: touch;
  }
  html[data-tema] :is(.modal, #gmg-r) .gb-lite-wrap table,
  html[data-tema] :is(.modal, #gmg-r) .geobook-users-table { min-width: 860px !important; table-layout: auto !important; }
  html[data-tema] :is(.modal, #gmg-r) .gb-lite-wrap td,
  html[data-tema] :is(.modal, #gmg-r) .gb-lite-wrap th { white-space: nowrap; }
  html[data-tema] :is(.modal, #gmg-r) .gb-lite-wrap > table,
  html[data-tema] :is(.modal, #gmg-r) .m-datatable > table,
  html[data-tema] :is(.modal, #gmg-r) .geobook-people-table,
  html[data-tema] :is(.modal, #gmg-r) .geobook-users-table,
  html[data-tema] :is(.modal, #gmg-r) .m-datatable__table { min-width: 860px !important; table-layout: auto !important; }
  html[data-tema] :is(.modal, #gmg-r) .modal-body > .table,
  html[data-tema] :is(.modal, #gmg-r) .tab-pane > .table { display: block; overflow-x: auto; }

  /* Barras de ação e filtros quebram linha */
  html[data-tema] :is(.modal, #gmg-r) .geobook-v2-toolbar { flex-wrap: wrap !important; }
  html[data-tema] :is(.modal, #gmg-r) .geobook-filter-bar .geobook-filter { min-width: 0 !important; max-width: none !important; flex: 1 1 140px; }
  html[data-tema] :is(.modal, #gmg-r) .row.justify-content-between { row-gap: 8px; }

  /* Janela de informação da área */
  html[data-tema] .gm-style .gm-style-iw-c { max-width: calc(100vw - 24px) !important; }
  html[data-tema] .gm-style .gm-style-iw-d { max-height: 58vh !important; }

  /* SweetAlert e bootbox */
  html[data-tema] .swal2-popup { width: calc(100vw - 24px) !important; }
}

@media (min-width: 768px) and (max-width: 1100px) {
  html[data-tema] :is(.modal, #gmg-r) .modal-dialog.modal-xg,
  html[data-tema] :is(.modal, #gmg-r) .modal-dialog.modal-xl,
  html[data-tema] :is(.modal, #gmg-r) .modal-dialog.modal-lg { max-width: calc(100vw - 32px) !important; }
  html[data-tema] :is(.modal, #gmg-r) .gb-lite-wrap,
  html[data-tema] :is(.modal, #gmg-r) .m-datatable { overflow-x: auto !important; }
}

/* Estudo de viabilidade: blocos de fontes, memória e notas no modo escuro */
html[data-tema="escuro"] .gv-tabela-rolagem,
html[data-tema="escuro"] .gv-mercado-item { background: var(--gmg-surface); border-color: var(--gmg-border); }
html[data-tema="escuro"] .gv-memoria th,
html[data-tema="escuro"] .gv-mem-resultado td { background: var(--gmg-surface-2); color: var(--gmg-text-2); }
html[data-tema="escuro"] .gv-memoria td { border-color: var(--gmg-border); color: var(--gmg-text-2); }
html[data-tema="escuro"] .gv-mercado-item b { color: var(--gmg-text); }
html[data-tema="escuro"] .gv-notas { background: var(--gmg-surface-2); border-color: var(--gmg-border-forte); color: var(--gmg-text); }
html[data-tema="escuro"] .gv-o-inf { background: var(--gmg-success-suave); color: var(--gmg-success); }
html[data-tema="escuro"] .gv-o-mer { background: var(--gmg-info-suave); color: var(--gmg-info); }
html[data-tema="escuro"] .gv-o-ref { background: var(--gmg-warning-suave); color: var(--gmg-warning); }
html[data-tema="escuro"] .gv-o-pend { background: var(--gmg-danger-suave); color: var(--gmg-danger); }
html[data-tema="escuro"] .gv-fonte { color: var(--gmg-muted) !important; }
