:root{
        /* Cor base escolhida pelo usuário (regras html[data-godi-cor] logo abaixo). */
        --godi-base: #004080;
        --godi-base-hover: #002767;
        --godi-navbar: var(--godi-base);
        /* Sidebar: cinza claro no modo claro; o modo escuro (.dark-mode, mais abaixo) volta ao
           azul-marinho escuro, então os dois modos ficam bem diferentes. */
        --godi-sidebar: #f4f6f9;
        --godi-sidebar-borda: #e2e7ee;
        --godi-sidebar-hover: #e6ebf1;
        --godi-sidebar-texto: #344456;
        --godi-sidebar-texto-sub: #4f6073;
        --godi-sidebar-texto-hover: #14212f;
        --godi-sidebar-icone: #6b7b8e;
        --godi-sidebar-busca-fundo: #ffffff;
        --godi-sidebar-busca-borda: #d9dfe7;
        --godi-sidebar-busca-texto: #344456;
        --godi-accent: var(--godi-base);
        --godi-content-bg: #eef1f5;
        --godi-text-soft: #9fb0c3;
      }

      body{ background: var(--godi-content-bg); }

      /* Navbar */
      .godi-navbar{ background: var(--godi-navbar); border-bottom: 0; }
      .godi-navbar .nav-link{ color: #dce6f2; }
      .godi-navbar .nav-link:hover{ color: #fff; }
      .godi-navbar-logo{ height: 34px; }
      .godi-navbar-search{ max-width: 360px; width: 100%; }
      .godi-navbar-search .form-control{
        background: rgba(255,255,255,.12);
        border: 1px solid rgba(255,255,255,.18);
        color: #fff;
      }
      .godi-navbar-search .form-control::placeholder{ color: #c3d1e2; }
      .godi-navbar-search .input-group-text,
      .godi-navbar-search .btn{
        background: rgba(255,255,255,.12);
        border: 1px solid rgba(255,255,255,.18);
        color: #dce6f2;
      }
      .godi-user-toggle{ display:flex; align-items:center; }
      /* Foto do usuário (helpers.php avatarUsuario()); sem foto, silhueta cinza. */
      .godi-avatar{ display:inline-block; border-radius:50%; object-fit:cover; flex-shrink:0; overflow:hidden; vertical-align:middle; }
      .godi-avatar-silhueta{ background:#dfe5ec; color:#9aa7b5; }
      .godi-user-toggle .godi-avatar{ border:2px solid rgba(255,255,255,.55); }
      .godi-arquivo-ausente{ display:grid; place-items:center; text-align:center; padding:1.5rem; color:#15233b; }
      .godi-arquivo-ausente__icone{ font-size:2.25rem; line-height:1; color:#8a5300; }
      .godi-arquivo-ausente h1{ margin:.6rem 0 .4rem; font-size:1.15rem; }
      .godi-arquivo-ausente p{ margin:0; font-size:.9rem; line-height:1.5; color:#56616f; }

      /* Header de ponta a ponta, fixo no topo, e sidebar começando logo abaixo dele (no AdminLTE
         padrão o sidebar vai até o topo e o header começa depois dele). A altura é a mesma do
         AdminLTE (3.5rem + 1px), em rem, então acompanha o tamanho de fonte da engrenagem. */
      :root{ --godi-header-altura: calc(3.5rem + 1px); }
      /* Seletor reforçado: o AdminLTE desloca o header com !important ao recolher o menu (sidebar-mini). */
      body .wrapper .main-header.godi-navbar{ position: fixed; top: 0; left: 0; right: 0; margin-left: 0 !important; z-index: 1040; height: var(--godi-header-altura); }
      .layout-fixed .main-sidebar.godi-sidebar{ top: var(--godi-header-altura); }
      .layout-fixed .wrapper .godi-sidebar .sidebar{ height: calc(100vh - var(--godi-header-altura)); overflow-y: auto; overflow-x: hidden; }
      .wrapper > .content-wrapper{ padding-top: var(--godi-header-altura); }
      /* Menu recolhido (só ícones): a busca do menu não cabe; volta quando o menu abre no hover. */
      .sidebar-mini.sidebar-collapse .main-sidebar:not(:hover) .godi-sidebar-search{ display: none; }

      /* Sidebar (cores nas variáveis --godi-sidebar-*; modo escuro troca só as variáveis) */
      .wrapper > .content-wrapper{ padding-top: var(--godi-header-altura); box-sizing: content-box; }
      .godi-sidebar{ background: var(--godi-sidebar); border-right: 1px solid var(--godi-sidebar-borda); }
      .godi-sidebar.elevation-4{ box-shadow: none !important; }
      .godi-sidebar .sidebar{ background: var(--godi-sidebar); }
      .godi-sidebar-search .form-control{
        background: var(--godi-sidebar-busca-fundo);
        border: 1px solid var(--godi-sidebar-busca-borda);
        color: var(--godi-sidebar-busca-texto);
      }
      .godi-sidebar-search .form-control::placeholder{ color: var(--godi-sidebar-icone); }
      .godi-sidebar-search .input-group-text{
        background: var(--godi-sidebar-busca-fundo);
        border: 1px solid var(--godi-sidebar-busca-borda);
        color: var(--godi-sidebar-icone);
      }
      .godi-sidebar .nav-sidebar > .nav-item > .nav-link{ color: var(--godi-sidebar-texto); font-weight: 600; border-radius: 6px; margin: 2px 8px; width: auto; }
      .godi-sidebar .nav-sidebar .nav-treeview > .nav-item > .nav-link{ color: var(--godi-sidebar-texto-sub); font-weight: 400; border-radius: 6px; margin: 1px 6px; padding-left: .7rem; padding-right: .5rem; width: auto; }
      .godi-sidebar .nav-sidebar .nav-link .nav-icon{ color: var(--godi-sidebar-icone); }
      .godi-sidebar .nav-sidebar > .nav-item > .nav-link:hover,
      .godi-sidebar .nav-sidebar .nav-treeview > .nav-item > .nav-link:hover{ background: var(--godi-sidebar-hover); color: var(--godi-sidebar-texto-hover); }
      .godi-sidebar .nav-sidebar .nav-link:hover .nav-icon{ color: var(--godi-sidebar-texto-hover); }
      .godi-sidebar .nav-sidebar > .nav-item > .nav-link.active,
      .godi-sidebar .nav-sidebar .nav-treeview > .nav-item > .nav-link.active{ background: var(--godi-accent); color: #fff; }
      .godi-sidebar .nav-sidebar .nav-link.active .nav-icon{ color: #fff; }

      /* Modo escuro: sidebar volta ao azul-marinho escuro. */
      .dark-mode{
        --godi-sidebar: #16212e;
        --godi-sidebar-borda: #0f1822;
        --godi-sidebar-hover: #1f2e40;
        --godi-sidebar-texto: #c7d3e0;
        --godi-sidebar-texto-sub: #a9b8c9;
        --godi-sidebar-texto-hover: #ffffff;
        --godi-sidebar-icone: #9fb0c3;
        --godi-sidebar-busca-fundo: rgba(255,255,255,.06);
        --godi-sidebar-busca-borda: rgba(255,255,255,.1);
        --godi-sidebar-busca-texto: #dce6f2;
      }

      /* Content header */
      .godi-page-title{ margin: 0; font-weight: 600; color: #1c2b3a; }

      /* Dashboard stat cards */
      .godi-stat-card{
        display:flex; align-items:center; gap: 16px;
        background:#fff; border-radius: 10px; padding: 18px 20px;
        box-shadow: 0 1px 3px rgba(0,0,0,.08);
        margin-bottom: 20px; text-decoration:none; color:inherit;
        transition: box-shadow .15s ease, transform .15s ease;
      }
      .godi-stat-card:hover{ box-shadow: 0 6px 16px rgba(0,0,0,.12); transform: translateY(-1px); color:inherit; text-decoration:none; }
      .godi-stat-icon{
        width: 56px; height: 56px; border-radius: 10px;
        display:flex; align-items:center; justify-content:center;
        color:#fff; font-size: 22px; flex: 0 0 auto;
      }
      .godi-stat-icon-verde{ background:#3fae4a; }
      .godi-stat-icon-azul{ background: var(--godi-navbar); }
      .godi-stat-body{ display:flex; flex-direction:column; }
      .godi-stat-number{ font-size: 1.625rem; font-weight: 700; color:#1c2b3a; line-height:1.1; }
      .godi-stat-label{ font-size: .8125rem; color:#75808c; margin-top:2px; }
      .godi-stat-card-meta{ justify-content: space-between; }
      .godi-meta-anel{ width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex: 0 0 auto; }
      .godi-meta-anel-interno{ width:48px; height:48px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:#1c2b3a; }

      /* Grids (listagem com busca/ordenação/paginação) */
      .godi-grid-card{ background:#fff; border-radius: 10px; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
      .godi-grid-toolbar{ padding: 16px 18px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; border-bottom: 1px solid #eef1f5; }
      .godi-grid-search{ max-width: 320px; }
      .godi-th-link{ color:#495057; text-decoration:none; white-space:nowrap; }
      .godi-th-link:hover{ color: var(--godi-accent); text-decoration:none; }
      .godi-th-link .fa-sort{ opacity:.4; }
      .godi-grid-table thead th{ background:#f7f9fb; border-top:0; font-size:.8125rem; text-transform:uppercase; letter-spacing:.02em; color:#5c6672; }
      .godi-grid-table td{ vertical-align: middle; font-size: .875rem; }
      .godi-badge-media{ background:#3fae4a; color:#fff; border-radius: 4px; padding: 2px 8px; font-weight:600; }
      .godi-grid-table .badge,
      .godi-badge-rent{
        font-size: 75%;
        font-weight: 700;
        line-height: 1;
        padding: .25em .4em;
        font-variant-numeric: tabular-nums;
      }
      .godi-grid-actions a{ margin-right: 6px; }
      .godi-grid-actions .dropdown-menu a{ margin-right: 0; }
      /* Grid compacta no celular (cadastros): menos espaçamento nas células e coluna Ações só do
         tamanho do botão ☰, pra ele não ser cortado em telas estreitas. */
      @media (max-width: 767.98px){
        .godi-grid-compacta th, .godi-grid-compacta td{ padding: .4rem .5rem; }
        .godi-grid-compacta th[data-col="acoes"], .godi-grid-compacta td[data-col="acoes"]{ width: 1%; white-space: nowrap; }
        /* Ações fixa na borda direita enquanto as demais colunas rolam na horizontal: o ☰ fica
           sempre à vista. Fundo opaco pra não vazar o conteúdo que passa por baixo. */
        .godi-grid-compacta th[data-col="acoes"], .godi-grid-compacta td[data-col="acoes"]{
          position: sticky; right: 0; z-index: 2; box-shadow: -2px 0 4px rgba(0,0,0,.08);
        }
        .godi-grid-compacta thead th[data-col="acoes"]{ background:#f7f9fb; }
        .godi-grid-compacta tbody td[data-col="acoes"]{ background:#fff; }
        .godi-grid-compacta.table-hover tbody tr:hover td[data-col="acoes"]{ background:#f7f9fb; }
        .dark-mode .godi-grid-compacta thead th[data-col="acoes"]{ background:#3f474e; }
        .dark-mode .godi-grid-compacta tbody td[data-col="acoes"]{ background:#343a40; }
        .dark-mode .godi-grid-compacta.table-hover tbody tr:hover td[data-col="acoes"]{ background:#3f474e; }
      }
      .godi-grid-footer{ padding: 14px 18px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; }
      /* Selo da modalidade do financeiro (seloFinanceiroModalidade() em helpers.php): uma cor por
         modalidade, texto escuro sobre fundo claro (contraste WCAG AA); no tema escuro, o inverso. */
      .godi-mod{ display:inline-block; padding:2px 10px; border-radius:999px; font-size:.78rem; font-weight:700; line-height:1.5; white-space:nowrap; background:var(--m-fundo); color:var(--m-texto); border:1px solid var(--m-borda); }
      .godi-mod-A{ --m-fundo:#e0ecff; --m-texto:#1d4ed8; --m-borda:#bcd3fb; }
      .godi-mod-I{ --m-fundo:#ede9fe; --m-texto:#5b21b6; --m-borda:#d6ccfb; }
      .godi-mod-S{ --m-fundo:#dcfce7; --m-texto:#166534; --m-borda:#b6efc8; }
      .godi-mod-D{ --m-fundo:#fdf3e6; --m-texto:#9a4a00; --m-borda:#f0c48a; }
      .godi-mod-C{ --m-fundo:#fce7f3; --m-texto:#9d174d; --m-borda:#f6c4de; }
      .godi-mod-SC{ --m-fundo:#fff; --m-texto:#9d174d; --m-borda:#db2777; border-style:dashed; }
      .godi-mod-P{ --m-fundo:#fee4e2; --m-texto:#b42318; --m-borda:#fbc5c0; }
      .godi-mod-G{ --m-fundo:#ccfbf1; --m-texto:#115e59; --m-borda:#9ee9da; }
      .godi-mod-O, .godi-mod-x{ --m-fundo:#eef0f3; --m-texto:#475467; --m-borda:#d5dae1; }
      .dark-mode .godi-mod-A{ --m-fundo:rgba(59,130,246,.18); --m-texto:#9cc3ff; --m-borda:rgba(59,130,246,.4); }
      .dark-mode .godi-mod-I{ --m-fundo:rgba(139,92,246,.2); --m-texto:#c9b6ff; --m-borda:rgba(139,92,246,.42); }
      .dark-mode .godi-mod-S{ --m-fundo:rgba(34,197,94,.16); --m-texto:#86efac; --m-borda:rgba(34,197,94,.38); }
      .dark-mode .godi-mod-D{ --m-fundo:rgba(245,149,50,.16); --m-texto:#fdba74; --m-borda:rgba(245,149,50,.42); }
      .dark-mode .godi-mod-C{ --m-fundo:rgba(236,72,153,.16); --m-texto:#f9a8d4; --m-borda:rgba(236,72,153,.4); }
      .dark-mode .godi-mod-SC{ --m-fundo:transparent; --m-texto:#f9a8d4; --m-borda:#ec4899; }
      .dark-mode .godi-mod-P{ --m-fundo:rgba(239,68,68,.16); --m-texto:#fca5a5; --m-borda:rgba(239,68,68,.4); }
      .dark-mode .godi-mod-G{ --m-fundo:rgba(20,184,166,.16); --m-texto:#5eead4; --m-borda:rgba(20,184,166,.4); }
      .dark-mode .godi-mod-O, .dark-mode .godi-mod-x{ --m-fundo:rgba(255,255,255,.08); --m-texto:#d5dae1; --m-borda:rgba(255,255,255,.18); }
      .godi-col-selector-menu{ max-height: 340px; overflow-y:auto; min-width: 220px; }
      .godi-col-selector-menu .dropdown-item{ padding: 2px 12px; }
      .godi-col-selector-menu .form-check-label{ font-size: .8125rem; }
      /* o checkbox tem o mesmo data-col da coluna: esconder a coluna (d-none) não pode sumir com ele */
      .godi-col-selector-menu .godi-col-toggle.d-none{ display: inline-block !important; }
      /* Seletor de colunas com ordem: alça de arrastar à esquerda, ▲▼ à direita (aparecem no foco/hover) */
      .godi-col-selector-ordenavel{ min-width: 260px; max-height: 420px; padding-bottom: 0; }
      .godi-col-selector-ordenavel .godi-col-item{ display:flex; align-items:center; gap:6px; padding: 2px 6px 2px 4px; border-radius: 6px; }
      .godi-col-selector-ordenavel .godi-col-item .form-check{ flex:1; min-width:0; }
      .godi-col-alca{ color:#adb5bd; cursor:grab; width:14px; text-align:center; font-size:.75rem; flex-shrink:0; }
      .godi-col-item:hover .godi-col-alca{ color: var(--godi-accent); }
      .godi-col-arrastando{ opacity:.45; background: rgba(0,0,0,.04); }
      .godi-col-setas{ display:flex; gap:2px; opacity:0; transition: opacity .15s; flex-shrink:0; }
      .godi-col-item:hover .godi-col-setas, .godi-col-item:focus-within .godi-col-setas{ opacity:1; }
      .godi-col-mover{ border:0; background:transparent; color:#6c757d; width:24px; height:24px; border-radius:5px; font-size:.7rem; line-height:1; padding:0; cursor:pointer; }
      .godi-col-mover:hover, .godi-col-mover:focus-visible{ background: rgba(0,0,0,.06); color: var(--godi-accent); outline:none; }
      .godi-col-rodape{ position:sticky; bottom:0; display:flex; align-items:center; justify-content:space-between; gap:8px; padding: 8px 12px; margin-top:4px; border-top:1px solid #e9ecef; background:#fff; font-size:.75rem; color:#6c757d; }
      .godi-col-restaurar{ border:0; background:transparent; color: var(--godi-accent); font-weight:600; font-size:.75rem; padding: 4px 0; cursor:pointer; white-space:nowrap; }
      .godi-col-restaurar:hover{ text-decoration: underline; }
      .dark-mode .godi-col-rodape{ background:#343a40; border-color:#4b535c; color:#adb5bd; }
      .dark-mode .godi-col-mover:hover{ background: rgba(255,255,255,.08); }
      @media (hover: none){ .godi-col-setas{ opacity:1; } }

      /* Colunas redimensionáveis (arrastar a borda direita do cabeçalho) */
      .godi-grid-table-resizavel{ table-layout: fixed; }
      .godi-grid-table-resizavel th, .godi-grid-table-resizavel td{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
      .godi-grid-table-resizavel th{ position:relative; }
      .godi-td-acao{ padding-left: 4px !important; padding-right: 4px !important; }
      .godi-col-resizer{ position:absolute; top:0; right:0; width:6px; height:100%; cursor:col-resize; user-select:none; }
      .godi-col-resizer:hover, .godi-col-resizer.godi-col-resizer-ativo{ background: var(--godi-accent); opacity:.5; }

      /* Coluna "Ações" fixa à direita quando a grid tem rolagem horizontal (ex.: Carregamentos).
         overflow/text-overflow são anulados aqui porque a regra genérica acima (pensada pra texto
         truncado com "...") cortava o 3º botão nessa coluna, já que ela tem botões, não texto. */
      .godi-grid-table-resizavel th[data-col="acoes"], .godi-grid-table-resizavel td[data-col="acoes"]{
        position: sticky; right: 0; z-index: 2; box-shadow: -2px 0 4px rgba(0,0,0,.08);
        overflow: visible; text-overflow: clip;
      }
      /* Sticky + z-index faz cada célula de Ações virar um contexto de empilhamento próprio: o menu
         ☰ aberto ficava preso dentro da sua célula e as células sticky das linhas de baixo (mesmo
         z-index, vindas depois no DOM) pintavam por cima dele. A célula com menu aberto sobe acima
         das demais (e do cabeçalho/colunas fixadas, z-index 2–3). */
      .godi-grid-table td:has(.dropdown-menu.show){ z-index: 20; }
      /* O .table-responsive corta o menu ☰ (overflow-x: auto). Com o menu aberto, deixa o overflow
         visível em vez de empurrar 16rem de padding em todas as grades. */
      .godi-grid-card .table-responsive:has(.dropdown-menu.show){ overflow: visible; }
      .godi-grid-table-resizavel thead th[data-col="acoes"]{ background:#f7f9fb; }
      .godi-grid-table-resizavel tbody td[data-col="acoes"]{ background:#fff; }
      .godi-grid-table-resizavel.table-hover tbody tr:hover td[data-col="acoes"]{ background:#f7f9fb; }

      /* Coluna Ações em todas as grades: estreita, no fim da tabela e fixa à direita na rolagem. */
      .godi-grid-table th[data-col="acoes"], .godi-grid-table td[data-col="acoes"]{
        position: sticky; right: 0; z-index: 2; box-shadow: -2px 0 4px rgba(0,0,0,.08);
        width: 5rem; text-align: center; white-space: nowrap;
      }
      .godi-grid-table thead th[data-col="acoes"]{ background:#f7f9fb; }
      .godi-grid-table tbody td[data-col="acoes"]{ background:#fff; }
      .godi-grid-table.table-hover tbody tr:hover td[data-col="acoes"]{ background:#f7f9fb; }
      .dark-mode .godi-grid-table thead th[data-col="acoes"]{ background:#3f474e; }
      .dark-mode .godi-grid-table tbody td[data-col="acoes"]{ background:#343a40; }
      .dark-mode .godi-grid-table.table-hover tbody tr:hover td[data-col="acoes"]{ background:#3f474e; }


      /* Linha de totais (rodapé da grid, ex.: Carregamentos) */
      .godi-grid-totais td{ background:#f7f9fb; border-top:2px solid #dee2e6; font-weight:700; color:#1c2b3a; }

      /* Seletor de ícone (cadastro de menu) */
      .godi-icon-picker{ display:flex; gap:14px; align-items:flex-start; }
      .godi-icon-preview{
        width: 56px; height: 56px; border-radius: 8px; background: var(--godi-navbar); color:#fff;
        display:flex; align-items:center; justify-content:center; flex: 0 0 auto; font-size: 22px;
      }
      .godi-icon-picker-body{ flex:1; min-width: 0; }
      .godi-icon-grid{
        display:grid; grid-template-columns: repeat(auto-fill, minmax(42px, 1fr)); gap:6px;
        max-height: 200px; overflow-y:auto; border:1px solid #dee2e6; border-radius:6px; padding:8px; background:#fff;
      }
      .godi-icon-grid button{
        border:1px solid #e3e6ea; background:#f7f9fb; border-radius:6px; height:38px; cursor:pointer; color:#495057;
      }
      .godi-icon-grid button:hover{ background:#eef1f5; }
      .godi-icon-grid button.selecionado{ background: var(--godi-accent); border-color: var(--godi-accent); color:#fff; }

      /* ===== Preferências visuais (engrenagem do topo, App\Preferencias) ===== */
      html[data-godi-cor="LightPink"]{ --godi-base: #b05792; --godi-base-hover: #a64d88; }
      html[data-godi-cor="MediumViolet"]{ --godi-base: #c71585; --godi-base-hover: #ae156c; }
      html[data-godi-cor="Pink"]{ --godi-base: #a11a74; --godi-base-hover: #88015b; }
      html[data-godi-cor="MediumPink"]{ --godi-base: #ed66d2; --godi-base-hover: #e35cc8; }
      html[data-godi-cor="MediumPurple"]{ --godi-base: #9370db; --godi-base-hover: #8966d1; }
      html[data-godi-cor="LightPurple"]{ --godi-base: #696ef2; --godi-base-hover: #413cd4; }
      html[data-godi-cor="Purple"]{ --godi-base: #7f4494; --godi-base-hover: #5e2772; }
      html[data-godi-cor="Indigo"]{ --godi-base: #4b0082; --godi-base-hover: #320069; }
      html[data-godi-cor="LightBlue"]{ --godi-base: #39b3d7; --godi-base-hover: #2fa9cd; }
      html[data-godi-cor="Blue"]{ --godi-base: #078bcd; --godi-base-hover: #3276b1; }
      html[data-godi-cor="SkyBlue"]{ --godi-base: #4978b0; --godi-base-hover: #3f6ea6; }
      html[data-godi-cor="Navy"]{ --godi-base: #004080; --godi-base-hover: #002767; }
      html[data-godi-cor="Green"]{ --godi-base: #5cb85c; --godi-base-hover: #47a447; }
      html[data-godi-cor="SeaGreen"]{ --godi-base: #08a086; --godi-base-hover: #0ac6a6; }
      html[data-godi-cor="Teal"]{ --godi-base: #008080; --godi-base-hover: #006767; }
      html[data-godi-cor="Olive"]{ --godi-base: #004000; --godi-base-hover: #002700; }
      html[data-godi-cor="Salmon"]{ --godi-base: #fa8072; --godi-base-hover: #f07668; }
      html[data-godi-cor="Red"]{ --godi-base: #d9534f; --godi-base-hover: #d2322d; }
      html[data-godi-cor="Tomato"]{ --godi-base: #ff6347; --godi-base-hover: #e64a2e; }
      html[data-godi-cor="Maroon"]{ --godi-base: #950000; --godi-base-hover: #7c0000; }
      html[data-godi-cor="Orange"]{ --godi-base: #ff8040; --godi-base-hover: #e66727; }
      html[data-godi-cor="Yellow"]{ --godi-base: #f0ad4e; --godi-base-hover: #ed9c28; }
      html[data-godi-cor="Ecru"]{ --godi-base: #b75b00; --godi-base-hover: #9e4200; }
      html[data-godi-cor="Brown"]{ --godi-base: #804000; --godi-base-hover: #763600; }
      html[data-godi-fonte="Small"]{ font-size: 90%; }
      html[data-godi-fonte="Medium"]{ font-size: 100%; }
      html[data-godi-fonte="Large"]{ font-size: 110%; }

      /* Cor base aplicada aos elementos "primary" do Bootstrap/AdminLTE e ao título da página. As
         variantes .dark-mode existem porque o AdminLTE fixa #3f6791 nelas no modo escuro. */
      .godi-page-title{ color: var(--godi-base); }
      .dark-mode .main-header.godi-navbar{ background-color: var(--godi-navbar); border-color: var(--godi-navbar); }
      .btn-primary, .dark-mode .btn-primary{ color:#fff; background-color: var(--godi-base); border-color: var(--godi-base); }
      .btn-primary:hover, .btn-primary:focus, .btn-primary:not(:disabled):not(.disabled):active,
      .dark-mode .btn-primary:hover, .dark-mode .btn-primary:focus{ background-color: var(--godi-base-hover); border-color: var(--godi-base-hover); }
      .btn-outline-primary, .dark-mode .btn-outline-primary{ color: var(--godi-base); border-color: var(--godi-base); }
      .btn-outline-primary:hover, .btn-outline-primary:not(:disabled):not(.disabled):active,
      .dark-mode .btn-outline-primary:hover{ background-color: var(--godi-base); border-color: var(--godi-base); color:#fff; }
      .text-primary{ color: var(--godi-base) !important; }
      .bg-primary{ background-color: var(--godi-base) !important; }
      .card-primary:not(.card-outline) > .card-header{ background-color: var(--godi-base); }
      .card-primary.card-outline{ border-top-color: var(--godi-base); }
      .page-link{ color: var(--godi-base); }
      .page-item.active .page-link, .dark-mode .page-item.active .page-link{ background-color: var(--godi-base); border-color: var(--godi-base); color:#fff; }
      .form-control:focus{ border-color: var(--godi-base); }
      .custom-control-input:checked ~ .custom-control-label::before{ background-color: var(--godi-base); border-color: var(--godi-base); }
      /* Links "soltos" do conteúdo (ex.: e-mail na grid); :where zera a especificidade pra não
         brigar com links que têm classe própria (.godi-th-link, .btn, .dropdown-item...). */
      :where(.content-wrapper) a:not([class]){ color: var(--godi-base); }

      /* Fundo escuro: o AdminLTE 3.2 já trata cards/tabelas/forms com body.dark-mode; aqui só as
         classes próprias do GODI, que têm cor fixa. */
      .dark-mode .godi-page-title{ color:#fff; }
      .dark-mode :where(.content-wrapper) a:not([class]){ color:#8fc1ff; }
      .dark-mode .godi-grid-card, .dark-mode .godi-stat-card{ background:#343a40; box-shadow: 0 1px 3px rgba(0,0,0,.4); }
      .dark-mode .godi-grid-toolbar{ border-bottom-color:#4b545c; }
      .dark-mode .godi-grid-table thead th,
      .dark-mode .godi-grid-table-resizavel thead th[data-col="acoes"],
      .dark-mode .godi-grid-totais td{ background:#3f474e; color:#ced4da; border-color:#4b545c; }
      .dark-mode .godi-grid-table-resizavel tbody td[data-col="acoes"]{ background:#343a40; }
      .dark-mode .godi-grid-table-resizavel.table-hover tbody tr:hover td[data-col="acoes"]{ background:#3f474e; }
      .dark-mode .godi-th-link{ color:#dee2e6; }
      .dark-mode .godi-stat-number{ color:#fff; }
      .dark-mode .godi-stat-label{ color:#adb5bd; }
      .dark-mode .godi-meta-anel-interno{ background:#343a40; color:#fff; }
      .dark-mode .godi-icon-grid{ background:#343a40; border-color:#4b545c; }
      .dark-mode .godi-icon-grid button{ background:#3f474e; border-color:#4b545c; color:#dee2e6; }

      /* Painel da engrenagem */
      .godi-pref-menu{ width: 230px; padding: 14px 16px; }
      .godi-pref-titulo{ font-size: .8rem; font-weight: 700; text-transform: uppercase; color:#6c757d; margin: 0 0 8px; }
      .godi-pref-cores{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; }
      .godi-pref-cor{ width: 100%; aspect-ratio: 1; border: 0; border-radius: 6px; cursor: pointer; padding: 0; color:#fff; font-size: .8rem; }
      .godi-pref-cor:hover{ transform: scale(1.08); }
      .godi-pref-cor i{ visibility: hidden; }
      .godi-pref-cor.ativo{ box-shadow: 0 0 0 2px #fff, 0 0 0 4px #6c757d; }
      .godi-pref-cor.ativo i{ visibility: visible; }
      .godi-pref-fundo{ margin-bottom: 16px; }
      .godi-pref-fundo .btn.ativo, .godi-pref-fontes .btn.ativo{ background: var(--godi-base); border-color: var(--godi-base); color:#fff; }
      .godi-pref-fontes{ display:flex; justify-content: space-between; align-items: flex-end; }
      .godi-pref-fontes .btn{ min-width: 48px; height: 36px; line-height: 1; display:flex; align-items:center; justify-content:center; }
      .dark-mode .godi-pref-cor.ativo{ box-shadow: 0 0 0 2px #343a40, 0 0 0 4px #ced4da; }
      /* Combo Select2 obrigatório deixado vazio (ver handler "invalid" no fim da página). */
      .godi-select2-invalido .select2-selection{ border-color: #dc3545 !important; box-shadow: 0 0 0 .2rem rgba(220,53,69,.25) !important; }
      .godi-select2-aviso{ display: block; color: #dc3545; font-size: 80%; margin-top: .25rem; }

      /* Menu de coluna das grids (▾ no título): ordenar / fixar / filtrar — ver script no fim. */
      .godi-grid-table thead th[data-rotulo]{ position:relative; padding-right:1.9rem; }
      .godi-col-menu-btn{ position:absolute; right:.55rem; top:50%; transform:translateY(-50%); border:0; background:transparent; color:#8a939c; padding:0 .3rem; line-height:1.3; border-radius:3px; font-size:.9em; cursor:pointer; }
      .godi-col-menu-btn:hover{ background:rgba(0,0,0,.07); color:#343a40; }
      .godi-col-menu-btn.ativo{ color:#fff; background: var(--godi-base, #28a745); }
      .godi-col-menu{ position:absolute; z-index:1060; min-width:250px; max-width:340px; font-size:.875rem; text-transform:none; letter-spacing:normal; }
      .godi-col-menu .dropdown-item{ white-space:normal; padding:.3rem .9rem; }
      .godi-col-menu .dropdown-item i{ width:1.1rem; text-align:center; margin-right:.35rem; color:#6c757d; }
      .godi-col-menu-valores{ max-height:260px; overflow-y:auto; }
      .godi-col-menu-valor.ativo{ font-weight:600; }
      .godi-col-menu-valor.ativo i{ color: var(--godi-base, #28a745); }
      .godi-col-menu-valor{ user-select:none; }
      .godi-col-menu-rodape{ display:flex; align-items:center; gap:.25rem; padding:.4rem .6rem .2rem; border-top:1px solid rgba(0,0,0,.08); margin-top:.25rem; }
      .godi-col-menu-rodape .godi-col-menu-qtd{ margin-right:auto; }
      .godi-filtros-ativos{ display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; padding:.5rem .75rem; border-bottom:1px solid rgba(0,0,0,.075); }
      .godi-filtro-chip{ display:inline-flex; align-items:center; background:rgba(0,0,0,.06); border-radius:12px; padding:.1rem .55rem; font-size:.8rem; }
      .godi-filtro-chip a{ margin-left:.4rem; color:#dc3545; text-decoration:none; }
      .godi-grid-table .godi-fixa-esq, .godi-grid-table .godi-fixa-dir{ position:sticky; z-index:2; background:#fff; }
      .godi-grid-table thead .godi-fixa-esq, .godi-grid-table thead .godi-fixa-dir{ z-index:3; background:#f7f9fb; }
      .godi-grid-table .godi-fixa-esq{ box-shadow: inset -1px 0 0 rgba(0,0,0,.12); }
      .godi-grid-table .godi-fixa-dir{ box-shadow: inset 1px 0 0 rgba(0,0,0,.12); }
      .godi-grid-table.table-hover tbody tr:hover .godi-fixa-esq, .godi-grid-table.table-hover tbody tr:hover .godi-fixa-dir{ background:#f7f9fb; }
      .dark-mode .godi-col-menu-btn:hover{ background:rgba(255,255,255,.1); color:#fff; }
      .dark-mode .godi-filtro-chip{ background:rgba(255,255,255,.1); }
      .dark-mode .godi-filtros-ativos{ border-bottom-color:#4b545c; }
      .dark-mode .godi-grid-table .godi-fixa-esq, .dark-mode .godi-grid-table .godi-fixa-dir{ background:#343a40; }
      .dark-mode .godi-grid-table thead .godi-fixa-esq, .dark-mode .godi-grid-table thead .godi-fixa-dir,
      .dark-mode .godi-grid-table.table-hover tbody tr:hover .godi-fixa-esq, .dark-mode .godi-grid-table.table-hover tbody tr:hover .godi-fixa-dir{ background:#3f474e; }

      .godi-grupo-filtro{
        display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .75rem;
        margin:0 0 .75rem; padding:.6rem .9rem; border-radius:8px;
        background: color-mix(in srgb, var(--godi-base, #004080) 7%, transparent);
        font-size:.875rem;
      }
      .godi-grupo-filtro i{ color: var(--godi-base, #004080); }
      .godi-grupo-filtro a{ margin-left:auto; font-weight:600; }
      .godi-filtro-periodo .form-control{ display:inline-block; }

/* Transbordo na lista de Ordem de Carregamento (godi-php views/helpers.php, transbordoRecursosLista). */
.tb-celula{ display: inline-flex; align-items: center; gap: .35rem; max-width: 100%; vertical-align: middle; }
.tb-toggle, .tb-seta{ display: inline-flex; align-items: center; justify-content: flex-start; width: 1.1rem; flex: 0 0 1.1rem; padding: 0; border: 0; background: none; color: #b7791f; line-height: 1; }
.tb-toggle{ cursor: pointer; }
.tb-toggle:focus-visible{ outline: 2px solid #b7791f; outline-offset: 2px; border-radius: 3px; }
.tb-selo{ font-size: .7rem; font-weight: 600; }
.tb-anteriores > td{ background: #fffaf0 !important; padding-top: 1rem !important; padding-bottom: 1rem !important; color: #5b4a2a; vertical-align: middle; border-top: 0 !important; overflow: visible !important; text-overflow: clip !important; }
.dark-mode .tb-anteriores > td{ background: #3b3426 !important; color: #e6d5b0; }
.tb-anteriores + .tb-anteriores > td{ border-top: 1px dashed rgba(138, 90, 0, .25) !important; }
.tb-ordem{ white-space: nowrap; }
.tb-ordem + .tb-selo{ margin-left: .6rem; }
.tb-icone{ opacity: .7; margin-right: .2rem; }
.tb-dados{ display: inline-flex; gap: 1.5rem; vertical-align: middle; font-size: .85rem; }
.tb-selo + .tb-dados, .tb-ordem + .tb-dados{ margin-left: 1.25rem; }
.tb-rotulo{ opacity: .75; }
.tb-consulta-modal .tb-grupo + .tb-grupo{ margin-top: 1.1rem; }
.tb-consulta-modal .tb-grupo h6{ font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8a5a00; margin: 0 0 .5rem; }
.tb-consulta-modal dl{ display: grid; grid-template-columns: 13rem 1fr; gap: .3rem 1rem; margin: 0; font-size: .9rem; }
@media (max-width: 575px){ .tb-consulta-modal dl{ grid-template-columns: 1fr; } .tb-consulta-modal dd{ margin-bottom: .4rem; } }
.tb-consulta-modal dt{ font-weight: 600; color: #5b6676; }
.tb-consulta-modal dd{ margin: 0; overflow-wrap: anywhere; }

/* Cargas Rastreamento (godi-php views/carga2/index.php): seta › das localizações num círculo cinza e a linha de detalhe. */
.godi-carga2-expandir{ width: 26px; height: 26px; padding: 0; border-radius: 50%; background: #6c757d; color: #fff; line-height: 1; }
.godi-carga2-expandir:hover{ background: var(--godi-base); color: #fff; }
.godi-carga2-expandir i{ transition: transform .15s; }
.godi-carga2-expandir.aberto i{ transform: rotate(90deg); }
.godi-carga2-detalhe > td{ background: #f7f9fb; padding: 10px 14px 14px 52px !important; white-space: normal !important; overflow: visible !important; }
.godi-carga2-detalhe-conteudo{ position: sticky; left: 52px; }
.godi-carga2-localizacoes{ max-height: 320px; overflow: auto; }
.godi-carga2-localizacoes th{ font-size: .75rem; text-transform: uppercase; color: #5c6672; background: #eef1f5; position: sticky; top: 0; }
.godi-carga2-localizacoes td{ font-size: .8125rem; }
.dark-mode .godi-carga2-detalhe > td{ background: #3f474e; }
.dark-mode .godi-carga2-localizacoes table{ background: #343a40 !important; color: #dee2e6; }
.dark-mode .godi-carga2-localizacoes th{ background: #4b545c; color: #ced4da; }
@media (prefers-reduced-motion: reduce){ .godi-carga2-expandir i{ transition: none; } }
