/* WEBGIS V2.13.1 - CAMPO REAL / GPS OFFLINE / VISTORIA OFFLINE / OUTBOX */

:root {
  --bg: #eef2f5;
  --panel: #ffffff;
  --line: #d8e0e7;
  --text: #16212a;
  --muted: #6d7b86;
  --brand: #1769aa;
  --brand-dark: #0f4f82;
  --danger: #b42318;
  --shadow: 0 10px 30px rgba(24, 39, 55, .12);
  --topbar: 58px;
  --sidebar: 310px;
}

/* =========================================================
   TEMA ESCURO
   ========================================================= */

html[data-theme="dark"] {
    --bg: #0f172a;
    --panel: #111827;
    --line: #334155;
    --text: #e5e7eb;
    --muted: #94a3b8;
    --brand: #3b82f6;
    --brand-dark: #2563eb;
    --danger: #ef4444;
    --shadow: 0 10px 30px rgba(0, 0, 0, .35);
}

html[data-theme="dark"] .login-card,
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
    background: var(--panel);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder {
    color: var(--muted);
}

.theme-toggle {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;

    border: 1px solid var(--line);
    border-radius: 10px;

    background: var(--panel);
    color: var(--text);

    font-size: 18px;
    cursor: pointer;

    transition:
        background .2s ease,
        border-color .2s ease,
        transform .15s ease;
}

.theme-toggle:hover {
    transform: translateY(-1px);
    background: var(--bg);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  height: 100%;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--bg);
}

button, input { font: inherit; }
button { cursor: pointer; }

.hidden { display: none !important; }

.login-screen {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 10% 20%, rgba(23,105,170,.14), transparent 32%),
    radial-gradient(circle at 90% 80%, rgba(23,105,170,.10), transparent 32%),
    #eef2f5;
}

.login-card {
  width: min(410px, 100%);
  padding: 34px;
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow);
}

.brand-mark {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: var(--brand);
  color: white;
  font-weight: 800;
  letter-spacing: .5px;
}

.login-card h1 { margin: 18px 0 4px; font-size: 28px; }
.login-card p { margin: 0 0 24px; color: var(--muted); }

label {
  display: block;
  margin: 14px 0 6px;
  font-size: 13px;
  font-weight: 700;
}

input {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  outline: none;
  background: #fff;
}

input:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(23,105,170,.12);
}

.primary, .ghost-button, .map-action, .icon-button {
  border: 0;
  border-radius: 10px;
}

.primary {
  min-height: 44px;
  padding: 10px 16px;
  background: var(--brand);
  color: #fff;
  font-weight: 750;
}

.primary:hover { background: var(--brand-dark); }
.login-card .primary { width: 100%; margin-top: 18px; }

.ghost-button {
  padding: 9px 13px;
  background: #edf2f6;
  color: var(--text);
  font-weight: 650;
}

.full { width: 100%; }
.error { color: var(--danger); font-size: 13px; margin-top: 12px; min-height: 18px; }

.app-screen { height: 100dvh; overflow: hidden; }

.topbar {
  height: var(--topbar);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  background: #17242d;
  color: white;
  position: relative;
  z-index: 20;
}

.topbar-left, .topbar-right {
  display: flex;
  gap: 10px;
  align-items: center;
}

.badge {
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.13);
  font-size: 11px;
}

.workspace {
  display: grid;
  grid-template-columns: var(--sidebar) 1fr;
  height: calc(100dvh - var(--topbar));
  transition: grid-template-colums 0.25s ease;
}
.workspace:has(.sidebar.collapsed) {
    grid-template-columns: 0 1fr;
}

.sidebar {
  background: var(--panel);
  border-right: 1px solid var(--line);
  padding: 16px;
  overflow-y: auto;
  z-index: 15;
}

.sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sidebar h2 { margin: 0 0 14px; font-size: 18px; }

.projects-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.project-card {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px;
  background: #fff;
}

.project-row {
  display: flex;
  align-items: flex-start;
  gap: 9px;
}

.project-row input { width: auto; min-height: auto; margin-top: 4px; }

.project-main { flex: 1; min-width: 0; }
.project-name { font-weight: 750; font-size: 14px; word-break: break-word; }
.project-meta { color: var(--muted); font-size: 12px; margin-top: 3px; }

.delete-project {
  border: 0;
  background: transparent;
  color: #8a98a3;
  padding: 3px;
  font-size: 17px;
}

.sidebar-note {
  margin-top: 18px;
  padding: 11px;
  border-radius: 10px;
  background: #f3f6f8;
  display: grid;
  gap: 4px;
  font-size: 12px;
  color: var(--muted);
}

.map-area { position: relative; min-width: 0; }
#map { position: absolute; inset: 0; }

.status-bar {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 5;
  max-width: min(520px, calc(100% - 24px));
  padding: 8px 12px;
  border-radius: 9px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 2px 12px rgba(0,0,0,.14);
  color: #45525c;
  font-size: 12px;
}

.map-floating {
  position: absolute;
  right: 12px;
  top: 12px;
  z-index: 5;
}

.map-action {
  width: 42px;
  height: 42px;
  background: white;
  box-shadow: 0 2px 12px rgba(0,0,0,.18);
  font-size: 21px;
}

.icon-button {
  width: 38px;
  height: 38px;
  background: transparent;
  color: inherit;
  font-size: 24px;
}

.mobile-only { display: none; }

.modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(9, 18, 24, .55);
}

.modal-card {
  width: min(480px, 100%);
  background: white;
  border-radius: 16px;
  padding: 20px;
  box-shadow: var(--shadow);
}

.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.modal-header h2 { margin: 0; }

.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  margin-top: 20px;
}

.small-status { margin-top: 12px; color: var(--muted); font-size: 13px; }

.maplibregl-popup-content {
  min-width: 210px;
  border-radius: 10px;
}

.popup-title { font-weight: 800; margin-bottom: 5px; }
.popup-desc { color: #586671; font-size: 12px; max-height: 120px; overflow: auto; }

@media (max-width: 760px) {
  .mobile-only { display: inline-grid; place-items: center; }

  .topbar { padding: 0 10px; }
  #userLabel { display: none; }

  .workspace { display: block; }

  .sidebar {
    position: fixed;
    left: 0;
    top: var(--topbar);
    bottom: 0;
    width: min(88vw, 330px);
    transform: translateX(-105%);
    transition: transform .2s ease;
    box-shadow: 8px 0 30px rgba(0,0,0,.16);
  }

  .sidebar.open { transform: translateX(0); }
  .map-area { height: calc(100dvh - var(--topbar)); }

  .login-card { padding: 24px; }
}
.refresh-map-button {
    position: absolute;
    right: 20px;
    bottom: 55px;

    width: 46px;
    height: 46px;

    border: none;
    border-radius: 50%;
    background: #2563eb;
    color: white;

    font-size: 13px;
    font-weight: 700;
    cursor: pointer;

    display: flex;
    align-items: center;
    justify-content: center;

    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
    z-index: 9999;
    visibility: visible;
    opacity: 1;

    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.refresh-map-button:hover {
    transform: scale(1.08);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.24);
}

.refresh-map-button:active {
    transform: scale(0.94);
}
.color-panel {
    margin-top: 10px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    overflow: hidden;
    background: #ffffff;
}

.color-panel-toggle {
    width: 100%;
    border: none;
    background: #f8fafc;
    color: #1f2937;

    padding: 10px 12px;

    font-size: 13px;
    font-weight: 700;
    text-align: left;

    cursor: pointer;
}

.color-panel-toggle:hover {
    background: #f1f5f9;
}

.color-panel-content {
    padding: 10px 12px;
}

.color-panel-content label {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;
    margin-bottom: 10px;

    font-size: 13px;
}

.color-panel-content input[type="color"] {
    width: 34px;
    height: 26px;

    border: none;
    padding: 0;
    background: transparent;
    cursor: pointer;
}

#resetMapColors {
    width: 100%;
    margin-top: 4px;

    border: 1px solid #d1d5db;
    border-radius: 7px;

    padding: 7px 8px;

    background: #ffffff;
    cursor: pointer;

    font-size: 12px;
}

#resetMapColors:hover {
    background: #f8fafc;
}
.sidebar {
    position: relative;
    transition: width 0.25s ease, transform 0.25s ease;
}

.sidebar-toggle {
    position: absolute;

    top: 50%;
    right: -18px;

    transform: translateY(-50%);

    width: 36px;
    height: 56px;

    border: 1px solid #d1d5db;
    border-left: none;

    border-radius: 0 10px 10px 0;

    background: #ffffff;
    color: #334155;

    cursor: pointer;

    font-size: 18px;
    font-weight: 700;

    z-index: 9999;

    display: flex;
    align-items: center;
    justify-content: center;

    box-shadow: 3px 0 8px rgba(0, 0, 0, 0.12);
}

.sidebar-toggle:hover {
    background: #f1f5f9;
}
.sidebar.collapsed {
    width: 0;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
    border-right: none;
}

.sidebar.collapsed > *:not(.sidebar-toggle) {
    display: none;
}

.sidebar.collapsed .sidebar-toggle {
    right: -28px;
}
.sidebar {
    position: relative;
    overflow: visible;
    transition: width 0.25s ease, min-width 0.25s ease, padding 0.25s ease;
}

.sidebar.collapsed {
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: visible !important;
}

.sidebar.collapsed > *:not(.sidebar-toggle) {
    display: none;
}

.sidebar.collapsed .sidebar-toggle {
    display: flex !important;

    position: absolute;
    top: 50%;
    left: 0;
    right: auto;

    transform: translateY(-50%);

    z-index: 10000;
}
.users-panel {
    margin-top: 12px;
}

.users-panel-content {
    margin-top: 8px;
}

#usersList {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 10px;
}

.user-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;

    padding: 10px 12px;

    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

.user-item > div {
    display: flex;
    flex-direction: column;
    gap: 3px;

    min-width: 0;
}

.user-item strong {
    font-size: 14px;
    color: #0f172a;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-item span {
    width: fit-content;

    padding: 2px 7px;

    font-size: 10px;
    font-weight: 700;

    color: #475569;
    background: #e2e8f0;

    border-radius: 999px;
}

.delete-user-btn {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    padding: 0;

    border: 1px solid #fecaca;
    border-radius: 8px;

    background: #fff1f2;

    cursor: pointer;

    flex-shrink: 0;
}

.delete-user-btn:hover {
    background: #ffe4e6;
    border-color: #fda4af;
}

.new-user-form {
    display: grid;
    gap: 8px;

    padding: 10px;

    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

.new-user-form input,
.new-user-form select {
    width: 100%;
    box-sizing: border-box;

    padding: 9px 10px;

    border: 1px solid #cbd5e1;
    border-radius: 8px;

    background: white;
}

.new-user-form input:focus,
.new-user-form select:focus {
    outline: none;
    border-color: #2563eb;
}
/* =========================
   IMPORTAR KMZ
========================= */

#openImport {
    width: 100%;

    padding: 11px 14px;

    border: none;
    border-radius: 10px;

    background: #2563eb;
    color: white;

    font-size: 14px;
    font-weight: 700;

    cursor: pointer;

    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

#openImport:hover {
    background: #1d4ed8;

    transform: translateY(-1px);

    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.20);
}


/* =========================
   LISTA DE PROJETOS / FEIÇÕES
========================= */

#projectList {
    display: flex;
    flex-direction: column;

    gap: 8px;

    margin-top: 10px;
}


/* cada item da lista */

.project-item {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    padding: 10px 12px;

    background: #f8fafc;

    border: 1px solid #e2e8f0;
    border-radius: 10px;

    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.project-item:hover {
    background: #f1f5f9;

    border-color: #cbd5e1;

    transform: translateX(2px);
}


/* nome do projeto */

.project-item strong {
    font-size: 14px;

    color: #0f172a;

    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}


/* área dos botões */

.project-actions {
    display: flex;
    align-items: center;

    gap: 6px;

    flex-shrink: 0;
}


/* botões pequenos */

.project-actions button {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    padding: 0;

    border: 1px solid #dbeafe;
    border-radius: 8px;

    background: #eff6ff;

    cursor: pointer;

    transition: background .15s ease, transform .15s ease;
}

.project-actions button:hover {
    background: #dbeafe;

    transform: scale(1.05);
}


/* botão excluir */

.project-actions .delete-project {
    border-color: #fecaca;

    background: #fff1f2;
}

.project-actions .delete-project:hover {
    background: #ffe4e6;
}


/* =========================
   CONTADOR / INFO DE FEIÇÕES
========================= */

.project-meta {
    margin-top: 3px;

    font-size: 11px;

    color: #64748b;
}
/* =========================
   POPUPS DO MAPA
========================= */

.maplibregl-popup-content {
    min-width: 240px;
    max-width: 320px;

    padding: 14px;

    border-radius: 12px;

    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18);
}


/* título */

.popup-title {
    margin-bottom: 4px;

    font-size: 15px;
    font-weight: 800;

    color: #0f172a;
}


/* nome do projeto */

.project-meta {
    margin-bottom: 10px;

    font-size: 11px;

    color: #64748b;
}


/* descrição */

.popup-desc {
    margin-bottom: 10px;

    padding: 8px 10px;

    background: #f8fafc;

    border: 1px solid #e2e8f0;
    border-radius: 8px;

    font-size: 12px;
    line-height: 1.4;

    color: #334155;
}


/* status */

.popup-status {
    display: inline-flex;
    align-items: center;

    margin-bottom: 10px;

    padding: 4px 8px;

    border-radius: 999px;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .3px;
}


/* pendente */

.popup-status.pending {
    background: #fff7ed;
    color: #c2410c;
}


/* aprovado */

.popup-status.approved {
    background: #f0fdf4;
    color: #15803d;
}


/* original */

.popup-status.original {
    background: #eff6ff;
    color: #1d4ed8;
}


/* coordenadas */

.popup-coordinates {
    display: grid;
    gap: 4px;

    margin: 8px 0 10px;

    padding: 8px 10px;

    background: #f8fafc;

    border: 1px solid #e2e8f0;
    border-radius: 8px;

    font-size: 11px;

    color: #475569;
}

.popup-coordinates strong {
    color: #0f172a;
}


/* botões */

.maplibregl-popup-content button {
    min-height: 34px;

    padding: 8px 12px;

    border: none;
    border-radius: 8px;

    font-weight: 700;

    cursor: pointer;

    transition: transform .15s ease, opacity .15s ease;
}

.maplibregl-popup-content button:hover {
    transform: translateY(-1px);
}


/* editar */

.edit-location-btn {
    width: 100%;

    margin-top: 8px;

    background: #2563eb;
    color: white;
}


/* aprovar */

.approve-suggestion-btn {
    background: #16a34a;
    color: white;
}


/* recusar */

.reject-suggestion-btn {
    background: #dc2626;
    color: white;
}


/* remover aprovação */

.remove-approval-btn {
    width: 100%;

    background: #fff1f2;
    color: #be123c;

    border: 1px solid #fecdd3 !important;
}


/* formulário de edição */

.popup-edit-form {
    display: grid;
    gap: 8px;

    margin-top: 10px;
}

.popup-edit-form textarea {
    width: 100%;
    min-height: 70px;

    box-sizing: border-box;

    padding: 8px 10px;

    border: 1px solid #cbd5e1;
    border-radius: 8px;

    resize: vertical;
}

.popup-edit-form textarea:focus {
    outline: none;
    border-color: #2563eb;
}


/* botão X */

.maplibregl-popup-close-button {
    top: 5px;
    right: 7px;

    width: 28px;
    height: 28px;

    border-radius: 7px;

    color: #64748b;

    font-size: 18px;
}

.maplibregl-popup-close-button:hover {
    background: #f1f5f9;
}
/* =========================================================
   MOBILE - LAYOUT DO MAPA
   ========================================================= */

@media (max-width: 768px) {
.gps-used-info {
    width: 100%;
    box-sizing: border-box;

    padding: 8px 10px;

    font-size: 13px;
    font-weight: 600;
    text-align: center;

    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}    
    /* =========================================================
   MOBILE - POPUP COMO PAINEL INFERIOR
   ========================================================= */

.maplibregl-popup {
    position: absolute !important;

    top: auto !important;
    left: 12px !important;
    right: 12px !important;
    bottom: 12px !important;

    transform: none !important;

    width: auto !important;
    max-width: none !important;
}

.maplibregl-popup-tip {
    display: none;
}

.maplibregl-popup-content {
    width: 100% !important;
    max-width: none !important;

    max-height: 52dvh;

    padding: 16px !important;

    box-sizing: border-box;

    overflow-y: auto;
    overflow-x: hidden;

    border-radius: 16px !important;
}

/* Campos do popup */
.maplibregl-popup-content input,
.maplibregl-popup-content textarea,
.maplibregl-popup-content select {
    width: 100% !important;
    box-sizing: border-box;

    font-size: 16px !important;
}

/* Observação */
.suggestion-textarea {
    width: 100% !important;

    min-height: 72px !important;
    height: 72px;

    padding: 10px 12px;

    font-size: 16px;
    line-height: 1.35;

    resize: none;
}

/* Área do botão */
.suggestion-actions {
    position: sticky;
    bottom: -16px;

    margin-top: 12px;
    padding: 10px 0 4px;

    background: white;

    z-index: 5;
}

/* Salvar */
.suggestion-actions .save-location-btn {
    width: 100%;

    min-height: 48px;

    font-size: 16px;
    font-weight: 700;

    border-radius: 10px;
}

/* X de fechar */
.maplibregl-popup-close-button {
    width: 40px;
    height: 40px;

    font-size: 24px;

    z-index: 10;
}

/* Esconde o botão Att enquanto um popup estiver aberto */
.map-area:has(.maplibregl-popup) .refresh-map-button {
    display: none;
}
    /* Caixa de sugestão no celular */
.suggestion-textarea {
    display: block;
    width: 100%;
    min-height: 100px;

    margin-top: 8px;
    padding: 12px;

    box-sizing: border-box;

    font-size: 16px;
    line-height: 1.4;

    border: 1px solid #cbd5e1;
    border-radius: 10px;

    resize: vertical;
}

.suggestion-actions {
    margin-top: 12px;
}

.suggestion-actions .save-location-btn {
    width: 100%;
    min-height: 46px;

    padding: 10px 14px;

    font-size: 16px;
    font-weight: 600;

    border-radius: 10px;
}

    html,
    body {
        width: 100%;
        height: 100%;
        margin: 0;
        overflow: hidden;
    }

    #appScreen {
        height: 100dvh;
        overflow: hidden;
    }

    .topbar {
        height: var(--topbar);
        position: relative;
        z-index: 30;
    }

    .workspace {
        display: block;
        position: relative;

        width: 100%;
        height: calc(100dvh - var(--topbar));

        overflow: hidden;
    }

    .map-area {
        position: absolute;

        top: 0;
        right: 0;
        bottom: 0;
        left: 0;

        width: 100%;
        height: auto;

        min-width: 0;
        min-height: 0;
    }

    #map {
        position: absolute;

        top: 0;
        right: 0;
        bottom: 0;
        left: 0;

        width: 100% !important;
        height: 100% !important;
    }

    .sidebar {
        position: fixed;

        left: 0;
        top: var(--topbar);
        bottom: 0;

        width: min(88vw, 330px);

        transform: translateX(-105%);
        transition: transform .2s ease;

        z-index: 40;
    }

    .sidebar.open,
    .sidebar-open {
        transform: translateX(0);
    }
    /* =========================================================
   MOBILE - POPUP / SUGESTÃO DE LOCALIZAÇÃO
   ========================================================= */

.maplibregl-popup {
    max-width: calc(100vw - 24px) !important;
}

.maplibregl-popup-content {
    width: min(92vw, 360px);
    max-width: 92vw;

    padding: 16px !important;
    border-radius: 14px;

    box-sizing: border-box;
}

.maplibregl-popup-content input,
.maplibregl-popup-content textarea,
.maplibregl-popup-content select {
    width: 100%;
    box-sizing: border-box;

    font-size: 16px;

    padding: 10px 12px;
    margin-top: 6px;

    border-radius: 8px;
}

.maplibregl-popup-content textarea {
    min-height: 90px;
    resize: vertical;
}

.maplibregl-popup-content button {
    min-height: 44px;
    font-size: 15px;
}

.maplibregl-popup-content .popup-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;

    margin-top: 12px;
}

.maplibregl-popup-content .popup-actions button {
    width: 100%;
}

}
.field-form {
    width: 100%;
    max-width: 420px;
    max-height: 70vh;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 4px 8px 8px 4px;
    box-sizing: border-box;
}

.field-form-header {
    position: sticky;
    top: 0;
    background: white;
    z-index: 2;
    padding-bottom: 8px;
    margin-bottom: 10px;
}

.field-section {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
}

.field-section > strong {
    font-size: 14px;
    margin-bottom: 4px;
}

.field-section label {
    font-weight: 600;
    font-size: 13px;
    margin-top: 5px;
}

.field-section input,
.field-section select,
.field-section textarea {
    width: 100%;
    min-height: 38px;
    box-sizing: border-box;
    font-size: 14px;
}

.field-section textarea {
    min-height: 80px;
    resize: vertical;
}

.field-save-btn,
.field-use-gps-btn {
    width: 100%;
    min-height: 42px;
    margin-top: 8px;
    cursor: pointer;
}

/* ========================================================
   MODAL - DADOS DE CAMPO
   ======================================================== */

#fieldModal {
    position: fixed;
    inset: 0;
    z-index: 9999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    background: rgba(0, 0, 0, 0.45);

    box-sizing: border-box;
}

#fieldModal.hidden {
    display: none;
}

.field-modal-card {
    width: min(920px, 96vw);
    max-height: 90vh;

    display: flex;
    flex-direction: column;

    background: #ffffff;
    border-radius: 14px;

    box-shadow:
        0 18px 50px rgba(0, 0, 0, 0.25);

    overflow: hidden;
}

.field-modal-card .modal-header {
    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;

    padding: 18px 22px;

    border-bottom: 1px solid #e5e7eb;

    background: #ffffff;
}

.field-modal-card .modal-header h2 {
    margin: 0;
    font-size: 20px;
}

.field-modal-subtitle {
    margin-top: 4px;

    font-size: 13px;
    color: #6b7280;
}

#closeFieldModal {
    flex-shrink: 0;
}

.field-modal-body {
    flex: 1;
    min-height: 0;

    overflow-y: auto;
    overflow-x: hidden;

    padding: 20px 22px 24px;
}

/* O formulário não precisa mais das limitações do popup */
#fieldModal .field-form {
    width: 100%;
    max-width: none;
    max-height: none;
    overflow: visible;
    padding: 0;
}

/* Título interno já existe no cabeçalho do modal */
#fieldModal .field-form-header {
    display: none;
}

/* Seções em duas colunas no PC */
#fieldModal .field-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 24px;
}

/* Linha de versão/histórico ocupa toda a largura */
#fieldModal .field-history-top {
    grid-column: 1 / -1;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    padding: 12px 14px;

    background: #fafafa;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}

/* Texto da versão */
#fieldModal .field-current-version {
    font-size: 14px;
    font-weight: 600;
}

/* Botão de histórico */
#fieldModal .field-history-btn {
    border: 1px solid #d5dae1;
    background: white;

    border-radius: 8px;
    padding: 9px 14px;

    font-size: 14px;
    font-weight: 600;

    cursor: pointer;
}

/* Botão salvar ocupa toda a largura */
#fieldModal .field-save-btn {
    grid-column: 1 / -1;
}

#fieldModal .field-section {
    margin: 0;

    padding: 16px;

    border: 1px solid #e5e7eb;
    border-radius: 10px;

    background: #fafafa;
}

#fieldModal .field-section > strong {
    display: block;

    margin-bottom: 10px;

    font-size: 15px;
}

#fieldModal .field-section label {
    display: block;

    margin-top: 10px;
    margin-bottom: 5px;

    font-size: 13px;
    font-weight: 600;
}

#fieldModal .field-section input,
#fieldModal .field-section select,
#fieldModal .field-section textarea {
    width: 100%;
    box-sizing: border-box;

    min-height: 40px;

    padding: 8px 10px;

    border: 1px solid #cfd5dd;
    border-radius: 8px;

    background: #ffffff;

    font-size: 14px;
}

#fieldModal .field-section textarea {
    min-height: 90px;
    resize: vertical;
}

/* Botão salvar ocupando a largura toda */
#fieldModal .field-save-btn {
    grid-column: 1 / -1;

    width: 100%;
    min-height: 46px;

    margin-top: 2px;

    border: 0;
    border-radius: 9px;

    font-size: 15px;
    font-weight: 700;

    cursor: pointer;
}

#fieldModal .field-use-gps-btn {
    width: 100%;
    min-height: 42px;

    margin-top: 6px;

    border: 0;
    border-radius: 8px;

    cursor: pointer;
}

/* Enquanto a vistoria estiver aberta,
   evita rolagem da página por trás */
body.field-modal-open {
    overflow: hidden;
}


/* ========================================================
   MOBILE - DADOS DE CAMPO
   ======================================================== */

@media (max-width: 700px) {

    #fieldModal {
    align-items: stretch;
    padding: 6px;
}

    .field-modal-card {
    width: 100%;
    max-width: none;
    max-height: none;
    height: calc(100dvh - 12px);

    border-radius: 12px;
}

    .field-modal-card .modal-header {
        padding: 14px 16px;
    }

    .field-modal-card .modal-header h2 {
        font-size: 18px;
    }

    .field-modal-body {
    padding: 16px 12px 24px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

    #fieldModal .field-form {
    grid-template-columns: 1fr;
    gap: 18px;
}

    #fieldModal .field-section {
    padding: 16px;
    border-radius: 12px;
}

    #fieldModal .field-section input,
    #fieldModal .field-section select,
    #fieldModal .field-section textarea {
    width: 100%;
    min-height: 50px;
    font-size: 16px;
    padding: 12px;
    margin-top: 6px;
    margin-bottom: 14px;
    box-sizing: border-box;
}

    #fieldModal .field-save-btn {
        min-height: 50px;
        font-size: 16px;
    }
}
/* =========================================================
   HISTÓRICO DE VISTORIAS
   ========================================================= */

#fieldHistoryModal {
    z-index: 99999;
}

.field-history-modal-card {
    width: min(760px, 94vw);
    max-height: 86vh;
    overflow: hidden;

    border-radius: 18px;
}

/* Área rolável */
.field-history-body {
    overflow-y: auto;
    max-height: 68vh;

    padding: 6px 4px 6px 2px;
}

/* Cada versão */
.field-history-version {
    position: relative;

    border: 1px solid #e4e8ee;
    border-radius: 14px;

    padding: 16px;
    margin-bottom: 14px;

    background: #ffffff;
}

/* Versão atual */
.field-history-version.current {
    border: 2px solid #cfd7e3;
}

/* Cabeçalho da versão */
.field-history-version-header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 12px;
}

.field-history-version-title {
    font-size: 17px;
    font-weight: 700;
}

.field-history-version-meta {
    margin-top: 4px;

    font-size: 13px;
    color: #68707c;
}

/* Badge ATUAL */
.field-history-current-badge {
    display: inline-flex;
    align-items: center;

    padding: 5px 9px;

    border-radius: 999px;

    font-size: 11px;
    font-weight: 700;

    background: #eef2f7;
}

/* Conteúdo */
.field-history-changes {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 8px 14px;
}

/* Cada informação */
.field-history-change {
    padding: 9px 10px;

    border: 1px solid #eef1f4;
    border-radius: 9px;

    background: #fafbfc;

    font-size: 13px;
    line-height: 1.4;

    min-width: 0;
    overflow-wrap: anywhere;
}

.field-history-change strong {
    display: block;

    margin-bottom: 2px;

    font-size: 12px;
    color: #59616d;
}

/* Sem histórico */
.field-history-empty {
    text-align: center;

    padding: 30px 16px;

    font-size: 14px;
    color: #737b86;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .field-history-modal-card {
        width: 96vw;
        max-height: 90vh;

        border-radius: 16px;
    }

    .field-history-body {
        max-height: 72vh;

        padding-right: 2px;
    }

    .field-history-version {
        padding: 14px;

        margin-bottom: 12px;
    }

    .field-history-version-header {
        align-items: flex-start;
    }

    .field-history-version-title {
        font-size: 16px;
    }

    .field-history-version-meta {
        font-size: 12px;
    }

    .field-history-changes {
        grid-template-columns: 1fr;

        gap: 7px;
    }

    .field-history-change {
        padding: 10px;

        font-size: 14px;
    }

    .field-history-current-badge {
        flex-shrink: 0;
    }
}
/* Histórico sempre acima do modal de Dados de Campo */
#fieldHistoryModal {
    position: fixed;
    inset: 0;
    z-index: 200000;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 20px;

    background: rgba(0, 0, 0, 0.42);
}

#fieldHistoryModal.hidden {
    display: none;
}

#fieldHistoryModal .field-history-modal-card {
    position: relative;

    width: min(760px, 94vw);
    max-height: 88vh;

    background: #ffffff;
    border-radius: 18px;

    overflow: hidden;
}

/* Mobile */
@media (max-width: 700px) {

    #fieldHistoryModal {
        padding: 8px;
    }

    #fieldHistoryModal .field-history-modal-card {
        width: 100%;
        max-height: 94vh;

        border-radius: 16px;
    }
}
/* =========================================================
   COMPARAÇÃO ENTRE VERSÕES
   ========================================================= */

.field-history-change-count {
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 700;
}

.field-history-diff {
    padding: 10px 12px;
    border: 1px solid #e8ecf1;
    border-radius: 10px;
    background: #fafbfc;
}

.field-history-diff-name {
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 700;
    color: #59616d;
}

.field-history-diff-values {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.field-history-old-value,
.field-history-new-value {
    padding: 5px 8px;
    border-radius: 7px;
    font-size: 13px;
    font-weight: 600;
}

.field-history-old-value {
    background: #f3f4f6;
    text-decoration: line-through;
}

.field-history-new-value {
    background: #eef6ff;
}

.field-history-arrow {
    font-weight: 700;
    opacity: 0.65;
}

.field-history-first,
.field-history-no-changes {
    grid-column: 1 / -1;

    padding: 14px;

    border: 1px solid #e8ecf1;
    border-radius: 10px;

    background: #fafbfc;

    font-size: 13px;
    line-height: 1.5;
}

/* Mobile */
@media (max-width: 700px) {

    .field-history-diff-values {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
    }

    .field-history-old-value,
    .field-history-new-value {
        width: 100%;
        text-align: center;
        overflow-wrap: anywhere;
    }

    .field-history-arrow {
        text-align: center;
    }
}
/* =========================================================
   AJUSTE VISUAL - HISTÓRICO DE VISTORIAS
   ========================================================= */

#fieldHistoryModal .field-history-modal-card {
    width: min(820px, 94vw);
    max-height: 90vh;

    border-radius: 18px;

    background: #ffffff;

    overflow: hidden;
}

/* Cabeçalho */
#fieldHistoryModal .field-modal-title {
    font-size: 20px;
    font-weight: 700;

    padding-right: 48px;

    margin-bottom: 4px;
}

#fieldHistoryModal .field-modal-subtitle {
    font-size: 13px;

    color: #6b7280;

    margin-bottom: 14px;
}

/* Área de filtros */
.field-history-filters {
    display: grid;

    grid-template-columns:
    minmax(120px, 0.8fr)
    minmax(170px, 1fr)
    minmax(160px, 1fr)
    auto;

    grid-template-columns:
    minmax(120px, 0.8fr)
    minmax(170px, 1fr)
    minmax(160px, 1fr)
    auto;

    gap: 12px;

    align-items: end;

    padding: 14px;

    margin-bottom: 14px;

    border: 1px solid #e5e7eb;
    border-radius: 12px;

    background: #fafafa;
}

.field-history-filter {
    display: flex;
    flex-direction: column;

    gap: 6px;
}

.field-history-filter label {
    font-size: 12px;
    font-weight: 700;

    color: #4b5563;
}

.field-history-filter input {
    width: 100%;

    min-height: 42px;

    padding: 9px 11px;

    border: 1px solid #d7dce3;
    border-radius: 9px;

    background: #ffffff;

    font-size: 14px;

    box-sizing: border-box;
}

.field-history-filter input:focus {
    outline: 2px solid rgba(59, 130, 246, 0.18);
    border-color: #9db7dd;
}

/* Limpar filtros */
.field-history-clear-filter {
    min-height: 42px;

    padding: 9px 14px;

    border: 1px solid #d7dce3;
    border-radius: 9px;

    background: #ffffff;

    font-size: 13px;
    font-weight: 700;

    cursor: pointer;
}

.field-history-clear-filter:hover {
    background: #f3f4f6;
}

/* Área rolável */
.field-history-body {
    overflow-y: auto;

    max-height: 66vh;

    padding-right: 4px;
}

/* Cards das versões */
.field-history-version {
    border: 1px solid #e1e6ec;

    border-radius: 14px;

    padding: 16px;

    margin-bottom: 14px;

    background: #ffffff;
}

.field-history-version.current {
    border: 2px solid #c9d5e5;
}

.field-history-version-header {
    margin-bottom: 12px;
}

/* Total de alterações */
.field-history-change-count {
    display: inline-flex;

    align-items: center;

    padding: 5px 9px;

    margin-bottom: 12px;

    border-radius: 999px;

    background: #f3f4f6;

    font-size: 12px;
    font-weight: 700;
}

/* Diff */
.field-history-diff {
    background: #fbfcfd;
}

/* Scrollbar discreta */
.field-history-body::-webkit-scrollbar {
    width: 8px;
}

.field-history-body::-webkit-scrollbar-thumb {
    background: #c9ced6;

    border-radius: 999px;
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    #fieldHistoryModal {
        padding: 6px;
    }

    #fieldHistoryModal .field-history-modal-card {
        width: 100%;

        max-height: 96vh;

        border-radius: 15px;
    }

    #fieldHistoryModal .field-modal-title {
        font-size: 18px;
    }

    .field-history-filters {
        grid-template-columns: 1fr;

        gap: 10px;

        padding: 12px;
    }

    .field-history-filter input,
    .field-history-clear-filter {
        min-height: 46px;

        font-size: 16px;
    }

    .field-history-clear-filter {
        width: 100%;
    }

    .field-history-body {
        max-height: 66vh;
    }

    .field-history-version {
        padding: 13px;
    }

    .field-history-changes {
        grid-template-columns: 1fr;
    }

    .field-history-diff {
        padding: 10px;
    }
}
/* =========================================================
   BOTÃO FECHAR - HISTÓRICO
   ========================================================= */

#fieldHistoryModal #closeFieldHistoryModal {
    position: absolute;

    top: 14px;
    right: 14px;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: none;
    border-radius: 10px;

    background: transparent;

    font-size: 24px;
    font-weight: 300;
    line-height: 1;

    cursor: pointer;

    transition:
        background 0.15s ease,
        transform 0.15s ease;
}

#fieldHistoryModal #closeFieldHistoryModal:hover {
    background: #f1f3f5;
}

#fieldHistoryModal #closeFieldHistoryModal:active {
    transform: scale(0.92);
}

/* Celular */
@media (max-width: 700px) {

    #fieldHistoryModal #closeFieldHistoryModal {
        top: 10px;
        right: 10px;

        width: 42px;
        height: 42px;

        font-size: 25px;
    }
}
/* =========================================================
   VER VISTORIA COMPLETA
   ========================================================= */

.field-history-full-btn {
    margin-top: 12px;

    min-height: 40px;

    padding: 9px 14px;

    border: 1px solid #d7dce3;
    border-radius: 9px;

    background: #ffffff;

    font-size: 13px;
    font-weight: 700;

    cursor: pointer;

    transition:
        background 0.15s ease,
        border-color 0.15s ease;
}

.field-history-full-btn:hover {
    background: #f5f7fa;
    border-color: #c9d0d9;
}

/* Conteúdo completo da vistoria */
.field-history-full {
    margin-top: 12px;

    padding: 14px;

    border: 1px solid #e5e9ef;
    border-radius: 12px;

    background: #fafbfc;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px 14px;
}

/* Cada campo */
.field-history-full > div {
    min-width: 0;

    padding: 9px 10px;

    border: 1px solid #eceff3;
    border-radius: 9px;

    background: #ffffff;

    font-size: 13px;
    line-height: 1.4;

    overflow-wrap: anywhere;
}

.field-history-full > div strong {
    display: block;

    margin-bottom: 3px;

    font-size: 12px;
    color: #5f6772;
}

/* GPS e observações podem ocupar mais espaço */
.field-history-full > div:nth-last-child(-n+4) {
    grid-column: 1 / -1;
}

/* MOBILE */
@media (max-width: 700px) {

    .field-history-full-btn {
        width: 100%;

        min-height: 46px;

        font-size: 15px;
    }

    .field-history-full {
        grid-template-columns: 1fr;

        padding: 12px;

        gap: 8px;
    }

    .field-history-full > div {
        padding: 10px;

        font-size: 14px;
    }

    .field-history-full > div:nth-last-child(-n+4) {
        grid-column: auto;
    }
}
/* =========================================================
   CHEVRON / EXPANSÃO DA VISTORIA COMPLETA
   ========================================================= */

.field-history-full-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.field-history-chevron {
    display: inline-block;

    font-size: 18px;
    line-height: 1;

    transition: transform 0.18s ease;
}

/* Pequena animação de entrada */
.field-history-full {
    animation: fieldHistoryOpen 0.18s ease;
}

@keyframes fieldHistoryOpen {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Mobile */
@media (max-width: 700px) {

    .field-history-full-btn {
        justify-content: space-between;
        padding-left: 14px;
        padding-right: 14px;
    }

    .field-history-chevron {
        font-size: 20px;
    }
}
/* =========================================================
   PREENCHIMENTO DA VISTORIA
   ========================================================= */

.field-history-completion {
    margin-bottom: 14px;
}

.field-history-completion-info {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin-bottom: 6px;

    font-size: 12px;
    color: #626b76;
}

.field-history-completion-info strong {
    font-size: 12px;
    color: #303740;
}

.field-history-completion-bar {
    width: 100%;
    height: 6px;

    overflow: hidden;

    border-radius: 999px;

    background: #e9edf2;
}

.field-history-completion-progress {
    height: 100%;

    border-radius: inherit;

    background: #5c82b8;

    transition: width 0.25s ease;
}

@media (max-width: 700px) {

    .field-history-completion-info {
        font-size: 12px;
    }

    .field-history-completion-bar {
        height: 7px;
    }
}
#kmzVersionsModal {
    z-index: 99999;
}

#kmzVersionsModal .field-modal-card {
    width: min(720px, 94vw);
    max-height: 88vh;
    overflow-y: auto;
}

.kmz-version-item {
    padding: 14px;
    margin-bottom: 12px;

    border: 1px solid #e2e6eb;
    border-radius: 12px;

    background: #ffffff;
}

.kmz-version-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 6px;
}

.kmz-version-header strong {
    font-size: 15px;
}

.kmz-version-header span {
    font-size: 12px;
    font-weight: 700;

    padding: 4px 8px;

    border-radius: 999px;

    background: #f1f3f5;
}

.kmz-version-meta {
    font-size: 12px;
    color: #6b7280;

    margin-bottom: 6px;
}

.kmz-version-file {
    font-size: 13px;
    font-weight: 600;

    overflow-wrap: anywhere;
}
/* =========================================================
   MODAL - ANÁLISE DE VERSÕES KMZ
   ========================================================= */

#kmzVersionsModal {
    position: fixed;
    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 18px;

    background: rgba(15, 23, 42, 0.45);

    z-index: 99999;
}

#kmzVersionsModal.hidden {
    display: none;
}

#kmzVersionsModal .field-modal-card {
    position: relative;

    width: min(760px, 94vw);
    max-height: 88vh;

    padding: 22px;

    border-radius: 18px;

    background: #ffffff;

    box-shadow:
        0 20px 50px rgba(0, 0, 0, 0.22);

    overflow: hidden;
}

#kmzVersionsModal .field-modal-title {
    font-size: 21px;
    font-weight: 700;

    margin-bottom: 4px;

    padding-right: 50px;
}

#kmzVersionsModal .field-modal-subtitle {
    font-size: 13px;
    color: #6b7280;

    margin-bottom: 18px;
}

#closeKmzVersionsModal {
    position: absolute;

    top: 14px;
    right: 14px;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: none;
    border-radius: 10px;

    background: transparent;

    font-size: 25px;
    line-height: 1;

    cursor: pointer;
}

#closeKmzVersionsModal:hover {
    background: #f1f3f5;
}

#kmzVersionsBody {
    max-height: 68vh;

    overflow-y: auto;

    padding-right: 5px;
}

.kmz-version-item {
    padding: 15px;

    margin-bottom: 12px;

    border: 1px solid #e2e7ed;
    border-radius: 13px;

    background: #ffffff;
}

.kmz-version-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 7px;
}

.kmz-version-header strong {
    font-size: 16px;
}

.kmz-version-header span {
    padding: 4px 9px;

    border-radius: 999px;

    background: #f1f3f5;

    font-size: 12px;
    font-weight: 700;
}

.kmz-version-meta {
    margin-bottom: 7px;

    font-size: 12px;
    color: #6b7280;
}

.kmz-version-file {
    padding: 8px 10px;

    border-radius: 8px;

    background: #f8fafc;

    font-size: 13px;
    font-weight: 600;

    overflow-wrap: anywhere;
}

#kmzVersionsBody::-webkit-scrollbar {
    width: 8px;
}

#kmzVersionsBody::-webkit-scrollbar-thumb {
    background: #c9ced6;
    border-radius: 999px;
}

@media (max-width: 700px) {

    #kmzVersionsModal {
        padding: 7px;
    }

    #kmzVersionsModal .field-modal-card {
        width: 100%;
        max-height: 96vh;

        padding: 18px 14px;

        border-radius: 15px;
    }

    #kmzVersionsModal .field-modal-title {
        font-size: 19px;
    }

    #kmzVersionsBody {
        max-height: 76vh;
    }

    .kmz-version-item {
        padding: 13px;
    }
}
/* =========================================================
   MODAL - COMPARAÇÃO KMZ
========================================================= */

#kmzCompareModal {
    position: fixed;
    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    background: rgba(15, 23, 42, 0.48);

    z-index: 20001;

    padding: 20px;
}

#kmzCompareModal .field-modal-card {
    position: relative;
    z-index: 20001;
}

#kmzCompareModal.hidden {
    display: none;
}

#kmzCompareModal .field-modal-card {
    width: min(760px, 95vw);

    max-height: 85vh;

    overflow: hidden;

    display: flex;
    flex-direction: column;

    background: #ffffff;

    border-radius: 18px;

    padding: 22px;

    box-sizing: border-box;

    position: relative;
}

#kmzCompareBody {
    margin-top: 18px;

    overflow-y: auto;

    padding-right: 6px;

    min-height: 0;
}


/* =========================================================
   RESUMO
========================================================= */

.kmz-compare-summary {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 10px;

    margin-bottom: 22px;
}

.kmz-compare-stat {
    border: 1px solid #e5e7eb;

    border-radius: 12px;

    padding: 12px;

    text-align: center;

    background: #f8fafc;
}

.kmz-compare-stat strong {
    display: block;

    font-size: 22px;

    margin-bottom: 4px;
}

.kmz-compare-stat span {
    font-size: 12px;

    color: #64748b;
}


/* =========================================================
   ALTERAÇÕES
========================================================= */

.kmz-compare-section-title {
    font-weight: 700;

    font-size: 15px;

    margin-bottom: 10px;
}

.kmz-compare-change {
    border: 1px solid #e5e7eb;

    border-radius: 14px;

    padding: 16px;

    margin-bottom: 14px;

    background: #ffffff;
}

.kmz-compare-point-name {
    font-weight: 700;

    margin-bottom: 14px;
}

.kmz-compare-coordinates {
    display: grid;

    grid-template-columns: 1fr auto 1fr;

    align-items: center;

    gap: 14px;
}

.kmz-compare-coordinate-box {
    background: #f8fafc;

    border-radius: 10px;

    padding: 12px;

    line-height: 1.6;
}

.kmz-compare-label {
    font-size: 12px;

    font-weight: 700;

    color: #64748b;

    margin-bottom: 6px;
}

.kmz-compare-arrow {
    font-size: 24px;

    font-weight: 700;
}

.kmz-compare-empty {
    padding: 18px;

    text-align: center;

    color: #64748b;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

    .kmz-compare-summary {
        grid-template-columns: repeat(2, 1fr);
    }

    .kmz-compare-coordinates {
        grid-template-columns: 1fr;
    }

    .kmz-compare-arrow {
        transform: rotate(90deg);

        text-align: center;
    }
}
/* =========================================================
   COMPARAÇÃO KMZ - VISUAL CLEAN
========================================================= */

#kmzCompareModal {
    position: fixed !important;
    inset: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 24px !important;

    background: rgba(15, 23, 42, 0.58) !important;
    backdrop-filter: blur(5px);

    z-index: 999999 !important;
}

#kmzCompareModal.hidden {
    display: none !important;
}

#kmzCompareModal .field-modal-card {
    position: relative !important;

    width: min(820px, 94vw) !important;
    max-height: 88vh !important;

    padding: 26px !important;

    overflow: hidden !important;

    background: #ffffff !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 20px !important;

    box-shadow:
        0 30px 80px rgba(15, 23, 42, .30) !important;
}


/* tira aquela barra esquisita do X */

#closeKmzCompareModal {
    position: absolute !important;

    top: 18px !important;
    right: 18px !important;

    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;

    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border: none !important;
    border-radius: 10px !important;

    background: transparent !important;

    font-size: 23px !important;
    color: #64748b !important;

    cursor: pointer;
}

#closeKmzCompareModal:hover {
    background: #f1f5f9 !important;
    color: #0f172a !important;
}


/* título */

#kmzCompareModal .field-modal-title {
    margin: 0 !important;

    padding-right: 55px !important;

    font-size: 23px !important;
    font-weight: 800 !important;

    color: #0f172a !important;
}

#kmzCompareModal .field-modal-subtitle {
    margin-top: 4px !important;
    margin-bottom: 22px !important;

    font-size: 13px !important;

    color: #64748b !important;
}


/* corpo */

#kmzCompareBody {
    overflow-y: auto !important;
    overflow-x: hidden !important;

    max-height: 70vh !important;

    padding-right: 5px !important;
}


/* cards de números */

.kmz-compare-summary {
    display: grid !important;

    grid-template-columns: repeat(4, 1fr) !important;

    gap: 12px !important;

    margin-bottom: 26px !important;
}

.kmz-compare-stat {
    padding: 18px 12px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 15px !important;

    background: #f8fafc !important;

    text-align: center !important;

    transition: .15s ease;
}

.kmz-compare-stat:hover {
    transform: translateY(-2px);

    box-shadow:
        0 7px 18px rgba(15, 23, 42, .08);
}

.kmz-compare-stat strong {
    display: block !important;

    margin-bottom: 6px !important;

    font-size: 27px !important;
    font-weight: 800 !important;

    color: #0f172a !important;
}

.kmz-compare-stat span {
    font-size: 12px !important;
    font-weight: 650 !important;

    color: #64748b !important;
}


/* cores dos quatro cards */

.kmz-compare-stat:nth-child(1) {
    background: #fffaf0 !important;
    border-color: #fde6b5 !important;
}

.kmz-compare-stat:nth-child(1) strong {
    color: #c56a0a !important;
}

.kmz-compare-stat:nth-child(2) {
    background: #f0fdf4 !important;
    border-color: #ccebd6 !important;
}

.kmz-compare-stat:nth-child(2) strong {
    color: #15803d !important;
}

.kmz-compare-stat:nth-child(3) {
    background: #fff5f5 !important;
    border-color: #fecaca !important;
}

.kmz-compare-stat:nth-child(3) strong {
    color: #b91c1c !important;
}

.kmz-compare-stat:nth-child(4) {
    background: #eff6ff !important;
    border-color: #dbeafe !important;
}

.kmz-compare-stat:nth-child(4) strong {
    color: #2563eb !important;
}


/* nenhum ponto */

.kmz-compare-empty {
    padding: 34px !important;

    border: 1px dashed #cbd5e1 !important;
    border-radius: 14px !important;

    background: #f8fafc !important;

    text-align: center !important;

    color: #64748b !important;
}


/* pontos alterados */

.kmz-compare-section-title {
    margin-bottom: 12px !important;

    font-size: 16px !important;
    font-weight: 800 !important;

    color: #0f172a !important;
}

.kmz-compare-change {
    padding: 18px !important;

    margin-bottom: 12px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 15px !important;

    background: #ffffff !important;
}

.kmz-compare-point-name {
    margin-bottom: 14px !important;

    font-size: 16px !important;
    font-weight: 800 !important;
}


/* antes e depois */

.kmz-compare-coordinates {
    display: grid !important;

    grid-template-columns: 1fr 45px 1fr !important;

    gap: 12px !important;

    align-items: center !important;
}

.kmz-compare-coordinate-box {
    padding: 14px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;

    background: #f8fafc !important;

    line-height: 1.7 !important;
}

.kmz-compare-coordinate-box:last-child {
    background: #f0fdf4 !important;
    border-color: #ccebd6 !important;
}

.kmz-compare-label {
    margin-bottom: 6px !important;

    font-size: 11px !important;
    font-weight: 800 !important;

    color: #64748b !important;
}

.kmz-compare-arrow {
    width: 38px !important;
    height: 38px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border: 1px solid #dbe3ec !important;
    border-radius: 50% !important;

    background: white !important;

    color: #2563eb !important;

    font-size: 20px !important;
}
/* =========================================================
   KMZ ENVIADOS
========================================================= */

#kmzVersionsModal {
    position: fixed !important;
    inset: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 22px !important;

    background: rgba(15, 23, 42, .56) !important;
    backdrop-filter: blur(4px);

    z-index: 99999 !important;
}

#kmzVersionsModal.hidden {
    display: none !important;
}

#kmzVersionsModal .field-modal-card {
    position: relative !important;

    width: min(700px, 94vw) !important;
    max-height: 88vh !important;

    padding: 24px !important;

    background: white !important;

    border-radius: 20px !important;

    border: 1px solid #e2e8f0 !important;

    box-shadow:
        0 28px 70px rgba(15, 23, 42, .28) !important;
}


/* X */

#closeKmzVersionsModal {
    position: absolute !important;

    top: 16px !important;
    right: 16px !important;

    width: 38px !important;
    height: 38px !important;

    padding: 0 !important;

    border: 0 !important;
    border-radius: 10px !important;

    background: transparent !important;

    font-size: 23px !important;

    color: #64748b !important;
}

#closeKmzVersionsModal:hover {
    background: #f1f5f9 !important;
}


/* lista */

#kmzVersionsBody {
    max-height: 67vh !important;

    overflow-y: auto !important;

    padding-right: 6px !important;
}


/* cards */

.kmz-version-item {
    padding: 16px !important;

    margin-bottom: 12px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 15px !important;

    background: #ffffff !important;

    box-shadow:
        0 3px 10px rgba(15, 23, 42, .03);

    transition: .15s ease;
}

.kmz-version-item:hover {
    border-color: #cbd5e1 !important;

    box-shadow:
        0 8px 20px rgba(15, 23, 42, .06);
}


/* arquivo */

.kmz-version-file {
    margin-top: 10px !important;

    padding: 9px 11px !important;

    border-radius: 9px !important;

    background: #f8fafc !important;

    color: #475569 !important;

    font-size: 12px !important;
}


/* botões */

.kmz-version-actions {
    display: flex !important;

    gap: 8px !important;

    margin-top: 10px !important;
}

.kmz-version-actions button {
    min-height: 36px !important;

    padding: 7px 12px !important;

    border-radius: 9px !important;

    font-size: 12px !important;
    font-weight: 700 !important;

    cursor: pointer !important;

    transition: .15s ease !important;
}


/* visualizar */

.kmz-version-compare {
    border: 1px solid #bfdbfe !important;

    background: #eff6ff !important;

    color: #1d4ed8 !important;
}

.kmz-version-compare:hover {
    background: #dbeafe !important;
}


/* aprovar */

.kmz-version-approve {
    border: 1px solid #bbf7d0 !important;

    background: #f0fdf4 !important;

    color: #15803d !important;
}

.kmz-version-approve:hover {
    background: #dcfce7 !important;
}


/* recusar */

.kmz-version-reject {
    border: 1px solid #fecaca !important;

    background: #fff1f2 !important;

    color: #be123c !important;
}

.kmz-version-reject:hover {
    background: #ffe4e6 !important;
}


/* status final */

.kmz-version-result {
    display: inline-flex !important;

    margin-top: 10px !important;

    padding: 5px 9px !important;

    border-radius: 999px !important;

    background: #f1f5f9 !important;

    color: #475569 !important;

    font-size: 11px !important;
    font-weight: 800 !important;
}
/* =========================================================
   SIDEBAR RECOLHIDA - BOTÃO LIMPO
========================================================= */

.sidebar-toggle {
    position: absolute !important;

    top: 50% !important;
    right: -16px !important;

    transform: translateY(-50%) !important;

    width: 32px !important;
    height: 44px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 0 !important;

    border: 1px solid #dbe3ec !important;
    border-left: none !important;

    border-radius: 0 10px 10px 0 !important;

    background: rgba(255, 255, 255, 0.96) !important;

    color: #475569 !important;

    font-size: 18px !important;
    font-weight: 800 !important;

    box-shadow:
        3px 0 10px rgba(15, 23, 42, .10) !important;

    z-index: 10000 !important;

    cursor: pointer !important;
}


/* quando a sidebar estiver fechada */

.sidebar.collapsed .sidebar-toggle {
    position: fixed !important;

    left: 0 !important;
    right: auto !important;

    top: 50% !important;

    width: 28px !important;
    height: 46px !important;

    border: 1px solid #dbe3ec !important;
    border-left: none !important;

    border-radius: 0 10px 10px 0 !important;

    background: rgba(255, 255, 255, .92) !important;

    backdrop-filter: blur(6px);

    box-shadow:
        3px 0 10px rgba(15, 23, 42, .10) !important;
}


/* remove qualquer fundo/retângulo sobrando da sidebar fechada */

.sidebar.collapsed {
    width: 0 !important;
    min-width: 0 !important;

    padding: 0 !important;

    border: none !important;

    background: transparent !important;

    box-shadow: none !important;
}


/* esconde todo o conteúdo menos a setinha */

.sidebar.collapsed > *:not(.sidebar-toggle) {
    display: none !important;
}
/* =========================================================
   BOTÕES PRINCIPAIS - PROJETOS
========================================================= */

#openImport,
#generateKmzVersion,
#openKmzVersions {
    width: 100% !important;
    min-height: 46px !important;

    margin: 0 0 9px 0 !important;
    padding: 0 16px !important;

    border: 1px solid transparent !important;
    border-radius: 12px !important;

    font-size: 14px !important;
    font-weight: 700 !important;

    cursor: pointer !important;

    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease !important;
}


/* IMPORTAR - ação principal */

#openImport {
    background: #3f63ea !important;
    color: #ffffff !important;

    box-shadow:
        0 4px 12px rgba(63, 99, 234, 0.20) !important;
}

#openImport:hover {
    background: #3456d8 !important;

    transform: translateY(-2px);

    box-shadow:
        0 7px 16px rgba(63, 99, 234, 0.28) !important;
}


/* GERAR / ENVIAR */

#generateKmzVersion {
    background: #ffffff !important;

    color: #245f99 !important;

    border-color: #cddbea !important;

    box-shadow:
        0 2px 6px rgba(15, 23, 42, 0.05) !important;
}

#generateKmzVersion:hover {
    background: #f2f7fc !important;

    border-color: #9fc0df !important;

    transform: translateY(-2px);

    box-shadow:
        0 6px 14px rgba(15, 23, 42, 0.08) !important;
}


/* ANALISAR */

#openKmzVersions {
    background: #ffffff !important;

    color: #245f99 !important;

    border-color: #cddbea !important;

    box-shadow:
        0 2px 6px rgba(15, 23, 42, 0.05) !important;
}

#openKmzVersions:hover {
    background: #f2f7fc !important;

    border-color: #9fc0df !important;

    transform: translateY(-2px);

    box-shadow:
        0 6px 14px rgba(15, 23, 42, 0.08) !important;
}


/* Efeito ao clicar */

#openImport:active,
#generateKmzVersion:active,
#openKmzVersions:active {
    transform: translateY(0) scale(0.98) !important;
}


/* Espaço abaixo do conjunto */

#openKmzVersions {
    margin-bottom: 16px !important;
}
/* =========================================================
   FOTOS DE CAMPO
   ========================================================= */

.field-photos-section {
    width: 100%;
}

.field-photos-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.field-photos-help {
    margin-top: 4px;
    font-size: 13px;
    color: #64748b;
}

.field-photo-add-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 9px 14px;
    border-radius: 8px;

    background: #2563eb;
    color: white;

    font-size: 13px;
    font-weight: 600;
    cursor: pointer;

    white-space: nowrap;
}

.field-photo-add-btn:hover {
    filter: brightness(0.95);
}

.field-photos-preview {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 12px;

    width: 100%;
}

.field-photo-preview-item {
    position: relative;
    min-width: 0;

    border: 1px solid #e2e8f0;
    border-radius: 10px;
    overflow: hidden;

    background: #f8fafc;
}

.field-photo-preview-item img {
    display: block;

    width: 100%;
    height: 110px;

    object-fit: cover;
}

.field-photo-preview-name {
    padding: 7px 9px;

    font-size: 11px;
    color: #475569;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.field-photos-empty {
    grid-column: 1 / -1;

    padding: 18px;
    border: 1px dashed #cbd5e1;
    border-radius: 10px;

    text-align: center;
    font-size: 13px;
    color: #64748b;
}


/* CELULAR */

@media (max-width: 600px) {

    .field-photos-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .field-photo-add-btn {
        width: 100%;
    }

    .field-photos-preview {
        grid-template-columns: repeat(2, 1fr);
    }

    .field-photo-preview-item img {
        height: 120px;
    }
}
.field-photo-image-wrapper {
    position: relative;
}

.field-photo-remove {
    position: absolute;

    top: 6px;
    right: 6px;

    width: 25px;
    height: 25px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: none;
    border-radius: 50%;

    background: rgba(15, 23, 42, 0.85);
    color: white;

    font-size: 18px;
    line-height: 1;

    cursor: pointer;

    box-shadow: 0 2px 6px rgba(0,0,0,0.25);
}

.field-photo-remove:hover {
    background: #dc2626;
    transform: scale(1.08);
}
/* =========================================================
   GALERIA - HISTÓRICO DE VISTORIAS
========================================================= */

.field-history-photos {
    grid-column: 1 / -1;
    margin-top: 14px;
}

.field-history-photos-title {
    margin-bottom: 10px;

    font-size: 13px;
    font-weight: 800;

    color: #334155;
}

.field-history-photos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));

    gap: 12px;
}

.field-history-photo-item {
    overflow: hidden;

    border: 1px solid #e2e8f0;
    border-radius: 11px;

    background: #ffffff;

    box-shadow:
        0 3px 10px rgba(15, 23, 42, .05);
}

.field-history-photo-img {
    display: block;

    width: 100%;
    height: 110px;

    object-fit: cover;

    cursor: pointer;

    transition: transform .18s ease;
}

.field-history-photo-img:hover {
    transform: scale(1.04);
}

.field-history-photo-meta {
    padding: 7px 9px;
}

.field-history-photo-meta span {
    display: block;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    font-size: 11px;
    font-weight: 700;

    color: #334155;
}

.field-history-photo-meta small {
    display: block;

    margin-top: 3px;

    font-size: 10px;

    color: #94a3b8;
}


/* =========================================================
   FOTO AMPLIADA
========================================================= */

.field-photo-lightbox {
    position: fixed;
    inset: 0;

    z-index: 9999999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    background: rgba(15, 23, 42, .82);

    backdrop-filter: blur(5px);
}

.field-photo-lightbox-card {
    position: relative;

    max-width: 92vw;
    max-height: 90vh;

    padding: 14px;

    border-radius: 16px;

    background: #ffffff;

    box-shadow:
        0 30px 80px rgba(0,0,0,.4);
}

.field-photo-lightbox-card img {
    display: block;

    max-width: 86vw;
    max-height: 78vh;

    object-fit: contain;

    border-radius: 10px;
}

.field-photo-lightbox-close {
    position: absolute;

    top: 10px;
    right: 10px;

    width: 36px;
    height: 36px;

    border: none;
    border-radius: 50%;

    background: rgba(15, 23, 42, .82);
    color: white;

    font-size: 22px;

    cursor: pointer;
}

.field-photo-lightbox-name {
    margin-top: 10px;

    font-size: 12px;
    font-weight: 700;

    color: #475569;

    text-align: center;
}
/* =========================================================
   INFORMAÇÕES DAS FOTOS NO HISTÓRICO
========================================================= */

.field-history-photo-name {
    display: block;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    font-size: 11px;
    font-weight: 700;

    color: #334155;
}

.field-history-photo-info {
    display: flex;
    flex-direction: column;

    gap: 3px;

    margin-top: 6px;

    font-size: 10px;

    color: #64748b;
}

.field-history-photo-info span {
    display: block;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* =========================================================
   DARK MODE - WEBGIS VANTE
   BLOCO ÚNICO / FINAL
   ========================================================= */

html[data-theme="dark"] {
    color-scheme: dark;

    --bg: #0b1220;
    --panel: #111827;
    --panel-2: #172033;
    --panel-3: #1d293b;

    --line: #334155;
    --line-soft: #26364a;

    --text: #f1f5f9;
    --text-soft: #cbd5e1;
    --muted: #94a3b8;

    --input: #0f172a;

    --brand: #4f6bed;
    --brand-dark: #3e55d4;

    --danger: #ef4444;
}


/* =========================================================
   ESTRUTURA GERAL
   ========================================================= */

html[data-theme="dark"] body {
    background: var(--bg);
    color: var(--text);
}

html[data-theme="dark"] .topbar {
    background: #101a29;
    color: var(--text);
    border-bottom: 1px solid var(--line-soft);
}

html[data-theme="dark"] .sidebar {
    background: var(--panel);
    color: var(--text);
    border-right-color: var(--line);
}

html[data-theme="dark"] .sidebar h2,
html[data-theme="dark"] .sidebar strong,
html[data-theme="dark"] .sidebar label {
    color: var(--text);
}


/* =========================================================
   BOTÃO DARK / LIGHT
   ========================================================= */

html[data-theme="dark"] .theme-toggle {
    background: var(--panel-2);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] .theme-toggle:hover {
    background: var(--panel-3);
}


/* =========================================================
   INPUTS
   ========================================================= */

html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
    background: var(--input);
    color: var(--text);
    border-color: #475569;
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder {
    color: #718096;
}

html[data-theme="dark"] select option {
    background: var(--input);
    color: var(--text);
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(79, 107, 237, .15);
}


/* =========================================================
   PROJETOS
   ========================================================= */

html[data-theme="dark"] .project-card,
html[data-theme="dark"] .project-item {
    background: var(--panel-2);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] .project-card:hover,
html[data-theme="dark"] .project-item:hover {
    background: var(--panel-3);
}

html[data-theme="dark"] .project-item strong,
html[data-theme="dark"] .project-name {
    color: var(--text);
}

html[data-theme="dark"] .project-meta {
    color: var(--muted);
}


/* =========================================================
   DICA
   ========================================================= */

html[data-theme="dark"] .sidebar-note {
    background: var(--panel-2);
    color: var(--muted);
    border: 1px solid var(--line);
}


/* =========================================================
   CORES DO MAPA
   ========================================================= */

html[data-theme="dark"] .color-panel {
    background: var(--panel-2);
    border-color: var(--line);
}

html[data-theme="dark"] .color-panel-toggle {
    background: var(--panel-2);
    color: var(--text);
}

html[data-theme="dark"] .color-panel-toggle:hover {
    background: var(--panel-3);
}

html[data-theme="dark"] .color-panel-content {
    background: var(--panel-2);
    color: var(--text-soft);
}

html[data-theme="dark"] .color-panel-content label {
    color: var(--text-soft);
}

html[data-theme="dark"] #resetMapColors {
    background: var(--input);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] #resetMapColors:hover {
    background: var(--panel-3);
}


/* =========================================================
   USUÁRIOS
   ========================================================= */

html[data-theme="dark"] .user-item {
    background: var(--panel-2);
    border-color: var(--line);
}

html[data-theme="dark"] .user-item strong {
    color: var(--text);
}

html[data-theme="dark"] .user-item span {
    background: #253653;
    color: #bfdbfe;
}

html[data-theme="dark"] .new-user-form {
    background: var(--panel-2);
    border-color: var(--line);
}

html[data-theme="dark"] .delete-user-btn {
    background: #291820;
    border-color: #7f1d1d;
}

html[data-theme="dark"] .delete-user-btn:hover {
    background: #3a1b24;
    border-color: #991b1b;
}


/* =========================================================
   BOTÕES SECUNDÁRIOS
   ========================================================= */

html[data-theme="dark"] .ghost-button {
    background: var(--panel-2);
    color: var(--text);
}

html[data-theme="dark"] #openKmzVersions {
    background: var(--panel-2);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] #openKmzVersions:hover {
    background: var(--panel-3);
}


/* =========================================================
   STATUS / SIDEBAR TOGGLE
   ========================================================= */

html[data-theme="dark"] .status-bar {
    background: rgba(17, 24, 39, .94);
    color: var(--text-soft);
}

html[data-theme="dark"] .sidebar-toggle {
    background: var(--panel-2);
    color: var(--text);
    border-color: var(--line);
}


/* =========================================================
   POPUPS DO MAPA
   ========================================================= */

html[data-theme="dark"] .maplibregl-popup-content {
    background: var(--panel);
    color: var(--text);
    border: 1px solid var(--line);
}

html[data-theme="dark"] .popup-title {
    color: var(--text);
}

html[data-theme="dark"] .popup-desc,
html[data-theme="dark"] .popup-coordinates {
    background: var(--panel-2);
    color: var(--text-soft);
    border-color: var(--line);
}

html[data-theme="dark"] .popup-coordinates strong {
    color: var(--text);
}

html[data-theme="dark"] .maplibregl-popup-close-button {
    color: var(--text-soft);
}

html[data-theme="dark"] .maplibregl-popup-close-button:hover {
    background: var(--panel-3);
}

html[data-theme="dark"] .maplibregl-popup-tip {
    border-top-color: var(--panel);
}


/* =========================================================
   MODAIS GENÉRICOS
   ========================================================= */

html[data-theme="dark"] .modal-card {
    background: var(--panel);
    color: var(--text);
}


/* =========================================================
   DADOS DE CAMPO
   ========================================================= */

html[data-theme="dark"] .field-modal-card {
    background: var(--panel);
    color: var(--text);
}

html[data-theme="dark"] .field-modal-card .modal-header {
    background: var(--panel);
    border-bottom-color: var(--line);
}

html[data-theme="dark"] .field-modal-card .modal-header h2 {
    color: var(--text);
}

html[data-theme="dark"] .field-modal-subtitle {
    color: var(--muted);
}

html[data-theme="dark"] #fieldModal .field-history-top {
    background: var(--panel-2);
    border-color: var(--line);
    color: var(--text);
}

html[data-theme="dark"] #fieldModal .field-current-version {
    color: var(--text-soft);
}

html[data-theme="dark"] #fieldModal .field-history-btn {
    background: var(--input);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] #fieldModal .field-section {
    background: var(--panel-2);
    border-color: var(--line);
    color: var(--text);
}

html[data-theme="dark"] #fieldModal .field-section > strong,
html[data-theme="dark"] #fieldModal .field-section label {
    color: var(--text);
}

html[data-theme="dark"] #fieldModal .field-section input,
html[data-theme="dark"] #fieldModal .field-section select,
html[data-theme="dark"] #fieldModal .field-section textarea {
    background: var(--input);
    color: var(--text);
    border-color: #475569;
}


/* =========================================================
   FOTOS DE CAMPO
   ========================================================= */

html[data-theme="dark"] .field-photos-section {
    background: var(--panel-2);
    border-color: var(--line);
}

html[data-theme="dark"] .field-photos-header {
    color: var(--text);
}

html[data-theme="dark"] .field-photos-help {
    color: var(--muted);
}

html[data-theme="dark"] .field-photo-add-btn {
    background: var(--brand);
    color: white;
}

html[data-theme="dark"] .field-photo-add-btn:hover {
    background: var(--brand-dark);
}


/* =========================================================
   HISTÓRICO DE VISTORIAS
   ========================================================= */

html[data-theme="dark"] #fieldHistoryModal {
    background: rgba(0, 0, 0, .55);
}

html[data-theme="dark"]
#fieldHistoryModal
.field-history-modal-card {
    background: var(--panel);
    color: var(--text);
}

html[data-theme="dark"] #fieldHistoryModal .field-modal-title {
    color: var(--text);
}

html[data-theme="dark"] #fieldHistoryModal .field-modal-subtitle {
    color: var(--muted);
}


/* filtros */

html[data-theme="dark"] .field-history-filters {
    background: var(--panel-2);
    border-color: var(--line);
}

html[data-theme="dark"] .field-history-filter label {
    color: var(--text-soft);
}

html[data-theme="dark"] .field-history-filter input {
    background: var(--input);
    color: var(--text);
    border-color: #475569;
}

html[data-theme="dark"] .field-history-clear-filter {
    background: var(--input);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] .field-history-clear-filter:hover {
    background: var(--panel-3);
}


/* cada versão */

html[data-theme="dark"] .field-history-version {
    background: var(--panel-2);
    border-color: var(--line);
    color: var(--text);
}

html[data-theme="dark"] .field-history-version.current {
    border-color: #56719b;
}

html[data-theme="dark"] .field-history-version-title {
    color: var(--text);
}

html[data-theme="dark"] .field-history-version-meta {
    color: var(--muted);
}

html[data-theme="dark"] .field-history-current-badge {
    background: #253653;
    color: #bfdbfe;
}


/* progresso */

html[data-theme="dark"] .field-history-completion-info {
    color: var(--text-soft);
}

html[data-theme="dark"] .field-history-completion-bar {
    background: #26364a;
}


/* diferença entre versões */

html[data-theme="dark"] .field-history-change {
    background: var(--input);
    color: var(--text-soft);
    border-color: var(--line);
}

html[data-theme="dark"] .field-history-change strong {
    color: var(--text-soft);
}

html[data-theme="dark"] .field-history-diff {
    background: var(--input);
    border-color: var(--line);
}

html[data-theme="dark"] .field-history-diff-name {
    color: var(--text-soft);
}

html[data-theme="dark"] .field-history-old-value {
    background: #2a2028;
    color: #fecdd3;
}

html[data-theme="dark"] .field-history-new-value {
    background: #142b2a;
    color: #bbf7d0;
}

html[data-theme="dark"] .field-history-first,
html[data-theme="dark"] .field-history-no-changes {
    background: var(--input);
    color: var(--text-soft);
    border-color: var(--line);
}


/* BOTÃO VER / OCULTAR VISTORIA */

html[data-theme="dark"] .field-history-full-btn {
    background: var(--panel-3);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] .field-history-full-btn:hover {
    background: #25354b;
}


/* CONTEÚDO COMPLETO DA VISTORIA */

html[data-theme="dark"] .field-history-full {
    background: var(--panel);
    border-color: var(--line);
}

html[data-theme="dark"] .field-history-full > div {
    background: var(--input);
    color: var(--text-soft);
    border-color: var(--line);
}

html[data-theme="dark"] .field-history-full > div strong {
    color: var(--text);
}


/* FOTOS NO HISTÓRICO */

html[data-theme="dark"] .field-history-photos {
    background: var(--panel);
    border-color: var(--line);
}

html[data-theme="dark"] .field-history-photos-title {
    color: var(--text);
}


/* =========================================================
   KMZ ENVIADOS
   ========================================================= */

html[data-theme="dark"] #kmzVersionsModal {
    background: rgba(15, 23, 42, .70) !important;
}

html[data-theme="dark"]
#kmzVersionsModal
.field-modal-card {
    background: var(--panel) !important;
    color: var(--text) !important;
    border-color: var(--line) !important;
}

html[data-theme="dark"] #kmzVersionsModal .field-modal-title {
    color: var(--text) !important;
}

html[data-theme="dark"] #kmzVersionsModal .field-modal-subtitle {
    color: var(--muted) !important;
}

html[data-theme="dark"] #closeKmzVersionsModal {
    color: var(--text-soft) !important;
}

html[data-theme="dark"] #closeKmzVersionsModal:hover {
    background: var(--panel-3) !important;
}


/* card de cada KMZ */

html[data-theme="dark"] .kmz-version-item {
    background: var(--panel-2) !important;
    border-color: var(--line) !important;
    color: var(--text) !important;
}

html[data-theme="dark"] .kmz-version-item:hover {
    background: var(--panel-3) !important;
    border-color: #475569 !important;
}

html[data-theme="dark"] .kmz-version-header strong {
    color: var(--text) !important;
}

html[data-theme="dark"] .kmz-version-header span {
    color: var(--muted) !important;
}

html[data-theme="dark"] .kmz-version-meta {
    color: var(--muted) !important;
}


/* arquivo */

html[data-theme="dark"] .kmz-version-file {
    background: var(--input) !important;
    color: var(--text-soft) !important;
}


/* botões KMZ */

html[data-theme="dark"] .kmz-version-compare {
    background: #172554 !important;
    color: #bfdbfe !important;
    border-color: #1e40af !important;
}

html[data-theme="dark"] .kmz-version-compare:hover {
    background: #1e3a8a !important;
}

html[data-theme="dark"] .kmz-version-approve {
    background: #142b20 !important;
    color: #bbf7d0 !important;
    border-color: #166534 !important;
}

html[data-theme="dark"] .kmz-version-approve:hover {
    background: #14532d !important;
}

html[data-theme="dark"] .kmz-version-reject {
    background: #2b1720 !important;
    color: #fecdd3 !important;
    border-color: #991b1b !important;
}

html[data-theme="dark"] .kmz-version-reject:hover {
    background: #450a0a !important;
}

html[data-theme="dark"] .kmz-version-result {
    background: var(--input) !important;
    color: var(--text-soft) !important;
}


/* =========================================================
   COMPARAÇÃO DO KMZ
   ========================================================= */

html[data-theme="dark"] #kmzCompareModal {
    background: rgba(15, 23, 42, .72) !important;
}

html[data-theme="dark"]
#kmzCompareModal
.field-modal-card {
    background: var(--panel) !important;
    color: var(--text) !important;
    border-color: var(--line) !important;
}

html[data-theme="dark"] #kmzCompareModal .field-modal-title {
    color: var(--text) !important;
}

html[data-theme="dark"] #kmzCompareModal .field-modal-subtitle {
    color: var(--muted) !important;
}

html[data-theme="dark"] #closeKmzCompareModal {
    color: var(--text-soft) !important;
}

html[data-theme="dark"] #closeKmzCompareModal:hover {
    background: var(--panel-3) !important;
}


/* resumo */

html[data-theme="dark"] .kmz-compare-stat {
    background: var(--panel-2) !important;
    border-color: var(--line) !important;
}

html[data-theme="dark"] .kmz-compare-stat span {
    color: var(--muted) !important;
}

html[data-theme="dark"] .kmz-compare-stat strong {
    color: var(--text) !important;
}


/* alterações */

html[data-theme="dark"] .kmz-compare-section-title {
    color: var(--text);
}

html[data-theme="dark"] .kmz-compare-change {
    background: var(--panel-2) !important;
    border-color: var(--line) !important;
}

html[data-theme="dark"] .kmz-compare-point-name {
    color: var(--text);
}

html[data-theme="dark"] .kmz-compare-coordinate-box {
    background: var(--input) !important;
    color: var(--text-soft);
}

html[data-theme="dark"] .kmz-compare-label {
    color: var(--muted);
}

html[data-theme="dark"] .kmz-compare-empty {
    color: var(--muted);
}


/* =========================================================
   SCROLLBARS
   ========================================================= */

html[data-theme="dark"] .sidebar,
html[data-theme="dark"] .field-modal-body,
html[data-theme="dark"] .field-history-body,
html[data-theme="dark"] #kmzVersionsBody,
html[data-theme="dark"] #kmzCompareBody {
    scrollbar-color: #475569 var(--panel);
}

html[data-theme="dark"] .field-history-body::-webkit-scrollbar-thumb,
html[data-theme="dark"] #kmzVersionsBody::-webkit-scrollbar-thumb,
html[data-theme="dark"] #kmzCompareBody::-webkit-scrollbar-thumb {
    background: #475569;
}

html[data-theme="dark"] .field-history-body::-webkit-scrollbar-track,
html[data-theme="dark"] #kmzVersionsBody::-webkit-scrollbar-track,
html[data-theme="dark"] #kmzCompareBody::-webkit-scrollbar-track {
    background: var(--panel);
}
:root {
  --bg: #eef2f5;
  --panel: #ffffff;
  --line: #d8e0e7;
  --text: #16212a;
  --muted: #6d7b86;
  --brand: #1769aa;
  --brand-dark: #0f4f82;
  --danger: #b42318;
  --shadow: 0 10px 30px rgba(24, 39, 55, .12);
  --topbar: 58px;
  --sidebar: 310px;
}

/* =========================================================
   TEMA ESCURO
   ========================================================= */

html[data-theme="dark"] {
    --bg: #0f172a;
    --panel: #111827;
    --line: #334155;
    --text: #e5e7eb;
    --muted: #94a3b8;
    --brand: #3b82f6;
    --brand-dark: #2563eb;
    --danger: #ef4444;
    --shadow: 0 10px 30px rgba(0, 0, 0, .35);
}

html[data-theme="dark"] .login-card,
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
    background: var(--panel);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder {
    color: var(--muted);
}

.theme-toggle {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;

    border: 1px solid var(--line);
    border-radius: 10px;

    background: var(--panel);
    color: var(--text);

    font-size: 18px;
    cursor: pointer;

    transition:
        background .2s ease,
        border-color .2s ease,
        transform .15s ease;
}

.theme-toggle:hover {
    transform: translateY(-1px);
    background: var(--bg);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  height: 100%;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--bg);
}

button, input { font: inherit; }
button { cursor: pointer; }

.hidden { display: none !important; }

.login-screen {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 10% 20%, rgba(23,105,170,.14), transparent 32%),
    radial-gradient(circle at 90% 80%, rgba(23,105,170,.10), transparent 32%),
    #eef2f5;
}

.login-card {
  width: min(410px, 100%);
  padding: 34px;
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow);
}

.brand-mark {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: var(--brand);
  color: white;
  font-weight: 800;
  letter-spacing: .5px;
}

.login-card h1 { margin: 18px 0 4px; font-size: 28px; }
.login-card p { margin: 0 0 24px; color: var(--muted); }

label {
  display: block;
  margin: 14px 0 6px;
  font-size: 13px;
  font-weight: 700;
}

input {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  outline: none;
  background: #fff;
}

input:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(23,105,170,.12);
}

.primary, .ghost-button, .map-action, .icon-button {
  border: 0;
  border-radius: 10px;
}

.primary {
  min-height: 44px;
  padding: 10px 16px;
  background: var(--brand);
  color: #fff;
  font-weight: 750;
}

.primary:hover { background: var(--brand-dark); }
.login-card .primary { width: 100%; margin-top: 18px; }

.ghost-button {
  padding: 9px 13px;
  background: #edf2f6;
  color: var(--text);
  font-weight: 650;
}

.full { width: 100%; }
.error { color: var(--danger); font-size: 13px; margin-top: 12px; min-height: 18px; }

.app-screen { height: 100dvh; overflow: hidden; }

.topbar {
  height: var(--topbar);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  background: #17242d;
  color: white;
  position: relative;
  z-index: 20;
}

.topbar-left, .topbar-right {
  display: flex;
  gap: 10px;
  align-items: center;
}

.badge {
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.13);
  font-size: 11px;
}

.workspace {
  display: grid;
  grid-template-columns: var(--sidebar) 1fr;
  height: calc(100dvh - var(--topbar));
  transition: grid-template-colums 0.25s ease;
}
.workspace:has(.sidebar.collapsed) {
    grid-template-columns: 0 1fr;
}

.sidebar {
  background: var(--panel);
  border-right: 1px solid var(--line);
  padding: 16px;
  overflow-y: auto;
  z-index: 15;
}

.sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sidebar h2 { margin: 0 0 14px; font-size: 18px; }

.projects-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.project-card {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px;
  background: #fff;
}

.project-row {
  display: flex;
  align-items: flex-start;
  gap: 9px;
}

.project-row input { width: auto; min-height: auto; margin-top: 4px; }

.project-main { flex: 1; min-width: 0; }
.project-name { font-weight: 750; font-size: 14px; word-break: break-word; }
.project-meta { color: var(--muted); font-size: 12px; margin-top: 3px; }

.delete-project {
  border: 0;
  background: transparent;
  color: #8a98a3;
  padding: 3px;
  font-size: 17px;
}

.sidebar-note {
  margin-top: 18px;
  padding: 11px;
  border-radius: 10px;
  background: #f3f6f8;
  display: grid;
  gap: 4px;
  font-size: 12px;
  color: var(--muted);
}

.map-area { position: relative; min-width: 0; }
#map { position: absolute; inset: 0; }

.status-bar {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 5;
  max-width: min(520px, calc(100% - 24px));
  padding: 8px 12px;
  border-radius: 9px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 2px 12px rgba(0,0,0,.14);
  color: #45525c;
  font-size: 12px;
}

.map-floating {
  position: absolute;
  right: 12px;
  top: 12px;
  z-index: 5;
}

.map-action {
  width: 42px;
  height: 42px;
  background: white;
  box-shadow: 0 2px 12px rgba(0,0,0,.18);
  font-size: 21px;
}

.icon-button {
  width: 38px;
  height: 38px;
  background: transparent;
  color: inherit;
  font-size: 24px;
}

.mobile-only { display: none; }

.modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(9, 18, 24, .55);
}

.modal-card {
  width: min(480px, 100%);
  background: white;
  border-radius: 16px;
  padding: 20px;
  box-shadow: var(--shadow);
}

.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.modal-header h2 { margin: 0; }

.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  margin-top: 20px;
}

.small-status { margin-top: 12px; color: var(--muted); font-size: 13px; }

.maplibregl-popup-content {
  min-width: 210px;
  border-radius: 10px;
}

.popup-title { font-weight: 800; margin-bottom: 5px; }
.popup-desc { color: #586671; font-size: 12px; max-height: 120px; overflow: auto; }

@media (max-width: 760px) {
  .mobile-only { display: inline-grid; place-items: center; }

  .topbar { padding: 0 10px; }
  #userLabel { display: none; }

  .workspace { display: block; }

  .sidebar {
    position: fixed;
    left: 0;
    top: var(--topbar);
    bottom: 0;
    width: min(88vw, 330px);
    transform: translateX(-105%);
    transition: transform .2s ease;
    box-shadow: 8px 0 30px rgba(0,0,0,.16);
  }

  .sidebar.open { transform: translateX(0); }
  .map-area { height: calc(100dvh - var(--topbar)); }

  .login-card { padding: 24px; }
}
.refresh-map-button {
    position: absolute;
    right: 20px;
    bottom: 55px;

    width: 46px;
    height: 46px;

    border: none;
    border-radius: 50%;
    background: #2563eb;
    color: white;

    font-size: 13px;
    font-weight: 700;
    cursor: pointer;

    display: flex;
    align-items: center;
    justify-content: center;

    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
    z-index: 9999;
    visibility: visible;
    opacity: 1;

    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.refresh-map-button:hover {
    transform: scale(1.08);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.24);
}

.refresh-map-button:active {
    transform: scale(0.94);
}
.color-panel {
    margin-top: 10px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    overflow: hidden;
    background: #ffffff;
}

.color-panel-toggle {
    width: 100%;
    border: none;
    background: #f8fafc;
    color: #1f2937;

    padding: 10px 12px;

    font-size: 13px;
    font-weight: 700;
    text-align: left;

    cursor: pointer;
}

.color-panel-toggle:hover {
    background: #f1f5f9;
}

.color-panel-content {
    padding: 10px 12px;
}

.color-panel-content label {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;
    margin-bottom: 10px;

    font-size: 13px;
}

.color-panel-content input[type="color"] {
    width: 34px;
    height: 26px;

    border: none;
    padding: 0;
    background: transparent;
    cursor: pointer;
}

#resetMapColors {
    width: 100%;
    margin-top: 4px;

    border: 1px solid #d1d5db;
    border-radius: 7px;

    padding: 7px 8px;

    background: #ffffff;
    cursor: pointer;

    font-size: 12px;
}

#resetMapColors:hover {
    background: #f8fafc;
}
.sidebar {
    position: relative;
    transition: width 0.25s ease, transform 0.25s ease;
}

.sidebar-toggle {
    position: absolute;

    top: 50%;
    right: -18px;

    transform: translateY(-50%);

    width: 36px;
    height: 56px;

    border: 1px solid #d1d5db;
    border-left: none;

    border-radius: 0 10px 10px 0;

    background: #ffffff;
    color: #334155;

    cursor: pointer;

    font-size: 18px;
    font-weight: 700;

    z-index: 9999;

    display: flex;
    align-items: center;
    justify-content: center;

    box-shadow: 3px 0 8px rgba(0, 0, 0, 0.12);
}

.sidebar-toggle:hover {
    background: #f1f5f9;
}
.sidebar.collapsed {
    width: 0;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
    border-right: none;
}

.sidebar.collapsed > *:not(.sidebar-toggle) {
    display: none;
}

.sidebar.collapsed .sidebar-toggle {
    right: -28px;
}
.sidebar {
    position: relative;
    overflow: visible;
    transition: width 0.25s ease, min-width 0.25s ease, padding 0.25s ease;
}

.sidebar.collapsed {
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: visible !important;
}

.sidebar.collapsed > *:not(.sidebar-toggle) {
    display: none;
}

.sidebar.collapsed .sidebar-toggle {
    display: flex !important;

    position: absolute;
    top: 50%;
    left: 0;
    right: auto;

    transform: translateY(-50%);

    z-index: 10000;
}
.users-panel {
    margin-top: 12px;
}

.users-panel-content {
    margin-top: 8px;
}

#usersList {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 10px;
}

.user-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;

    padding: 10px 12px;

    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

.user-item > div {
    display: flex;
    flex-direction: column;
    gap: 3px;

    min-width: 0;
}

.user-item strong {
    font-size: 14px;
    color: #0f172a;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-item span {
    width: fit-content;

    padding: 2px 7px;

    font-size: 10px;
    font-weight: 700;

    color: #475569;
    background: #e2e8f0;

    border-radius: 999px;
}

.delete-user-btn {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    padding: 0;

    border: 1px solid #fecaca;
    border-radius: 8px;

    background: #fff1f2;

    cursor: pointer;

    flex-shrink: 0;
}

.delete-user-btn:hover {
    background: #ffe4e6;
    border-color: #fda4af;
}

.new-user-form {
    display: grid;
    gap: 8px;

    padding: 10px;

    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

.new-user-form input,
.new-user-form select {
    width: 100%;
    box-sizing: border-box;

    padding: 9px 10px;

    border: 1px solid #cbd5e1;
    border-radius: 8px;

    background: white;
}

.new-user-form input:focus,
.new-user-form select:focus {
    outline: none;
    border-color: #2563eb;
}
/* =========================
   IMPORTAR KMZ
========================= */

#openImport {
    width: 100%;

    padding: 11px 14px;

    border: none;
    border-radius: 10px;

    background: #2563eb;
    color: white;

    font-size: 14px;
    font-weight: 700;

    cursor: pointer;

    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

#openImport:hover {
    background: #1d4ed8;

    transform: translateY(-1px);

    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.20);
}


/* =========================
   LISTA DE PROJETOS / FEIÇÕES
========================= */

#projectList {
    display: flex;
    flex-direction: column;

    gap: 8px;

    margin-top: 10px;
}


/* cada item da lista */

.project-item {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    padding: 10px 12px;

    background: #f8fafc;

    border: 1px solid #e2e8f0;
    border-radius: 10px;

    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.project-item:hover {
    background: #f1f5f9;

    border-color: #cbd5e1;

    transform: translateX(2px);
}


/* nome do projeto */

.project-item strong {
    font-size: 14px;

    color: #0f172a;

    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}


/* área dos botões */

.project-actions {
    display: flex;
    align-items: center;

    gap: 6px;

    flex-shrink: 0;
}


/* botões pequenos */

.project-actions button {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    padding: 0;

    border: 1px solid #dbeafe;
    border-radius: 8px;

    background: #eff6ff;

    cursor: pointer;

    transition: background .15s ease, transform .15s ease;
}

.project-actions button:hover {
    background: #dbeafe;

    transform: scale(1.05);
}


/* botão excluir */

.project-actions .delete-project {
    border-color: #fecaca;

    background: #fff1f2;
}

.project-actions .delete-project:hover {
    background: #ffe4e6;
}


/* =========================
   CONTADOR / INFO DE FEIÇÕES
========================= */

.project-meta {
    margin-top: 3px;

    font-size: 11px;

    color: #64748b;
}
/* =========================
   POPUPS DO MAPA
========================= */

.maplibregl-popup-content {
    min-width: 240px;
    max-width: 320px;

    padding: 14px;

    border-radius: 12px;

    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18);
}


/* título */

.popup-title {
    margin-bottom: 4px;

    font-size: 15px;
    font-weight: 800;

    color: #0f172a;
}


/* nome do projeto */

.project-meta {
    margin-bottom: 10px;

    font-size: 11px;

    color: #64748b;
}


/* descrição */

.popup-desc {
    margin-bottom: 10px;

    padding: 8px 10px;

    background: #f8fafc;

    border: 1px solid #e2e8f0;
    border-radius: 8px;

    font-size: 12px;
    line-height: 1.4;

    color: #334155;
}


/* status */

.popup-status {
    display: inline-flex;
    align-items: center;

    margin-bottom: 10px;

    padding: 4px 8px;

    border-radius: 999px;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .3px;
}


/* pendente */

.popup-status.pending {
    background: #fff7ed;
    color: #c2410c;
}


/* aprovado */

.popup-status.approved {
    background: #f0fdf4;
    color: #15803d;
}


/* original */

.popup-status.original {
    background: #eff6ff;
    color: #1d4ed8;
}


/* coordenadas */

.popup-coordinates {
    display: grid;
    gap: 4px;

    margin: 8px 0 10px;

    padding: 8px 10px;

    background: #f8fafc;

    border: 1px solid #e2e8f0;
    border-radius: 8px;

    font-size: 11px;

    color: #475569;
}

.popup-coordinates strong {
    color: #0f172a;
}


/* botões */

.maplibregl-popup-content button {
    min-height: 34px;

    padding: 8px 12px;

    border: none;
    border-radius: 8px;

    font-weight: 700;

    cursor: pointer;

    transition: transform .15s ease, opacity .15s ease;
}

.maplibregl-popup-content button:hover {
    transform: translateY(-1px);
}


/* editar */

.edit-location-btn {
    width: 100%;

    margin-top: 8px;

    background: #2563eb;
    color: white;
}


/* aprovar */

.approve-suggestion-btn {
    background: #16a34a;
    color: white;
}


/* recusar */

.reject-suggestion-btn {
    background: #dc2626;
    color: white;
}


/* remover aprovação */

.remove-approval-btn {
    width: 100%;

    background: #fff1f2;
    color: #be123c;

    border: 1px solid #fecdd3 !important;
}


/* formulário de edição */

.popup-edit-form {
    display: grid;
    gap: 8px;

    margin-top: 10px;
}

.popup-edit-form textarea {
    width: 100%;
    min-height: 70px;

    box-sizing: border-box;

    padding: 8px 10px;

    border: 1px solid #cbd5e1;
    border-radius: 8px;

    resize: vertical;
}

.popup-edit-form textarea:focus {
    outline: none;
    border-color: #2563eb;
}


/* botão X */

.maplibregl-popup-close-button {
    top: 5px;
    right: 7px;

    width: 28px;
    height: 28px;

    border-radius: 7px;

    color: #64748b;

    font-size: 18px;
}

.maplibregl-popup-close-button:hover {
    background: #f1f5f9;
}
/* =========================================================
   MOBILE - LAYOUT DO MAPA
   ========================================================= */

@media (max-width: 768px) {
.gps-used-info {
    width: 100%;
    box-sizing: border-box;

    padding: 8px 10px;

    font-size: 13px;
    font-weight: 600;
    text-align: center;

    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}    
    /* =========================================================
   MOBILE - POPUP COMO PAINEL INFERIOR
   ========================================================= */

.maplibregl-popup {
    position: absolute !important;

    top: auto !important;
    left: 12px !important;
    right: 12px !important;
    bottom: 12px !important;

    transform: none !important;

    width: auto !important;
    max-width: none !important;
}

.maplibregl-popup-tip {
    display: none;
}

.maplibregl-popup-content {
    width: 100% !important;
    max-width: none !important;

    max-height: 52dvh;

    padding: 16px !important;

    box-sizing: border-box;

    overflow-y: auto;
    overflow-x: hidden;

    border-radius: 16px !important;
}

/* Campos do popup */
.maplibregl-popup-content input,
.maplibregl-popup-content textarea,
.maplibregl-popup-content select {
    width: 100% !important;
    box-sizing: border-box;

    font-size: 16px !important;
}

/* Observação */
.suggestion-textarea {
    width: 100% !important;

    min-height: 72px !important;
    height: 72px;

    padding: 10px 12px;

    font-size: 16px;
    line-height: 1.35;

    resize: none;
}

/* Área do botão */
.suggestion-actions {
    position: sticky;
    bottom: -16px;

    margin-top: 12px;
    padding: 10px 0 4px;

    background: white;

    z-index: 5;
}

/* Salvar */
.suggestion-actions .save-location-btn {
    width: 100%;

    min-height: 48px;

    font-size: 16px;
    font-weight: 700;

    border-radius: 10px;
}

/* X de fechar */
.maplibregl-popup-close-button {
    width: 40px;
    height: 40px;

    font-size: 24px;

    z-index: 10;
}

/* Esconde o botão Att enquanto um popup estiver aberto */
.map-area:has(.maplibregl-popup) .refresh-map-button {
    display: none;
}
    /* Caixa de sugestão no celular */
.suggestion-textarea {
    display: block;
    width: 100%;
    min-height: 100px;

    margin-top: 8px;
    padding: 12px;

    box-sizing: border-box;

    font-size: 16px;
    line-height: 1.4;

    border: 1px solid #cbd5e1;
    border-radius: 10px;

    resize: vertical;
}

.suggestion-actions {
    margin-top: 12px;
}

.suggestion-actions .save-location-btn {
    width: 100%;
    min-height: 46px;

    padding: 10px 14px;

    font-size: 16px;
    font-weight: 600;

    border-radius: 10px;
}

    html,
    body {
        width: 100%;
        height: 100%;
        margin: 0;
        overflow: hidden;
    }

    #appScreen {
        height: 100dvh;
        overflow: hidden;
    }

    .topbar {
        height: var(--topbar);
        position: relative;
        z-index: 30;
    }

    .workspace {
        display: block;
        position: relative;

        width: 100%;
        height: calc(100dvh - var(--topbar));

        overflow: hidden;
    }

    .map-area {
        position: absolute;

        top: 0;
        right: 0;
        bottom: 0;
        left: 0;

        width: 100%;
        height: auto;

        min-width: 0;
        min-height: 0;
    }

    #map {
        position: absolute;

        top: 0;
        right: 0;
        bottom: 0;
        left: 0;

        width: 100% !important;
        height: 100% !important;
    }

    .sidebar {
        position: fixed;

        left: 0;
        top: var(--topbar);
        bottom: 0;

        width: min(88vw, 330px);

        transform: translateX(-105%);
        transition: transform .2s ease;

        z-index: 40;
    }

    .sidebar.open,
    .sidebar-open {
        transform: translateX(0);
    }
    /* =========================================================
   MOBILE - POPUP / SUGESTÃO DE LOCALIZAÇÃO
   ========================================================= */

.maplibregl-popup {
    max-width: calc(100vw - 24px) !important;
}

.maplibregl-popup-content {
    width: min(92vw, 360px);
    max-width: 92vw;

    padding: 16px !important;
    border-radius: 14px;

    box-sizing: border-box;
}

.maplibregl-popup-content input,
.maplibregl-popup-content textarea,
.maplibregl-popup-content select {
    width: 100%;
    box-sizing: border-box;

    font-size: 16px;

    padding: 10px 12px;
    margin-top: 6px;

    border-radius: 8px;
}

.maplibregl-popup-content textarea {
    min-height: 90px;
    resize: vertical;
}

.maplibregl-popup-content button {
    min-height: 44px;
    font-size: 15px;
}

.maplibregl-popup-content .popup-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;

    margin-top: 12px;
}

.maplibregl-popup-content .popup-actions button {
    width: 100%;
}

}
.field-form {
    width: 100%;
    max-width: 420px;
    max-height: 70vh;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 4px 8px 8px 4px;
    box-sizing: border-box;
}

.field-form-header {
    position: sticky;
    top: 0;
    background: white;
    z-index: 2;
    padding-bottom: 8px;
    margin-bottom: 10px;
}

.field-section {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
}

.field-section > strong {
    font-size: 14px;
    margin-bottom: 4px;
}

.field-section label {
    font-weight: 600;
    font-size: 13px;
    margin-top: 5px;
}

.field-section input,
.field-section select,
.field-section textarea {
    width: 100%;
    min-height: 38px;
    box-sizing: border-box;
    font-size: 14px;
}

.field-section textarea {
    min-height: 80px;
    resize: vertical;
}

.field-save-btn,
.field-use-gps-btn {
    width: 100%;
    min-height: 42px;
    margin-top: 8px;
    cursor: pointer;
}

/* ========================================================
   MODAL - DADOS DE CAMPO
   ======================================================== */

#fieldModal {
    position: fixed;
    inset: 0;
    z-index: 9999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    background: rgba(0, 0, 0, 0.45);

    box-sizing: border-box;
}

#fieldModal.hidden {
    display: none;
}

.field-modal-card {
    width: min(920px, 96vw);
    max-height: 90vh;

    display: flex;
    flex-direction: column;

    background: #ffffff;
    border-radius: 14px;

    box-shadow:
        0 18px 50px rgba(0, 0, 0, 0.25);

    overflow: hidden;
}

.field-modal-card .modal-header {
    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;

    padding: 18px 22px;

    border-bottom: 1px solid #e5e7eb;

    background: #ffffff;
}

.field-modal-card .modal-header h2 {
    margin: 0;
    font-size: 20px;
}

.field-modal-subtitle {
    margin-top: 4px;

    font-size: 13px;
    color: #6b7280;
}

#closeFieldModal {
    flex-shrink: 0;
}

.field-modal-body {
    flex: 1;
    min-height: 0;

    overflow-y: auto;
    overflow-x: hidden;

    padding: 20px 22px 24px;
}

/* O formulário não precisa mais das limitações do popup */
#fieldModal .field-form {
    width: 100%;
    max-width: none;
    max-height: none;
    overflow: visible;
    padding: 0;
}

/* Título interno já existe no cabeçalho do modal */
#fieldModal .field-form-header {
    display: none;
}

/* Seções em duas colunas no PC */
#fieldModal .field-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 24px;
}

/* Linha de versão/histórico ocupa toda a largura */
#fieldModal .field-history-top {
    grid-column: 1 / -1;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    padding: 12px 14px;

    background: #fafafa;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}

/* Texto da versão */
#fieldModal .field-current-version {
    font-size: 14px;
    font-weight: 600;
}

/* Botão de histórico */
#fieldModal .field-history-btn {
    border: 1px solid #d5dae1;
    background: white;

    border-radius: 8px;
    padding: 9px 14px;

    font-size: 14px;
    font-weight: 600;

    cursor: pointer;
}

/* Botão salvar ocupa toda a largura */
#fieldModal .field-save-btn {
    grid-column: 1 / -1;
}

#fieldModal .field-section {
    margin: 0;

    padding: 16px;

    border: 1px solid #e5e7eb;
    border-radius: 10px;

    background: #fafafa;
}

#fieldModal .field-section > strong {
    display: block;

    margin-bottom: 10px;

    font-size: 15px;
}

#fieldModal .field-section label {
    display: block;

    margin-top: 10px;
    margin-bottom: 5px;

    font-size: 13px;
    font-weight: 600;
}

#fieldModal .field-section input,
#fieldModal .field-section select,
#fieldModal .field-section textarea {
    width: 100%;
    box-sizing: border-box;

    min-height: 40px;

    padding: 8px 10px;

    border: 1px solid #cfd5dd;
    border-radius: 8px;

    background: #ffffff;

    font-size: 14px;
}

#fieldModal .field-section textarea {
    min-height: 90px;
    resize: vertical;
}

/* Botão salvar ocupando a largura toda */
#fieldModal .field-save-btn {
    grid-column: 1 / -1;

    width: 100%;
    min-height: 46px;

    margin-top: 2px;

    border: 0;
    border-radius: 9px;

    font-size: 15px;
    font-weight: 700;

    cursor: pointer;
}

#fieldModal .field-use-gps-btn {
    width: 100%;
    min-height: 42px;

    margin-top: 6px;

    border: 0;
    border-radius: 8px;

    cursor: pointer;
}

/* Enquanto a vistoria estiver aberta,
   evita rolagem da página por trás */
body.field-modal-open {
    overflow: hidden;
}


/* ========================================================
   MOBILE - DADOS DE CAMPO
   ======================================================== */

@media (max-width: 700px) {

    #fieldModal {
    align-items: stretch;
    padding: 6px;
}

    .field-modal-card {
    width: 100%;
    max-width: none;
    max-height: none;
    height: calc(100dvh - 12px);

    border-radius: 12px;
}

    .field-modal-card .modal-header {
        padding: 14px 16px;
    }

    .field-modal-card .modal-header h2 {
        font-size: 18px;
    }

    .field-modal-body {
    padding: 16px 12px 24px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

    #fieldModal .field-form {
    grid-template-columns: 1fr;
    gap: 18px;
}

    #fieldModal .field-section {
    padding: 16px;
    border-radius: 12px;
}

    #fieldModal .field-section input,
    #fieldModal .field-section select,
    #fieldModal .field-section textarea {
    width: 100%;
    min-height: 50px;
    font-size: 16px;
    padding: 12px;
    margin-top: 6px;
    margin-bottom: 14px;
    box-sizing: border-box;
}

    #fieldModal .field-save-btn {
        min-height: 50px;
        font-size: 16px;
    }
}
/* =========================================================
   HISTÓRICO DE VISTORIAS
   ========================================================= */

#fieldHistoryModal {
    z-index: 99999;
}

.field-history-modal-card {
    width: min(760px, 94vw);
    max-height: 86vh;
    overflow: hidden;

    border-radius: 18px;
}

/* Área rolável */
.field-history-body {
    overflow-y: auto;
    max-height: 68vh;

    padding: 6px 4px 6px 2px;
}

/* Cada versão */
.field-history-version {
    position: relative;

    border: 1px solid #e4e8ee;
    border-radius: 14px;

    padding: 16px;
    margin-bottom: 14px;

    background: #ffffff;
}

/* Versão atual */
.field-history-version.current {
    border: 2px solid #cfd7e3;
}

/* Cabeçalho da versão */
.field-history-version-header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 12px;
}

.field-history-version-title {
    font-size: 17px;
    font-weight: 700;
}

.field-history-version-meta {
    margin-top: 4px;

    font-size: 13px;
    color: #68707c;
}

/* Badge ATUAL */
.field-history-current-badge {
    display: inline-flex;
    align-items: center;

    padding: 5px 9px;

    border-radius: 999px;

    font-size: 11px;
    font-weight: 700;

    background: #eef2f7;
}

/* Conteúdo */
.field-history-changes {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 8px 14px;
}

/* Cada informação */
.field-history-change {
    padding: 9px 10px;

    border: 1px solid #eef1f4;
    border-radius: 9px;

    background: #fafbfc;

    font-size: 13px;
    line-height: 1.4;

    min-width: 0;
    overflow-wrap: anywhere;
}

.field-history-change strong {
    display: block;

    margin-bottom: 2px;

    font-size: 12px;
    color: #59616d;
}

/* Sem histórico */
.field-history-empty {
    text-align: center;

    padding: 30px 16px;

    font-size: 14px;
    color: #737b86;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .field-history-modal-card {
        width: 96vw;
        max-height: 90vh;

        border-radius: 16px;
    }

    .field-history-body {
        max-height: 72vh;

        padding-right: 2px;
    }

    .field-history-version {
        padding: 14px;

        margin-bottom: 12px;
    }

    .field-history-version-header {
        align-items: flex-start;
    }

    .field-history-version-title {
        font-size: 16px;
    }

    .field-history-version-meta {
        font-size: 12px;
    }

    .field-history-changes {
        grid-template-columns: 1fr;

        gap: 7px;
    }

    .field-history-change {
        padding: 10px;

        font-size: 14px;
    }

    .field-history-current-badge {
        flex-shrink: 0;
    }
}
/* Histórico sempre acima do modal de Dados de Campo */
#fieldHistoryModal {
    position: fixed;
    inset: 0;
    z-index: 200000;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 20px;

    background: rgba(0, 0, 0, 0.42);
}

#fieldHistoryModal.hidden {
    display: none;
}

#fieldHistoryModal .field-history-modal-card {
    position: relative;

    width: min(760px, 94vw);
    max-height: 88vh;

    background: #ffffff;
    border-radius: 18px;

    overflow: hidden;
}

/* Mobile */
@media (max-width: 700px) {

    #fieldHistoryModal {
        padding: 8px;
    }

    #fieldHistoryModal .field-history-modal-card {
        width: 100%;
        max-height: 94vh;

        border-radius: 16px;
    }
}
/* =========================================================
   COMPARAÇÃO ENTRE VERSÕES
   ========================================================= */

.field-history-change-count {
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 700;
}

.field-history-diff {
    padding: 10px 12px;
    border: 1px solid #e8ecf1;
    border-radius: 10px;
    background: #fafbfc;
}

.field-history-diff-name {
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 700;
    color: #59616d;
}

.field-history-diff-values {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.field-history-old-value,
.field-history-new-value {
    padding: 5px 8px;
    border-radius: 7px;
    font-size: 13px;
    font-weight: 600;
}

.field-history-old-value {
    background: #f3f4f6;
    text-decoration: line-through;
}

.field-history-new-value {
    background: #eef6ff;
}

.field-history-arrow {
    font-weight: 700;
    opacity: 0.65;
}

.field-history-first,
.field-history-no-changes {
    grid-column: 1 / -1;

    padding: 14px;

    border: 1px solid #e8ecf1;
    border-radius: 10px;

    background: #fafbfc;

    font-size: 13px;
    line-height: 1.5;
}

/* Mobile */
@media (max-width: 700px) {

    .field-history-diff-values {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
    }

    .field-history-old-value,
    .field-history-new-value {
        width: 100%;
        text-align: center;
        overflow-wrap: anywhere;
    }

    .field-history-arrow {
        text-align: center;
    }
}
/* =========================================================
   AJUSTE VISUAL - HISTÓRICO DE VISTORIAS
   ========================================================= */

#fieldHistoryModal .field-history-modal-card {
    width: min(820px, 94vw);
    max-height: 90vh;

    border-radius: 18px;

    background: #ffffff;

    overflow: hidden;
}

/* Cabeçalho */
#fieldHistoryModal .field-modal-title {
    font-size: 20px;
    font-weight: 700;

    padding-right: 48px;

    margin-bottom: 4px;
}

#fieldHistoryModal .field-modal-subtitle {
    font-size: 13px;

    color: #6b7280;

    margin-bottom: 14px;
}

/* Área de filtros */
.field-history-filters {
    display: grid;

    grid-template-columns:
    minmax(120px, 0.8fr)
    minmax(170px, 1fr)
    minmax(160px, 1fr)
    auto;

    grid-template-columns:
    minmax(120px, 0.8fr)
    minmax(170px, 1fr)
    minmax(160px, 1fr)
    auto;

    gap: 12px;

    align-items: end;

    padding: 14px;

    margin-bottom: 14px;

    border: 1px solid #e5e7eb;
    border-radius: 12px;

    background: #fafafa;
}

.field-history-filter {
    display: flex;
    flex-direction: column;

    gap: 6px;
}

.field-history-filter label {
    font-size: 12px;
    font-weight: 700;

    color: #4b5563;
}

.field-history-filter input {
    width: 100%;

    min-height: 42px;

    padding: 9px 11px;

    border: 1px solid #d7dce3;
    border-radius: 9px;

    background: #ffffff;

    font-size: 14px;

    box-sizing: border-box;
}

.field-history-filter input:focus {
    outline: 2px solid rgba(59, 130, 246, 0.18);
    border-color: #9db7dd;
}

/* Limpar filtros */
.field-history-clear-filter {
    min-height: 42px;

    padding: 9px 14px;

    border: 1px solid #d7dce3;
    border-radius: 9px;

    background: #ffffff;

    font-size: 13px;
    font-weight: 700;

    cursor: pointer;
}

.field-history-clear-filter:hover {
    background: #f3f4f6;
}

/* Área rolável */
.field-history-body {
    overflow-y: auto;

    max-height: 66vh;

    padding-right: 4px;
}

/* Cards das versões */
.field-history-version {
    border: 1px solid #e1e6ec;

    border-radius: 14px;

    padding: 16px;

    margin-bottom: 14px;

    background: #ffffff;
}

.field-history-version.current {
    border: 2px solid #c9d5e5;
}

.field-history-version-header {
    margin-bottom: 12px;
}

/* Total de alterações */
.field-history-change-count {
    display: inline-flex;

    align-items: center;

    padding: 5px 9px;

    margin-bottom: 12px;

    border-radius: 999px;

    background: #f3f4f6;

    font-size: 12px;
    font-weight: 700;
}

/* Diff */
.field-history-diff {
    background: #fbfcfd;
}

/* Scrollbar discreta */
.field-history-body::-webkit-scrollbar {
    width: 8px;
}

.field-history-body::-webkit-scrollbar-thumb {
    background: #c9ced6;

    border-radius: 999px;
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    #fieldHistoryModal {
        padding: 6px;
    }

    #fieldHistoryModal .field-history-modal-card {
        width: 100%;

        max-height: 96vh;

        border-radius: 15px;
    }

    #fieldHistoryModal .field-modal-title {
        font-size: 18px;
    }

    .field-history-filters {
        grid-template-columns: 1fr;

        gap: 10px;

        padding: 12px;
    }

    .field-history-filter input,
    .field-history-clear-filter {
        min-height: 46px;

        font-size: 16px;
    }

    .field-history-clear-filter {
        width: 100%;
    }

    .field-history-body {
        max-height: 66vh;
    }

    .field-history-version {
        padding: 13px;
    }

    .field-history-changes {
        grid-template-columns: 1fr;
    }

    .field-history-diff {
        padding: 10px;
    }
}
/* =========================================================
   BOTÃO FECHAR - HISTÓRICO
   ========================================================= */

#fieldHistoryModal #closeFieldHistoryModal {
    position: absolute;

    top: 14px;
    right: 14px;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: none;
    border-radius: 10px;

    background: transparent;

    font-size: 24px;
    font-weight: 300;
    line-height: 1;

    cursor: pointer;

    transition:
        background 0.15s ease,
        transform 0.15s ease;
}

#fieldHistoryModal #closeFieldHistoryModal:hover {
    background: #f1f3f5;
}

#fieldHistoryModal #closeFieldHistoryModal:active {
    transform: scale(0.92);
}

/* Celular */
@media (max-width: 700px) {

    #fieldHistoryModal #closeFieldHistoryModal {
        top: 10px;
        right: 10px;

        width: 42px;
        height: 42px;

        font-size: 25px;
    }
}
/* =========================================================
   VER VISTORIA COMPLETA
   ========================================================= */

.field-history-full-btn {
    margin-top: 12px;

    min-height: 40px;

    padding: 9px 14px;

    border: 1px solid #d7dce3;
    border-radius: 9px;

    background: #ffffff;

    font-size: 13px;
    font-weight: 700;

    cursor: pointer;

    transition:
        background 0.15s ease,
        border-color 0.15s ease;
}

.field-history-full-btn:hover {
    background: #f5f7fa;
    border-color: #c9d0d9;
}

/* Conteúdo completo da vistoria */
.field-history-full {
    margin-top: 12px;

    padding: 14px;

    border: 1px solid #e5e9ef;
    border-radius: 12px;

    background: #fafbfc;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px 14px;
}

/* Cada campo */
.field-history-full > div {
    min-width: 0;

    padding: 9px 10px;

    border: 1px solid #eceff3;
    border-radius: 9px;

    background: #ffffff;

    font-size: 13px;
    line-height: 1.4;

    overflow-wrap: anywhere;
}

.field-history-full > div strong {
    display: block;

    margin-bottom: 3px;

    font-size: 12px;
    color: #5f6772;
}

/* GPS e observações podem ocupar mais espaço */
.field-history-full > div:nth-last-child(-n+4) {
    grid-column: 1 / -1;
}

/* MOBILE */
@media (max-width: 700px) {

    .field-history-full-btn {
        width: 100%;

        min-height: 46px;

        font-size: 15px;
    }

    .field-history-full {
        grid-template-columns: 1fr;

        padding: 12px;

        gap: 8px;
    }

    .field-history-full > div {
        padding: 10px;

        font-size: 14px;
    }

    .field-history-full > div:nth-last-child(-n+4) {
        grid-column: auto;
    }
}
/* =========================================================
   CHEVRON / EXPANSÃO DA VISTORIA COMPLETA
   ========================================================= */

.field-history-full-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.field-history-chevron {
    display: inline-block;

    font-size: 18px;
    line-height: 1;

    transition: transform 0.18s ease;
}

/* Pequena animação de entrada */
.field-history-full {
    animation: fieldHistoryOpen 0.18s ease;
}

@keyframes fieldHistoryOpen {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Mobile */
@media (max-width: 700px) {

    .field-history-full-btn {
        justify-content: space-between;
        padding-left: 14px;
        padding-right: 14px;
    }

    .field-history-chevron {
        font-size: 20px;
    }
}
/* =========================================================
   PREENCHIMENTO DA VISTORIA
   ========================================================= */

.field-history-completion {
    margin-bottom: 14px;
}

.field-history-completion-info {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin-bottom: 6px;

    font-size: 12px;
    color: #626b76;
}

.field-history-completion-info strong {
    font-size: 12px;
    color: #303740;
}

.field-history-completion-bar {
    width: 100%;
    height: 6px;

    overflow: hidden;

    border-radius: 999px;

    background: #e9edf2;
}

.field-history-completion-progress {
    height: 100%;

    border-radius: inherit;

    background: #5c82b8;

    transition: width 0.25s ease;
}

@media (max-width: 700px) {

    .field-history-completion-info {
        font-size: 12px;
    }

    .field-history-completion-bar {
        height: 7px;
    }
}
#kmzVersionsModal {
    z-index: 99999;
}

#kmzVersionsModal .field-modal-card {
    width: min(720px, 94vw);
    max-height: 88vh;
    overflow-y: auto;
}

.kmz-version-item {
    padding: 14px;
    margin-bottom: 12px;

    border: 1px solid #e2e6eb;
    border-radius: 12px;

    background: #ffffff;
}

.kmz-version-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 6px;
}

.kmz-version-header strong {
    font-size: 15px;
}

.kmz-version-header span {
    font-size: 12px;
    font-weight: 700;

    padding: 4px 8px;

    border-radius: 999px;

    background: #f1f3f5;
}

.kmz-version-meta {
    font-size: 12px;
    color: #6b7280;

    margin-bottom: 6px;
}

.kmz-version-file {
    font-size: 13px;
    font-weight: 600;

    overflow-wrap: anywhere;
}
/* =========================================================
   MODAL - ANÁLISE DE VERSÕES KMZ
   ========================================================= */

#kmzVersionsModal {
    position: fixed;
    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 18px;

    background: rgba(15, 23, 42, 0.45);

    z-index: 99999;
}

#kmzVersionsModal.hidden {
    display: none;
}

#kmzVersionsModal .field-modal-card {
    position: relative;

    width: min(760px, 94vw);
    max-height: 88vh;

    padding: 22px;

    border-radius: 18px;

    background: #ffffff;

    box-shadow:
        0 20px 50px rgba(0, 0, 0, 0.22);

    overflow: hidden;
}

#kmzVersionsModal .field-modal-title {
    font-size: 21px;
    font-weight: 700;

    margin-bottom: 4px;

    padding-right: 50px;
}

#kmzVersionsModal .field-modal-subtitle {
    font-size: 13px;
    color: #6b7280;

    margin-bottom: 18px;
}

#closeKmzVersionsModal {
    position: absolute;

    top: 14px;
    right: 14px;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: none;
    border-radius: 10px;

    background: transparent;

    font-size: 25px;
    line-height: 1;

    cursor: pointer;
}

#closeKmzVersionsModal:hover {
    background: #f1f3f5;
}

#kmzVersionsBody {
    max-height: 68vh;

    overflow-y: auto;

    padding-right: 5px;
}

.kmz-version-item {
    padding: 15px;

    margin-bottom: 12px;

    border: 1px solid #e2e7ed;
    border-radius: 13px;

    background: #ffffff;
}

.kmz-version-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 7px;
}

.kmz-version-header strong {
    font-size: 16px;
}

.kmz-version-header span {
    padding: 4px 9px;

    border-radius: 999px;

    background: #f1f3f5;

    font-size: 12px;
    font-weight: 700;
}

.kmz-version-meta {
    margin-bottom: 7px;

    font-size: 12px;
    color: #6b7280;
}

.kmz-version-file {
    padding: 8px 10px;

    border-radius: 8px;

    background: #f8fafc;

    font-size: 13px;
    font-weight: 600;

    overflow-wrap: anywhere;
}

#kmzVersionsBody::-webkit-scrollbar {
    width: 8px;
}

#kmzVersionsBody::-webkit-scrollbar-thumb {
    background: #c9ced6;
    border-radius: 999px;
}

@media (max-width: 700px) {

    #kmzVersionsModal {
        padding: 7px;
    }

    #kmzVersionsModal .field-modal-card {
        width: 100%;
        max-height: 96vh;

        padding: 18px 14px;

        border-radius: 15px;
    }

    #kmzVersionsModal .field-modal-title {
        font-size: 19px;
    }

    #kmzVersionsBody {
        max-height: 76vh;
    }

    .kmz-version-item {
        padding: 13px;
    }
}
/* =========================================================
   MODAL - COMPARAÇÃO KMZ
========================================================= */

#kmzCompareModal {
    position: fixed;
    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    background: rgba(15, 23, 42, 0.48);

    z-index: 20001;

    padding: 20px;
}

#kmzCompareModal .field-modal-card {
    position: relative;
    z-index: 20001;
}

#kmzCompareModal.hidden {
    display: none;
}

#kmzCompareModal .field-modal-card {
    width: min(760px, 95vw);

    max-height: 85vh;

    overflow: hidden;

    display: flex;
    flex-direction: column;

    background: #ffffff;

    border-radius: 18px;

    padding: 22px;

    box-sizing: border-box;

    position: relative;
}

#kmzCompareBody {
    margin-top: 18px;

    overflow-y: auto;

    padding-right: 6px;

    min-height: 0;
}


/* =========================================================
   RESUMO
========================================================= */

.kmz-compare-summary {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 10px;

    margin-bottom: 22px;
}

.kmz-compare-stat {
    border: 1px solid #e5e7eb;

    border-radius: 12px;

    padding: 12px;

    text-align: center;

    background: #f8fafc;
}

.kmz-compare-stat strong {
    display: block;

    font-size: 22px;

    margin-bottom: 4px;
}

.kmz-compare-stat span {
    font-size: 12px;

    color: #64748b;
}


/* =========================================================
   ALTERAÇÕES
========================================================= */

.kmz-compare-section-title {
    font-weight: 700;

    font-size: 15px;

    margin-bottom: 10px;
}

.kmz-compare-change {
    border: 1px solid #e5e7eb;

    border-radius: 14px;

    padding: 16px;

    margin-bottom: 14px;

    background: #ffffff;
}

.kmz-compare-point-name {
    font-weight: 700;

    margin-bottom: 14px;
}

.kmz-compare-coordinates {
    display: grid;

    grid-template-columns: 1fr auto 1fr;

    align-items: center;

    gap: 14px;
}

.kmz-compare-coordinate-box {
    background: #f8fafc;

    border-radius: 10px;

    padding: 12px;

    line-height: 1.6;
}

.kmz-compare-label {
    font-size: 12px;

    font-weight: 700;

    color: #64748b;

    margin-bottom: 6px;
}

.kmz-compare-arrow {
    font-size: 24px;

    font-weight: 700;
}

.kmz-compare-empty {
    padding: 18px;

    text-align: center;

    color: #64748b;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

    .kmz-compare-summary {
        grid-template-columns: repeat(2, 1fr);
    }

    .kmz-compare-coordinates {
        grid-template-columns: 1fr;
    }

    .kmz-compare-arrow {
        transform: rotate(90deg);

        text-align: center;
    }
}
/* =========================================================
   COMPARAÇÃO KMZ - VISUAL CLEAN
========================================================= */

#kmzCompareModal {
    position: fixed !important;
    inset: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 24px !important;

    background: rgba(15, 23, 42, 0.58) !important;
    backdrop-filter: blur(5px);

    z-index: 999999 !important;
}

#kmzCompareModal.hidden {
    display: none !important;
}

#kmzCompareModal .field-modal-card {
    position: relative !important;

    width: min(820px, 94vw) !important;
    max-height: 88vh !important;

    padding: 26px !important;

    overflow: hidden !important;

    background: #ffffff !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 20px !important;

    box-shadow:
        0 30px 80px rgba(15, 23, 42, .30) !important;
}


/* tira aquela barra esquisita do X */

#closeKmzCompareModal {
    position: absolute !important;

    top: 18px !important;
    right: 18px !important;

    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;

    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border: none !important;
    border-radius: 10px !important;

    background: transparent !important;

    font-size: 23px !important;
    color: #64748b !important;

    cursor: pointer;
}

#closeKmzCompareModal:hover {
    background: #f1f5f9 !important;
    color: #0f172a !important;
}


/* título */

#kmzCompareModal .field-modal-title {
    margin: 0 !important;

    padding-right: 55px !important;

    font-size: 23px !important;
    font-weight: 800 !important;

    color: #0f172a !important;
}

#kmzCompareModal .field-modal-subtitle {
    margin-top: 4px !important;
    margin-bottom: 22px !important;

    font-size: 13px !important;

    color: #64748b !important;
}


/* corpo */

#kmzCompareBody {
    overflow-y: auto !important;
    overflow-x: hidden !important;

    max-height: 70vh !important;

    padding-right: 5px !important;
}


/* cards de números */

.kmz-compare-summary {
    display: grid !important;

    grid-template-columns: repeat(4, 1fr) !important;

    gap: 12px !important;

    margin-bottom: 26px !important;
}

.kmz-compare-stat {
    padding: 18px 12px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 15px !important;

    background: #f8fafc !important;

    text-align: center !important;

    transition: .15s ease;
}

.kmz-compare-stat:hover {
    transform: translateY(-2px);

    box-shadow:
        0 7px 18px rgba(15, 23, 42, .08);
}

.kmz-compare-stat strong {
    display: block !important;

    margin-bottom: 6px !important;

    font-size: 27px !important;
    font-weight: 800 !important;

    color: #0f172a !important;
}

.kmz-compare-stat span {
    font-size: 12px !important;
    font-weight: 650 !important;

    color: #64748b !important;
}


/* cores dos quatro cards */

.kmz-compare-stat:nth-child(1) {
    background: #fffaf0 !important;
    border-color: #fde6b5 !important;
}

.kmz-compare-stat:nth-child(1) strong {
    color: #c56a0a !important;
}

.kmz-compare-stat:nth-child(2) {
    background: #f0fdf4 !important;
    border-color: #ccebd6 !important;
}

.kmz-compare-stat:nth-child(2) strong {
    color: #15803d !important;
}

.kmz-compare-stat:nth-child(3) {
    background: #fff5f5 !important;
    border-color: #fecaca !important;
}

.kmz-compare-stat:nth-child(3) strong {
    color: #b91c1c !important;
}

.kmz-compare-stat:nth-child(4) {
    background: #eff6ff !important;
    border-color: #dbeafe !important;
}

.kmz-compare-stat:nth-child(4) strong {
    color: #2563eb !important;
}


/* nenhum ponto */

.kmz-compare-empty {
    padding: 34px !important;

    border: 1px dashed #cbd5e1 !important;
    border-radius: 14px !important;

    background: #f8fafc !important;

    text-align: center !important;

    color: #64748b !important;
}


/* pontos alterados */

.kmz-compare-section-title {
    margin-bottom: 12px !important;

    font-size: 16px !important;
    font-weight: 800 !important;

    color: #0f172a !important;
}

.kmz-compare-change {
    padding: 18px !important;

    margin-bottom: 12px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 15px !important;

    background: #ffffff !important;
}

.kmz-compare-point-name {
    margin-bottom: 14px !important;

    font-size: 16px !important;
    font-weight: 800 !important;
}


/* antes e depois */

.kmz-compare-coordinates {
    display: grid !important;

    grid-template-columns: 1fr 45px 1fr !important;

    gap: 12px !important;

    align-items: center !important;
}

.kmz-compare-coordinate-box {
    padding: 14px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;

    background: #f8fafc !important;

    line-height: 1.7 !important;
}

.kmz-compare-coordinate-box:last-child {
    background: #f0fdf4 !important;
    border-color: #ccebd6 !important;
}

.kmz-compare-label {
    margin-bottom: 6px !important;

    font-size: 11px !important;
    font-weight: 800 !important;

    color: #64748b !important;
}

.kmz-compare-arrow {
    width: 38px !important;
    height: 38px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border: 1px solid #dbe3ec !important;
    border-radius: 50% !important;

    background: white !important;

    color: #2563eb !important;

    font-size: 20px !important;
}
/* =========================================================
   KMZ ENVIADOS
========================================================= */

#kmzVersionsModal {
    position: fixed !important;
    inset: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 22px !important;

    background: rgba(15, 23, 42, .56) !important;
    backdrop-filter: blur(4px);

    z-index: 99999 !important;
}

#kmzVersionsModal.hidden {
    display: none !important;
}

#kmzVersionsModal .field-modal-card {
    position: relative !important;

    width: min(700px, 94vw) !important;
    max-height: 88vh !important;

    padding: 24px !important;

    background: white !important;

    border-radius: 20px !important;

    border: 1px solid #e2e8f0 !important;

    box-shadow:
        0 28px 70px rgba(15, 23, 42, .28) !important;
}


/* X */

#closeKmzVersionsModal {
    position: absolute !important;

    top: 16px !important;
    right: 16px !important;

    width: 38px !important;
    height: 38px !important;

    padding: 0 !important;

    border: 0 !important;
    border-radius: 10px !important;

    background: transparent !important;

    font-size: 23px !important;

    color: #64748b !important;
}

#closeKmzVersionsModal:hover {
    background: #f1f5f9 !important;
}


/* lista */

#kmzVersionsBody {
    max-height: 67vh !important;

    overflow-y: auto !important;

    padding-right: 6px !important;
}


/* cards */

.kmz-version-item {
    padding: 16px !important;

    margin-bottom: 12px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 15px !important;

    background: #ffffff !important;

    box-shadow:
        0 3px 10px rgba(15, 23, 42, .03);

    transition: .15s ease;
}

.kmz-version-item:hover {
    border-color: #cbd5e1 !important;

    box-shadow:
        0 8px 20px rgba(15, 23, 42, .06);
}


/* arquivo */

.kmz-version-file {
    margin-top: 10px !important;

    padding: 9px 11px !important;

    border-radius: 9px !important;

    background: #f8fafc !important;

    color: #475569 !important;

    font-size: 12px !important;
}


/* botões */

.kmz-version-actions {
    display: flex !important;

    gap: 8px !important;

    margin-top: 10px !important;
}

.kmz-version-actions button {
    min-height: 36px !important;

    padding: 7px 12px !important;

    border-radius: 9px !important;

    font-size: 12px !important;
    font-weight: 700 !important;

    cursor: pointer !important;

    transition: .15s ease !important;
}


/* visualizar */

.kmz-version-compare {
    border: 1px solid #bfdbfe !important;

    background: #eff6ff !important;

    color: #1d4ed8 !important;
}

.kmz-version-compare:hover {
    background: #dbeafe !important;
}


/* aprovar */

.kmz-version-approve {
    border: 1px solid #bbf7d0 !important;

    background: #f0fdf4 !important;

    color: #15803d !important;
}

.kmz-version-approve:hover {
    background: #dcfce7 !important;
}


/* recusar */

.kmz-version-reject {
    border: 1px solid #fecaca !important;

    background: #fff1f2 !important;

    color: #be123c !important;
}

.kmz-version-reject:hover {
    background: #ffe4e6 !important;
}


/* status final */

.kmz-version-result {
    display: inline-flex !important;

    margin-top: 10px !important;

    padding: 5px 9px !important;

    border-radius: 999px !important;

    background: #f1f5f9 !important;

    color: #475569 !important;

    font-size: 11px !important;
    font-weight: 800 !important;
}
/* =========================================================
   SIDEBAR RECOLHIDA - BOTÃO LIMPO
========================================================= */

.sidebar-toggle {
    position: absolute !important;

    top: 50% !important;
    right: -16px !important;

    transform: translateY(-50%) !important;

    width: 32px !important;
    height: 44px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 0 !important;

    border: 1px solid #dbe3ec !important;
    border-left: none !important;

    border-radius: 0 10px 10px 0 !important;

    background: rgba(255, 255, 255, 0.96) !important;

    color: #475569 !important;

    font-size: 18px !important;
    font-weight: 800 !important;

    box-shadow:
        3px 0 10px rgba(15, 23, 42, .10) !important;

    z-index: 10000 !important;

    cursor: pointer !important;
}


/* quando a sidebar estiver fechada */

.sidebar.collapsed .sidebar-toggle {
    position: fixed !important;

    left: 0 !important;
    right: auto !important;

    top: 50% !important;

    width: 28px !important;
    height: 46px !important;

    border: 1px solid #dbe3ec !important;
    border-left: none !important;

    border-radius: 0 10px 10px 0 !important;

    background: rgba(255, 255, 255, .92) !important;

    backdrop-filter: blur(6px);

    box-shadow:
        3px 0 10px rgba(15, 23, 42, .10) !important;
}


/* remove qualquer fundo/retângulo sobrando da sidebar fechada */

.sidebar.collapsed {
    width: 0 !important;
    min-width: 0 !important;

    padding: 0 !important;

    border: none !important;

    background: transparent !important;

    box-shadow: none !important;
}


/* esconde todo o conteúdo menos a setinha */

.sidebar.collapsed > *:not(.sidebar-toggle) {
    display: none !important;
}
/* =========================================================
   BOTÕES PRINCIPAIS - PROJETOS
========================================================= */

#openImport,
#generateKmzVersion,
#openKmzVersions {
    width: 100% !important;
    min-height: 46px !important;

    margin: 0 0 9px 0 !important;
    padding: 0 16px !important;

    border: 1px solid transparent !important;
    border-radius: 12px !important;

    font-size: 14px !important;
    font-weight: 700 !important;

    cursor: pointer !important;

    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease !important;
}


/* IMPORTAR - ação principal */

#openImport {
    background: #3f63ea !important;
    color: #ffffff !important;

    box-shadow:
        0 4px 12px rgba(63, 99, 234, 0.20) !important;
}

#openImport:hover {
    background: #3456d8 !important;

    transform: translateY(-2px);

    box-shadow:
        0 7px 16px rgba(63, 99, 234, 0.28) !important;
}


/* GERAR / ENVIAR */

#generateKmzVersion {
    background: #ffffff !important;

    color: #245f99 !important;

    border-color: #cddbea !important;

    box-shadow:
        0 2px 6px rgba(15, 23, 42, 0.05) !important;
}

#generateKmzVersion:hover {
    background: #f2f7fc !important;

    border-color: #9fc0df !important;

    transform: translateY(-2px);

    box-shadow:
        0 6px 14px rgba(15, 23, 42, 0.08) !important;
}


/* ANALISAR */

#openKmzVersions {
    background: #ffffff !important;

    color: #245f99 !important;

    border-color: #cddbea !important;

    box-shadow:
        0 2px 6px rgba(15, 23, 42, 0.05) !important;
}

#openKmzVersions:hover {
    background: #f2f7fc !important;

    border-color: #9fc0df !important;

    transform: translateY(-2px);

    box-shadow:
        0 6px 14px rgba(15, 23, 42, 0.08) !important;
}


/* Efeito ao clicar */

#openImport:active,
#generateKmzVersion:active,
#openKmzVersions:active {
    transform: translateY(0) scale(0.98) !important;
}


/* Espaço abaixo do conjunto */

#openKmzVersions {
    margin-bottom: 16px !important;
}
/* =========================================================
   FOTOS DE CAMPO
   ========================================================= */

.field-photos-section {
    width: 100%;
}

.field-photos-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.field-photos-help {
    margin-top: 4px;
    font-size: 13px;
    color: #64748b;
}

.field-photo-add-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 9px 14px;
    border-radius: 8px;

    background: #2563eb;
    color: white;

    font-size: 13px;
    font-weight: 600;
    cursor: pointer;

    white-space: nowrap;
}

.field-photo-add-btn:hover {
    filter: brightness(0.95);
}

.field-photos-preview {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 12px;

    width: 100%;
}

.field-photo-preview-item {
    position: relative;
    min-width: 0;

    border: 1px solid #e2e8f0;
    border-radius: 10px;
    overflow: hidden;

    background: #f8fafc;
}

.field-photo-preview-item img {
    display: block;

    width: 100%;
    height: 110px;

    object-fit: cover;
}

.field-photo-preview-name {
    padding: 7px 9px;

    font-size: 11px;
    color: #475569;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.field-photos-empty {
    grid-column: 1 / -1;

    padding: 18px;
    border: 1px dashed #cbd5e1;
    border-radius: 10px;

    text-align: center;
    font-size: 13px;
    color: #64748b;
}


/* CELULAR */

@media (max-width: 600px) {

    .field-photos-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .field-photo-add-btn {
        width: 100%;
    }

    .field-photos-preview {
        grid-template-columns: repeat(2, 1fr);
    }

    .field-photo-preview-item img {
        height: 120px;
    }
}
.field-photo-image-wrapper {
    position: relative;
}

.field-photo-remove {
    position: absolute;

    top: 6px;
    right: 6px;

    width: 25px;
    height: 25px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: none;
    border-radius: 50%;

    background: rgba(15, 23, 42, 0.85);
    color: white;

    font-size: 18px;
    line-height: 1;

    cursor: pointer;

    box-shadow: 0 2px 6px rgba(0,0,0,0.25);
}

.field-photo-remove:hover {
    background: #dc2626;
    transform: scale(1.08);
}
/* =========================================================
   GALERIA - HISTÓRICO DE VISTORIAS
========================================================= */

.field-history-photos {
    grid-column: 1 / -1;
    margin-top: 14px;
}

.field-history-photos-title {
    margin-bottom: 10px;

    font-size: 13px;
    font-weight: 800;

    color: #334155;
}

.field-history-photos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));

    gap: 12px;
}

.field-history-photo-item {
    overflow: hidden;

    border: 1px solid #e2e8f0;
    border-radius: 11px;

    background: #ffffff;

    box-shadow:
        0 3px 10px rgba(15, 23, 42, .05);
}

.field-history-photo-img {
    display: block;

    width: 100%;
    height: 110px;

    object-fit: cover;

    cursor: pointer;

    transition: transform .18s ease;
}

.field-history-photo-img:hover {
    transform: scale(1.04);
}

.field-history-photo-meta {
    padding: 7px 9px;
}

.field-history-photo-meta span {
    display: block;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    font-size: 11px;
    font-weight: 700;

    color: #334155;
}

.field-history-photo-meta small {
    display: block;

    margin-top: 3px;

    font-size: 10px;

    color: #94a3b8;
}


/* =========================================================
   FOTO AMPLIADA
========================================================= */

.field-photo-lightbox {
    position: fixed;
    inset: 0;

    z-index: 9999999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    background: rgba(15, 23, 42, .82);

    backdrop-filter: blur(5px);
}

.field-photo-lightbox-card {
    position: relative;

    max-width: 92vw;
    max-height: 90vh;

    padding: 14px;

    border-radius: 16px;

    background: #ffffff;

    box-shadow:
        0 30px 80px rgba(0,0,0,.4);
}

.field-photo-lightbox-card img {
    display: block;

    max-width: 86vw;
    max-height: 78vh;

    object-fit: contain;

    border-radius: 10px;
}

.field-photo-lightbox-close {
    position: absolute;

    top: 10px;
    right: 10px;

    width: 36px;
    height: 36px;

    border: none;
    border-radius: 50%;

    background: rgba(15, 23, 42, .82);
    color: white;

    font-size: 22px;

    cursor: pointer;
}

.field-photo-lightbox-name {
    margin-top: 10px;

    font-size: 12px;
    font-weight: 700;

    color: #475569;

    text-align: center;
}
/* =========================================================
   INFORMAÇÕES DAS FOTOS NO HISTÓRICO
========================================================= */

.field-history-photo-name {
    display: block;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    font-size: 11px;
    font-weight: 700;

    color: #334155;
}

.field-history-photo-info {
    display: flex;
    flex-direction: column;

    gap: 3px;

    margin-top: 6px;

    font-size: 10px;

    color: #64748b;
}

.field-history-photo-info span {
    display: block;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* =========================================================
   DARK MODE — INTERFACE WEB GIS
   ========================================================= */

html[data-theme="dark"] {
    --bg: #0b1220;
    --panel: #111827;
    --line: #2b3a4f;
    --text: #f1f5f9;
    --muted: #94a3b8;
    --brand: #4f6bed;
    --brand-dark: #3d57d9;
    --shadow: 0 12px 32px rgba(0, 0, 0, .28);
}


/* Barra superior */
html[data-theme="dark"] .topbar {
    background: #111c2b;
    color: #f8fafc;
    border-bottom: 1px solid #26364a;
}


/* Sidebar */
html[data-theme="dark"] .sidebar {
    background: #111827;
    border-right-color: #26364a;
}


/* Cards dos projetos */
html[data-theme="dark"] .project-card {
    background: #1a2535;
    border-color: #304158;
    color: #f1f5f9;
    box-shadow: 0 3px 10px rgba(0, 0, 0, .12);
}

html[data-theme="dark"] .project-card:hover {
    background: #202d40;
    border-color: #405572;
}


/* Informações secundárias */
html[data-theme="dark"] .project-meta {
    color: #94a3b8;
}


/* Card de dica */
html[data-theme="dark"] .sidebar-note {
    background: #172235;
    border: 1px solid #2b3a4f;
    color: #94a3b8;
}


/* Inputs */
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
    background: #111827;
    border-color: #334155;
    color: #f1f5f9;
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus {
    border-color: #4f6bed;
    box-shadow: 0 0 0 3px rgba(79, 107, 237, .15);
}


/* Botão de tema */
html[data-theme="dark"] .theme-toggle {
    background: #1a2535;
    border-color: #334155;
    color: #f8fafc;
}

html[data-theme="dark"] .theme-toggle:hover {
    background: #243249;
}


/* Botões claros/secundários */
html[data-theme="dark"] .ghost-button {
    background: #1a2535;
    border-color: #334155;
    color: #e2e8f0;
}

html[data-theme="dark"] .ghost-button:hover {
    background: #243249;
}


/* Scrollbar da sidebar */
html[data-theme="dark"] .sidebar {
    scrollbar-color: #334155 #111827;
}

html[data-theme="dark"] .sidebar::-webkit-scrollbar {
    width: 8px;
}

html[data-theme="dark"] .sidebar::-webkit-scrollbar-track {
    background: #111827;
}

html[data-theme="dark"] .sidebar::-webkit-scrollbar-thumb {
    background: #334155;
    border-radius: 10px;
}
/* =========================================================
   WEBGIS VANTE - DARK MODE ÚNICO
   ========================================================= */

html[data-theme="dark"] {
    color-scheme: dark;

    --bg: #0b1220;
    --panel: #111827;
    --panel-2: #172033;
    --panel-3: #1c293a;

    --line: #2f4158;
    --line-soft: #26364a;

    --text: #f1f5f9;
    --text-soft: #d1d9e6;
    --muted: #94a3b8;

    --input: #0f172a;

    --brand: #5368ee;
    --brand-hover: #4357db;

    --danger: #ef4444;

    --shadow: 0 10px 30px rgba(0, 0, 0, .30);
}


/* =========================================================
   PÁGINA / ESTRUTURA
   ========================================================= */

html[data-theme="dark"] body {
    background: var(--bg);
    color: var(--text);
}

html[data-theme="dark"] .app-screen,
html[data-theme="dark"] .app-shell {
    background: var(--bg);
    color: var(--text);
}


/* =========================================================
   TOPBAR
   ========================================================= */

html[data-theme="dark"] .topbar {
    background: #101a29 !important;
    color: var(--text) !important;
    border-bottom: 1px solid var(--line-soft) !important;
}

html[data-theme="dark"] .topbar *,
html[data-theme="dark"] #userLabel {
    color: var(--text);
}


/* =========================================================
   SIDEBAR
   ========================================================= */

html[data-theme="dark"] .sidebar {
    background: var(--panel) !important;
    color: var(--text) !important;
    border-right: 1px solid var(--line-soft) !important;
}

html[data-theme="dark"] .sidebar h1,
html[data-theme="dark"] .sidebar h2,
html[data-theme="dark"] .sidebar h3,
html[data-theme="dark"] .sidebar strong,
html[data-theme="dark"] .sidebar label {
    color: var(--text) !important;
}

html[data-theme="dark"] .sidebar small,
html[data-theme="dark"] .sidebar p {
    color: var(--muted);
}


/* =========================================================
   PROJETOS
   ========================================================= */

html[data-theme="dark"] .project-card,
html[data-theme="dark"] .project-item {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border: 1px solid var(--line) !important;
    box-shadow: none !important;
}

html[data-theme="dark"] .project-card:hover,
html[data-theme="dark"] .project-item:hover {
    background: var(--panel-3) !important;
}

html[data-theme="dark"] .project-meta {
    color: var(--muted) !important;
}


/* =========================================================
   BOTÕES
   ========================================================= */

html[data-theme="dark"] button {
    color: var(--text);
}

html[data-theme="dark"] .ghost-button,
html[data-theme="dark"] .secondary-button {
    background: var(--panel-2) !important;
    color: var(--text) !important;
    border: 1px solid var(--line) !important;
}

html[data-theme="dark"] .ghost-button:hover,
html[data-theme="dark"] .secondary-button:hover {
    background: var(--panel-3) !important;
}


/* botão analisar KMZ e outros claros da sidebar */

html[data-theme="dark"] .sidebar button:not(.primary-button):not(.danger-button) {
    background: var(--panel-2);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] .sidebar button:not(.primary-button):not(.danger-button):hover {
    background: var(--panel-3);
}


/* =========================================================
   BOTÃO LIGHT / DARK
   ========================================================= */

html[data-theme="dark"] .theme-toggle {
    background: var(--panel-2) !important;
    color: var(--text) !important;
    border: 1px solid var(--line) !important;

    box-shadow: none !important;
}

html[data-theme="dark"] .theme-toggle:hover {
    background: var(--panel-3) !important;
}


/* =========================================================
   INPUTS / SELECT / TEXTAREA
   ========================================================= */

html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
    background: var(--input) !important;
    color: var(--text) !important;

    border: 1px solid #475569 !important;

    box-shadow: none !important;
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder {
    color: #78879c !important;
}

html[data-theme="dark"] select option {
    background: var(--input);
    color: var(--text);
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus {
    border-color: var(--brand) !important;
    outline: none !important;

    box-shadow:
        0 0 0 3px rgba(83, 104, 238, .17) !important;
}


/* =========================================================
   DETAILS / CORES / USUÁRIOS
   ========================================================= */

html[data-theme="dark"] details {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border: 1px solid var(--line) !important;
}

html[data-theme="dark"] details summary {
    background: var(--panel-2) !important;
    color: var(--text) !important;
}

html[data-theme="dark"] details[open] summary {
    border-bottom: 1px solid var(--line-soft);
}


/* =========================================================
   LISTA DE USUÁRIOS
   ========================================================= */

html[data-theme="dark"] #usersList,
html[data-theme="dark"] .users-list {
    background: transparent !important;
}

html[data-theme="dark"] #usersList > *,
html[data-theme="dark"] .users-list > *,
html[data-theme="dark"] .user-card,
html[data-theme="dark"] .user-item {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border: 1px solid var(--line) !important;
    box-shadow: none !important;
}

html[data-theme="dark"] #usersList strong,
html[data-theme="dark"] #usersList span,
html[data-theme="dark"] #usersList div,
html[data-theme="dark"] .user-card strong,
html[data-theme="dark"] .user-card span {
    color: var(--text-soft);
}


/* badges de perfil */

html[data-theme="dark"] .role-badge,
html[data-theme="dark"] .user-role {
    background: #253653 !important;
    color: #bfdbfe !important;
}


/* =========================================================
   DICA
   ========================================================= */

html[data-theme="dark"] .sidebar-note {
    background: var(--panel-2) !important;
    color: var(--text-soft) !important;

    border: 1px solid var(--line) !important;
}


/* =========================================================
   MODAIS - BASE
   ========================================================= */

html[data-theme="dark"] .modal {
    color: var(--text);
}

html[data-theme="dark"] .modal-card,
html[data-theme="dark"] .field-modal-card,
html[data-theme="dark"] .field-history-modal-card {
    background: var(--panel) !important;
    color: var(--text) !important;

    border-color: var(--line) !important;

    box-shadow:
        0 20px 50px rgba(0, 0, 0, .45) !important;
}

html[data-theme="dark"] .modal-card h1,
html[data-theme="dark"] .modal-card h2,
html[data-theme="dark"] .modal-card h3,
html[data-theme="dark"] .field-modal-card h1,
html[data-theme="dark"] .field-modal-card h2,
html[data-theme="dark"] .field-modal-card h3 {
    color: var(--text) !important;
}

html[data-theme="dark"] .modal-card p,
html[data-theme="dark"] .modal-card small {
    color: var(--muted) !important;
}


/* =========================================================
   DADOS DE CAMPO
   ========================================================= */

html[data-theme="dark"] #fieldModal .field-form {
    background: var(--panel) !important;
    color: var(--text) !important;
}

html[data-theme="dark"] #fieldModal .field-form-header {
    background: var(--panel) !important;
    color: var(--text) !important;

    border-bottom-color: var(--line) !important;
}

html[data-theme="dark"] #fieldModal .field-form-header * {
    color: var(--text) !important;
}

html[data-theme="dark"] #fieldModal .field-history-top {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border-color: var(--line) !important;
}

html[data-theme="dark"] #fieldModal .field-current-version {
    color: var(--text-soft) !important;
}

html[data-theme="dark"] #fieldModal .field-section {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border: 1px solid var(--line) !important;
}

html[data-theme="dark"] #fieldModal .field-section * {
    border-color: var(--line);
}

html[data-theme="dark"] #fieldModal .field-section h3,
html[data-theme="dark"] #fieldModal .field-section strong,
html[data-theme="dark"] #fieldModal .field-section label {
    color: var(--text) !important;
}


/* =========================================================
   FOTOS DE CAMPO
   ========================================================= */

html[data-theme="dark"] #fieldModal .field-photos-section {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border-color: var(--line) !important;
}

html[data-theme="dark"] #fieldModal .field-photos-header {
    color: var(--text) !important;
}

html[data-theme="dark"] #fieldModal .field-photos-help {
    color: var(--muted) !important;
}

html[data-theme="dark"] #fieldModal .field-photos-preview,
html[data-theme="dark"] #fieldModal .field-photo-preview {
    background: var(--input) !important;
    color: var(--muted) !important;

    border-color: #475569 !important;
}

html[data-theme="dark"] .field-photo-add-btn {
    background: var(--brand) !important;
    color: #fff !important;

    border-color: var(--brand) !important;
}

html[data-theme="dark"] .field-photo-add-btn:hover {
    background: var(--brand-hover) !important;
}


/* =========================================================
   HISTÓRICO DE VISTORIAS
   ========================================================= */

html[data-theme="dark"] #fieldHistoryModal {
    color: var(--text);
}

html[data-theme="dark"] #fieldHistoryModal .field-history-modal-card {
    background: var(--panel) !important;
    color: var(--text) !important;
}

html[data-theme="dark"] #fieldHistoryModal .field-modal-title,
html[data-theme="dark"] #fieldHistoryModal .field-modal-subtitle {
    color: var(--text) !important;
}

html[data-theme="dark"] #fieldHistoryModal .field-history-filters {
    background: var(--panel-2) !important;

    border: 1px solid var(--line) !important;
}

html[data-theme="dark"] #fieldHistoryModal .field-history-filter label {
    color: var(--text-soft) !important;
}


/* qualquer card dentro do histórico */

html[data-theme="dark"] #fieldHistoryModal article,
html[data-theme="dark"] #fieldHistoryModal section,
html[data-theme="dark"] #fieldHistoryModal .field-history-card,
html[data-theme="dark"] #fieldHistoryModal .field-history-item,
html[data-theme="dark"] #fieldHistoryModal .history-card {
    background: var(--panel-2) !important;

    color: var(--text) !important;

    border-color: var(--line) !important;
}


/* campos internos das versões */

html[data-theme="dark"] #fieldHistoryModal .field-history-card > div,
html[data-theme="dark"] #fieldHistoryModal .field-history-item > div,
html[data-theme="dark"] #fieldHistoryModal .history-card > div {
    border-color: var(--line) !important;
}


/* =========================================================
   KMZ ENVIADOS
   ========================================================= */

html[data-theme="dark"] .kmz-version-card,
html[data-theme="dark"] .kmz-card,
html[data-theme="dark"] [class*="kmz-version"] {
    background: var(--panel-2) !important;

    color: var(--text) !important;

    border-color: var(--line) !important;
}

html[data-theme="dark"] .kmz-version-card *,
html[data-theme="dark"] .kmz-card * {
    color: inherit;
}

html[data-theme="dark"] .kmz-version-card code,
html[data-theme="dark"] .kmz-version-card pre {
    background: var(--input) !important;
    color: #dbeafe !important;
}


/* =========================================================
   POPUPS DO MAPA
   ========================================================= */

html[data-theme="dark"] .maplibregl-popup-content {
    background: var(--panel) !important;

    color: var(--text) !important;

    border: 1px solid var(--line) !important;

    box-shadow:
        0 14px 35px rgba(0, 0, 0, .42) !important;
}

html[data-theme="dark"] .maplibregl-popup-content * {
    border-color: var(--line);
}

html[data-theme="dark"] .maplibregl-popup-content h1,
html[data-theme="dark"] .maplibregl-popup-content h2,
html[data-theme="dark"] .maplibregl-popup-content h3,
html[data-theme="dark"] .maplibregl-popup-content strong {
    color: var(--text) !important;
}

html[data-theme="dark"] .maplibregl-popup-content p,
html[data-theme="dark"] .maplibregl-popup-content div,
html[data-theme="dark"] .maplibregl-popup-content small {
    color: var(--text-soft);
}

html[data-theme="dark"] .maplibregl-popup-close-button {
    color: var(--text-soft) !important;
}

html[data-theme="dark"] .maplibregl-popup-tip {
    border-top-color: var(--panel) !important;
}


/* caixas claras criadas inline dentro dos popups */

html[data-theme="dark"]
.maplibregl-popup-content
[style*="background"] {
    background: var(--panel-2) !important;

    color: var(--text) !important;

    border-color: var(--line) !important;
}


/* =========================================================
   BOTÕES DE FECHAR
   ========================================================= */

html[data-theme="dark"] .modal-close,
html[data-theme="dark"] .field-modal-close,
html[data-theme="dark"] .close-button {
    color: var(--text-soft) !important;
}


/* =========================================================
   TABELAS
   ========================================================= */

html[data-theme="dark"] table {
    color: var(--text);
}

html[data-theme="dark"] th {
    background: var(--panel-3) !important;
    color: var(--text) !important;

    border-color: var(--line) !important;
}

html[data-theme="dark"] td {
    background: var(--panel-2);
    color: var(--text-soft);

    border-color: var(--line) !important;
}


/* =========================================================
   BARRAS / SEPARADORES
   ========================================================= */

html[data-theme="dark"] hr {
    border-color: var(--line) !important;
}


/* =========================================================
   SCROLLBAR
   ========================================================= */

html[data-theme="dark"] * {
    scrollbar-color: #475569 var(--panel);
}

html[data-theme="dark"] *::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}

html[data-theme="dark"] *::-webkit-scrollbar-track {
    background: var(--panel);
}

html[data-theme="dark"] *::-webkit-scrollbar-thumb {
    background: #475569;

    border-radius: 10px;

    border: 2px solid var(--panel);
}

html[data-theme="dark"] *::-webkit-scrollbar-thumb:hover {
    background: #64748b;
}
/* =========================================================
   WEBGIS VANTE - DARK MODE ÚNICO
   ========================================================= */

html[data-theme="dark"] {
    color-scheme: dark;

    --bg: #0b1220;
    --panel: #111827;
    --panel-2: #172033;
    --panel-3: #1c293a;

    --line: #2f4158;
    --line-soft: #26364a;

    --text: #f1f5f9;
    --text-soft: #d1d9e6;
    --muted: #94a3b8;

    --input: #0f172a;

    --brand: #5368ee;
    --brand-hover: #4357db;

    --danger: #ef4444;

    --shadow: 0 10px 30px rgba(0, 0, 0, .30);
}


/* =========================================================
   PÁGINA / ESTRUTURA
   ========================================================= */

html[data-theme="dark"] body {
    background: var(--bg);
    color: var(--text);
}

html[data-theme="dark"] .app-screen,
html[data-theme="dark"] .app-shell {
    background: var(--bg);
    color: var(--text);
}


/* =========================================================
   TOPBAR
   ========================================================= */

html[data-theme="dark"] .topbar {
    background: #101a29 !important;
    color: var(--text) !important;
    border-bottom: 1px solid var(--line-soft) !important;
}

html[data-theme="dark"] .topbar *,
html[data-theme="dark"] #userLabel {
    color: var(--text);
}


/* =========================================================
   SIDEBAR
   ========================================================= */

html[data-theme="dark"] .sidebar {
    background: var(--panel) !important;
    color: var(--text) !important;
    border-right: 1px solid var(--line-soft) !important;
}

html[data-theme="dark"] .sidebar h1,
html[data-theme="dark"] .sidebar h2,
html[data-theme="dark"] .sidebar h3,
html[data-theme="dark"] .sidebar strong,
html[data-theme="dark"] .sidebar label {
    color: var(--text) !important;
}

html[data-theme="dark"] .sidebar small,
html[data-theme="dark"] .sidebar p {
    color: var(--muted);
}


/* =========================================================
   PROJETOS
   ========================================================= */

html[data-theme="dark"] .project-card,
html[data-theme="dark"] .project-item {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border: 1px solid var(--line) !important;
    box-shadow: none !important;
}

html[data-theme="dark"] .project-card:hover,
html[data-theme="dark"] .project-item:hover {
    background: var(--panel-3) !important;
}

html[data-theme="dark"] .project-meta {
    color: var(--muted) !important;
}


/* =========================================================
   BOTÕES
   ========================================================= */

html[data-theme="dark"] button {
    color: var(--text);
}

html[data-theme="dark"] .ghost-button,
html[data-theme="dark"] .secondary-button {
    background: var(--panel-2) !important;
    color: var(--text) !important;
    border: 1px solid var(--line) !important;
}

html[data-theme="dark"] .ghost-button:hover,
html[data-theme="dark"] .secondary-button:hover {
    background: var(--panel-3) !important;
}


/* botão analisar KMZ e outros claros da sidebar */

html[data-theme="dark"] .sidebar button:not(.primary-button):not(.danger-button) {
    background: var(--panel-2);
    color: var(--text);
    border-color: var(--line);
}

html[data-theme="dark"] .sidebar button:not(.primary-button):not(.danger-button):hover {
    background: var(--panel-3);
}


/* =========================================================
   BOTÃO LIGHT / DARK
   ========================================================= */

html[data-theme="dark"] .theme-toggle {
    background: var(--panel-2) !important;
    color: var(--text) !important;
    border: 1px solid var(--line) !important;

    box-shadow: none !important;
}

html[data-theme="dark"] .theme-toggle:hover {
    background: var(--panel-3) !important;
}


/* =========================================================
   INPUTS / SELECT / TEXTAREA
   ========================================================= */

html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
    background: var(--input) !important;
    color: var(--text) !important;

    border: 1px solid #475569 !important;

    box-shadow: none !important;
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder {
    color: #78879c !important;
}

html[data-theme="dark"] select option {
    background: var(--input);
    color: var(--text);
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus {
    border-color: var(--brand) !important;
    outline: none !important;

    box-shadow:
        0 0 0 3px rgba(83, 104, 238, .17) !important;
}


/* =========================================================
   DETAILS / CORES / USUÁRIOS
   ========================================================= */

html[data-theme="dark"] details {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border: 1px solid var(--line) !important;
}

html[data-theme="dark"] details summary {
    background: var(--panel-2) !important;
    color: var(--text) !important;
}

html[data-theme="dark"] details[open] summary {
    border-bottom: 1px solid var(--line-soft);
}


/* =========================================================
   LISTA DE USUÁRIOS
   ========================================================= */

html[data-theme="dark"] #usersList,
html[data-theme="dark"] .users-list {
    background: transparent !important;
}

html[data-theme="dark"] #usersList > *,
html[data-theme="dark"] .users-list > *,
html[data-theme="dark"] .user-card,
html[data-theme="dark"] .user-item {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border: 1px solid var(--line) !important;
    box-shadow: none !important;
}

html[data-theme="dark"] #usersList strong,
html[data-theme="dark"] #usersList span,
html[data-theme="dark"] #usersList div,
html[data-theme="dark"] .user-card strong,
html[data-theme="dark"] .user-card span {
    color: var(--text-soft);
}


/* badges de perfil */

html[data-theme="dark"] .role-badge,
html[data-theme="dark"] .user-role {
    background: #253653 !important;
    color: #bfdbfe !important;
}


/* =========================================================
   DICA
   ========================================================= */

html[data-theme="dark"] .sidebar-note {
    background: var(--panel-2) !important;
    color: var(--text-soft) !important;

    border: 1px solid var(--line) !important;
}


/* =========================================================
   MODAIS - BASE
   ========================================================= */

html[data-theme="dark"] .modal {
    color: var(--text);
}

html[data-theme="dark"] .modal-card,
html[data-theme="dark"] .field-modal-card,
html[data-theme="dark"] .field-history-modal-card {
    background: var(--panel) !important;
    color: var(--text) !important;

    border-color: var(--line) !important;

    box-shadow:
        0 20px 50px rgba(0, 0, 0, .45) !important;
}

html[data-theme="dark"] .modal-card h1,
html[data-theme="dark"] .modal-card h2,
html[data-theme="dark"] .modal-card h3,
html[data-theme="dark"] .field-modal-card h1,
html[data-theme="dark"] .field-modal-card h2,
html[data-theme="dark"] .field-modal-card h3 {
    color: var(--text) !important;
}

html[data-theme="dark"] .modal-card p,
html[data-theme="dark"] .modal-card small {
    color: var(--muted) !important;
}


/* =========================================================
   DADOS DE CAMPO
   ========================================================= */

html[data-theme="dark"] #fieldModal .field-form {
    background: var(--panel) !important;
    color: var(--text) !important;
}

html[data-theme="dark"] #fieldModal .field-form-header {
    background: var(--panel) !important;
    color: var(--text) !important;

    border-bottom-color: var(--line) !important;
}

html[data-theme="dark"] #fieldModal .field-form-header * {
    color: var(--text) !important;
}

html[data-theme="dark"] #fieldModal .field-history-top {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border-color: var(--line) !important;
}

html[data-theme="dark"] #fieldModal .field-current-version {
    color: var(--text-soft) !important;
}

html[data-theme="dark"] #fieldModal .field-section {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border: 1px solid var(--line) !important;
}

html[data-theme="dark"] #fieldModal .field-section * {
    border-color: var(--line);
}

html[data-theme="dark"] #fieldModal .field-section h3,
html[data-theme="dark"] #fieldModal .field-section strong,
html[data-theme="dark"] #fieldModal .field-section label {
    color: var(--text) !important;
}


/* =========================================================
   FOTOS DE CAMPO
   ========================================================= */

html[data-theme="dark"] #fieldModal .field-photos-section {
    background: var(--panel-2) !important;
    color: var(--text) !important;

    border-color: var(--line) !important;
}

html[data-theme="dark"] #fieldModal .field-photos-header {
    color: var(--text) !important;
}

html[data-theme="dark"] #fieldModal .field-photos-help {
    color: var(--muted) !important;
}

html[data-theme="dark"] #fieldModal .field-photos-preview,
html[data-theme="dark"] #fieldModal .field-photo-preview {
    background: var(--input) !important;
    color: var(--muted) !important;

    border-color: #475569 !important;
}

html[data-theme="dark"] .field-photo-add-btn {
    background: var(--brand) !important;
    color: #fff !important;

    border-color: var(--brand) !important;
}

html[data-theme="dark"] .field-photo-add-btn:hover {
    background: var(--brand-hover) !important;
}


/* =========================================================
   HISTÓRICO DE VISTORIAS
   ========================================================= */

html[data-theme="dark"] #fieldHistoryModal {
    color: var(--text);
}

html[data-theme="dark"] #fieldHistoryModal .field-history-modal-card {
    background: var(--panel) !important;
    color: var(--text) !important;
}

html[data-theme="dark"] #fieldHistoryModal .field-modal-title,
html[data-theme="dark"] #fieldHistoryModal .field-modal-subtitle {
    color: var(--text) !important;
}

html[data-theme="dark"] #fieldHistoryModal .field-history-filters {
    background: var(--panel-2) !important;

    border: 1px solid var(--line) !important;
}

html[data-theme="dark"] #fieldHistoryModal .field-history-filter label {
    color: var(--text-soft) !important;
}


/* qualquer card dentro do histórico */

html[data-theme="dark"] #fieldHistoryModal article,
html[data-theme="dark"] #fieldHistoryModal section,
html[data-theme="dark"] #fieldHistoryModal .field-history-card,
html[data-theme="dark"] #fieldHistoryModal .field-history-item,
html[data-theme="dark"] #fieldHistoryModal .history-card {
    background: var(--panel-2) !important;

    color: var(--text) !important;

    border-color: var(--line) !important;
}


/* campos internos das versões */

html[data-theme="dark"] #fieldHistoryModal .field-history-card > div,
html[data-theme="dark"] #fieldHistoryModal .field-history-item > div,
html[data-theme="dark"] #fieldHistoryModal .history-card > div {
    border-color: var(--line) !important;
}


/* =========================================================
   KMZ ENVIADOS
   ========================================================= */

html[data-theme="dark"] .kmz-version-card,
html[data-theme="dark"] .kmz-card,
html[data-theme="dark"] [class*="kmz-version"] {
    background: var(--panel-2) !important;

    color: var(--text) !important;

    border-color: var(--line) !important;
}

html[data-theme="dark"] .kmz-version-card *,
html[data-theme="dark"] .kmz-card * {
    color: inherit;
}

html[data-theme="dark"] .kmz-version-card code,
html[data-theme="dark"] .kmz-version-card pre {
    background: var(--input) !important;
    color: #dbeafe !important;
}


/* =========================================================
   POPUPS DO MAPA
   ========================================================= */

html[data-theme="dark"] .maplibregl-popup-content {
    background: var(--panel) !important;

    color: var(--text) !important;

    border: 1px solid var(--line) !important;

    box-shadow:
        0 14px 35px rgba(0, 0, 0, .42) !important;
}

html[data-theme="dark"] .maplibregl-popup-content * {
    border-color: var(--line);
}

html[data-theme="dark"] .maplibregl-popup-content h1,
html[data-theme="dark"] .maplibregl-popup-content h2,
html[data-theme="dark"] .maplibregl-popup-content h3,
html[data-theme="dark"] .maplibregl-popup-content strong {
    color: var(--text) !important;
}

html[data-theme="dark"] .maplibregl-popup-content p,
html[data-theme="dark"] .maplibregl-popup-content div,
html[data-theme="dark"] .maplibregl-popup-content small {
    color: var(--text-soft);
}

html[data-theme="dark"] .maplibregl-popup-close-button {
    color: var(--text-soft) !important;
}

html[data-theme="dark"] .maplibregl-popup-tip {
    border-top-color: var(--panel) !important;
}


/* caixas claras criadas inline dentro dos popups */

html[data-theme="dark"]
.maplibregl-popup-content
[style*="background"] {
    background: var(--panel-2) !important;

    color: var(--text) !important;

    border-color: var(--line) !important;
}


/* =========================================================
   BOTÕES DE FECHAR
   ========================================================= */

html[data-theme="dark"] .modal-close,
html[data-theme="dark"] .field-modal-close,
html[data-theme="dark"] .close-button {
    color: var(--text-soft) !important;
}


/* =========================================================
   TABELAS
   ========================================================= */

html[data-theme="dark"] table {
    color: var(--text);
}

html[data-theme="dark"] th {
    background: var(--panel-3) !important;
    color: var(--text) !important;

    border-color: var(--line) !important;
}

html[data-theme="dark"] td {
    background: var(--panel-2);
    color: var(--text-soft);

    border-color: var(--line) !important;
}


/* =========================================================
   BARRAS / SEPARADORES
   ========================================================= */

html[data-theme="dark"] hr {
    border-color: var(--line) !important;
}


/* =========================================================
   SCROLLBAR
   ========================================================= */

html[data-theme="dark"] * {
    scrollbar-color: #475569 var(--panel);
}

html[data-theme="dark"] *::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}

html[data-theme="dark"] *::-webkit-scrollbar-track {
    background: var(--panel);
}

html[data-theme="dark"] *::-webkit-scrollbar-thumb {
    background: #475569;

    border-radius: 10px;

    border: 2px solid var(--panel);
}

html[data-theme="dark"] *::-webkit-scrollbar-thumb:hover {
    background: #64748b;
}
/* =========================================================
   AJUSTES FINAIS DO DARK MODE
   ========================================================= */


/* Cabeçalho superior do Dados de Campo */
html[data-theme="dark"] #fieldModal .field-form-header {
    background: #111827 !important;
    color: #f1f5f9 !important;
    border-bottom: 1px solid #334155 !important;
}

html[data-theme="dark"] #fieldModal .field-form-header strong,
html[data-theme="dark"] #fieldModal .field-form-header div {
    color: #f1f5f9 !important;
}


/* Caso exista container claro envolvendo o header */
html[data-theme="dark"] #fieldModal > div,
html[data-theme="dark"] #fieldModal .modal-content {
    background-color: #111827;
}


/* Botão analisar KMZ */
html[data-theme="dark"] #openKmzVersions {
    background: #172033 !important;
    color: #f1f5f9 !important;
    border: 1px solid #334155 !important;
}

html[data-theme="dark"] #openKmzVersions:hover {
    background: #1c293a !important;
}


/* Painel de cores */
html[data-theme="dark"] #toggleColorPanel {
    background: #172033 !important;
    color: #f1f5f9 !important;
    border-color: #334155 !important;
}


/* Tudo que estiver imediatamente depois do botão Cores */
html[data-theme="dark"] #toggleColorPanel + div {
    background: #172033 !important;
    color: #f1f5f9 !important;
    border-color: #334155 !important;
}

html[data-theme="dark"] #toggleColorPanel + div label,
html[data-theme="dark"] #toggleColorPanel + div span,
html[data-theme="dark"] #toggleColorPanel + div strong {
    color: #dbe4f0 !important;
}


/* Botões claros dentro dos modais */
html[data-theme="dark"] #fieldHistoryModal button,
html[data-theme="dark"] #fieldModal button {
    border-color: #475569;
}

html[data-theme="dark"] #fieldHistoryModal button:not(.field-photo-add-btn),
html[data-theme="dark"] #fieldModal button:not(.field-photo-add-btn) {
    background: #172033;
    color: #f1f5f9;
}


/* Limpar filtros */
html[data-theme="dark"] #fieldHistoryModal button[type="button"] {
    color: #f1f5f9;
}


/* X de fechar */
html[data-theme="dark"] #fieldModal .field-modal-close,
html[data-theme="dark"] #fieldHistoryModal .field-modal-close {
    color: #cbd5e1 !important;
}

html[data-theme="dark"] #fieldModal .field-modal-close:hover,
html[data-theme="dark"] #fieldHistoryModal .field-modal-close:hover {
    color: #ffffff !important;
}


/* Evita fundos brancos em blocos internos do histórico */
html[data-theme="dark"] #fieldHistoryModal [class*="card"],
html[data-theme="dark"] #fieldHistoryModal [class*="detail"] {
    background-color: #172033;
    color: #f1f5f9;
    border-color: #334155;
}

/* =========================================================
   IMPORTAR BASE EXCEL - PREVIEW FINAL
   ========================================================= */

#baseImportResult {
    margin-top: 4px;
}

.base-preview {
    margin-top: 14px;
}

.base-preview-title {
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 800;
    color: #334155;
}

.base-preview-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 16px;
}

.base-preview-card {
    min-width: 0;
    padding: 11px 8px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
    text-align: center;
}

.base-preview-number {
    display: block;
    margin-bottom: 3px;
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
    color: #1e293b;
}

.base-preview-label {
    display: block;
    font-size: 11px;
    line-height: 1.25;
    color: #64748b;
}

.base-preview-section-title {
    margin: 14px 0 8px;
    font-size: 12px;
    font-weight: 800;
    color: #475569;
}

.base-preview-projects {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.base-preview-project {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border: 1px solid #dbe3ee;
    border-radius: 999px;
    background: #ffffff;
    font-size: 11px;
    font-weight: 700;
    color: #475569;
}

.base-preview-checks {
    display: grid;
    gap: 7px;
}

.base-preview-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #64748b;
}

.base-preview-check-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #ecfdf5;
    color: #15803d;
    font-size: 12px;
    font-weight: 900;
}

.base-preview-security {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 15px;
    padding: 10px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
    font-size: 11px;
    color: #64748b;
}

/* DARK MODE */

html[data-theme="dark"] .base-preview-title,
html[data-theme="dark"] .base-preview-number {
    color: var(--text);
}

html[data-theme="dark"] .base-preview-section-title,
html[data-theme="dark"] .base-preview-project {
    color: var(--text-soft);
}

html[data-theme="dark"] .base-preview-card,
html[data-theme="dark"] .base-preview-security {
    background: var(--panel-2);
    border-color: var(--line);
}

html[data-theme="dark"] .base-preview-project {
    background: var(--input);
    border-color: var(--line);
}

html[data-theme="dark"] .base-preview-label,
html[data-theme="dark"] .base-preview-check,
html[data-theme="dark"] .base-preview-security {
    color: var(--muted);
}

html[data-theme="dark"] .base-preview-check-icon {
    background: rgba(34, 197, 94, .14);
    color: #86efac;
}

/* MOBILE */

@media (max-width: 768px) {
    .base-preview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .base-preview-card:last-child {
        grid-column: 1 / -1;
    }
}


/* =====================================================================
   WEBGIS VANTE — REFORMA VISUAL 2026
   Override final deliberado: unifica o CSS legado sem alterar funções.
   ===================================================================== */

:root {
    --bg: #f3f6f9;
    --panel: #ffffff;
    --panel-2: #f7f9fc;
    --panel-3: #edf2f7;
    --line: #dbe3ec;
    --line-soft: #e9eef4;
    --text: #17212b;
    --text-soft: #415063;
    --muted: #7b8998;
    --brand: #2563eb;
    --brand-hover: #1d4ed8;
    --danger: #dc2626;
    --success: #16a34a;
    --warning: #f59e0b;
    --input: #ffffff;
    --topbar: 64px;
    --sidebar: 320px;
    --radius: 14px;
    --shadow: 0 14px 40px rgba(15, 23, 42, .12);
    --shadow-soft: 0 5px 18px rgba(15, 23, 42, .07);
}

html[data-theme="dark"] {
    --bg: #090f1a;
    --panel: #0f1724;
    --panel-2: #151f2e;
    --panel-3: #1b2839;
    --line: #26364a;
    --line-soft: #1c2a3b;
    --text: #f3f6fb;
    --text-soft: #c5d0df;
    --muted: #8493a7;
    --brand: #5b6df6;
    --brand-hover: #6f7ffc;
    --danger: #fb7185;
    --success: #4ade80;
    --warning: #fbbf24;
    --input: #0b1320;
    --shadow: 0 18px 45px rgba(0,0,0,.38);
    --shadow-soft: 0 8px 24px rgba(0,0,0,.20);
    color-scheme: dark;
}

body {
    background: var(--bg) !important;
    color: var(--text) !important;
}

/* ---------- TOPBAR ---------- */
.topbar {
    height: var(--topbar) !important;
    padding: 0 18px !important;
    background: rgba(255,255,255,.96) !important;
    color: var(--text) !important;
    border-bottom: 1px solid var(--line-soft) !important;
    box-shadow: 0 1px 0 rgba(15,23,42,.03) !important;
    backdrop-filter: blur(14px);
}

html[data-theme="dark"] .topbar {
    background: rgba(15,23,36,.96) !important;
}

.topbar-left, .topbar-right {
    gap: 9px !important;
}

.topbar .badge {
    padding: 4px 8px !important;
    border: 1px solid var(--line) !important;
    background: var(--panel-2) !important;
    color: var(--muted) !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .04em;
}

#userLabel {
    color: var(--text-soft) !important;
    font-size: 13px !important;
    font-weight: 650 !important;
}

.theme-toggle,
#logoutButton,
.topbar button {
    min-height: 38px !important;
    border: 1px solid var(--line) !important;
    border-radius: 10px !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
    box-shadow: none !important;
}

.theme-toggle:hover,
#logoutButton:hover,
.topbar button:hover {
    background: var(--panel-3) !important;
    border-color: #b8c5d3 !important;
}

/* ---------- WORKSPACE / SIDEBAR ---------- */
.workspace {
    background: var(--bg) !important;
}

.sidebar {
    width: var(--sidebar);
    padding: 18px 14px 22px !important;
    background: var(--panel) !important;
    color: var(--text) !important;
    border-right: 1px solid var(--line-soft) !important;
    box-shadow: 5px 0 24px rgba(15,23,42,.035);
    overflow-x: hidden !important;
}

.sidebar-header {
    margin: 0 2px 12px !important;
}

.sidebar h2 {
    margin: 0 !important;
    color: var(--text) !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    letter-spacing: -.01em;
}

.projects-list {
    gap: 9px !important;
    margin-top: 10px !important;
}

.project-card {
    padding: 12px !important;
    border: 1px solid var(--line) !important;
    border-radius: 13px !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
    box-shadow: none !important;
    transition: transform .15s ease, border-color .15s ease, background .15s ease, box-shadow .15s ease !important;
}

.project-card:hover {
    transform: translateY(-1px);
    border-color: #b8c6d6 !important;
    background: var(--panel) !important;
    box-shadow: var(--shadow-soft) !important;
}

html[data-theme="dark"] .project-card:hover {
    border-color: #40536c !important;
    background: var(--panel-2) !important;
}

.project-row {
    gap: 10px !important;
    align-items: center !important;
}

.project-row input[type="checkbox"] {
    width: 17px !important;
    height: 17px !important;
    accent-color: var(--brand);
}

.project-name {
    color: var(--text) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

.project-meta {
    margin-top: 4px !important;
    color: var(--muted) !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
}

.delete-project {
    width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    border-radius: 9px !important;
    color: var(--muted) !important;
    background: transparent !important;
}

.delete-project:hover {
    background: rgba(220,38,38,.08) !important;
    color: var(--danger) !important;
}

/* ---------- SIDEBAR SECTIONS / PANELS ---------- */
.sidebar-note,
.color-panel,
.users-panel,
[class*="sidebar-panel"] {
    border: 1px solid var(--line) !important;
    border-radius: 13px !important;
    background: var(--panel-2) !important;
    color: var(--text-soft) !important;
    box-shadow: none !important;
    overflow: hidden;
}

.sidebar-note {
    padding: 11px 12px !important;
    font-size: 11px !important;
    line-height: 1.45 !important;
}

.color-panel-toggle,
#toggleUsersPanel,
[class*="panel-toggle"] {
    min-height: 42px !important;
    padding: 9px 11px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--text) !important;
    font-size: 12px !important;
    font-weight: 750 !important;
}

.color-panel-toggle:hover,
#toggleUsersPanel:hover {
    background: var(--panel-3) !important;
}

.color-panel-content,
.users-panel-content {
    border-top: 1px solid var(--line-soft);
    background: var(--panel) !important;
}

/* ---------- BUTTON SYSTEM ---------- */
.sidebar button,
.modal button,
.maplibregl-popup-content button,
.field-modal-card button {
    border-radius: 10px !important;
    font-weight: 700 !important;
    transition: transform .12s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease !important;
}

.primary,
.primary-button,
button.primary,
#saveNewUser {
    border: 1px solid var(--brand) !important;
    background: var(--brand) !important;
    color: #fff !important;
    box-shadow: 0 5px 14px rgba(37,99,235,.16) !important;
}

.primary:hover,
.primary-button:hover,
button.primary:hover,
#saveNewUser:hover {
    background: var(--brand-hover) !important;
}

.ghost-button,
.secondary-button {
    border: 1px solid var(--line) !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
}

.ghost-button:hover,
.secondary-button:hover {
    background: var(--panel-3) !important;
}

button:disabled {
    opacity: .48 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
    transform: none !important;
}

/* ---------- INPUTS ---------- */
input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
select,
textarea {
    min-height: 40px;
    padding: 9px 11px !important;
    border: 1px solid var(--line) !important;
    border-radius: 10px !important;
    background: var(--input) !important;
    color: var(--text) !important;
    box-shadow: none !important;
}

textarea {
    min-height: 76px;
}

input:focus,
select:focus,
textarea:focus {
    outline: none !important;
    border-color: var(--brand) !important;
    box-shadow: 0 0 0 3px rgba(37,99,235,.12) !important;
}

/* ---------- SIDEBAR TOGGLE ---------- */
.sidebar-toggle {
    width: 30px !important;
    height: 54px !important;
    right: -15px !important;
    border: 1px solid var(--line) !important;
    border-left: 0 !important;
    border-radius: 0 11px 11px 0 !important;
    background: var(--panel) !important;
    color: var(--muted) !important;
    box-shadow: 5px 0 12px rgba(15,23,42,.06) !important;
    font-size: 15px !important;
}

.sidebar-toggle:hover {
    color: var(--brand) !important;
    background: var(--panel-2) !important;
}

/* ---------- MAP CONTROLS ---------- */
.maplibregl-ctrl-group {
    overflow: hidden !important;
    border: 1px solid rgba(148,163,184,.34) !important;
    border-radius: 12px !important;
    background: var(--panel) !important;
    box-shadow: var(--shadow-soft) !important;
}

.maplibregl-ctrl-group button {
    width: 38px !important;
    height: 38px !important;
    background-color: var(--panel) !important;
}

.maplibregl-ctrl-group button + button {
    border-top: 1px solid var(--line-soft) !important;
}

.refresh-map-button {
    right: 18px !important;
    bottom: 18px !important;
    width: 44px !important;
    height: 44px !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    border-radius: 13px !important;
    background: var(--brand) !important;
    color: #fff !important;
    box-shadow: 0 8px 22px rgba(37,99,235,.25) !important;
}

.refresh-map-button:hover {
    transform: translateY(-2px) !important;
}

/* ---------- MODALS ---------- */
.modal {
    padding: 20px !important;
    background: rgba(8,15,26,.58) !important;
    backdrop-filter: blur(5px);
}

.modal-card,
.field-modal-card {
    border: 1px solid var(--line) !important;
    border-radius: 18px !important;
    background: var(--panel) !important;
    color: var(--text) !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.24) !important;
}

.modal-card {
    padding: 20px !important;
}

.modal-header,
.field-modal-card .modal-header {
    background: var(--panel) !important;
    color: var(--text) !important;
    border-bottom-color: var(--line-soft) !important;
}

.modal-header h2,
.field-modal-card .modal-header h2 {
    color: var(--text) !important;
    letter-spacing: -.02em;
}

.field-modal-subtitle {
    color: var(--muted) !important;
}

/* ---------- USERS ---------- */
.user-item {
    padding: 9px 10px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: 10px !important;
    background: var(--panel-2) !important;
}

.user-item strong {
    color: var(--text) !important;
}

.user-item span {
    color: var(--muted) !important;
    font-size: 10px !important;
}

.delete-user-btn {
    width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--muted) !important;
}

.delete-user-btn:hover {
    background: rgba(220,38,38,.08) !important;
    color: var(--danger) !important;
}

/* ---------- POPUPS ---------- */
.maplibregl-popup-content {
    min-width: 220px;
    padding: 14px !important;
    border: 1px solid var(--line) !important;
    border-radius: 15px !important;
    background: var(--panel) !important;
    color: var(--text) !important;
    box-shadow: 0 18px 48px rgba(15,23,42,.20) !important;
}

.maplibregl-popup-close-button {
    top: 7px !important;
    right: 7px !important;
    width: 29px !important;
    height: 29px !important;
    border-radius: 9px !important;
    color: var(--muted) !important;
}

.maplibregl-popup-close-button:hover {
    background: var(--panel-3) !important;
    color: var(--text) !important;
}

.popup-title {
    margin-bottom: 5px !important;
    padding-right: 30px !important;
    color: var(--text) !important;
    font-size: 16px !important;
    font-weight: 850 !important;
}

.popup-desc {
    color: var(--text-soft) !important;
}

/* ---------- SUGESTÃO CANDIDATE: NOVO PADRÃO COMPACTO ---------- */
.candidate-suggestion-popup .maplibregl-popup-content {
    width: 370px !important;
    max-width: calc(100vw - 40px) !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.candidate-suggestion-card {
    width: 100% !important;
    max-width: none !important;
    padding: 16px !important;
}

.candidate-suggestion-badge {
    display: inline-flex !important;
    margin: 0 0 9px !important;
    padding: 4px 8px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(245,158,11,.12) !important;
    color: #b45309 !important;
    font-size: 9px !important;
    font-weight: 850 !important;
}

html[data-theme="dark"] .candidate-suggestion-badge {
    color: #fdba74 !important;
}

.candidate-suggestion-meta {
    gap: 4px 10px !important;
    margin-bottom: 10px !important;
    color: var(--muted) !important;
    font-size: 10px !important;
}

.candidate-suggestion-note {
    margin: 0 0 10px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--text-soft) !important;
    font-size: 10px !important;
}

.candidate-suggestion-note strong {
    display: inline !important;
    margin-right: 4px;
}

.candidate-suggestion-points-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    margin: 4px 0 12px !important;
    border-top: 1px solid var(--line-soft);
    border-bottom: 1px solid var(--line-soft);
}

.candidate-suggestion-point-card {
    display: grid !important;
    grid-template-columns: 32px 1fr 1fr !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 2px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--line-soft) !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.candidate-suggestion-point-card:last-child {
    border-bottom: 0 !important;
}

.candidate-suggestion-point-name {
    margin: 0 !important;
    color: var(--brand) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}

.candidate-suggestion-point-value {
    display: block !important;
    min-width: 0 !important;
}

.candidate-suggestion-point-value span {
    display: block !important;
    margin-bottom: 1px;
    color: var(--muted) !important;
    font-size: 7px !important;
    font-weight: 850 !important;
}

.candidate-suggestion-point-value strong {
    display: block !important;
    color: var(--text-soft) !important;
    font-size: 10px !important;
    font-weight: 650 !important;
    font-variant-numeric: tabular-nums;
}

.candidate-suggestion-main-actions,
.candidate-review-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 7px !important;
}

.candidate-suggestion-main-actions button,
.candidate-review-actions button {
    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    font-size: 11px !important;
}

.candidate-pending-view-area,
.candidate-suggestion-approve {
    border-color: var(--brand) !important;
    background: var(--brand) !important;
    color: #fff !important;
}

.candidate-pending-field-data {
    border: 1px solid var(--line) !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
}

.candidate-suggestion-reject {
    border: 1px solid rgba(220,38,38,.28) !important;
    background: rgba(220,38,38,.06) !important;
    color: var(--danger) !important;
}

.candidate-awaiting-admin {
    margin-top: 9px !important;
    padding-top: 8px !important;
    border-top: 1px solid var(--line-soft) !important;
    color: var(--muted) !important;
    font-size: 9px !important;
    text-align: center !important;
}

/* ---------- HISTÓRICO / DADOS DE CAMPO / KMZ ---------- */
.field-history-card,
.field-history-item,
.history-card,
.kmz-version-card,
.kmz-card,
.kmz-compare-change,
.kmz-compare-stat {
    border: 1px solid var(--line) !important;
    border-radius: 12px !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
    box-shadow: none !important;
}

.field-history-filters {
    border: 1px solid var(--line) !important;
    border-radius: 12px !important;
    background: var(--panel-2) !important;
}

.field-history-photo-img {
    border-radius: 10px !important;
}

/* ---------- STATUS BAR ---------- */
#statusBar,
.status-bar {
    border: 1px solid rgba(148,163,184,.28) !important;
    border-radius: 10px !important;
    background: rgba(15,23,42,.82) !important;
    color: #f8fafc !important;
    box-shadow: var(--shadow-soft) !important;
    backdrop-filter: blur(8px);
}

/* ---------- MOBILE ---------- */
@media (max-width: 768px) {
    :root { --topbar: 58px; }

    .topbar {
        padding: 0 10px !important;
    }

    .topbar-left, .topbar-right {
        gap: 6px !important;
    }

    .topbar button,
    .theme-toggle,
    #logoutButton {
        min-width: 40px;
        min-height: 40px !important;
        padding: 7px 9px !important;
    }

    .sidebar {
        width: min(88vw, 340px) !important;
        padding: 15px 12px 20px !important;
        box-shadow: 12px 0 38px rgba(0,0,0,.18) !important;
    }

    .project-card {
        padding: 12px !important;
    }

    .modal {
        align-items: end !important;
        padding: 8px !important;
    }

    .modal-card,
    .field-modal-card {
        width: 100% !important;
        max-width: none !important;
        max-height: 90dvh !important;
        border-radius: 18px 18px 12px 12px !important;
    }

    .maplibregl-popup {
        left: 10px !important;
        right: 10px !important;
        bottom: 10px !important;
        width: auto !important;
        max-width: none !important;
    }

    .maplibregl-popup-content {
        width: 100% !important;
        max-width: none !important;
        max-height: 68dvh !important;
        border-radius: 17px !important;
    }

    .candidate-suggestion-popup .maplibregl-popup-content {
        width: 100% !important;
        max-width: none !important;
    }

    .candidate-suggestion-card {
        padding: 14px !important;
    }

    .candidate-suggestion-main-actions,
    .candidate-review-actions {
        grid-template-columns: 1fr !important;
    }

    .candidate-suggestion-main-actions button,
    .candidate-review-actions button {
        min-height: 46px !important;
        font-size: 13px !important;
    }

    input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
    select,
    textarea {
        font-size: 16px !important;
    }

    .refresh-map-button {
        right: 12px !important;
        bottom: 12px !important;
        width: 46px !important;
        height: 46px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}


/* =====================================================================
   ETAPA 10.7 — AJUSTES FUNCIONAIS/VISUAIS DOS CANDIDATOS
   ===================================================================== */

/* Sidebar sempre rolável com a roda do mouse quando o conteúdo exceder */
.sidebar {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #94a3b8 transparent;
}
.sidebar::-webkit-scrollbar { width: 8px; }
.sidebar::-webkit-scrollbar-track { background: transparent; }
.sidebar::-webkit-scrollbar-thumb {
    background: #b8c3d1;
    border-radius: 999px;
}
html[data-theme="dark"] .sidebar {
    scrollbar-color: #475569 transparent;
}
html[data-theme="dark"] .sidebar::-webkit-scrollbar-thumb {
    background: #475569;
}

/* Histórico: elimina o "pílula branca" e iguala Light/Dark */
.field-history-change-count {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    min-height: 28px !important;
    padding: 5px 9px !important;
    border: 1px solid var(--line) !important;
    border-radius: 8px !important;
    background: var(--panel-2) !important;
    color: var(--text-soft) !important;
    font-size: 10px !important;
    font-weight: 800 !important;
}
html[data-theme="dark"] .field-history-change-count {
    background: #101927 !important;
    border-color: #2b3b50 !important;
    color: #d9e3ef !important;
}
html[data-theme="dark"] .field-history-card,
html[data-theme="dark"] .field-history-item,
html[data-theme="dark"] .history-card {
    background: #151f2e !important;
    border-color: #2b3b50 !important;
}
html[data-theme="dark"] .field-history-change {
    background: #0c1421 !important;
    border-color: #28384d !important;
    color: #d6dfeb !important;
}
html[data-theme="dark"] .field-history-change * {
    color: inherit;
}
html[data-theme="dark"] .field-history-change s,
html[data-theme="dark"] .field-history-change del {
    color: #fca5a5 !important;
}
html[data-theme="dark"] .field-history-progress,
html[data-theme="dark"] .field-history-progress-track {
    background: #243247 !important;
}

/* Popups de TODOS os candidatos: original, pendente, aprovado e KMZ */
.webgis-candidate-popup .maplibregl-popup-content,
.candidate-suggestion-popup .maplibregl-popup-content {
    width: 350px !important;
    max-width: calc(100vw - 34px) !important;
    max-height: 520px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 16px !important;
    border: 1px solid var(--line) !important;
    border-radius: 16px !important;
    background: var(--panel) !important;
    color: var(--text) !important;
    box-shadow: 0 18px 52px rgba(15,23,42,.22) !important;
    scrollbar-width: thin;
}
.candidate-suggestion-popup .maplibregl-popup-content {
    padding: 0 !important;
}
.webgis-candidate-popup .popup-title,
.candidate-suggestion-popup .popup-title {
    margin: 0 34px 3px 0 !important;
    padding: 0 !important;
    color: var(--text) !important;
    font-size: 17px !important;
    line-height: 1.2 !important;
    font-weight: 850 !important;
}
.webgis-candidate-popup .project-meta {
    margin: 0 0 10px !important;
    color: var(--muted) !important;
    font-size: 10px !important;
}
.webgis-candidate-popup .popup-desc {
    max-height: none !important;
    margin: 0 0 12px !important;
    padding: 10px 11px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: 11px !important;
    background: var(--panel-2) !important;
    color: var(--text-soft) !important;
    font-size: 11px !important;
    line-height: 1.55 !important;
}
.webgis-candidate-popup button {
    width: 100% !important;
    min-height: 38px !important;
    margin: 6px 0 0 !important;
    padding: 8px 11px !important;
    border: 1px solid var(--line) !important;
    border-radius: 9px !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
    font-size: 11px !important;
    font-weight: 750 !important;
    text-align: left !important;
}
.webgis-candidate-popup button:hover {
    border-color: #aab8c8 !important;
    background: var(--panel-3) !important;
}
.webgis-candidate-popup .view-structured-area-btn,
.webgis-candidate-popup .view-original-area-btn,
.webgis-candidate-popup .view-pending-area-btn,
.webgis-candidate-popup .view-approved-area-btn {
    border-color: var(--brand) !important;
    background: var(--brand) !important;
    color: #fff !important;
}
.webgis-candidate-popup .approve-suggestion-btn {
    border-color: #16a34a !important;
    background: #16a34a !important;
    color: #fff !important;
}
.webgis-candidate-popup .reject-suggestion-btn,
.webgis-candidate-popup .remove-approval-btn {
    border-color: rgba(220,38,38,.28) !important;
    background: rgba(220,38,38,.07) !important;
    color: var(--danger) !important;
}

/* Dark popup: remove o aspecto cinza/sem contraste da captura */
html[data-theme="dark"] .webgis-candidate-popup .maplibregl-popup-content,
html[data-theme="dark"] .candidate-suggestion-popup .maplibregl-popup-content {
    background: #0f1724 !important;
    border-color: #2b3b50 !important;
    color: #f3f6fb !important;
}
html[data-theme="dark"] .webgis-candidate-popup .popup-desc {
    background: #0b1320 !important;
    border-color: #28384d !important;
    color: #d3ddea !important;
}
html[data-theme="dark"] .webgis-candidate-popup button {
    background: #182335 !important;
    border-color: #31435b !important;
    color: #eef3f9 !important;
}
html[data-theme="dark"] .webgis-candidate-popup button:hover {
    background: #202e42 !important;
}
html[data-theme="dark"] .webgis-candidate-popup .view-structured-area-btn,
html[data-theme="dark"] .webgis-candidate-popup .view-original-area-btn,
html[data-theme="dark"] .webgis-candidate-popup .view-pending-area-btn,
html[data-theme="dark"] .webgis-candidate-popup .view-approved-area-btn {
    background: var(--brand) !important;
    border-color: var(--brand) !important;
    color: #fff !important;
}

/* Diferencia discretamente o estado da janela */
.webgis-candidate-original .maplibregl-popup-content {
    border-top: 3px solid var(--brand) !important;
}
.webgis-candidate-pending .maplibregl-popup-content,
.candidate-suggestion-popup .maplibregl-popup-content {
    border-top: 3px solid #f59e0b !important;
}
.webgis-candidate-approved .maplibregl-popup-content {
    border-top: 3px solid #16a34a !important;
}

/* Mobile: janela vira painel confortável sem estourar tela */
@media (max-width: 768px) {
    .webgis-candidate-popup .maplibregl-popup-content,
    .candidate-suggestion-popup .maplibregl-popup-content {
        width: 100% !important;
        max-width: none !important;
        max-height: 64dvh !important;
        padding: 14px !important;
    }
    .candidate-suggestion-popup .maplibregl-popup-content {
        padding: 0 !important;
    }
}


/* =====================================================================
   ETAPA 10.8 — REFORMA CONSOLIDADA / CORREÇÃO DE HERANÇAS VISUAIS
   ===================================================================== */

/* ---------- 1. MODAIS: mapa continua visível atrás no LIGHT e DARK ---------- */
.modal,
.field-modal {
    background: rgba(15, 23, 42, .34) !important;
    backdrop-filter: blur(2px) !important;
    -webkit-backdrop-filter: blur(2px) !important;
}

html[data-theme="dark"] .modal,
html[data-theme="dark"] .field-modal {
    background: rgba(2, 6, 23, .46) !important;
}

/* O card recebe o tema; o overlay nunca vira o "fundo da página". */
.modal-card,
.field-modal-card,
.webgis-field-modal-card {
    background: var(--panel) !important;
    color: var(--text) !important;
    border: 1px solid var(--line) !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.24) !important;
}

html[data-theme="dark"] .modal-card,
html[data-theme="dark"] .field-modal-card,
html[data-theme="dark"] .webgis-field-modal-card {
    background: #101927 !important;
    color: #eef3f9 !important;
    border-color: #2a3a50 !important;
}

/* Histórico: cabeçalho e filtros seguem o mesmo card */
.field-history-modal .modal-header,
.field-modal-card .modal-header {
    background: transparent !important;
    border-bottom: 1px solid var(--line-soft) !important;
}

.field-history-filters {
    padding: 12px !important;
    gap: 10px !important;
    background: var(--panel-2) !important;
    border: 1px solid var(--line) !important;
    border-radius: 12px !important;
}

html[data-theme="dark"] .field-history-filters {
    background: #0c1421 !important;
    border-color: #29394e !important;
}

/* Remove qualquer bloco branco herdado no histórico dark */
html[data-theme="dark"] .field-history-card,
html[data-theme="dark"] .field-history-item,
html[data-theme="dark"] .field-history-change,
html[data-theme="dark"] .field-history-summary,
html[data-theme="dark"] .field-history-empty,
html[data-theme="dark"] .field-history-details {
    background-color: #101927 !important;
    color: #dce5f0 !important;
    border-color: #29394e !important;
}

html[data-theme="dark"] .field-history-change {
    background-color: #0b1320 !important;
}

/* ---------- 2. SELETOR DE MAPA: contraste independente do basemap ---------- */
.map-basemap-control,
.basemap-control,
#mapBasemapControl {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 5px !important;
    border: 1px solid rgba(15,23,42,.16) !important;
    border-radius: 13px !important;
    background: rgba(255,255,255,.96) !important;
    color: #17212b !important;
    box-shadow: 0 8px 26px rgba(15,23,42,.18) !important;
    backdrop-filter: blur(10px) !important;
}

.map-basemap-control button,
.basemap-control button,
#mapBasemapControl button {
    min-width: 64px !important;
    min-height: 36px !important;
    margin: 0 !important;
    padding: 7px 10px !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: transparent !important;
    color: #334155 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}

.map-basemap-control button:hover,
.basemap-control button:hover,
#mapBasemapControl button:hover {
    background: #eef2f7 !important;
    color: #0f172a !important;
}

.map-basemap-control button.active,
.basemap-control button.active,
#mapBasemapControl button.active,
.map-basemap-control button[aria-pressed="true"],
.basemap-control button[aria-pressed="true"],
#mapBasemapControl button[aria-pressed="true"] {
    background: #e8edff !important;
    color: #3347d8 !important;
}

/* fallback para o controle criado inline pelo JS */
#map > div[style*="bottom"][style*="right"] button {
    opacity: 1;
}

/* ---------- 3. POPUP DE CANDIDATO: deixa de parecer formulário ---------- */
.webgis-candidate-popup .maplibregl-popup-content,
.candidate-suggestion-popup .maplibregl-popup-content {
    width: 360px !important;
    max-width: calc(100vw - 34px) !important;
    max-height: min(560px, 72vh) !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: 17px !important;
}

.webgis-candidate-popup .maplibregl-popup-close-button,
.candidate-suggestion-popup .maplibregl-popup-close-button {
    z-index: 5 !important;
    top: 10px !important;
    right: 10px !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 9px !important;
    background: transparent !important;
}

.webgis-candidate-popup .maplibregl-popup-content > *,
.candidate-suggestion-popup .maplibregl-popup-content > * {
    box-sizing: border-box;
}

/* Conteúdo legado ganha respiro sem criar caixa em tudo */
.webgis-candidate-popup .popup-title {
    margin: 0 !important;
    padding: 16px 48px 3px 16px !important;
    font-size: 18px !important;
    letter-spacing: -.015em !important;
}

.webgis-candidate-popup .project-meta {
    margin: 0 !important;
    padding: 0 16px 11px !important;
    font-size: 10px !important;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.webgis-candidate-popup .popup-desc {
    max-height: 210px !important;
    margin: 0 16px 10px !important;
    padding: 10px 0 !important;
    overflow-y: auto !important;
    border: 0 !important;
    border-top: 1px solid var(--line-soft) !important;
    border-bottom: 1px solid var(--line-soft) !important;
    border-radius: 0 !important;
    background: transparent !important;
    line-height: 1.55 !important;
}

/* Botões deixam de ser "formulário empilhado": área principal + ações discretas */
.webgis-candidate-popup button {
    width: calc(100% - 32px) !important;
    min-height: 40px !important;
    margin: 0 16px 7px !important;
    padding: 9px 12px !important;
    border-radius: 10px !important;
    text-align: center !important;
    font-size: 11px !important;
}

.webgis-candidate-popup button:last-child {
    margin-bottom: 16px !important;
}

.webgis-candidate-popup .view-structured-area-btn,
.webgis-candidate-popup .view-original-area-btn,
.webgis-candidate-popup .view-pending-area-btn,
.webgis-candidate-popup .view-approved-area-btn {
    min-height: 42px !important;
    background: var(--brand) !important;
    border-color: var(--brand) !important;
    color: #fff !important;
}

/* ---------- 4. POPUP SUGESTÃO P1-P4: hierarquia limpa ---------- */
.candidate-suggestion-card {
    width: 100% !important;
    padding: 16px !important;
}

.candidate-suggestion-card .popup-title {
    padding: 0 !important;
    margin: 0 36px 5px 0 !important;
}

.candidate-suggestion-note {
    margin: 8px 0 10px !important;
    padding: 8px 0 !important;
    border: 0 !important;
    border-top: 1px solid var(--line-soft) !important;
    border-bottom: 1px solid var(--line-soft) !important;
    background: transparent !important;
}

.candidate-suggestion-points-grid {
    margin: 0 0 12px !important;
}

.candidate-suggestion-point-card {
    background: transparent !important;
}

/* ---------- 5. FORMULÁRIOS DE EDIÇÃO/SUGESTÃO: espaçamento de ação ---------- */
.edit-location-box,
.suggestion-box,
.location-editor,
[class*="location-form"],
[class*="suggestion-form"] {
    box-sizing: border-box;
}

.edit-location-box button,
.suggestion-box button,
.location-editor button,
[class*="location-form"] button,
[class*="suggestion-form"] button {
    min-height: 42px !important;
    margin-top: 8px !important;
    border-radius: 10px !important;
}

/* GPS não fica colado no salvar */
.use-my-location-btn,
.use-location-btn,
[class*="use-location"],
[id*="useLocation"],
[id*="myLocation"] {
    margin-bottom: 14px !important;
}

/* Botão salvar ganha separação visual */
.save-suggestion-btn,
.save-location-btn,
[class*="save-suggestion"],
[id*="saveSuggestion"] {
    margin-top: 16px !important;
}

/* ---------- 6. SIDEBAR: scroll real e sem esconder último item ---------- */
.sidebar {
    height: calc(100dvh - var(--topbar)) !important;
    max-height: calc(100dvh - var(--topbar)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-bottom: 28px !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable;
}

/* ---------- 7. DARK: contraste consistente ---------- */
html[data-theme="dark"] .webgis-candidate-popup .popup-desc,
html[data-theme="dark"] .candidate-suggestion-note,
html[data-theme="dark"] .candidate-suggestion-point-card {
    background: transparent !important;
    color: #d6dfeb !important;
    border-color: #29394e !important;
}

html[data-theme="dark"] .webgis-candidate-popup button {
    background: #172235 !important;
    border-color: #304159 !important;
    color: #eef3f9 !important;
}

html[data-theme="dark"] .webgis-candidate-popup .view-structured-area-btn,
html[data-theme="dark"] .webgis-candidate-popup .view-original-area-btn,
html[data-theme="dark"] .webgis-candidate-popup .view-pending-area-btn,
html[data-theme="dark"] .webgis-candidate-popup .view-approved-area-btn {
    background: var(--brand) !important;
    border-color: var(--brand) !important;
    color: #fff !important;
}

/* ---------- 8. MOBILE ---------- */
@media (max-width: 768px) {
    .modal,
    .field-modal {
        padding: 8px !important;
        align-items: flex-end !important;
    }

    .modal-card,
    .field-modal-card,
    .webgis-field-modal-card {
        width: 100% !important;
        max-width: none !important;
        max-height: 88dvh !important;
        border-radius: 18px 18px 12px 12px !important;
    }

    .webgis-candidate-popup .maplibregl-popup-content,
    .candidate-suggestion-popup .maplibregl-popup-content {
        width: 100% !important;
        max-width: none !important;
        max-height: 66dvh !important;
        border-radius: 17px !important;
    }

    .webgis-candidate-popup .popup-desc {
        max-height: 160px !important;
    }

    .map-basemap-control,
    .basemap-control,
    #mapBasemapControl {
        gap: 2px !important;
        padding: 4px !important;
    }

    .map-basemap-control button,
    .basemap-control button,
    #mapBasemapControl button {
        min-width: 55px !important;
        min-height: 38px !important;
        padding: 7px 8px !important;
        font-size: 10px !important;
    }
}


/* =====================================================================
   ETAPA 10.9 — JANELAS REAIS (SEM FORMULÁRIO PRESO AO MAPA)
   ===================================================================== */

/* BASemap: seletor sólido e sempre legível */
#webgis-basemap-switch,
.webgis-basemap-switch {
    position: absolute !important;
    right: 76px !important;
    bottom: 14px !important;
    z-index: 30 !important;
    display: flex !important;
    gap: 3px !important;
    padding: 5px !important;
    border: 1px solid rgba(15,23,42,.18) !important;
    border-radius: 13px !important;
    background: #ffffff !important;
    box-shadow: 0 8px 26px rgba(15,23,42,.22) !important;
    opacity: 1 !important;
}
#webgis-basemap-switch button,
.webgis-basemap-switch button {
    min-width: 62px !important;
    min-height: 36px !important;
    padding: 7px 10px !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: transparent !important;
    color: #17212b !important;
    opacity: 1 !important;
    cursor: pointer !important;
    font-size: 11px !important;
    font-weight: 850 !important;
    text-shadow: none !important;
}
#webgis-basemap-switch button:hover,
.webgis-basemap-switch button:hover {
    background: #eef2f7 !important;
    color: #0f172a !important;
}
#webgis-basemap-switch button.active,
#webgis-basemap-switch button[aria-pressed="true"],
.webgis-basemap-switch button.active,
.webgis-basemap-switch button[aria-pressed="true"] {
    background: #e7edff !important;
    color: #3347d8 !important;
}

/* Janela de informação: independente do MapLibre e do zoom */
.webgis-info-window {
    position: fixed !important;
    z-index: 1200 !important;
    top: 92px !important;
    right: 28px !important;
    width: 370px !important;
    max-width: calc(100vw - 40px) !important;
    max-height: calc(100dvh - 130px) !important;
    overflow: hidden !important;
    border: 1px solid var(--line) !important;
    border-top: 3px solid var(--brand) !important;
    border-radius: 17px !important;
    background: var(--panel) !important;
    color: var(--text) !important;
    box-shadow: 0 22px 65px rgba(15,23,42,.25) !important;
}
.webgis-info-pending { border-top-color: #f59e0b !important; }
.webgis-info-approved { border-top-color: #16a34a !important; }

.webgis-info-close,
.webgis-edit-close {
    position: absolute !important;
    z-index: 3 !important;
    top: 10px !important;
    right: 10px !important;
    width: 32px !important;
    height: 32px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: transparent !important;
    color: var(--muted) !important;
    cursor: pointer !important;
    font-size: 22px !important;
    line-height: 30px !important;
}
.webgis-info-close:hover,
.webgis-edit-close:hover {
    background: var(--panel-3) !important;
    color: var(--text) !important;
}

.webgis-info-body {
    max-height: calc(100dvh - 135px) !important;
    overflow-y: auto !important;
    padding: 17px !important;
    scrollbar-width: thin;
}
.webgis-info-body .popup-title {
    margin: 0 40px 3px 0 !important;
    padding: 0 !important;
    color: var(--text) !important;
    font-size: 18px !important;
    font-weight: 900 !important;
}
.webgis-info-body .project-meta {
    margin: 0 0 12px !important;
    padding: 0 !important;
    color: var(--muted) !important;
    font-size: 10px !important;
}
.webgis-info-body .popup-desc {
    margin: 0 0 12px !important;
    padding: 10px 0 !important;
    border: 0 !important;
    border-top: 1px solid var(--line-soft) !important;
    border-bottom: 1px solid var(--line-soft) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--text-soft) !important;
    line-height: 1.55 !important;
}
.webgis-info-body button:not(.webgis-info-close) {
    width: 100% !important;
    min-height: 40px !important;
    margin: 0 0 8px !important;
    padding: 9px 12px !important;
    border: 1px solid var(--line) !important;
    border-radius: 10px !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    text-align: center !important;
    cursor: pointer !important;
}
.webgis-info-body .view-structured-area-btn,
.webgis-info-body .view-original-area-btn,
.webgis-info-body .view-pending-area-btn,
.webgis-info-body .view-approved-area-btn {
    background: var(--brand) !important;
    border-color: var(--brand) !important;
    color: #fff !important;
}

/* Editor de localização: janela própria; NÃO acompanha o marcador */
.webgis-edit-window {
    position: fixed !important;
    z-index: 1250 !important;
    top: 82px !important;
    right: 24px !important;
    width: 520px !important;
    max-width: calc(100vw - 40px) !important;
    max-height: calc(100dvh - 110px) !important;
    overflow: hidden !important;
    border: 1px solid var(--line) !important;
    border-radius: 18px !important;
    background: var(--panel) !important;
    color: var(--text) !important;
    box-shadow: 0 24px 70px rgba(15,23,42,.28) !important;
}
.webgis-edit-body {
    max-height: calc(100dvh - 110px) !important;
    overflow-y: auto !important;
    padding: 18px !important;
}
.webgis-edit-body .candidate-location-editor-title {
    margin-right: 42px !important;
    color: var(--text) !important;
    font-size: 18px !important;
    font-weight: 900 !important;
}
.webgis-edit-body .candidate-location-editor-subtitle {
    margin: 3px 0 15px !important;
    color: var(--muted) !important;
}
.webgis-edit-body .candidate-coordinate-grid {
    display: grid !important;
    gap: 9px !important;
}
.webgis-edit-body .candidate-coordinate-row {
    display: grid !important;
    grid-template-columns: 42px 1fr 1fr !important;
    gap: 9px !important;
    align-items: end !important;
    padding: 10px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: 11px !important;
    background: var(--panel-2) !important;
}
.webgis-edit-body .candidate-coordinate-point {
    align-self: center !important;
    color: var(--brand) !important;
    font-weight: 900 !important;
}
.webgis-edit-body .candidate-coordinate-row label span,
.webgis-edit-body .candidate-location-observation > span {
    display: block !important;
    margin-bottom: 5px !important;
    color: var(--muted) !important;
    font-size: 9px !important;
    font-weight: 800 !important;
}
.webgis-edit-body .candidate-location-observation {
    display: block !important;
    margin-top: 15px !important;
}
.webgis-edit-body .candidate-location-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 18px !important;
    padding-top: 16px !important;
    border-top: 1px solid var(--line-soft) !important;
}
.webgis-edit-body .candidate-use-gps-location-btn,
.webgis-edit-body .candidate-save-location-btn {
    width: 100% !important;
    min-height: 44px !important;
    margin: 0 !important;
    border-radius: 10px !important;
}
.webgis-edit-body .candidate-use-gps-location-btn {
    border: 1px solid var(--line) !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
}
.webgis-edit-body .candidate-save-location-btn {
    border: 1px solid var(--brand) !important;
    background: var(--brand) !important;
    color: #fff !important;
}

/* Dark: janelas continuam legíveis */
html[data-theme="dark"] .webgis-info-window,
html[data-theme="dark"] .webgis-edit-window {
    background: #0f1724 !important;
    border-color: #2b3b50 !important;
    color: #eef3f9 !important;
}
html[data-theme="dark"] .webgis-info-pending { border-top-color: #f59e0b !important; }
html[data-theme="dark"] .webgis-info-approved { border-top-color: #22c55e !important; }
html[data-theme="dark"] .webgis-info-body .popup-desc {
    color: #d3ddea !important;
    border-color: #29394e !important;
}
html[data-theme="dark"] .webgis-info-body button:not(.webgis-info-close),
html[data-theme="dark"] .webgis-edit-body .candidate-coordinate-row,
html[data-theme="dark"] .webgis-edit-body .candidate-use-gps-location-btn {
    background: #172235 !important;
    border-color: #304159 !important;
    color: #eef3f9 !important;
}
html[data-theme="dark"] .webgis-info-body .view-structured-area-btn,
html[data-theme="dark"] .webgis-info-body .view-original-area-btn,
html[data-theme="dark"] .webgis-info-body .view-pending-area-btn,
html[data-theme="dark"] .webgis-info-body .view-approved-area-btn,
html[data-theme="dark"] .webgis-edit-body .candidate-save-location-btn {
    background: var(--brand) !important;
    border-color: var(--brand) !important;
    color: #fff !important;
}

/* Mobile: informação e edição viram bottom sheet */
@media (max-width: 768px) {
    #webgis-basemap-switch,
    .webgis-basemap-switch {
        right: 66px !important;
        bottom: 12px !important;
        padding: 4px !important;
    }
    #webgis-basemap-switch button,
    .webgis-basemap-switch button {
        min-width: 52px !important;
        min-height: 38px !important;
        padding: 6px 7px !important;
        font-size: 10px !important;
    }

    .webgis-info-window,
    .webgis-edit-window {
        top: auto !important;
        left: 8px !important;
        right: 8px !important;
        bottom: 8px !important;
        width: auto !important;
        max-width: none !important;
        max-height: 72dvh !important;
        border-radius: 18px !important;
    }
    .webgis-info-body,
    .webgis-edit-body {
        max-height: 72dvh !important;
        padding: 15px !important;
    }
    .webgis-edit-body .candidate-coordinate-row {
        grid-template-columns: 34px 1fr !important;
    }
    .webgis-edit-body .candidate-coordinate-row label {
        grid-column: 2 !important;
    }
}



/* =====================================================================
   ETAPA 10.10 — JANELAS SEMPRE DENTRO DA VIEWPORT
   ===================================================================== */
.webgis-info-window {
    top: 82px !important;
    right: 24px !important;
    bottom: 24px !important;
    width: 370px !important;
    height: auto !important;
    max-height: none !important;
    display: flex !important;
    flex-direction: column !important;
}
.webgis-info-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 17px 19px 22px 17px !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: #94a3b8 transparent !important;
}
.webgis-info-body::-webkit-scrollbar { width: 7px !important; }
.webgis-info-body::-webkit-scrollbar-track { background: transparent !important; }
.webgis-info-body::-webkit-scrollbar-thumb {
    background: #a8b4c3 !important;
    border-radius: 999px !important;
}

.webgis-edit-window {
    top: 82px !important;
    right: 24px !important;
    bottom: 24px !important;
    width: 520px !important;
    height: auto !important;
    max-height: none !important;
    display: flex !important;
    flex-direction: column !important;
}
.webgis-edit-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 18px 20px 24px 18px !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: #94a3b8 transparent !important;
}
.webgis-edit-body::-webkit-scrollbar { width: 7px !important; }
.webgis-edit-body::-webkit-scrollbar-track { background: transparent !important; }
.webgis-edit-body::-webkit-scrollbar-thumb {
    background: #a8b4c3 !important;
    border-radius: 999px !important;
}
html[data-theme="dark"] .webgis-info-body,
html[data-theme="dark"] .webgis-edit-body {
    scrollbar-color: #475569 transparent !important;
}
html[data-theme="dark"] .webgis-info-body::-webkit-scrollbar-thumb,
html[data-theme="dark"] .webgis-edit-body::-webkit-scrollbar-thumb {
    background: #475569 !important;
}

@media (max-height: 760px) and (min-width: 769px) {
    .webgis-info-window,
    .webgis-edit-window {
        top: 72px !important;
        bottom: 12px !important;
    }
}

@media (max-width: 768px) {
    .webgis-info-window,
    .webgis-edit-window {
        top: auto !important;
        left: 8px !important;
        right: 8px !important;
        bottom: 8px !important;
        width: auto !important;
        height: auto !important;
        max-height: calc(100dvh - 74px) !important;
        display: flex !important;
        flex-direction: column !important;
    }
    .webgis-info-body,
    .webgis-edit-body {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        max-height: calc(100dvh - 82px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        padding-bottom: 24px !important;
    }
}

@media (max-height: 520px) {
    .webgis-info-window,
    .webgis-edit-window {
        top: 8px !important;
        bottom: 8px !important;
        max-height: calc(100dvh - 16px) !important;
    }
    .webgis-info-body,
    .webgis-edit-body {
        max-height: calc(100dvh - 24px) !important;
    }
}


/* =====================================================================
   ETAPA 10.11 — JANELAS CENTRALIZADAS + COMPACTAS + ESC
   Regra oficial:
   conteúdo define altura; viewport define apenas o limite máximo.
   ===================================================================== */

.webgis-info-window,
.webgis-edit-window {
    position: fixed !important;
    z-index: 1250 !important;

    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 48px) !important;

    transform: translate(-50%, -50%) !important;

    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

.webgis-info-window {
    width: min(390px, calc(100vw - 40px)) !important;
}

.webgis-edit-window {
    width: min(540px, calc(100vw - 40px)) !important;
}

/* A janela não cresce artificialmente.
   Só o conteúdo interno rola quando realmente faltar espaço. */
.webgis-info-body,
.webgis-edit-body {
    flex: 0 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: calc(100dvh - 48px) !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
}

/* Fecha sempre acessível no canto da própria janela */
.webgis-info-close,
.webgis-edit-close {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 10 !important;
}

/* Notebook/tela baixa: continua centralizado, só reduz o limite */
@media (max-height: 760px) and (min-width: 769px) {
    .webgis-info-window,
    .webgis-edit-window {
        top: 50% !important;
        bottom: auto !important;
        max-height: calc(100dvh - 24px) !important;
    }

    .webgis-info-body,
    .webgis-edit-body {
        max-height: calc(100dvh - 24px) !important;
    }
}

/* CELULAR — mesma lógica do PC: centralizado, compacto e rolável.
   Não vira mais painel colado no rodapé. */
@media (max-width: 768px) {
    .webgis-info-window,
    .webgis-edit-window {
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;

        width: calc(100vw - 24px) !important;
        max-width: 560px !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: calc(100dvh - 24px) !important;

        transform: translate(-50%, -50%) !important;
        border-radius: 16px !important;
    }

    .webgis-info-body,
    .webgis-edit-body {
        flex: 0 1 auto !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: calc(100dvh - 24px) !important;
        overflow-y: auto !important;
        padding-bottom: 20px !important;
    }

    /* P1-P4 continuam legíveis sem estourar horizontalmente */
    .webgis-edit-body .candidate-coordinate-row {
        grid-template-columns: 36px minmax(0, 1fr) !important;
    }

    .webgis-edit-body .candidate-coordinate-row label {
        grid-column: 2 !important;
        min-width: 0 !important;
    }
}

/* Celular muito estreito */
@media (max-width: 420px) {
    .webgis-info-window,
    .webgis-edit-window {
        width: calc(100vw - 16px) !important;
        max-height: calc(100dvh - 16px) !important;
    }

    .webgis-info-body,
    .webgis-edit-body {
        padding-left: 14px !important;
        padding-right: 14px !important;
        max-height: calc(100dvh - 16px) !important;
    }
}


/* =====================================================================
   ETAPA 10.12 — REGRA ÚNICA PARA TODAS AS JANELAS
   Original / Pendente / Aprovado / KMZ / Sugestão
   ===================================================================== */

.webgis-info-window,
.webgis-edit-window {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;

    width: min(430px, calc(100vw - 32px)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: min(720px, calc(100dvh - 40px)) !important;

    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

.webgis-edit-window {
    width: min(560px, calc(100vw - 32px)) !important;
}

/* IMPORTANTE: o corpo usa a altura natural.
   Scroll só aparece quando a JANELA inteira realmente não cabe na tela. */
.webgis-info-body,
.webgis-edit-body {
    display: block !important;
    flex: 0 1 auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 40px) !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    overscroll-behavior: contain !important;
}

/* Neutraliza caixas internas antigas que estavam criando aquele
   mini-scroll só nas informações do candidato. */
.webgis-info-body .popup-desc,
.webgis-info-body .candidate-popup-content,
.webgis-info-body .candidate-info,
.webgis-info-body .candidate-details,
.webgis-info-body .candidate-popup-details,
.webgis-info-body .popup-content,
.webgis-info-body [class*="candidate"][class*="detail"],
.webgis-info-body [class*="candidate"][class*="info"] {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

/* A janela inteira recebe o scroll, nunca somente ID/PN/Status. */
.webgis-info-body {
    scrollbar-gutter: auto !important;
}

/* Mantém botões no fluxo normal, visíveis ao rolar a janela. */
.webgis-info-body button,
.webgis-edit-body button {
    flex-shrink: 0 !important;
}

/* Sugestões/aprovados usam a mesma geometria visual da janela original. */
.webgis-info-pending,
.webgis-info-approved,
.webgis-info-original {
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
}

/* CELULAR: mesma janela, centralizada, quase tela cheia apenas quando necessário. */
@media (max-width: 768px) {
    .webgis-info-window,
    .webgis-edit-window,
    .webgis-info-pending,
    .webgis-info-approved,
    .webgis-info-original {
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;

        width: calc(100vw - 20px) !important;
        height: auto !important;
        max-height: calc(100dvh - 20px) !important;
        border-radius: 16px !important;
    }

    .webgis-info-body,
    .webgis-edit-body {
        height: auto !important;
        max-height: calc(100dvh - 20px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }
}

/* Tela muito baixa: preserva margem e deixa o corpo rolar. */
@media (max-height: 560px) {
    .webgis-info-window,
    .webgis-edit-window {
        max-height: calc(100dvh - 16px) !important;
    }

    .webgis-info-body,
    .webgis-edit-body {
        max-height: calc(100dvh - 16px) !important;
    }
}


/* =====================================================================
   ETAPA 10.13 — CARD COMPLETO EM QUALQUER ZOOM
   ===================================================================== */

.webgis-info-window {
    width: min(430px, calc(100vw - 32px)) !important;
    max-height: calc(100dvh - 32px) !important;
}

.webgis-info-body {
    width: 100% !important;
    max-height: calc(100dvh - 32px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

/* Nenhuma seção interna do card pode criar seu próprio mini-scroll. */
.webgis-info-body .popup-desc,
.webgis-info-body .candidate-suggestion-card,
.webgis-info-body .candidate-suggestion-meta,
.webgis-info-body .candidate-suggestion-note,
.webgis-info-body .candidate-suggestion-points-grid {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

/* Sugestão segue exatamente a largura/centralização da janela normal. */
.webgis-info-body .candidate-suggestion-card {
    width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

@media (max-width: 768px) {
    .webgis-info-window {
        width: calc(100vw - 18px) !important;
        max-height: calc(100dvh - 18px) !important;
    }

    .webgis-info-body {
        max-height: calc(100dvh - 18px) !important;
    }
}


/* =====================================================================
   ETAPA 10.20 — FLUXO DINÂMICO + DARK MODE FINAL
   Este bloco fica por último de propósito para neutralizar estilos antigos.
   ===================================================================== */

/* ---------- P1-P4 opcional / dinâmico ---------- */
#webgis-candidate-edit-window .candidate-editor-summary {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 10px !important;
    align-items: center !important;
}

#webgis-candidate-edit-window .candidate-points-toggle {
    min-width: 112px !important;
}

#webgis-candidate-edit-window .candidate-coordinate-editor.is-collapsed {
    display: none !important;
}

/* ---------- JANELAS: tema claro consistente ---------- */
.webgis-info-window,
.webgis-edit-window,
#webgis-candidate-edit-window {
    border-color: var(--line) !important;
    background: var(--panel) !important;
    color: var(--text) !important;
}

.webgis-info-body,
.webgis-edit-body,
#webgis-candidate-edit-window .webgis-edit-body {
    color: var(--text) !important;
}

.webgis-info-body .popup-desc,
.webgis-info-body .candidate-suggestion-note,
.webgis-info-body .candidate-suggestion-meta {
    color: var(--text-soft) !important;
}

/* ---------- DARK: base geral ---------- */
html[data-theme="dark"] body,
html[data-theme="dark"] .app-screen,
html[data-theme="dark"] .workspace {
    background: #0b1220 !important;
    color: #eef3f9 !important;
}

html[data-theme="dark"] .topbar {
    background: #0d1624 !important;
    color: #f8fafc !important;
    border-bottom-color: #26364a !important;
}

html[data-theme="dark"] .sidebar {
    background: #101927 !important;
    color: #eef3f9 !important;
    border-right-color: #29394e !important;
}

html[data-theme="dark"] .project-card,
html[data-theme="dark"] .project-item,
html[data-theme="dark"] .sidebar-note,
html[data-theme="dark"] .color-panel,
html[data-theme="dark"] .color-panel-content,
html[data-theme="dark"] .new-user-form,
html[data-theme="dark"] .user-item {
    background: #141f30 !important;
    color: #eef3f9 !important;
    border-color: #2b3c52 !important;
}

html[data-theme="dark"] .project-meta,
html[data-theme="dark"] .sidebar-note,
html[data-theme="dark"] .candidate-suggestion-meta,
html[data-theme="dark"] .project-meta *,
html[data-theme="dark"] .small-status {
    color: #93a4bb !important;
}

/* ---------- DARK: controles / inputs ---------- */
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] #webgis-candidate-edit-window input,
html[data-theme="dark"] #webgis-candidate-edit-window textarea {
    background: #0c1421 !important;
    color: #edf4fb !important;
    border-color: #34465f !important;
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder {
    color: #71839a !important;
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus {
    border-color: #6f86ff !important;
    box-shadow: 0 0 0 3px rgba(92,116,255,.16) !important;
}

/* ---------- DARK: janela do candidato ---------- */
html[data-theme="dark"] .webgis-info-window,
html[data-theme="dark"] .webgis-edit-window,
html[data-theme="dark"] #webgis-candidate-edit-window.webgis-edit-window {
    background: #0f1826 !important;
    color: #eef3f9 !important;
    border-color: #2b3c52 !important;
    box-shadow: 0 22px 70px rgba(0,0,0,.48) !important;
}

html[data-theme="dark"] .webgis-info-close,
html[data-theme="dark"] .webgis-edit-close {
    color: #9fb0c4 !important;
}

html[data-theme="dark"] .webgis-info-close:hover,
html[data-theme="dark"] .webgis-edit-close:hover {
    background: #1b2a3e !important;
    color: #ffffff !important;
}

/* ---------- DARK: editor de localização ---------- */
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-location-editor,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-location-editor-title,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-editor-summary-main strong {
    color: #eef3f9 !important;
}

html[data-theme="dark"] #webgis-candidate-edit-window .candidate-location-editor-subtitle,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-editor-summary-main span,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-editor-summary-main small,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-coordinate-hint,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-location-observation > span {
    color: #9aacbf !important;
}

html[data-theme="dark"] #webgis-candidate-edit-window .candidate-editor-summary,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-coordinate-editor,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-location-summary,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-coordinate-row {
    background: #131f30 !important;
    border-color: #2c3d54 !important;
    color: #e8eef6 !important;
}

html[data-theme="dark"] #webgis-candidate-edit-window .candidate-auto-area-hint {
    background: rgba(88,113,255,.13) !important;
    color: #c5d0de !important;
}

html[data-theme="dark"] #webgis-candidate-edit-window .candidate-points-toggle,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-use-gps-location-btn,
html[data-theme="dark"] #webgis-candidate-edit-window .use-gps-location-btn {
    background: #18263a !important;
    color: #edf4fb !important;
    border-color: #34475f !important;
}

html[data-theme="dark"] #webgis-candidate-edit-window .candidate-points-toggle:hover,
html[data-theme="dark"] #webgis-candidate-edit-window .candidate-use-gps-location-btn:hover,
html[data-theme="dark"] #webgis-candidate-edit-window .use-gps-location-btn:hover {
    background: #213149 !important;
}

html[data-theme="dark"] #webgis-candidate-edit-window .candidate-save-location-btn,
html[data-theme="dark"] #webgis-candidate-edit-window .save-location-btn {
    background: #4f6bed !important;
    color: #ffffff !important;
    border-color: #6179f2 !important;
}

/* ---------- DARK: cards de sugestão / P1-P4 ---------- */
html[data-theme="dark"] .candidate-suggestion-card,
html[data-theme="dark"] .candidate-suggestion-point-card,
html[data-theme="dark"] .candidate-suggestion-note {
    background: transparent !important;
    color: #dce6f2 !important;
    border-color: #2b3c52 !important;
}

html[data-theme="dark"] .candidate-suggestion-point-value strong {
    color: #dce6f2 !important;
}

html[data-theme="dark"] .candidate-suggestion-point-value span,
html[data-theme="dark"] .candidate-suggestion-meta {
    color: #91a3b9 !important;
}

html[data-theme="dark"] .candidate-pending-field-data,
html[data-theme="dark"] .candidate-awaiting-admin {
    background: #152236 !important;
    color: #dce6f2 !important;
    border-color: #2e4058 !important;
}

/* ---------- DARK: modais e histórico ---------- */
html[data-theme="dark"] .modal,
html[data-theme="dark"] .field-modal,
html[data-theme="dark"] #fieldHistoryModal,
html[data-theme="dark"] #kmzVersionsModal,
html[data-theme="dark"] #kmzCompareModal {
    background: rgba(2, 6, 23, .58) !important;
}

html[data-theme="dark"] .modal-card,
html[data-theme="dark"] .field-modal-card,
html[data-theme="dark"] .webgis-field-modal-card,
html[data-theme="dark"] .field-history-modal-card {
    background: #0f1826 !important;
    color: #eef3f9 !important;
    border-color: #2b3c52 !important;
}

html[data-theme="dark"] .field-section,
html[data-theme="dark"] .field-history-filters,
html[data-theme="dark"] .field-history-card,
html[data-theme="dark"] .field-history-item,
html[data-theme="dark"] .kmz-version-item,
html[data-theme="dark"] .kmz-compare-change,
html[data-theme="dark"] .kmz-compare-stat {
    background: #131f30 !important;
    color: #e6edf6 !important;
    border-color: #2c3d54 !important;
}

/* ---------- DARK: seletor Mapa / Mapbox / MapTiler ---------- */
html[data-theme="dark"] #webgis-basemap-switch,
html[data-theme="dark"] .webgis-basemap-switch,
html[data-theme="dark"] .map-basemap-control,
html[data-theme="dark"] .basemap-control,
html[data-theme="dark"] #mapBasemapControl {
    background: rgba(15,24,38,.96) !important;
    color: #eef3f9 !important;
    border-color: #304159 !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.38) !important;
}

html[data-theme="dark"] #webgis-basemap-switch button,
html[data-theme="dark"] .webgis-basemap-switch button,
html[data-theme="dark"] .map-basemap-control button,
html[data-theme="dark"] .basemap-control button,
html[data-theme="dark"] #mapBasemapControl button {
    background: transparent !important;
    color: #cbd7e6 !important;
}

html[data-theme="dark"] #webgis-basemap-switch button:hover,
html[data-theme="dark"] .webgis-basemap-switch button:hover,
html[data-theme="dark"] .map-basemap-control button:hover,
html[data-theme="dark"] .basemap-control button:hover,
html[data-theme="dark"] #mapBasemapControl button:hover {
    background: #1b2a3e !important;
    color: #ffffff !important;
}

html[data-theme="dark"] #webgis-basemap-switch button.active,
html[data-theme="dark"] #webgis-basemap-switch button[aria-pressed="true"],
html[data-theme="dark"] .webgis-basemap-switch button.active,
html[data-theme="dark"] .webgis-basemap-switch button[aria-pressed="true"],
html[data-theme="dark"] .map-basemap-control button.active,
html[data-theme="dark"] .basemap-control button.active,
html[data-theme="dark"] #mapBasemapControl button.active {
    background: #26365c !important;
    color: #aebcff !important;
}

/* ---------- DARK: controles MapLibre ---------- */
html[data-theme="dark"] .maplibregl-ctrl-group {
    background: #0f1826 !important;
    border-color: #304159 !important;
    box-shadow: 0 5px 18px rgba(0,0,0,.34) !important;
}

html[data-theme="dark"] .maplibregl-ctrl-group button {
    background-color: #0f1826 !important;
    border-color: #304159 !important;
}

html[data-theme="dark"] .maplibregl-ctrl-group button:hover {
    background-color: #1b2a3e !important;
}

html[data-theme="dark"] .maplibregl-ctrl-icon {
    filter: invert(1) brightness(1.7) !important;
}

/* ---------- DARK: status ---------- */
html[data-theme="dark"] #statusBar,
html[data-theme="dark"] .status-bar {
    background: rgba(10,17,29,.91) !important;
    color: #e5edf7 !important;
    border-color: #304159 !important;
}

/* ---------- SCROLLBARS ---------- */
html[data-theme="dark"] .sidebar,
html[data-theme="dark"] .webgis-info-body,
html[data-theme="dark"] .webgis-edit-body,
html[data-theme="dark"] .field-modal-body,
html[data-theme="dark"] .field-history-body {
    scrollbar-color: #415675 #111b2a;
}

html[data-theme="dark"] .sidebar::-webkit-scrollbar,
html[data-theme="dark"] .webgis-info-body::-webkit-scrollbar,
html[data-theme="dark"] .webgis-edit-body::-webkit-scrollbar,
html[data-theme="dark"] .field-modal-body::-webkit-scrollbar,
html[data-theme="dark"] .field-history-body::-webkit-scrollbar {
    width: 9px;
}

html[data-theme="dark"] .sidebar::-webkit-scrollbar-thumb,
html[data-theme="dark"] .webgis-info-body::-webkit-scrollbar-thumb,
html[data-theme="dark"] .webgis-edit-body::-webkit-scrollbar-thumb,
html[data-theme="dark"] .field-modal-body::-webkit-scrollbar-thumb,
html[data-theme="dark"] .field-history-body::-webkit-scrollbar-thumb {
    background: #415675;
    border-radius: 999px;
    border: 2px solid #111b2a;
}

/* ---------- MOBILE ---------- */
@media (max-width: 700px) {
    #webgis-candidate-edit-window .candidate-editor-summary {
        grid-template-columns: 1fr !important;
    }

    #webgis-candidate-edit-window .candidate-points-toggle {
        width: 100% !important;
        min-width: 0 !important;
    }

    #webgis-candidate-edit-window .candidate-coordinate-row {
        grid-template-columns: 30px minmax(0, 1fr) !important;
    }

    #webgis-candidate-edit-window .candidate-coordinate-row label {
        grid-column: 2 !important;
    }

    #webgis-candidate-edit-window .candidate-location-actions {
        position: sticky !important;
        bottom: 0 !important;
        z-index: 3 !important;
        padding: 10px 0 2px !important;
        background: var(--panel) !important;
    }

    html[data-theme="dark"] #webgis-candidate-edit-window .candidate-location-actions {
        background: #0f1826 !important;
    }
}


/* =====================================================================
   ETAPA 10.21 — JANELAS DINÂMICAS / RESUMO / ESC GLOBAL
   ===================================================================== */

.webgis-summary-window {
    position: fixed !important;
    inset: 118px 22px auto auto !important;
    z-index: 12150 !important;
    width: min(720px, calc(100vw - 320px)) !important;
    max-width: 720px !important;
    max-height: calc(100dvh - 145px) !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    pointer-events: auto !important;
}

.webgis-summary-window.hidden {
    display: none !important;
}

.webgis-summary-card {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-height: calc(100dvh - 145px) !important;
    overflow: hidden !important;
    border: 1px solid var(--line) !important;
    border-radius: 18px !important;
    background: var(--panel) !important;
    color: var(--text) !important;
    box-shadow: 0 22px 60px rgba(15, 23, 42, .22) !important;
}

.webgis-summary-header {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 14px !important;
    padding: 16px 18px 13px !important;
    border-bottom: 1px solid var(--line) !important;
    background: var(--panel) !important;
    flex: 0 0 auto !important;
}

.webgis-summary-heading {
    min-width: 0 !important;
}

.webgis-summary-heading h3 {
    margin: 0 0 4px !important;
    color: var(--text) !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
}

.webgis-summary-heading .project-meta {
    margin: 0 !important;
    color: var(--muted) !important;
    font-size: 12px !important;
}

.webgis-summary-close {
    width: 32px !important;
    height: 32px !important;
    flex: 0 0 32px !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: transparent !important;
    color: var(--muted) !important;
    font-size: 22px !important;
    line-height: 30px !important;
    cursor: pointer !important;
}

.webgis-summary-close:hover {
    background: var(--panel-2) !important;
    color: var(--text) !important;
}

.webgis-summary-body {
    min-height: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    padding: 16px 18px 18px !important;
    color: var(--text) !important;
}

.webgis-summary-body .base-preview {
    padding: 0 !important;
    margin: 0 !important;
}

.webgis-summary-body .base-preview-grid {
    margin-top: 0 !important;
}

.webgis-summary-body .base-preview-card,
.webgis-summary-body .base-preview-project,
.webgis-summary-body .base-preview-check,
.webgis-summary-body .base-preview-security,
.webgis-summary-body .popup-desc {
    border-color: var(--line) !important;
}

html[data-theme="dark"] .webgis-summary-card,
html[data-theme="dark"] .webgis-summary-header {
    background: #0f1826 !important;
    color: #eef3f9 !important;
    border-color: #2b3c52 !important;
}

html[data-theme="dark"] .webgis-summary-heading h3,
html[data-theme="dark"] .webgis-summary-body {
    color: #eef3f9 !important;
}

html[data-theme="dark"] .webgis-summary-heading .project-meta {
    color: #9aacbf !important;
}

html[data-theme="dark"] .webgis-summary-body .base-preview-card,
html[data-theme="dark"] .webgis-summary-body .base-preview-project,
html[data-theme="dark"] .webgis-summary-body .base-preview-check,
html[data-theme="dark"] .webgis-summary-body .base-preview-security,
html[data-theme="dark"] .webgis-summary-body .popup-desc {
    background: #131f30 !important;
    color: #e6edf6 !important;
    border-color: #2c3d54 !important;
}

html[data-theme="dark"] .webgis-summary-close {
    color: #9fb0c4 !important;
}

html[data-theme="dark"] .webgis-summary-close:hover {
    background: #1b2a3e !important;
    color: #ffffff !important;
}

@media (max-width: 980px) {
    .webgis-summary-window {
        inset: 96px 14px auto 14px !important;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100dvh - 116px) !important;
    }

    .webgis-summary-card {
        max-height: calc(100dvh - 116px) !important;
    }
}

@media (max-width: 700px) {
    .webgis-summary-window {
        inset:
            auto
            8px
            calc(8px + env(safe-area-inset-bottom, 0px))
            8px !important;
        width: auto !important;
        max-height: min(72dvh, 620px) !important;
    }

    .webgis-summary-card {
        max-height: min(72dvh, 620px) !important;
        border-radius: 18px !important;
    }

    .webgis-summary-header {
        padding: 14px 15px 11px !important;
    }

    .webgis-summary-body {
        padding: 13px 15px 16px !important;
    }

    .webgis-summary-body .base-preview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}


/* =====================================================================
   ETAPA 10.22 — RESUMO CENTRAL + P1/P2/P3/P4 EM "VER ÁREA"
   ===================================================================== */

.webgis-summary-window {
    position: fixed !important;
    inset: auto !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;

    width: min(760px, calc(100vw - 40px)) !important;
    max-width: 760px !important;
    max-height: min(84dvh, 820px) !important;
}

.webgis-summary-card {
    max-height: min(84dvh, 820px) !important;
}

.webgis-summary-body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

@media (max-width: 980px) {
    .webgis-summary-window {
        position: fixed !important;
        inset: auto !important;
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;

        width: min(720px, calc(100vw - 28px)) !important;
        max-width: none !important;
        max-height: 84dvh !important;
    }

    .webgis-summary-card {
        max-height: 84dvh !important;
    }
}

@media (max-width: 700px) {
    .webgis-summary-window {
        position: fixed !important;
        inset: auto !important;
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;

        width: calc(100vw - 16px) !important;
        max-width: none !important;
        max-height: 86dvh !important;
    }

    .webgis-summary-card {
        max-height: 86dvh !important;
        border-radius: 17px !important;
    }

    .webgis-summary-header {
        padding: 13px 14px 10px !important;
    }

    .webgis-summary-heading h3 {
        font-size: 17px !important;
    }

    .webgis-summary-body {
        padding: 12px 14px 15px !important;
    }

    .webgis-summary-body .base-preview-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }
}


/* =====================================================================
   ETAPA 11 — BLINDAGEM RESPONSIVA DO MVP
   ===================================================================== */

.modal-card,
.field-modal-card,
.webgis-field-modal-card,
.field-history-modal-card,
.webgis-summary-card,
.webgis-info-window,
.webgis-edit-window {
    box-sizing: border-box !important;
    max-width: calc(100vw - 24px) !important;
}

.base-preview-projects,
.base-preview-checks,
.candidate-suggestion-points-grid,
.field-history-list {
    min-width: 0 !important;
}

.base-preview-project,
.base-preview-check,
.candidate-suggestion-point-card,
.field-history-version {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

.field-history-filters {
    display: grid !important;
    grid-template-columns:
        minmax(110px, 1fr)
        minmax(145px, 1fr)
        minmax(130px, 1fr)
        auto !important;
    gap: 8px !important;
    align-items: end !important;
}

.field-history-filters input,
.field-history-filters select,
.field-history-filters button {
    min-width: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.field-form input,
.field-form select,
.field-form textarea,
.candidate-location-editor input,
.candidate-location-editor textarea {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.field-photo-image-wrapper img,
.field-history-photo-item img {
    max-width: 100% !important;
    height: auto !important;
}

@media (max-width: 900px) {
    .field-history-filters {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 700px) {
    .modal,
    .field-modal,
    #fieldHistoryModal,
    #kmzVersionsModal,
    #kmzCompareModal {
        padding:
            max(8px, env(safe-area-inset-top, 0px))
            8px
            max(8px, env(safe-area-inset-bottom, 0px)) !important;
    }

    .modal-card,
    .field-modal-card,
    .webgis-field-modal-card,
    .field-history-modal-card {
        width: 100% !important;
        max-width: none !important;
        max-height: calc(
            100dvh -
            16px -
            env(safe-area-inset-top, 0px) -
            env(safe-area-inset-bottom, 0px)
        ) !important;
        border-radius: 16px !important;
    }

    .field-history-filters {
        grid-template-columns: 1fr !important;
    }

    .base-preview-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }

    .candidate-suggestion-points-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }

    .field-photo-actions {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }

    .field-photo-add-btn,
    button,
    .btn {
        min-height: 42px;
    }

    .project-card button,
    .candidate-suggestion-card button,
    .field-form button,
    .webgis-summary-card button {
        touch-action: manipulation;
    }
}

@media (max-width: 380px) {
    .base-preview-grid,
    .candidate-suggestion-points-grid,
    .field-photo-actions {
        grid-template-columns: 1fr !important;
    }
}



/* =====================================================================
   WEBGIS V2 - MOBILE FIRST / GOOGLE EARTH-LIKE FIELD UX
   ===================================================================== */
.v2-id-chip{display:inline-flex;margin:10px 0 8px;padding:7px 11px;border-radius:999px;background:var(--brand);color:#fff;font-weight:900;letter-spacing:.3px}
.v2-operadora-label{display:grid;gap:5px;margin:8px 0;font-size:12px}.v2-operadora-select{min-height:42px;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--panel);color:var(--text)}
.v2-start-visit,.v2-visit-history-btn,.v2-delete-object{width:100%;min-height:44px;margin-top:8px;border:0;border-radius:11px;font-weight:800}.v2-start-visit{background:#16a34a;color:white}.v2-visit-history-btn{background:#eef2f7;color:#243444}.v2-delete-object{background:#fee2e2;color:#991b1b}
.v2-field-sheet{position:fixed;z-index:15000;right:18px;bottom:18px;width:min(440px,calc(100vw - 36px));max-height:calc(100dvh - 90px);display:flex;flex-direction:column;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 70px rgba(15,23,42,.28);overflow:hidden}.v2-field-sheet.hidden{display:none!important}.v2-sheet-handle{display:none}.v2-field-sheet header{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 12px;border-bottom:1px solid var(--line)}.v2-field-sheet header>div{display:grid;gap:2px}.v2-field-sheet header small{color:var(--muted)}#v2-close-visit{border:0;background:transparent;font-size:28px;color:var(--text)}#v2-visit-body{padding:14px 16px;overflow:auto}.v2-field-sheet footer{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px;border-top:1px solid var(--line);background:var(--panel)}.v2-field-sheet footer button{min-height:48px;border:0;border-radius:12px;font-weight:850}#v2-save-exit{background:#e8edf3;color:#263442}#v2-finish-visit{background:#16a34a;color:#fff}.v2-section-title{margin:16px 0 8px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.v2-object-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.v2-add-type{min-height:76px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);display:grid;place-items:center;gap:3px;padding:8px}.v2-add-type b{font-size:25px}.v2-add-type span{font-size:11px;font-weight:800}.v2-quick-summary{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:12px}.v2-quick-summary span{padding:5px 8px;border-radius:999px;background:var(--bg)}.v2-photo-button{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:13px;background:#2563eb;color:#fff;font-weight:850;cursor:pointer}.v2-photo-count{margin-top:6px;font-size:12px;color:var(--muted)}.v2-object-list{display:grid;gap:7px}.v2-object-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-align:left}.v2-object-row>span{font-size:22px}.v2-object-row>div{display:grid}.v2-object-row small{color:var(--muted)}
@media(max-width:760px){.v2-field-sheet{left:0;right:0;bottom:0;width:100%;max-height:82dvh;border-radius:20px 20px 0 0;border-left:0;border-right:0;border-bottom:0}.v2-sheet-handle{display:block;width:44px;height:5px;border-radius:999px;background:#b8c2cc;margin:8px auto 0}.v2-object-grid{grid-template-columns:repeat(4,1fr)}.v2-add-type{min-height:72px;padding:6px}.v2-field-sheet footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}.webgis-info-window{max-width:calc(100vw - 20px)!important}}
@media(min-width:761px) and (max-width:1100px){.v2-field-sheet{width:min(500px,48vw)}.v2-object-grid{grid-template-columns:repeat(4,1fr)}}
html[data-theme="dark"] .v2-visit-history-btn,html[data-theme="dark"] #v2-save-exit{background:#263548;color:#e5edf7}

.v2-edit-object,.v2-move-object{width:100%;min-height:42px;margin-top:8px;border:0;border-radius:10px;font-weight:800;background:#e8edf3;color:#243444}.v2-object-photo{margin-left:auto;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#e8edf3;cursor:pointer}.v2-layer-filter{position:absolute;z-index:9000;right:12px;top:64px}.v2-layer-filter>button{min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--text);box-shadow:0 3px 12px rgba(0,0,0,.16);font-weight:800}.v2-layer-filter>div{margin-top:6px;min-width:170px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 8px 24px rgba(0,0,0,.18)}.v2-layer-filter label{display:flex;align-items:center;gap:7px;margin:0;padding:7px 3px;font-size:12px}.v2-layer-filter input{width:auto;min-height:auto}@media(max-width:760px){.v2-layer-filter{top:58px;right:8px}.v2-layer-filter>div{max-height:55dvh;overflow:auto}}

/* =====================================================================
   WEBGIS V2.1 - CAMPO FIRST / TABLET / ESCRITORIO
   Overrides finais para a nova experiencia de vistoria visual.
   ===================================================================== */
.v2-project-tools {
    display: grid;
    gap: 8px;
    margin: 10px 0 12px;
}
.v2-project-search-wrap {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: center;
    gap: 6px;
    padding: 0 10px;
    min-height: 42px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--panel);
    color: var(--muted);
}
.v2-project-search-wrap input {
    min-height: 40px;
    padding: 0;
    border: 0;
    box-shadow: none !important;
    background: transparent;
    color: var(--text);
}
#v2-photo-root-button {
    min-height: 42px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--panel);
    color: var(--text);
    font-weight: 750;
}
.v2-project-source {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    opacity: .9;
}

.v2-field-sheet,
.v2-picker {
    position: fixed;
    z-index: 15000;
    right: 18px;
    bottom: 18px;
    width: min(470px, calc(100vw - 36px));
    max-height: calc(100dvh - 92px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: var(--panel);
    color: var(--text);
    box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
}
.v2-picker { z-index: 15100; width: min(430px, calc(100vw - 36px)); }
.v2-field-sheet.hidden,
.v2-picker.hidden { display: none !important; }
.v2-sheet-handle { display: none; }
.v2-field-sheet header,
.v2-picker header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 15px 16px 12px;
    border-bottom: 1px solid var(--line);
    background: var(--panel);
}
.v2-field-sheet header > div,
.v2-picker header > div { display: grid; gap: 2px; min-width: 0; }
.v2-field-sheet header strong,
.v2-picker header strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-field-sheet header small,
.v2-picker header small { color: var(--muted); }
#v2-close-visit,
#v2-close-picker {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--text);
    font-size: 26px;
}
#v2-close-visit:hover,
#v2-close-picker:hover { background: var(--bg); }
#v2-visit-body,
#v2-picker-body { padding: 14px 16px 18px; overflow: auto; overscroll-behavior: contain; }
.v2-field-sheet footer {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: 8px;
    padding: 12px 16px;
    border-top: 1px solid var(--line);
    background: var(--panel);
}
.v2-field-sheet footer button {
    min-height: 48px;
    border: 0;
    border-radius: 12px;
    font-weight: 850;
}
#v2-save-exit { background: #e8edf3; color: #263442; }
#v2-finish-visit { background: #16a34a; color: #fff; }
#v2-finish-visit:disabled { opacity: .45; cursor: not-allowed; }

.v2-visit-headline {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}
.v2-quick-summary { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.v2-quick-summary span,
.v2-review-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--bg);
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}
.v2-visit-headline .v2-visit-history-btn {
    width: auto;
    min-height: 34px;
    margin: 0;
    padding: 6px 10px;
    flex: 0 0 auto;
}
.v2-section-title,
.v2-picker-step-title {
    margin: 16px 0 8px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .45px;
    text-transform: uppercase;
}
.v2-object-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}
.v2-add-type {
    min-height: 78px;
    padding: 8px 6px;
    display: grid;
    place-items: center;
    gap: 4px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--panel);
    color: var(--text);
    touch-action: manipulation;
}
.v2-add-type:hover,
.v2-add-type:active { background: var(--bg); transform: translateY(-1px); }
.v2-add-type b { font-size: 26px; line-height: 1; }
.v2-add-type span { font-size: 11px; font-weight: 850; text-align: center; }

.v2-photo-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 10px;
    border-radius: 13px;
    background: #2563eb;
    color: #fff;
    font-weight: 850;
    cursor: pointer;
    touch-action: manipulation;
}
.v2-readonly-note,
.v2-empty-card {
    padding: 12px;
    border: 1px dashed var(--line);
    border-radius: 12px;
    background: var(--bg);
    color: var(--muted);
    font-size: 12px;
}
.v2-object-list { display: grid; gap: 8px; }
.v2-object-row {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 9px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--panel);
}
.v2-object-focus,
.v2-object-photo,
.v2-object-menu {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--bg);
    color: var(--text);
    cursor: pointer;
}
.v2-object-focus { font-size: 22px; }
.v2-object-menu { font-size: 20px; }
.v2-object-row-actions { display: flex; align-items: center; gap: 6px; }
.v2-object-main { display: grid; min-width: 0; }
.v2-object-main strong { font-size: 13px; }
.v2-object-main small { color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.v2-mini-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}
.v2-mini-gallery img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid var(--line);
    cursor: pointer;
}

.v2-subtype-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.v2-subtype,
.v2-edit-subtype,
.v2-geometry-mode,
.v2-placement,
.v2-object-edit-actions button,
.v2-history-list button {
    min-height: 46px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--panel);
    color: var(--text);
    font-weight: 800;
    touch-action: manipulation;
}
.v2-subtype.active,
.v2-edit-subtype.active,
.v2-geometry-mode.active {
    border-color: var(--brand);
    background: color-mix(in srgb, var(--brand) 10%, var(--panel));
    color: var(--brand-dark);
}
.v2-geometry-choice,
.v2-placement-actions,
.v2-object-edit-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 8px;
}
.v2-placement.primary { background: var(--brand); color: #fff; border-color: var(--brand); }
.v2-observation-label { display: grid; gap: 6px; margin-top: 12px; color: var(--muted); font-size: 12px; }
.v2-observation-label textarea {
    width: 100%;
    min-height: 70px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 11px;
    resize: vertical;
    background: var(--panel);
    color: var(--text);
    font: inherit;
}
.v2-object-edit-actions .v2-delete-object { margin: 0; }

.v2-review-card { text-align: center; padding: 8px 0 2px; }
.v2-review-icon {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 10px;
    border-radius: 50%;
    background: #dcfce7;
    color: #15803d;
    font-size: 28px;
    font-weight: 900;
}
.v2-review-card h3 { margin: 0 0 6px; }
.v2-review-card p { margin: 0 auto 14px; max-width: 360px; color: var(--muted); font-size: 12px; }
.v2-review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.v2-review-grid > div {
    display: grid;
    gap: 2px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--bg);
}
.v2-review-grid strong { font-size: 24px; }
.v2-review-grid span { color: var(--muted); font-size: 11px; }
.v2-review-tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 12px 0; }
.v2-review-actions { display: grid; grid-template-columns: 1fr 1.2fr; gap: 8px; margin-top: 14px; }
.v2-review-actions button { min-height: 48px; border: 0; border-radius: 12px; font-weight: 850; }
#v2-back-to-visit { background: #e8edf3; color: #263442; }
#v2-confirm-finish { background: #16a34a; color: white; }

.v2-history-list { display: grid; gap: 8px; }
.v2-history-list button { display: grid; gap: 3px; padding: 10px 12px; text-align: left; }
.v2-history-list small { color: var(--muted); font-weight: 500; }

.v2-draw-toolbar {
    position: absolute;
    left: 50%;
    bottom: 18px;
    z-index: 12000;
    width: min(620px, calc(100% - 30px));
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 14px 35px rgba(15,23,42,.22);
    backdrop-filter: blur(10px);
}
.v2-draw-toolbar.hidden { display: none !important; }
.v2-draw-toolbar > div:first-child { display: grid; gap: 2px; min-width: 0; }
.v2-draw-toolbar small { color: #64748b; white-space: normal; }
.v2-draw-actions { display: flex; gap: 6px; flex: 0 0 auto; }
.v2-draw-actions button { min-height: 40px; padding: 7px 10px; border: 1px solid #d7dee6; border-radius: 10px; background: #fff; font-weight: 800; }
#v2-draw-finish { background: #2563eb; color: #fff; border-color: #2563eb; }
#v2-draw-finish:disabled { opacity: .45; }

.v2-layer-filter {
    position: absolute;
    z-index: 9000;
    right: 12px;
    top: 64px;
}
.v2-layer-filter > button {
    min-height: 42px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--panel);
    color: var(--text);
    box-shadow: 0 3px 12px rgba(0,0,0,.16);
    font-weight: 800;
}
.v2-layer-filter > div {
    margin-top: 6px;
    min-width: 205px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--panel);
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.v2-layer-filter label { display: flex; align-items: center; gap: 7px; margin: 0; padding: 7px 3px; font-size: 12px; }
.v2-layer-filter input { width: auto; min-height: auto; }
.v2-filter-divider { height: 1px; margin: 5px 0; background: var(--line); }

html[data-theme="dark"] .v2-draw-toolbar { background: rgba(15,24,38,.96); color: var(--text); border-color: var(--line); }
html[data-theme="dark"] .v2-draw-actions button { background: #1e293b; color: #e5edf7; border-color: #334155; }
html[data-theme="dark"] #v2-draw-finish { background: #2563eb; color: #fff; }
html[data-theme="dark"] .v2-subtype.active,
html[data-theme="dark"] .v2-edit-subtype.active,
html[data-theme="dark"] .v2-geometry-mode.active { background: #172554; color: #bfdbfe; }
html[data-theme="dark"] .v2-review-icon { background: rgba(34,197,94,.15); color: #86efac; }

@media (max-width: 760px) {
    .v2-field-sheet,
    .v2-picker {
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        max-height: 84dvh;
        border-radius: 20px 20px 0 0;
        border-left: 0;
        border-right: 0;
        border-bottom: 0;
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }
    .v2-picker { max-height: 72dvh; }
    .v2-sheet-handle {
        display: block;
        flex: 0 0 auto;
        width: 44px;
        height: 5px;
        margin: 8px auto 0;
        border-radius: 999px;
        background: #b8c2cc;
    }
    .v2-field-sheet header,
    .v2-picker header { padding-top: 10px; }
    #v2-visit-body,
    #v2-picker-body { padding: 12px 12px 16px; }
    .v2-object-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
    .v2-add-type { min-height: 70px; padding: 6px 3px; }
    .v2-add-type b { font-size: 23px; }
    .v2-add-type span { font-size: 10px; }
    .v2-field-sheet footer { padding: 10px 12px max(10px, env(safe-area-inset-bottom)); }
    .v2-layer-filter { top: 58px; right: 8px; }
    .v2-layer-filter > div { max-height: 54dvh; overflow: auto; }
    .v2-draw-toolbar {
        left: 8px;
        right: 8px;
        bottom: max(8px, env(safe-area-inset-bottom));
        width: auto;
        transform: none;
        display: grid;
        grid-template-columns: 1fr;
    }
    .v2-draw-actions { display: grid; grid-template-columns: 44px 1fr 1fr; }
    .v2-draw-actions button { min-height: 44px; }
    .webgis-info-window { width: calc(100vw - 16px) !important; max-width: none !important; }
    .v2-id-chip { font-size: 13px; }
    .v2-operadora-select { min-height: 46px; font-size: 16px; }
    .v2-start-visit,
    .candidate-edit-location-btn,
    .candidate-consolidated-btn,
    .v2-visit-history-btn { min-height: 46px !important; }
}

@media (max-width: 420px) {
    .v2-object-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2-subtype-grid,
    .v2-geometry-choice,
    .v2-placement-actions,
    .v2-object-edit-actions { grid-template-columns: 1fr; }
    .v2-mini-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 761px) and (max-width: 1180px) {
    .v2-field-sheet { width: min(520px, 52vw); }
    .v2-picker { width: min(460px, 48vw); }
}

/* =====================================================================
   WEBGIS V2.2 — FILTRO DE CANDIDATES + MOBILE CAMPO
   ===================================================================== */
.v2-layer-filter > div {
  width: min(340px, calc(100vw - 24px));
  max-height: min(72dvh, 620px);
  overflow: auto;
  padding: 12px;
}

.v2-filter-title {
  margin: 2px 2px 7px;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .55px;
  color: var(--muted);
}

.v2-filter-divider {
  height: 1px;
  margin: 8px 0;
  background: var(--line);
}

#v2-candidate-filter-list {
  display: grid;
  gap: 8px;
}

.v2-candidate-project {
  border: 1px solid var(--line);
  border-radius: 11px;
  overflow: hidden;
  background: var(--panel);
}

.v2-candidate-project > summary {
  min-height: 42px;
  padding: 9px 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 850;
  list-style: none;
  background: color-mix(in srgb, var(--panel) 90%, var(--bg));
}

.v2-candidate-project > summary::-webkit-details-marker { display: none; }
.v2-candidate-project > summary small {
  flex: 0 0 auto;
  padding: 2px 7px;
  border-radius: 999px;
  background: var(--bg);
  color: var(--muted);
}

.v2-candidate-all-row {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--brand) 5%, var(--panel));
}

.v2-candidate-check-list {
  max-height: 250px;
  overflow: auto;
  padding: 3px 7px 6px;
}

.v2-candidate-check-list label {
  min-height: 44px;
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: 8px !important;
  padding: 7px 4px !important;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}

.v2-candidate-check-list label:last-child { border-bottom: 0; }
.v2-candidate-check-list label > span {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.v2-candidate-check-list label b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  color: var(--text);
}
.v2-candidate-check-list label small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10px;
  color: var(--muted);
}

.v2-filter-empty {
  padding: 10px;
  border-radius: 9px;
  background: var(--bg);
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
}

@media (max-width: 760px) {
  .v2-layer-filter {
    top: 58px;
    right: 8px;
  }
  .v2-layer-filter > button {
    min-height: 46px;
    padding: 0 14px;
    font-size: 14px;
  }
  .v2-layer-filter > div {
    position: fixed;
    left: 10px;
    right: 10px;
    top: 126px;
    width: auto;
    max-height: calc(100dvh - 150px);
    border-radius: 16px;
    padding: 13px;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .v2-layer-filter label {
    min-height: 44px;
    font-size: 13px;
  }
  .v2-candidate-check-list {
    max-height: 34dvh;
  }
  .v2-candidate-project > summary {
    min-height: 46px;
    font-size: 13px;
  }
}

/* V2.2.1 — identificação de projetos homônimos no filtro */
.v2-candidate-project > summary > span {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.v2-project-filter-source {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 10px;
    font-weight: 500;
    color: var(--muted);
}
@media (max-width: 700px) {
    .v2-project-filter-source { font-size: 9px; }
}


/* =====================================================================
   WEBGIS V2.3 - CAMPO UX / CAMADAS / MARCA VANTE / MOBILE
   ===================================================================== */

/* Marca: usa static/vante_logo.png quando existir e cai para wordmark VANTE. */
.badge.v2-vante-brand {
  min-height: 30px !important;
  min-width: 72px;
  padding: 4px 9px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid color-mix(in srgb, var(--brand) 30%, transparent) !important;
  background: color-mix(in srgb, var(--brand) 8%, transparent) !important;
  color: var(--brand) !important;
  font-size: 11px !important;
  font-weight: 950 !important;
  letter-spacing: .7px;
}
.badge.v2-vante-brand img {
  display: block;
  width: auto;
  max-width: 86px;
  height: 22px;
  object-fit: contain;
}
.badge.v2-vante-brand span { display: none; }
.badge.v2-vante-brand.fallback span { display: inline; }

/* Original do Candidate sempre tracejado; a sugestao fica continua/laranja. */
.candidate-point-selector {
  display: grid;
  gap: 8px;
  margin: 10px 0 12px;
}
.candidate-point-selector-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-size: 11px;
}
.candidate-point-selector-head strong { color: var(--text); font-size: 12px; }
.candidate-point-selector-grid {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding: 2px 1px 5px;
  scrollbar-width: thin;
}
.candidate-suggestion-point-btn {
  flex: 0 0 auto;
  min-width: 64px;
  min-height: 52px;
  display: grid;
  place-items: center;
  gap: 1px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  color: var(--text);
}
.candidate-suggestion-point-btn b { font-size: 13px; }
.candidate-suggestion-point-btn span { font-size: 9px; color: var(--muted); }
.candidate-suggestion-point-btn.active {
  border-color: #f59e0b;
  background: color-mix(in srgb, #f59e0b 12%, var(--panel));
  box-shadow: 0 0 0 2px color-mix(in srgb, #f59e0b 20%, transparent);
}
.candidate-suggestion-point-btn.changed span,
.candidate-active-change.changed { color: #d97706; }
.candidate-active-change {
  flex: 0 0 auto;
  padding: 5px 8px;
  border-radius: 999px;
  background: var(--bg);
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

/* Vistoria: uma tela por vez, botoes grandes e fotos separadas. */
.v2-mobile-tip {
  margin: 2px 0 12px;
  padding: 9px 11px;
  border-radius: 11px;
  background: color-mix(in srgb, var(--brand) 8%, var(--panel));
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
}
.v2-picker-header {
  display: grid !important;
  grid-template-columns: 42px minmax(0,1fr) 42px;
}
#v2-back-picker,
#v2-close-picker {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 11px;
  background: var(--bg);
  color: var(--text);
  font-size: 23px;
  font-weight: 800;
}
.v2-photo-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.v2-photo-button {
  min-height: 58px !important;
  display: flex !important;
  flex-direction: column;
  gap: 3px;
  border: 1px solid color-mix(in srgb, var(--brand) 35%, transparent);
}
.v2-photo-button span { font-size: 20px; }
.v2-photo-button b { font-size: 12px; }
.v2-photo-gallery {
  background: color-mix(in srgb, var(--brand) 12%, var(--panel)) !important;
  color: var(--brand) !important;
}

/* Sidebar responsiva robusta. */
.v2-sidebar-backdrop {
  display: none;
  position: fixed;
  inset: var(--topbar) 0 0 0;
  z-index: 10040;
  background: rgba(7, 15, 28, .42);
  backdrop-filter: blur(2px);
}
.v2-sidebar-backdrop.show { display: block; }

.sidebar-toggle {
  width: 34px !important;
  height: 52px !important;
  right: -17px !important;
  border-radius: 0 13px 13px 0 !important;
  font-size: 20px !important;
}

/* Painel de camadas reorganizado. */
.v2-layer-filter { z-index: 12050 !important; }
.v2-layer-filter > button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 46px !important;
  padding: 0 14px !important;
  border-radius: 14px !important;
}
.v2-layer-filter > button[aria-expanded="true"] {
  background: var(--brand) !important;
  color: #fff !important;
  border-color: var(--brand) !important;
}
.v2-layer-filter > div {
  width: min(390px, calc(100vw - 24px)) !important;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 18px !important;
}
.v2-layer-panel-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0,1fr) 42px;
  align-items: center;
  gap: 10px;
  padding: 14px;
  border-bottom: 1px solid var(--line);
  background: var(--panel);
}
.v2-layer-panel-head > div { display: grid; gap: 2px; }
.v2-layer-panel-head strong { font-size: 15px; }
.v2-layer-panel-head small { color: var(--muted); font-size: 10px; }
#v2-layer-filter-close {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 11px;
  background: var(--bg);
  color: var(--text);
  font-size: 24px;
}
.v2-filter-section,
.v2-field-layer-details { padding: 12px 14px; border-bottom: 1px solid var(--line); }
.v2-filter-section:last-child,
.v2-field-layer-details:last-child { border-bottom: 0; }
.v2-filter-switch {
  min-height: 50px !important;
  display: grid !important;
  grid-template-columns: 24px minmax(0,1fr);
  align-items: center;
  gap: 9px !important;
  padding: 8px 4px !important;
}
.v2-filter-switch > span { display: grid; gap: 1px; }
.v2-filter-switch b { color: var(--text); font-size: 13px; }
.v2-filter-switch small { color: var(--muted); font-size: 10px; }
.v2-filter-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.v2-filter-title-row > span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.v2-candidate-search-wrap {
  display: grid;
  grid-template-columns: 24px minmax(0,1fr);
  align-items: center;
  gap: 6px;
  min-height: 42px;
  margin: 7px 0 10px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--bg);
  color: var(--muted);
}
.v2-candidate-search-wrap input {
  min-height: 40px;
  padding: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--text);
}
.v2-field-layer-details > summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  cursor: pointer;
  color: var(--text);
  font-size: 12px;
  font-weight: 900;
}
.v2-field-layer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px 8px;
  padding-top: 4px;
}
.v2-field-layer-grid label {
  min-height: 42px !important;
  display: grid !important;
  grid-template-columns: 20px 24px minmax(0,1fr);
  gap: 5px !important;
  align-items: center;
  padding: 4px !important;
}
.v2-field-layer-grid b { font-size: 11px; }

/* Map controls: separar controles para nao disputar o mesmo canto. */
.map-floating {
  top: 12px !important;
  right: 64px !important;
}
#fitAllButton {
  font-size: 22px !important;
  font-weight: 900 !important;
}
.maplibregl-ctrl-top-right {
  top: 8px !important;
  right: 8px !important;
}
.v2-layer-filter {
  top: 68px !important;
  right: 64px !important;
}

/* Campo mobile: painel mais baixo e o mapa continua utilizavel. */
@media (max-width: 760px) {
  .badge.v2-vante-brand {
    min-width: 64px;
    padding: 3px 7px !important;
  }
  .badge.v2-vante-brand img { max-width: 70px; height: 20px; }

  .sidebar {
    z-index: 10050 !important;
    width: min(90vw, 360px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }
  .sidebar-toggle { display: none !important; }
  .sidebar.open { transform: translateX(0) !important; }

  .v2-field-sheet {
    max-height: 76dvh !important;
    border-radius: 22px 22px 0 0 !important;
  }
  .v2-picker {
    max-height: 62dvh !important;
    border-radius: 22px 22px 0 0 !important;
  }
  .v2-object-grid {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 8px !important;
  }
  .v2-add-type {
    min-height: 68px !important;
    grid-template-columns: 34px minmax(0,1fr);
    justify-content: start;
    place-items: center start;
    padding: 9px 12px !important;
  }
  .v2-add-type b { font-size: 23px; }
  .v2-add-type span { font-size: 12px; text-align: left; }
  .v2-photo-actions { grid-template-columns: 1fr 1fr; }

  .map-floating {
    top: 10px !important;
    right: 10px !important;
  }
  .maplibregl-ctrl-top-right {
    top: 66px !important;
    right: 10px !important;
  }
  .v2-layer-filter {
    top: 10px !important;
    left: 10px !important;
    right: auto !important;
  }
  .v2-layer-filter > div {
    position: fixed !important;
    left: 8px !important;
    right: 8px !important;
    top: auto !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-height: 78dvh !important;
    border-radius: 22px !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  .v2-candidate-check-list { max-height: 28dvh !important; }

  .refresh-map-button {
    right: 10px !important;
    bottom: 76px !important;
  }

  .status-bar {
    left: 10px !important;
    right: 72px !important;
    bottom: 14px !important;
    max-width: none !important;
  }

  .candidate-point-selector-grid { padding-bottom: 7px; }
}

@media (max-width: 390px) {
  .v2-photo-actions { grid-template-columns: 1fr; }
  .v2-field-layer-grid { grid-template-columns: 1fr; }
}


/* =====================================================================
   WEBGIS V2.3.1 - MAPTILER ONLY + MOBILE COMPACTO
   Ajustes finais aplicados por último para vencer regras legadas duplicadas.
   ===================================================================== */

/* Seletor agora tem só Mapa e Satélite (MapTiler). */
#webgis-basemap-switch,
.webgis-basemap-switch {
  gap: 4px !important;
  padding: 4px !important;
}
#webgis-basemap-switch button,
.webgis-basemap-switch button {
  min-width: 72px !important;
  min-height: 38px !important;
  padding: 7px 11px !important;
}

/* Backdrop próprio do painel Camadas. */
.v2-layer-filter-backdrop {
  position: absolute;
  inset: 0;
  z-index: 12040;
  background: rgba(2, 6, 23, .28);
  backdrop-filter: blur(1.5px);
}
.v2-layer-filter-backdrop.hidden { display: none !important; }

/* Painel Camadas: conteúdo mais denso e hierarquia visual mais clara. */
.v2-layer-filter > div {
  max-height: min(72dvh, 610px) !important;
}
.v2-layer-sheet-handle {
  display: none;
}
.v2-filter-section,
.v2-field-layer-details {
  padding: 10px 12px !important;
}
.v2-filter-switch {
  min-height: 44px !important;
  padding: 5px 2px !important;
}
.v2-filter-title {
  margin: 0 2px 5px !important;
}
.v2-candidate-search-wrap {
  min-height: 40px !important;
  margin: 6px 0 8px !important;
}
.v2-candidate-project > summary {
  min-height: 44px !important;
  padding: 8px 10px !important;
}
.v2-candidate-check-list label {
  min-height: 40px !important;
  padding: 5px 4px !important;
}
.v2-field-layer-details > summary {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}
.v2-field-layer-details > summary small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 600;
}

/* Sidebar principal: cards e controles mais compactos sem remover funções. */
.sidebar .projects-list {
  gap: 8px !important;
  margin-top: 10px !important;
}
.sidebar .project-card {
  padding: 10px !important;
  border-radius: 13px !important;
}
.sidebar .project-row {
  gap: 8px !important;
}
.sidebar .project-meta {
  line-height: 1.35 !important;
}
.sidebar .sidebar-note {
  margin-top: 10px !important;
  padding: 10px !important;
}
#generateFieldKmz {
  min-height: 48px !important;
  margin-top: 10px !important;
  margin-bottom: 10px !important;
}
.v2-project-tools {
  margin-bottom: 8px !important;
}

@media (max-width: 760px) {
  /* Drawer principal mais leve e fácil de fechar com uma mão. */
  .sidebar {
    width: min(91vw, 350px) !important;
    padding: 12px !important;
    scrollbar-width: thin;
  }
  .sidebar-header {
    position: sticky;
    top: -12px;
    z-index: 4;
    margin: -12px -12px 8px;
    padding: 12px;
    background: var(--panel);
    border-bottom: 1px solid var(--line);
  }
  .sidebar h2 {
    margin-bottom: 0 !important;
    font-size: 17px !important;
  }
  #closeSidebar {
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
  }
  .sidebar .sidebar-note {
    font-size: 11px !important;
  }
  .sidebar .project-name {
    font-size: 13px !important;
  }
  .sidebar .project-meta {
    font-size: 10px !important;
  }
  .sidebar .export-project-excel,
  .sidebar .export-reference-excel {
    min-height: 38px !important;
  }

  /* Camadas vira bottom sheet compacto com fundo clicável. */
  .v2-layer-filter {
    top: 10px !important;
    left: 10px !important;
    right: auto !important;
  }
  .v2-layer-filter > button {
    min-height: 44px !important;
    padding: 0 13px !important;
    border-radius: 13px !important;
  }
  .v2-layer-filter > div {
    position: fixed !important;
    left: 8px !important;
    right: 8px !important;
    top: auto !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-height: min(70dvh, 620px) !important;
    border-radius: 22px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    box-shadow: 0 24px 70px rgba(2,6,23,.34) !important;
  }
  .v2-layer-sheet-handle {
    position: sticky;
    top: 0;
    z-index: 5;
    display: block;
    width: 42px;
    height: 5px;
    margin: 7px auto 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--muted) 45%, transparent);
  }
  .v2-layer-panel-head {
    top: 0 !important;
    padding: 10px 12px 9px !important;
  }
  .v2-layer-panel-head strong {
    font-size: 14px !important;
  }
  .v2-layer-panel-head small {
    font-size: 9px !important;
  }
  #v2-layer-filter-close {
    width: 42px !important;
    height: 42px !important;
  }
  .v2-filter-section,
  .v2-field-layer-details {
    padding: 9px 12px !important;
  }
  .v2-filter-switch {
    min-height: 42px !important;
  }
  .v2-candidate-check-list {
    max-height: 24dvh !important;
  }
  .v2-candidate-project > summary {
    min-height: 42px !important;
  }
  .v2-field-layer-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .v2-field-layer-grid label {
    min-height: 40px !important;
  }

  /* O seletor Mapa/Satélite ocupa menos largura que a versão com 3 opções. */
  #webgis-basemap-switch,
  .webgis-basemap-switch {
    right: 64px !important;
    bottom: 12px !important;
  }
  #webgis-basemap-switch button,
  .webgis-basemap-switch button {
    min-width: 64px !important;
    min-height: 38px !important;
    padding: 6px 8px !important;
    font-size: 10px !important;
  }
}

@media (max-width: 390px) {
  .v2-field-layer-grid {
    grid-template-columns: 1fr !important;
  }
  .v2-layer-filter > div {
    max-height: 68dvh !important;
  }
}


/* =========================================================
   WEBGIS V2.3.2 - MARCA OFICIAL + AJUSTE MOBILE FINAL
   ========================================================= */
.badge.v2-vante-brand {
  min-width: 96px !important;
  min-height: 38px !important;
  padding: 5px 9px !important;
  background: color-mix(in srgb, var(--panel) 94%, transparent) !important;
  overflow: hidden;
}
.badge.v2-vante-brand img {
  display: block !important;
  width: 88px !important;
  max-width: 88px !important;
  height: auto !important;
  max-height: 28px !important;
  object-fit: contain !important;
}
@media (max-width: 760px) {
  .badge.v2-vante-brand {
    min-width: 82px !important;
    min-height: 34px !important;
    padding: 4px 7px !important;
  }
  .badge.v2-vante-brand img {
    width: 72px !important;
    max-width: 72px !important;
    max-height: 24px !important;
  }
}


/* =========================================================
   WEBGIS V2.3.3 - CHECKPOINT MAPTILER FIX
   Sem alteração visual obrigatória nesta rodada. Mantido para que PY/JS/CSS
   sejam substituídos juntos e permaneçam sincronizados.
   ========================================================= */


/* =========================================================
   WEBGIS V2.3.4 - REFERÊNCIAS + CANDIDATES RELACIONADOS
   ========================================================= */
.export-reference-excel {
  min-height: 36px;
  margin-top: 7px;
  padding: 7px 10px;
  border: 1px solid color-mix(in srgb, var(--brand) 35%, var(--line));
  border-radius: 9px;
  background: color-mix(in srgb, var(--brand) 9%, var(--panel));
  color: var(--brand-dark);
  font-size: 11px;
  font-weight: 800;
}
.export-reference-excel:hover {
  background: color-mix(in srgb, var(--brand) 15%, var(--panel));
}
.v2-reference-related {
  display: grid;
  gap: 7px;
  margin: 10px 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: color-mix(in srgb, var(--panel) 94%, var(--bg));
}
.v2-reference-related-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
  font-weight: 900;
  color: var(--text);
}
.v2-reference-related-title span {
  min-width: 24px;
  padding: 2px 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--brand) 13%, var(--panel));
  color: var(--brand-dark);
  text-align: center;
}
.v2-reference-related-list {
  display: grid;
  gap: 5px;
  max-height: 190px;
  overflow: auto;
}
.v2-reference-candidate {
  width: 100%;
  min-height: 42px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel);
  color: var(--text);
  text-align: left;
}
.v2-reference-candidate:hover {
  border-color: color-mix(in srgb, var(--brand) 48%, var(--line));
  background: color-mix(in srgb, var(--brand) 6%, var(--panel));
}
.v2-reference-candidate span { min-width: 0; display: grid; gap: 2px; }
.v2-reference-candidate strong,
.v2-reference-candidate small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-reference-candidate strong { font-size: 11px; }
.v2-reference-candidate small,
.v2-reference-related > small { color: var(--muted); font-size: 9px; }
.v2-reference-candidate em {
  font-style: normal;
  font-size: 9px;
  font-weight: 800;
  color: var(--muted);
  white-space: nowrap;
}
.v2-reference-related.empty { opacity: .9; }

@media (max-width: 760px) {
  .v2-reference-related-list { max-height: 155px; }
  .v2-reference-candidate { min-height: 44px; }
}


/* =====================================================================
   WEBGIS V2.4.0 - KMZ PRO / KIT VISUAL DE CAMPO
   ===================================================================== */
.v2-field-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  line-height: 0;
  vertical-align: middle;
}
.v2-field-icon svg { display: block; overflow: visible; }

.v2-add-type {
  min-height: 88px !important;
  grid-template-rows: 46px auto;
  align-content: center;
  justify-items: center;
  gap: 5px !important;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.v2-add-type:hover {
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(15, 32, 48, .10);
  border-color: color-mix(in srgb, var(--brand) 30%, var(--line));
}
.v2-add-type-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
}
.v2-add-type > span:last-child {
  font-size: 11px !important;
  font-weight: 850 !important;
  letter-spacing: -.1px;
}

.v2-quick-summary span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.v2-object-focus {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: transparent;
}
.v2-object-focus:hover { background: var(--bg); }
.v2-popup-field-title {
  display: flex;
  align-items: center;
  gap: 8px;
}
.v2-layer-type-icon {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
}
.v2-field-layer-grid label {
  grid-template-columns: 20px 28px minmax(0,1fr) !important;
}

html[data-theme="dark"] .v2-add-type:hover,
html[data-theme="dark"] .v2-object-focus:hover {
  background: rgba(255,255,255,.045);
}

@media (max-width: 760px) {
  .v2-add-type { min-height: 82px !important; padding: 7px 4px !important; }
  .v2-add-type-icon { width: 42px; height: 42px; }
}

@media (max-width: 420px) {
  .v2-object-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 6px !important; }
  .v2-add-type { min-height: 78px !important; }
  .v2-add-type > span:last-child { font-size: 10px !important; }
}

@media (max-width: 350px) {
  .v2-object-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}


/* =====================================================================
   WEBGIS V2.4.2 — MUNICÍPIO / UF + DISTRIBUIDORA ANEEL
   Patch visual isolado. Não altera KMZ PRO nem os comandos do Candidate.
   ===================================================================== */
.v2-location-intel {
    position: relative;
    display: grid;
    gap: 10px;
    margin: 12px 0 14px;
    padding: 12px 13px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(59, 130, 246, .055);
}
.v2-location-line { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.v2-location-icon {
    flex:0 0 26px; width:26px; height:26px; display:inline-flex;
    align-items:center; justify-content:center; border-radius:8px;
    background:rgba(59,130,246,.12); font-size:15px; line-height:1;
}
.v2-location-copy { min-width:0; flex:1 1 auto; display:grid; gap:2px; }
.v2-location-label {
    font-size:10px; line-height:1.2; font-weight:800; letter-spacing:.045em;
    text-transform:uppercase; color:var(--muted);
}
.v2-location-copy strong {
    display:block; min-width:0; color:var(--text); font-size:13px;
    line-height:1.32; overflow-wrap:anywhere;
}
.v2-location-agent { color:var(--muted); font-weight:700; }
.v2-location-status {
    width:fit-content; margin-top:3px; padding:2px 7px; border-radius:999px;
    font-size:9px; line-height:1.5; font-weight:850; letter-spacing:.025em;
    background:rgba(100,116,139,.12); color:var(--muted);
}
.v2-location-status.is-valid { background:rgba(22,163,74,.12); color:#15803d; }
.v2-location-status.is-warning { background:rgba(245,158,11,.14); color:#b45309; }
.v2-location-status.is-error { background:rgba(220,38,38,.12); color:#b91c1c; }
.v2-location-status.is-loading { background:rgba(59,130,246,.12); color:#2563eb; }
.v2-location-refresh {
    flex:0 0 30px; width:30px; height:30px; padding:0; border:1px solid var(--line);
    border-radius:9px; background:var(--panel); color:var(--text); font-size:17px;
    line-height:1; cursor:pointer;
}
.v2-location-refresh:hover { background:var(--panel-3, rgba(148,163,184,.12)); }
.v2-location-refresh:disabled { opacity:.5; cursor:wait; animation:v2-location-spin .9s linear infinite; }
@keyframes v2-location-spin { to { transform:rotate(360deg); } }
.v2-location-source {
    padding-top:8px; border-top:1px solid var(--line); color:var(--muted);
    font-size:9px; font-weight:650;
}
.v2-location-detail {
    margin-top:-3px; padding:7px 9px; border-radius:8px;
    background:rgba(245,158,11,.08); color:var(--muted); font-size:10px; line-height:1.35;
}
html[data-theme="dark"] .v2-location-intel { background:rgba(59,130,246,.07); }
html[data-theme="dark"] .v2-location-status.is-valid { color:#86efac; }
html[data-theme="dark"] .v2-location-status.is-warning { color:#fcd34d; }
html[data-theme="dark"] .v2-location-status.is-error { color:#fca5a5; }
html[data-theme="dark"] .v2-location-status.is-loading { color:#93c5fd; }
html[data-theme="dark"] .v2-location-detail { background:rgba(245,158,11,.10); }
@media (max-width:768px) {
    .v2-location-intel { margin:10px 0 12px; padding:10px 11px; gap:9px; }
    .v2-location-copy strong { font-size:12.5px; }
    .v2-location-refresh { width:34px; height:34px; flex-basis:34px; font-size:19px; }
}

/* =====================================================================
   WEBGIS V2.4.4 — LOCALIZAÇÃO AUTOMÁTICA + CORREÇÃO MANUAL DO CAMPO
   ===================================================================== */
.v2-location-status.is-manual {
    background: rgba(124, 58, 237, .12);
    color: #6d28d9;
}
.v2-location-actions {
    display: flex;
    flex: 0 0 auto;
    gap: 6px;
}
.v2-location-edit {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--panel);
    color: var(--text);
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
}
.v2-location-edit:hover,
.v2-location-cancel:hover {
    background: var(--panel-3, rgba(148,163,184,.12));
}
.v2-location-editor {
    display: grid;
    gap: 9px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--panel);
}
.v2-location-editor-title {
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text);
}
.v2-location-editor-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 72px;
    gap: 8px;
}
.v2-location-editor label {
    display: grid;
    gap: 4px;
    margin: 0;
}
.v2-location-editor label > span {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
}
.v2-location-editor input {
    width: 100%;
    min-height: 36px;
    padding: 7px 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--input, var(--panel));
    color: var(--text);
    font-size: 12px;
}
.v2-location-input-uf {
    text-transform: uppercase;
    text-align: center;
}
.v2-location-editor-note {
    font-size: 9.5px;
    line-height: 1.35;
    color: var(--muted);
}
.v2-location-editor-actions {
    display: flex;
    justify-content: flex-end;
    gap: 7px;
}
.v2-location-editor-actions button {
    min-height: 34px;
    padding: 7px 10px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 800;
}
.v2-location-cancel {
    border: 1px solid var(--line);
    background: var(--panel);
    color: var(--text);
}
.v2-location-save {
    border: 0;
}
html[data-theme="dark"] .v2-location-status.is-manual {
    color: #c4b5fd;
}
@media (max-width: 768px) {
    .v2-location-actions { gap: 7px; }
    .v2-location-edit,
    .v2-location-refresh {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
    }
    .v2-location-editor-grid {
        grid-template-columns: minmax(0, 1fr) 64px;
    }
    .v2-location-editor-actions button {
        min-height: 38px;
    }
}

/* =====================================================================
   WEBGIS V2.4.5 — HOTFIX LOCALIZAÇÃO / AÇÕES SEMPRE VISÍVEIS
   ===================================================================== */
.v2-location-actions {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    flex: 0 0 auto !important;
}

.v2-location-actions .v2-location-refresh,
.v2-location-actions .v2-location-edit {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 38px !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
}


/* =====================================================================
   WEBGIS V2.5.0 - AJUSTES PRE-CAMPO
   ===================================================================== */

/* Camadas: rolagem visível no desktop e no mobile. */
#v2-layer-filter-body {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--muted) 65%, transparent) transparent;
}
#v2-layer-filter-body::-webkit-scrollbar { width: 9px; }
#v2-layer-filter-body::-webkit-scrollbar-track { background: transparent; }
#v2-layer-filter-body::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--muted) 55%, transparent);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

/* Cor individual / qualificação / exports no card do Candidate. */
.v2-qualificado-label,
.v2-candidate-color-control {
  display: grid;
  gap: 6px;
  margin: 10px 0;
  font-size: 12px;
  font-weight: 800;
  color: var(--text);
}
.v2-qualificado-select { width: 100%; min-height: 42px; }
.v2-candidate-color-control > div {
  display: grid;
  grid-template-columns: 54px minmax(0,1fr);
  gap: 8px;
  align-items: center;
}
.v2-candidate-color-input {
  width: 54px !important;
  height: 42px !important;
  min-height: 42px !important;
  padding: 3px !important;
  border-radius: 9px !important;
}
.v2-candidate-color-reset {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--bg);
  color: var(--text);
  font-weight: 750;
}
.v2-candidate-export-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 10px 0;
}
.v2-candidate-export-actions button {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  color: var(--text);
  font-weight: 800;
}
.v2-candidate-export-actions button:hover { background: var(--bg); }

/* Caminho de fotos deixa de ficar escondido em um botão solto. */
.v2-photo-storage-card {
  display: grid;
  gap: 8px;
  margin: 8px 0 10px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg);
}
.v2-photo-storage-card > div { display: grid; gap: 3px; min-width: 0; }
.v2-photo-storage-card strong { font-size: 12px; color: var(--text); }
.v2-photo-storage-card small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#v2-photo-root-button {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel);
  color: var(--text);
  font-weight: 800;
}

/* Operadora obrigatória na importação da Base Excel. */
.v2-import-operadora-wrap {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--bg);
}
.v2-import-operadora-wrap > span { font-size: 12px; font-weight: 850; color: var(--text); }
.v2-import-operadora-wrap > span b { color: #dc2626; }
.v2-import-operadora-wrap select { width: 100%; min-height: 44px; }
.v2-import-operadora-wrap small { color: var(--muted); font-size: 10px; line-height: 1.4; }
.v2-import-operadora-preview {
  margin: 8px 0 12px;
  padding: 8px 10px;
  border-radius: 9px;
  background: var(--bg);
  color: var(--muted);
  font-size: 11px;
}
.v2-import-operadora-preview strong { color: var(--text); }

@media (max-width: 760px) {
  #v2-layer-filter-body { scrollbar-gutter: auto; }
  .v2-candidate-export-actions { grid-template-columns: 1fr; }
}


/* =====================================================================
   WEBGIS V2.5.1 - SIDEBAR / EXPORTS / COR INDIVIDUAL / POLIMENTO
   ===================================================================== */

   :root {
  --sidebar: 370px;
}

/* Sidebar com mais respiro e cards legíveis. */
.sidebar {
  padding: 16px !important;
}
.sidebar .projects-list {
  gap: 10px !important;
  margin-top: 12px !important;
}
.sidebar .project-card {
  position: relative !important;
  padding: 13px 48px 13px 13px !important;
  border-radius: 15px !important;
  overflow: visible !important;
}
.sidebar .project-row {
  align-items: flex-start !important;
  gap: 10px !important;
}
.sidebar .project-main {
  min-width: 0 !important;
  width: 100% !important;
}
.sidebar .project-name {
  font-size: 14px !important;
  line-height: 1.25 !important;
  margin-top: 1px !important;
}
.sidebar .project-meta {
  font-size: 10.5px !important;
  line-height: 1.4 !important;
}
.sidebar .v2-project-source {
  white-space: normal !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow-wrap: anywhere !important;
  margin-top: 6px !important;
}
.sidebar .delete-project {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  min-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  padding: 0 !important;
  border: 1px solid var(--line) !important;
  background: var(--panel) !important;
  color: var(--muted) !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 3 !important;
}
.sidebar .delete-project:hover {
  color: #dc2626 !important;
  border-color: rgba(220,38,38,.35) !important;
  background: rgba(220,38,38,.08) !important;
}
.sidebar .export-reference-excel {
  width: 100% !important;
  min-height: 38px !important;
  margin-top: 10px !important;
}

/* Bloco fixo de ferramentas da sidebar. */
.v2-project-tools {
  display: grid !important;
  gap: 10px !important;
  margin: 12px 0 14px !important;
}
.v2-sidebar-export-card,
.v2-photo-storage-card {
  display: grid !important;
  gap: 9px !important;
  padding: 11px !important;
  border: 1px solid var(--line) !important;
  border-radius: 13px !important;
  background: var(--panel-2, var(--bg)) !important;
}
.v2-sidebar-tool-title {
  display: block !important;
  min-width: 0 !important;
}
.v2-sidebar-tool-title > div {
  display: grid !important;
  gap: 3px !important;
  min-width: 0 !important;
}
.v2-sidebar-tool-title strong {
  color: var(--text) !important;
  font-size: 12px !important;
  font-weight: 850 !important;
}
.v2-sidebar-tool-title small,
#v2-photo-root-path {
  color: var(--muted) !important;
  font-size: 10px !important;
  line-height: 1.35 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: anywhere !important;
}
.v2-general-export-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 7px !important;
}
.v2-general-export-actions button,
#v2-photo-root-button {
  min-height: 40px !important;
  padding: 8px 9px !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}
.v2-general-export-actions button:hover,
#v2-photo-root-button:hover {
  background: var(--bg) !important;
  border-color: color-mix(in srgb, var(--brand) 40%, var(--line)) !important;
}

/* Cor individual: selecionar e confirmar explicitamente. */
.v2-candidate-color-control > small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.35;
}
.v2-candidate-color-row {
  display: grid !important;
  grid-template-columns: 58px minmax(0,1fr) minmax(0,1fr) !important;
  gap: 8px !important;
  align-items: center !important;
}
.v2-candidate-color-apply,
.v2-candidate-color-reset {
  min-height: 42px !important;
  border: 1px solid var(--line) !important;
  border-radius: 9px !important;
  font-weight: 800 !important;
}
.v2-candidate-color-apply {
  background: var(--brand) !important;
  border-color: var(--brand) !important;
  color: #fff !important;
}
.v2-candidate-color-apply.is-pending {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 20%, transparent) !important;
}
.v2-candidate-color-reset {
  background: var(--bg) !important;
  color: var(--text) !important;
}

/* Somente PDF no card individual. */
.v2-candidate-export-actions-single {
  grid-template-columns: 1fr !important;
}
.v2-candidate-export-actions-single button {
  min-height: 46px !important;
  background: var(--panel-2, var(--panel)) !important;
}

/* Camadas: scrollbar sempre perceptível sem poluir. */
#v2-layer-filter-body {
  max-height: min(72vh, 650px) !important;
  overflow-y: auto !important;
  scrollbar-width: auto !important;
}
#v2-layer-filter-body::-webkit-scrollbar { width: 10px !important; }
#v2-layer-filter-body::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--brand) 38%, var(--muted)) !important;
  border-radius: 999px !important;
  border: 2px solid transparent !important;
  background-clip: padding-box !important;
}

@media (max-width: 1180px) and (min-width: 761px) {
  :root { --sidebar: 345px; }
}

@media (max-width: 760px) {
  .sidebar {
    width: min(92vw, 365px) !important;
    padding: 12px !important;
  }
  .v2-general-export-actions {
    grid-template-columns: 1fr !important;
  }
  .v2-candidate-color-row {
    grid-template-columns: 58px 1fr !important;
  }
  .v2-candidate-color-reset {
    grid-column: 1 / -1 !important;
  }
  #v2-layer-filter-body {
    max-height: 72dvh !important;
  }
}


/* =====================================================================
   WEBGIS V2.6.0 — VISTORIAS / HISTÓRICO / RESUMO SINCRONIZADO
   ===================================================================== */

.v2-readonly-banner {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin: 12px 0 16px;
  padding: 13px 14px;
  border: 1px solid rgba(59, 130, 246, .28);
  border-radius: 14px;
  background: rgba(59, 130, 246, .08);
}
.v2-readonly-lock {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(59, 130, 246, .14);
}
.v2-readonly-banner strong { display: block; font-size: 13px; }
.v2-readonly-banner small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.4;
}
.v2-object-readonly { opacity: .7; font-size: 14px; }

.v2-readonly-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin: 16px 0 4px;
}
.v2-readonly-actions button,
.v2-history-actions button,
.v2-history-toolbar button {
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-2, var(--panel));
  color: var(--text);
  font-weight: 800;
}
.v2-readonly-actions button:hover,
.v2-history-actions button:hover,
.v2-history-toolbar button:hover {
  border-color: var(--brand);
}

.v2-history-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-2, var(--panel));
}
.v2-history-toolbar > div { min-width: 0; }
.v2-history-toolbar strong,
.v2-history-toolbar small { display: block; }
.v2-history-toolbar small { margin-top: 2px; color: var(--muted); }
.v2-history-toolbar button { padding: 7px 10px; font-size: 11px; }

.v2-history-list {
  display: grid;
  gap: 10px;
}
.v2-history-card {
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--panel-2, var(--panel));
}
.v2-history-card.is-finalized {
  border-left: 4px solid #22c55e;
}
.v2-history-card.is-draft {
  border-left: 4px solid #f59e0b;
}
.v2-history-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.v2-history-card-head strong {
  display: block;
  font-size: 16px;
}
.v2-history-card-head small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
}
.v2-history-count {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(148, 163, 184, .13);
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
}
.v2-history-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 11px;
}
.v2-history-tags > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(148, 163, 184, .08);
  font-size: 11px;
}
.v2-history-tags .v2-field-icon { flex: 0 0 auto; }
.v2-history-photo-tag { padding-left: 9px !important; }

.v2-history-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 11px;
}
.v2-history-actions button { font-size: 12px; }

.base-preview-v2-status {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}
.base-preview-v2-status span {
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel-2, var(--panel));
  color: var(--muted);
  font-size: 11px;
}
.base-preview-v2-status strong { color: var(--text); }

@media (max-width: 640px) {
  .v2-history-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .v2-history-toolbar button { width: 100%; }
  .v2-history-actions,
  .v2-readonly-actions {
    grid-template-columns: 1fr;
  }
}


.v2-history-map-chip {
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: calc(100% - 28px);
  padding: 8px 10px 8px 13px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(15, 23, 42, .94);
  color: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.24);
  backdrop-filter: blur(10px);
  font-size: 12px;
  font-weight: 800;
}
.v2-history-map-chip button {
  min-height: 32px;
  padding: 5px 10px;
  border: 0;
  border-radius: 999px;
  background: #2563eb;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}
@media (max-width: 640px) {
  .v2-history-map-chip {
    bottom: 72px;
    width: calc(100% - 24px);
    justify-content: space-between;
    border-radius: 14px;
  }
}


/* =====================================================================
   WEBGIS V2.7.0 — MOBILE CAMPO / UX RÁPIDA
   Desktop preservado; estas regras vencem apenas no final do arquivo.
   ===================================================================== */

.v2-mobile-visit-nav,
.v2-mobile-resume-visit { display: none; }
.v2-section-count {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  margin-left: 5px;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(148,163,184,.14);
  color: var(--text);
  font-size: 10px;
  vertical-align: middle;
}
.v2-mobile-tip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 11px;
  border: 1px solid rgba(59,130,246,.18);
  border-radius: 12px;
  background: rgba(59,130,246,.08);
  color: var(--muted);
  font-size: 11px;
}
.v2-mobile-tip b { color: var(--text); font-size: 12px; }

@media (max-width: 760px) {
  /* O mapa continua sendo o foco; a folha ocupa no máximo ~2/3 da tela. */
  .v2-field-sheet {
    left: 8px !important;
    right: 8px !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-height: 68dvh !important;
    border: 1px solid var(--line) !important;
    border-radius: 22px !important;
    box-shadow: 0 18px 55px rgba(2,6,23,.38) !important;
  }
  .v2-field-sheet .v2-sheet-handle {
    display: block !important;
    width: 42px !important;
    height: 4px !important;
    margin: 7px auto 0 !important;
    background: color-mix(in srgb, var(--muted) 65%, transparent) !important;
  }
  .v2-field-sheet header {
    min-height: 52px !important;
    padding: 8px 10px 8px 14px !important;
  }
  .v2-field-sheet header strong { font-size: 15px !important; }
  .v2-field-sheet header small { font-size: 10px !important; }
  #v2-close-visit {
    width: 42px !important;
    height: 42px !important;
    flex-basis: 42px !important;
    font-size: 25px !important;
  }
  #v2-visit-body {
    padding: 9px 10px 10px !important;
    padding-bottom: 78px !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch;
  }

  /* Resumo superior em uma única faixa rolável. */
  .v2-visit-headline {
    position: sticky;
    top: 0;
    z-index: 4;
    align-items: center !important;
    gap: 7px !important;
    margin: -1px -1px 8px !important;
    padding: 3px 1px 6px !important;
    background: var(--panel);
  }
  .v2-quick-summary {
    flex: 1 1 auto;
    flex-wrap: nowrap !important;
    gap: 5px !important;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .v2-quick-summary::-webkit-scrollbar { display: none; }
  .v2-quick-summary span {
    flex: 0 0 auto;
    min-height: 27px !important;
    padding: 4px 7px !important;
    font-size: 10px !important;
  }
  .v2-visit-headline .v2-visit-history-btn {
    min-height: 38px !important;
    padding: 6px 10px !important;
    border-radius: 11px !important;
    font-size: 11px !important;
  }

  /* Apenas o painel escolhido aparece no celular. */
  .v2-mobile-panel { display: none !important; }
  .v2-field-sheet[data-mobile-panel="objects"] [data-v2-mobile-panel="objects"],
  .v2-field-sheet[data-mobile-panel="photos"] [data-v2-mobile-panel="photos"] {
    display: block !important;
  }
  .v2-section-title {
    margin: 11px 0 7px !important;
    font-size: 10px !important;
    letter-spacing: .4px !important;
  }
  .v2-mobile-tip {
    padding: 7px 9px !important;
    border-radius: 10px !important;
  }

  /* 8 tipos cabem em duas linhas: menos rolagem, toque grande. */
  .v2-object-grid {
    grid-template-columns: repeat(4, minmax(0,1fr)) !important;
    gap: 6px !important;
  }
  .v2-add-type {
    min-height: 68px !important;
    grid-template-columns: 1fr !important;
    place-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    padding: 6px 3px !important;
    border-radius: 13px !important;
  }
  .v2-add-type .v2-field-icon svg { width: 31px !important; height: 31px !important; }
  .v2-add-type span:last-child {
    width: 100%;
    font-size: 9.5px !important;
    line-height: 1.05 !important;
    text-align: center !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Lista de objetos compacta e com alvo grande. */
  .v2-object-list { gap: 6px !important; }
  .v2-object-row {
    grid-template-columns: 42px minmax(0,1fr) auto !important;
    min-height: 54px !important;
    gap: 7px !important;
    padding: 6px 7px !important;
    border-radius: 12px !important;
  }
  .v2-object-focus,
  .v2-object-photo,
  .v2-object-menu {
    width: 40px !important;
    height: 40px !important;
  }
  .v2-object-main strong { font-size: 12px !important; }
  .v2-object-main small { font-size: 10px !important; }

  /* Fotos viram uma tela própria. */
  .v2-photo-actions {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    margin-bottom: 10px !important;
  }
  .v2-photo-button {
    min-height: 72px !important;
    flex-direction: column !important;
    gap: 4px !important;
    border-radius: 15px !important;
    font-size: 12px !important;
  }
  .v2-photo-button > span { font-size: 24px !important; }
  .v2-mini-gallery {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 6px !important;
  }
  .v2-mini-gallery img { border-radius: 11px !important; }

  .v2-readonly-banner {
    margin: 7px 0 9px !important;
    padding: 8px 9px !important;
    border-radius: 11px !important;
    gap: 8px !important;
  }
  .v2-readonly-lock { width: 29px !important; height: 29px !important; }
  .v2-readonly-banner strong { font-size: 11px !important; }
  .v2-readonly-banner small { font-size: 9.5px !important; }

  /* Rodapé desktop some; ações ficam sempre ao alcance do polegar. */
  .v2-field-sheet > footer { display: none !important; }
  .v2-mobile-visit-nav {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 20;
    height: 66px;
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 2px;
    padding: 5px 6px max(5px,env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    background: color-mix(in srgb, var(--panel) 96%, transparent);
    backdrop-filter: blur(16px);
  }
  .v2-mobile-visit-nav button {
    position: relative;
    min-width: 0;
    min-height: 52px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 1px;
    padding: 3px 2px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--muted);
    font-size: 9px;
    font-weight: 850;
    touch-action: manipulation;
  }
  .v2-mobile-visit-nav button.active {
    background: color-mix(in srgb, var(--brand) 13%, var(--panel));
    color: var(--brand);
  }
  .v2-mobile-nav-icon {
    font-size: 20px;
    line-height: 1;
    font-weight: 900;
  }
  .v2-mobile-nav-badge {
    position: absolute;
    top: 3px;
    right: calc(50% - 24px);
    min-width: 17px;
    height: 17px;
    display: grid;
    place-items: center;
    padding: 0 4px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 8px;
    line-height: 1;
  }
  .v2-mobile-nav-finish {
    background: #16a34a !important;
    color: #fff !important;
  }
  .v2-mobile-visit-nav.is-readonly .v2-mobile-nav-finish {
    background: var(--bg) !important;
    color: var(--text) !important;
  }

  /* Quando o usuário libera o mapa, fica só um botão mínimo para voltar. */
  .v2-mobile-resume-visit {
    position: absolute;
    left: 50%;
    bottom: max(74px, calc(env(safe-area-inset-bottom) + 64px));
    z-index: 12020;
    transform: translateX(-50%);
    width: min(310px, calc(100% - 28px));
    min-height: 52px;
    display: grid;
    grid-template-columns: 34px minmax(0,1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 8px;
    padding: 7px 12px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 16px;
    background: rgba(15,23,42,.94);
    color: #fff;
    box-shadow: 0 12px 30px rgba(0,0,0,.30);
    backdrop-filter: blur(12px);
  }
  .v2-mobile-resume-visit.hidden { display: none !important; }
  .v2-mobile-resume-visit > span {
    grid-row: 1 / 3;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #2563eb;
    font-size: 20px;
  }
  .v2-mobile-resume-visit strong { text-align: left; font-size: 12px; }
  .v2-mobile-resume-visit small { text-align: left; color: #cbd5e1; font-size: 9px; }

  /* Picker: quase tudo em um toque e sem ocupar a tela inteira. */
  .v2-picker {
    left: 8px !important;
    right: 8px !important;
    bottom: max(8px,env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-height: 66dvh !important;
    border-radius: 22px !important;
  }
  .v2-picker header { padding: 9px 10px !important; }
  #v2-picker-body { padding: 9px 10px 12px !important; }
  .v2-subtype-grid { gap: 7px !important; }
  .v2-subtype { min-height: 48px !important; font-size: 12px !important; }
  .v2-placement-actions { gap: 7px !important; }
  .v2-placement { min-height: 50px !important; }

  /* Histórico vira lista compacta, fácil de varrer com o polegar. */
  .v2-history-toolbar {
    margin-bottom: 8px !important;
    padding: 8px 9px !important;
    gap: 6px !important;
  }
  .v2-history-toolbar small { font-size: 9px !important; }
  .v2-history-toolbar button { min-height: 36px !important; font-size: 9px !important; }
  .v2-history-list { gap: 7px !important; }
  .v2-history-card {
    padding: 9px !important;
    border-radius: 12px !important;
  }
  .v2-history-card-head strong { font-size: 14px !important; }
  .v2-history-card-head small { font-size: 9px !important; }
  .v2-history-count { font-size: 9px !important; }
  .v2-history-tags {
    flex-wrap: nowrap !important;
    gap: 5px !important;
    margin-top: 7px !important;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .v2-history-tags::-webkit-scrollbar { display: none; }
  .v2-history-tags > span {
    flex: 0 0 auto;
    min-height: 25px !important;
    padding: 3px 6px !important;
    font-size: 9px !important;
  }
  .v2-history-actions {
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
    margin-top: 7px !important;
  }
  .v2-history-actions button { min-height: 39px !important; font-size: 10px !important; }

  /* Resumo do Candidato: bottom sheet, 2x2 e menos cartões gigantes. */
  .webgis-summary-window {
    align-items: end !important;
    justify-content: center !important;
    padding: 0 !important;
  }
  .webgis-summary-card {
    width: 100% !important;
    max-width: none !important;
    max-height: 88dvh !important;
    border-radius: 24px 24px 0 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
  }
  .webgis-summary-header { padding: 11px 13px !important; }
  .webgis-summary-heading h3 { font-size: 17px !important; }
  .webgis-summary-heading .project-meta { font-size: 10px !important; }
  .webgis-summary-body { padding: 10px 12px max(18px,env(safe-area-inset-bottom)) !important; }
  .webgis-summary-body .base-preview-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 7px !important;
  }
  .webgis-summary-body .base-preview-card { min-height: 70px !important; padding: 9px !important; }
  .webgis-summary-body .base-preview-number { font-size: 22px !important; }
  .webgis-summary-body .base-preview-label { font-size: 9px !important; }
  .webgis-summary-body .base-preview-section-title { margin: 12px 0 6px !important; }
  .webgis-summary-body .base-preview-projects {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scrollbar-width: none;
    padding-bottom: 3px;
  }
  .webgis-summary-body .base-preview-projects::-webkit-scrollbar { display: none; }
  .webgis-summary-body .base-preview-project {
    flex: 0 0 auto;
    min-height: 32px !important;
    padding: 6px 8px !important;
    font-size: 9px !important;
  }
}

@media (max-width: 380px) {
  .v2-object-grid { grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
  .v2-add-type { min-height: 64px !important; }
  .v2-add-type .v2-field-icon svg { width: 28px !important; height: 28px !important; }
  .v2-add-type span:last-child { font-size: 8.5px !important; }
  .v2-mobile-visit-nav button { font-size: 8px !important; }
}


/* =====================================================================
   WEBGIS V2.7.1 — HOTFIX MODAL IMPORTAR BASE EXCEL
   Corrige modal maior que a viewport sem usar zoom da página.
   O Ctrl +/- continua livre para a lógica exclusiva do mapa.
   ===================================================================== */

#baseImportModal {
    overflow: hidden !important;
}

#baseImportModal .modal-card {
    width: min(660px, calc(100vw - 32px)) !important;
    max-width: min(660px, calc(100vw - 32px)) !important;
    max-height: calc(100dvh - 32px) !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;

    /* Mantém o modal centralizado sem deixar o rodapé inacessível. */
    align-self: center;
}

/* Scrollbar discreta no preview da importação. */
#baseImportModal .modal-card::-webkit-scrollbar {
    width: 10px;
}

#baseImportModal .modal-card::-webkit-scrollbar-track {
    background: transparent;
}

#baseImportModal .modal-card::-webkit-scrollbar-thumb {
    background: rgba(100, 116, 139, .45);
    border: 3px solid transparent;
    border-radius: 999px;
    background-clip: padding-box;
}

/* O cabeçalho continua visível durante a rolagem. */
#baseImportModal .modal-header {
    position: sticky;
    top: -20px;
    z-index: 20;
    margin: -20px -20px 12px;
    padding: 20px 20px 14px;
    background: var(--panel);
    border-bottom: 1px solid var(--line-soft);
}

/* Dá respiro ao último botão para ele nunca encostar no limite inferior. */
#baseImportModal #baseImportResult {
    padding-bottom: 6px;
}

/* MOBILE: ocupa praticamente a tela inteira, mas continua rolável. */
@media (max-width: 700px) {
    #baseImportModal {
        padding:
            max(8px, env(safe-area-inset-top, 0px))
            8px
            max(8px, env(safe-area-inset-bottom, 0px)) !important;
    }

    #baseImportModal .modal-card {
        width: 100% !important;
        max-width: none !important;
        max-height: calc(
            100dvh -
            16px -
            env(safe-area-inset-top, 0px) -
            env(safe-area-inset-bottom, 0px)
        ) !important;
        border-radius: 16px !important;
    }

    #baseImportModal .modal-header {
        top: -20px;
    }
}


/* =====================================================================
   WEBGIS V2.7.2 — POLIMENTO DE CAMPO
   ===================================================================== */

.v2-location-editor { min-width: 0 !important; overflow: hidden !important; }
.v2-location-editor-top { display:flex; align-items:center; gap:8px; min-width:0; }
.v2-location-mobile-back,
.candidate-location-mobile-back { display:none; }
.v2-location-editor-grid > *,
.v2-location-editor label,
.v2-location-editor input { min-width:0 !important; }
.v2-location-editor-actions { flex-wrap:wrap !important; }
.v2-location-editor-actions button { flex:1 1 120px; }

.maplibregl-popup-content .candidate-location-editor {
  max-height:min(58vh,560px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
.maplibregl-popup-content .candidate-location-editor::-webkit-scrollbar { width:8px; }
.maplibregl-popup-content .candidate-location-editor::-webkit-scrollbar-thumb {
  background:color-mix(in srgb,var(--muted) 45%,transparent);
  border-radius:999px;
}
.candidate-location-editor .candidate-auto-area-hint,
.candidate-location-editor .candidate-editor-summary {
  margin-top:7px !important;
  margin-bottom:7px !important;
}
.candidate-location-editor textarea { min-height:58px !important; }

.v2-history-help {
  display:flex; align-items:flex-start; gap:9px;
  margin:0 0 10px; padding:10px 11px;
  border:1px solid var(--line); border-radius:12px;
  background:color-mix(in srgb,var(--brand) 6%,var(--panel));
}
.v2-history-help > span { flex:0 0 auto; font-size:20px; }
.v2-history-help > div { display:grid; gap:2px; }
.v2-history-help strong { font-size:12px; }
.v2-history-help small { color:var(--muted); font-size:10px; line-height:1.35; }

.v272-history-list { display:grid !important; gap:10px !important; }
.v272-history-card {
  display:grid; gap:10px; padding:12px !important;
  border:1px solid var(--line) !important;
  border-radius:15px !important;
  background:var(--panel) !important;
}
.v272-history-card.is-finalized { border-left:4px solid #16a34a !important; }
.v272-history-card.is-draft { border-left:4px solid #f59e0b !important; }
.v272-history-main {
  display:grid; grid-template-columns:48px minmax(0,1fr);
  gap:10px; align-items:start;
}
.v272-history-version {
  min-height:44px; display:grid; place-items:center;
  border-radius:12px; background:var(--bg); color:var(--text);
  font-size:15px; font-weight:950;
}
.v272-history-copy { min-width:0; display:grid; gap:5px; }
.v272-history-title-row {
  display:flex; align-items:center; justify-content:space-between;
  gap:8px; min-width:0;
}
.v272-history-title-row strong { min-width:0; font-size:13px; }
.v272-history-status {
  flex:0 0 auto; padding:4px 7px; border-radius:999px;
  font-size:8.5px; font-weight:900; letter-spacing:.04em;
}
.v272-history-status.is-finalized { color:#166534; background:#dcfce7; }
.v272-history-status.is-draft { color:#92400e; background:#fef3c7; }
.v272-history-copy > small { color:var(--muted); font-size:9.5px; line-height:1.35; }
.v272-history-totals { display:flex; flex-wrap:wrap; gap:6px; }
.v272-history-totals span {
  padding:4px 7px; border-radius:999px; background:var(--bg);
  color:var(--muted); font-size:9px;
}
.v272-history-totals b { color:var(--text); }

.v272-history-details {
  margin:0; padding:7px 0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.v272-history-details summary {
  cursor:pointer; list-style:none; color:var(--muted);
  font-size:10px; font-weight:850;
}
.v272-history-details summary::-webkit-details-marker { display:none; }
.v272-history-details summary::after { content:"⌄"; float:right; }
.v272-history-details[open] summary::after { content:"⌃"; }
.v272-history-details .v2-history-tags {
  margin-top:8px !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:5px !important;
  overflow:visible !important;
}
.v272-history-details .v2-history-tags > span {
  flex:0 0 auto; min-height:27px !important;
  padding:4px 7px !important; font-size:9px !important;
}
.v272-history-actions {
  display:grid !important; grid-template-columns:1fr 1fr !important;
  gap:7px !important; margin-top:0 !important;
}
.v272-history-actions button {
  min-height:42px !important; border-radius:10px !important;
  font-size:10.5px !important; font-weight:850 !important;
}
.v272-history-actions .v2-open-history-visit {
  background:var(--brand) !important; color:#fff !important;
  border:1px solid var(--brand) !important;
}
.v272-history-actions .v2-history-map-only {
  background:var(--panel) !important; color:var(--text) !important;
  border:1px solid var(--line) !important;
}

#v2-layer-filter-body {
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior-y:contain !important;
  touch-action:pan-y !important;
  -webkit-overflow-scrolling:touch !important;
  scrollbar-width:auto !important;
}
#v2-layer-filter-body::-webkit-scrollbar { width:11px !important; }
#v2-layer-filter-body::-webkit-scrollbar-track { background:transparent !important; }
#v2-layer-filter-body::-webkit-scrollbar-thumb {
  background:color-mix(in srgb,var(--brand) 45%,var(--muted)) !important;
  border:3px solid transparent !important;
  background-clip:padding-box !important;
  border-radius:999px !important;
}
.v2-layer-sheet-handle { cursor:ns-resize !important; touch-action:none !important; }
.v272-layer-dragging { user-select:none !important; transition:none !important; }

@media (max-width:760px) {
  .v2-location-mobile-back,
  .candidate-location-mobile-back {
    display:inline-flex !important;
    align-items:center; gap:5px; width:fit-content;
    min-height:36px; margin:0 0 5px; padding:6px 9px;
    border:1px solid var(--line); border-radius:10px;
    background:var(--bg); color:var(--text);
    font-size:10px; font-weight:850;
  }

  .v2-location-editor { gap:7px !important; padding:9px !important; }
  .v2-location-editor-grid {
    grid-template-columns:minmax(0,1fr) 62px !important;
    gap:6px !important;
  }
  .v2-location-editor input { min-height:40px !important; font-size:13px !important; }
  .v2-location-editor-note { font-size:9px !important; }
  .v2-location-editor-actions {
    display:grid !important; grid-template-columns:1fr 1fr !important;
  }
  .v2-location-editor-actions button { width:100% !important; min-height:42px !important; }

  .maplibregl-popup-content .candidate-location-editor {
    max-height:52dvh !important;
    padding-right:3px;
  }
  .maplibregl-popup:has(.candidate-location-editor) .maplibregl-popup-content {
    max-width:min(92vw,430px) !important;
    padding:10px !important;
  }
  .candidate-location-editor .candidate-location-editor-title { font-size:13px !important; }
  .candidate-location-editor .candidate-location-editor-subtitle { font-size:10px !important; }
  .candidate-location-editor .candidate-editor-summary { padding:8px !important; }
  .candidate-location-editor .candidate-auto-area-hint {
    padding:7px 8px !important; font-size:9px !important;
  }
  .candidate-location-editor .candidate-point-selector-grid { gap:5px !important; }
  .candidate-location-editor .candidate-point-selector { min-height:38px !important; }
  .candidate-location-editor .candidate-use-gps-location-btn,
  .candidate-location-editor .use-gps-location-btn,
  .candidate-location-editor .candidate-points-toggle { min-height:40px !important; }

  .v272-history-toolbar { align-items:center !important; }
  .v272-history-toolbar button { min-height:38px !important; padding:6px 9px !important; }
  .v2-history-help { margin-bottom:8px; padding:8px 9px; }
  .v272-history-card { gap:8px; padding:10px !important; border-radius:13px !important; }
  .v272-history-main { grid-template-columns:44px minmax(0,1fr); gap:8px; }
  .v272-history-version { min-height:42px; font-size:14px; }
  .v272-history-title-row { align-items:flex-start; }
  .v272-history-title-row strong { font-size:12px; }
  .v272-history-copy > small { font-size:9px; }
  .v272-history-actions { grid-template-columns:1fr !important; }
  .v272-history-actions button { min-height:44px !important; font-size:11px !important; }

  #v2-layer-filter-body {
    height:58dvh;
    max-height:none !important;
    min-height:180px !important;
    overflow-y:auto !important;
  }
  .v2-layer-sheet-handle {
    position:sticky !important;
    top:0 !important;
    z-index:8 !important;
    width:54px !important;
    height:6px !important;
    margin:8px auto 2px !important;
    background:color-mix(in srgb,var(--muted) 65%,transparent) !important;
  }
  .v2-layer-panel-head { top:12px !important; }
  .v2-candidate-check-list {
    max-height:none !important;
    overflow:visible !important;
  }
}

html[data-theme="dark"] .v272-history-status.is-finalized {
  color:#bbf7d0;
  background:rgba(22,163,74,.18);
}
html[data-theme="dark"] .v272-history-status.is-draft {
  color:#fde68a;
  background:rgba(245,158,11,.16);
}


/* =========================================================
   WEBGIS V2.8.0 - STATUS TEMPO REAL
   ========================================================= */
.v28-realtime-badge {
  position: fixed;
  right: 14px;
  top: 14px;
  z-index: 2600;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: color-mix(in srgb, var(--panel) 92%, transparent);
  color: var(--text);
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  backdrop-filter: blur(10px);
  font-size: 10px;
  font-weight: 850;
  pointer-events: none;
}
.v28-realtime-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #f59e0b;
  box-shadow: 0 0 0 3px rgba(245,158,11,.14);
}
.v28-realtime-badge.is-online .v28-realtime-dot {
  background: #22c55e; box-shadow: 0 0 0 3px rgba(34,197,94,.14);
}
.v28-realtime-badge.is-offline .v28-realtime-dot {
  background: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,.14);
}
@media (max-width:760px) {
  .v28-realtime-badge {
    top: max(8px, env(safe-area-inset-top, 0px));
    right: 8px;
    min-height: 28px;
    padding: 5px 8px;
    font-size: 9px;
  }
}


/* =====================================================================
   WEBGIS V2.8.1 — REALTIME GERAL / PRESENÇA / LOCKS
   ===================================================================== */
.v28-realtime-badge { cursor:pointer !important; gap:6px !important; transition:transform .16s ease, box-shadow .16s ease !important; }
.v28-realtime-badge:hover { transform:translateY(-1px); }
.v281-online-count { font-size:9px; opacity:.78; font-weight:900; }
.v28-realtime-badge.has-update { animation:v281Pulse .48s ease; }
@keyframes v281Pulse { 45% { transform:scale(1.08); } }
.v281-presence-panel { position:fixed; right:18px; bottom:66px; z-index:16020; width:min(360px,calc(100vw - 24px)); max-height:min(520px,calc(100dvh - 100px)); display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:var(--panel); color:var(--text); box-shadow:0 22px 60px rgba(15,23,42,.25); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.v281-presence-panel.hidden { display:none !important; }
.v281-presence-head { display:flex; justify-content:space-between; gap:10px; padding:13px 14px 11px; border-bottom:1px solid var(--line); }
.v281-presence-head>div { display:grid; gap:2px; } .v281-presence-head strong { font-size:12px; } .v281-presence-head small { color:var(--muted); font-size:9px; }
#v281-presence-close { width:30px; height:30px; border:0; border-radius:9px; background:var(--bg); color:var(--text); cursor:pointer; font-size:18px; }
.v281-presence-list { min-height:0; overflow-y:auto; display:grid; gap:7px; padding:10px; }
.v281-presence-user { display:grid; grid-template-columns:36px minmax(0,1fr); gap:9px; align-items:center; padding:9px 10px; border:1px solid var(--line); border-radius:12px; background:var(--bg); }
.v281-presence-user.is-self { border-color:color-mix(in srgb,var(--brand) 42%,var(--line)); }
.v281-presence-avatar { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; background:color-mix(in srgb,var(--brand) 14%,var(--panel)); color:var(--brand); font-size:13px; font-weight:950; }
.v281-presence-copy { min-width:0; display:grid; gap:3px; } .v281-presence-copy>div { display:flex; gap:6px; align-items:center; } .v281-presence-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; } .v281-presence-copy small { color:var(--muted); font-size:9px; line-height:1.35; }
.v281-presence-you { padding:2px 5px; border-radius:999px; background:color-mix(in srgb,var(--brand) 14%,transparent); color:var(--brand); font-size:7.5px; font-weight:950; }
.v281-presence-empty { padding:18px 10px; text-align:center; color:var(--muted); font-size:10px; }
.v281-presence-foot { padding:9px 12px; border-top:1px solid var(--line); color:var(--muted); font-size:8.5px; line-height:1.35; }
.v281-candidate-presence { display:flex; flex-wrap:wrap; gap:5px; margin:0 0 8px; padding:7px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--brand) 5%,var(--panel)); }
.v281-candidate-presence span { display:inline-flex; gap:3px; padding:4px 6px; border-radius:999px; font-size:8.5px; font-weight:800; }
.v281-candidate-presence .is-viewing { background:color-mix(in srgb,#3b82f6 12%,transparent); color:#2563eb; } .v281-candidate-presence .is-editing { background:color-mix(in srgb,#f59e0b 14%,transparent); color:#b45309; }
.v281-collab-lock-banner { display:grid; grid-template-columns:34px minmax(0,1fr); gap:9px; align-items:start; margin:0 0 10px; padding:10px; border:1px solid color-mix(in srgb,#f59e0b 48%,var(--line)); border-radius:12px; background:color-mix(in srgb,#f59e0b 9%,var(--panel)); }
.v281-collab-lock-banner>span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:color-mix(in srgb,#f59e0b 16%,transparent); }
.v281-collab-lock-banner>div { display:grid; gap:2px; } .v281-collab-lock-banner strong { font-size:11px; } .v281-collab-lock-banner small { color:var(--muted); font-size:9px; line-height:1.4; }
@media (max-width:760px) { .v281-presence-panel { right:8px; bottom:calc(62px + env(safe-area-inset-bottom,0px)); width:calc(100vw - 16px); max-height:58dvh; } .v281-presence-user { grid-template-columns:34px minmax(0,1fr); padding:8px 9px; } .v281-presence-avatar { width:34px; height:34px; } }
html[data-theme="dark"] .v281-candidate-presence .is-viewing { color:#93c5fd; } html[data-theme="dark"] .v281-candidate-presence .is-editing { color:#fde68a; }


/* =====================================================================
   WEBGIS V2.8.2 — HOTFIX POSIÇÃO DO BADGE REALTIME
   Motivo:
   - afastar "Tempo real" do botão Sair;
   - impedir clique acidental no logout;
   - manter o badge acessível para abrir Presença;
   - desktop: abaixo da topbar e afastado dos controles da direita;
   - mobile: abaixo da topbar, no lado esquerdo.
   ===================================================================== */

.v28-realtime-badge {
  top: calc(var(--topbar) + 10px) !important;
  right: 76px !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 2550 !important;
  pointer-events: auto !important;
}

/* O painel de usuários continua independente do botão Sair. */
.v281-presence-panel {
  z-index: 16020 !important;
}

@media (max-width: 760px) {
  .v28-realtime-badge {
    top: calc(var(--topbar) + 8px) !important;
    left: 10px !important;
    right: auto !important;
    bottom: auto !important;
    max-width: calc(100vw - 82px);
  }
}


/* =====================================================================
   WEBGIS V2.8.3 — ESTABILIZAÇÃO + SIDEBAR MINIMALISTA
   Mantém a paleta/identidade visual existente; altera densidade e posição.
   ===================================================================== */

/* ---------- SIDEBAR: seções compactas ---------- */
.v283-hide-legacy-heading { display:none !important; }
.v283-sidebar-section,
.v283-secondary-tools > .v2-sidebar-export-card,
.v283-secondary-tools > .v2-photo-storage-card {
  border:1px solid var(--line) !important;
  border-radius:13px !important;
  background:var(--panel-2) !important;
  box-shadow:none !important;
}
.v283-sidebar-section { margin:0 0 9px !important; overflow:hidden; }
.v283-section-toggle {
  width:100% !important;
  min-height:42px !important;
  display:grid !important;
  grid-template-columns:22px minmax(0,1fr) auto 20px !important;
  align-items:center !important;
  gap:7px !important;
  margin:0 !important;
  padding:8px 10px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--text) !important;
  text-align:left !important;
  box-shadow:none !important;
}
.v283-section-toggle:hover { background:var(--panel-3) !important; transform:none !important; }
.v283-section-icon { color:var(--brand); font-size:15px; font-weight:900; text-align:center; }
.v283-section-toggle strong { font-size:12px !important; font-weight:850 !important; }
.v283-section-count {
  min-width:22px; height:20px; padding:0 6px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; background:color-mix(in srgb,var(--brand) 10%,var(--panel)); color:var(--brand);
  font-size:9px; font-weight:900;
}
.v283-section-chevron { color:var(--muted); text-align:center; font-size:12px; }
.v283-section-body { padding:8px !important; border-top:1px solid var(--line-soft); background:var(--panel) !important; }

.v283-project-actions {
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:6px !important;
  margin:0 0 8px !important;
}
.v283-project-actions.is-single { grid-template-columns:1fr !important; }
.v283-project-actions > button {
  width:100% !important;
  min-height:36px !important;
  height:36px !important;
  margin:0 !important;
  padding:0 8px !important;
  border-radius:10px !important;
  font-size:10.5px !important;
  font-weight:800 !important;
  line-height:1 !important;
  box-shadow:none !important;
  transform:none !important;
}
.v283-project-actions #openImport,
.v283-project-actions #openBaseImport {
  background:var(--brand) !important;
  color:#fff !important;
  border:1px solid var(--brand) !important;
}
.v283-project-actions #generateFieldKmz,
.v283-project-actions #openKmzVersions {
  background:var(--panel) !important;
  color:var(--brand) !important;
  border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line)) !important;
}
.v283-project-actions > button:hover { filter:brightness(.98); box-shadow:0 4px 12px rgba(15,23,42,.07) !important; }

.v283-project-content .v2-project-search-wrap {
  min-height:36px !important;
  margin:0 0 7px !important;
  padding:0 9px !important;
  border-radius:10px !important;
}
.v283-project-content #v2-project-search {
  min-height:34px !important;
  height:34px !important;
  padding:0 4px !important;
  font-size:11px !important;
}
.v283-project-content .projects-list,
.v283-project-content #projectsList {
  max-height:286px !important;
  margin:0 !important;
  padding-right:3px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
.v283-project-content #projectsList::-webkit-scrollbar { width:7px; }
.v283-project-content #projectsList::-webkit-scrollbar-thumb { background:color-mix(in srgb,var(--brand) 32%,var(--muted)); border-radius:999px; }

/* Cards de projeto: mesma informação, menos altura. */
.v283-project-content .project-card {
  padding:8px !important;
  border-radius:11px !important;
  margin:0 !important;
}
.v283-project-content .project-row { gap:7px !important; align-items:flex-start !important; }
.v283-project-content .project-name { font-size:11.5px !important; line-height:1.25 !important; }
.v283-project-content .project-meta { margin-top:2px !important; font-size:8.8px !important; line-height:1.25 !important; }
.v283-project-content .v2-project-source {
  max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.v283-project-content .project-row input[type="checkbox"] { width:15px !important; height:15px !important; margin-top:2px !important; }
.v283-project-content .delete-project { width:27px !important; height:27px !important; min-height:27px !important; font-size:13px !important; }
.v283-project-content .export-reference-excel,
.v283-project-content .export-project-excel {
  width:auto !important; min-height:28px !important; height:28px !important;
  margin:5px 0 0 !important; padding:0 8px !important; border-radius:8px !important;
  font-size:8.8px !important;
}

/* Exportações e pasta de fotos compactas. */
.v283-secondary-tools { display:grid; gap:8px; margin:0 0 9px; }
.v283-secondary-tools > * { margin:0 !important; padding:9px !important; }
.v283-secondary-tools .v2-sidebar-tool-title { margin:0 0 7px !important; }
.v283-secondary-tools .v2-sidebar-tool-title strong { font-size:10.5px !important; }
.v283-secondary-tools .v2-sidebar-tool-title small {
  display:block; max-width:100%; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  color:var(--muted); font-size:8.5px !important;
}
.v283-secondary-tools .v2-general-export-actions { gap:6px !important; }
.v283-secondary-tools .v2-general-export-actions button,
.v283-secondary-tools #v2-photo-root-button {
  min-height:34px !important; height:34px !important; padding:0 8px !important;
  border-radius:9px !important; font-size:9px !important; box-shadow:none !important;
}

/* Usuários: busca + lista com rolagem própria. */
#usersPanel { margin-top:8px !important; }
#toggleUsersPanel {
  display:flex !important; align-items:center !important; gap:7px !important;
  min-height:40px !important; padding:8px 10px !important;
}
#toggleUsersPanel #usersPanelArrow { margin-left:auto; }
.v283-user-search-wrap {
  display:grid; grid-template-columns:20px minmax(0,1fr); align-items:center; gap:5px;
  margin:8px 8px 6px; padding:0 8px; min-height:35px;
  border:1px solid var(--line); border-radius:9px; background:var(--bg); color:var(--muted);
}
.v283-user-search-wrap input {
  min-height:33px !important; height:33px !important; padding:0 !important;
  border:0 !important; background:transparent !important; box-shadow:none !important;
  font-size:10.5px !important;
}
#usersPanelContent { padding-bottom:8px !important; }
#usersList {
  max-height:260px !important; margin:0 8px 7px !important; padding-right:3px;
  overflow-y:auto !important; overscroll-behavior:contain; scrollbar-width:thin;
}
#usersList::-webkit-scrollbar { width:7px; }
#usersList::-webkit-scrollbar-thumb { background:color-mix(in srgb,var(--brand) 30%,var(--muted)); border-radius:999px; }
#usersList .user-item { padding:7px 8px !important; gap:7px !important; border-radius:9px !important; }
#usersList .user-item strong { font-size:11px !important; }
#usersList .user-item span { font-size:8px !important; padding:2px 5px !important; }
#usersList .delete-user-btn { width:29px !important; height:29px !important; min-height:29px !important; }

/* ---------- MAPA: grupos sem sobreposição ---------- */
.maplibregl-ctrl-top-right {
  top:10px !important;
  right:10px !important;
}
.v2-layer-filter {
  top:10px !important;
  right:62px !important;
  left:auto !important;
}
.v2-layer-filter > button {
  min-height:40px !important;
  height:40px !important;
  padding:0 11px !important;
  border-radius:11px !important;
  font-size:10.5px !important;
}
.v28-realtime-badge {
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
  top:calc(var(--topbar) + 56px) !important;
  right:62px !important;
  left:auto !important;
  bottom:auto !important;
  min-height:29px !important;
  padding:5px 8px !important;
  font-size:9px !important;
  z-index:12040 !important;
  pointer-events:auto !important;
}

/* Todos os controles nativos seguem o tema, inclusive recentralizar/GPS. */
.maplibregl-ctrl-group,
.maplibregl-ctrl-group button {
  background:var(--panel) !important;
  color:var(--text) !important;
  border-color:var(--line) !important;
}
.maplibregl-ctrl-group button:hover { background:var(--panel-3) !important; }
html[data-theme="dark"] .maplibregl-ctrl-group {
  background:#101927 !important;
  border-color:#2b3a50 !important;
  box-shadow:0 8px 24px rgba(0,0,0,.34) !important;
}
html[data-theme="dark"] .maplibregl-ctrl-group button {
  background:#101927 !important;
  border-color:#2b3a50 !important;
}
html[data-theme="dark"] .maplibregl-ctrl-group button:hover { background:#182436 !important; }
html[data-theme="dark"] .maplibregl-ctrl-group button .maplibregl-ctrl-icon {
  filter:invert(.92) brightness(1.35);
  opacity:.94;
}
html[data-theme="dark"] .maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon,
html[data-theme="dark"] .maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon { filter:none; }

/* ---------- MOBILE ---------- */
@media (max-width:760px) {
  .sidebar { padding:10px 10px 16px !important; }
  .sidebar-header { margin:0 0 7px !important; min-height:32px; }
  .v283-sidebar-section { margin-bottom:7px !important; }
  .v283-section-toggle { min-height:40px !important; padding:7px 9px !important; }
  .v283-section-body { padding:7px !important; }
  .v283-project-actions > button { min-height:35px !important; height:35px !important; font-size:10px !important; }
  .v283-project-content #projectsList { max-height:34dvh !important; }
  .v283-project-content .project-card { padding:7px !important; }
  .v283-secondary-tools { gap:7px; margin-bottom:7px; }
  #usersList { max-height:34dvh !important; }

  /* Linha superior do mapa: Camadas | Tempo real | navegação à direita. */
  .v2-layer-filter {
    top:10px !important;
    left:10px !important;
    right:auto !important;
  }
  .v2-layer-filter > button {
    min-height:38px !important; height:38px !important; padding:0 10px !important;
    font-size:10px !important;
  }
  .v28-realtime-badge {
    position:fixed !important;
    top:calc(var(--topbar) + 10px) !important;
    left:118px !important;
    right:auto !important;
    bottom:auto !important;
    min-height:28px !important;
    max-width:132px !important;
    padding:4px 7px !important;
    font-size:8.5px !important;
    white-space:nowrap !important;
    z-index:12040 !important;
  }
  .maplibregl-ctrl-top-right {
    top:10px !important;
    right:8px !important;
  }
  .maplibregl-ctrl-group button { width:36px !important; height:36px !important; }
  .v281-presence-panel {
    right:8px !important;
    left:8px !important;
    width:auto !important;
    bottom:calc(10px + env(safe-area-inset-bottom,0px)) !important;
    max-height:62dvh !important;
  }
}

@media (max-width:360px) {
  .v28-realtime-badge { left:108px !important; max-width:118px !important; }
  .v28-realtime-text { max-width:72px; overflow:hidden; text-overflow:ellipsis; }
}


/* =====================================================================
   WEBGIS V2.9.0 — UI ALINHADA + GESTÃO DE USUÁRIOS
   ===================================================================== */

/* Ações dos projetos: cards realmente alinhados, mesma linguagem visual. */
.v283-project-actions {
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:7px !important;
  align-items:stretch !important;
}
.v283-project-actions > button {
  min-width:0 !important;
  height:40px !important;
  min-height:40px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  padding:0 9px !important;
  border-radius:10px !important;
  font-size:10px !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  white-space:nowrap !important;
}
.v290-action-icon {
  width:17px; height:17px; flex:0 0 17px;
  display:inline-grid; place-items:center;
  border-radius:6px;
  font-size:11px; line-height:1; font-weight:900;
}
.v290-action-label { min-width:0; font-weight:800; }
.v283-project-actions #openImport,
.v283-project-actions #openBaseImport {
  background:linear-gradient(135deg, color-mix(in srgb,var(--brand) 92%,#fff), color-mix(in srgb,var(--brand) 78%,#7c5cff)) !important;
  border:1px solid color-mix(in srgb,var(--brand) 78%,var(--line)) !important;
  color:#fff !important;
}
.v283-project-actions #openImport .v290-action-icon,
.v283-project-actions #openBaseImport .v290-action-icon { background:rgba(255,255,255,.14); }
.v283-project-actions #generateFieldKmz,
.v283-project-actions #openKmzVersions {
  background:color-mix(in srgb,var(--brand) 5%,var(--panel)) !important;
  border:1px solid color-mix(in srgb,var(--brand) 24%,var(--line)) !important;
  color:var(--text) !important;
}
.v283-project-actions #generateFieldKmz .v290-action-icon,
.v283-project-actions #openKmzVersions .v290-action-icon {
  background:color-mix(in srgb,var(--brand) 12%,var(--panel)); color:var(--brand);
}

/* Usuários — busca, solicitações e gestão compacta. */
.v290-pending-count {
  min-width:19px; height:19px; padding:0 6px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; background:#fff1cc; color:#8a5a00; font-size:9px; font-weight:900;
}
#usersList { max-height:330px !important; }
.v290-users-group { display:grid; gap:6px; margin:0 0 8px; }
.v290-users-group-title {
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:2px 2px 4px; color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.04em;
}
.v290-users-group-title b { min-width:20px; height:18px; display:grid; place-items:center; border-radius:999px; background:var(--bg); color:var(--text); }
.v290-user-card {
  position:relative; display:grid; grid-template-columns:34px minmax(0,1fr) 32px; align-items:center; gap:7px;
  padding:7px; border:1px solid var(--line); border-radius:10px; background:var(--panel);
}
.v290-user-card.is-pending { border-color:color-mix(in srgb,#d89b13 42%,var(--line)); background:color-mix(in srgb,#f4b942 5%,var(--panel)); }
.v290-user-card.is-super { border-color:color-mix(in srgb,var(--brand) 40%,var(--line)); background:color-mix(in srgb,var(--brand) 5%,var(--panel)); }
.v290-user-avatar { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:color-mix(in srgb,var(--brand) 11%,var(--panel)); color:var(--brand); font-size:11px; font-weight:900; }
.v290-user-main { min-width:0; display:flex; flex-wrap:wrap; align-items:center; gap:3px 5px; }
.v290-user-main strong { width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10.5px; line-height:1.2; }
.v290-user-main small { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:8px; }
.v290-role-pill { width:fit-content; padding:2px 5px; border-radius:999px; background:var(--bg); color:var(--muted); font-size:7.5px; font-weight:900; }
.v290-role-pill.is-pending { background:#fff1cc; color:#8a5a00; }
.v290-role-pill.is-super { background:color-mix(in srgb,var(--brand) 12%,var(--panel)); color:var(--brand); }
.v290-manage-user,
.v290-user-lock { width:30px; height:30px; display:grid; place-items:center; border-radius:8px; border:1px solid var(--line); background:var(--bg); color:var(--muted); font-weight:900; }
.v290-user-lock { border:0; background:transparent; color:var(--brand); }
.v290-pending-actions { display:grid; grid-template-columns:1fr 1fr; gap:4px; }
.v290-pending-actions button { width:28px; height:28px; padding:0; border-radius:8px; border:1px solid var(--line); font-weight:900; }
.v290-approve-user { background:#eaf8f0; color:#137a42; border-color:#b8e0c7 !important; }
.v290-reject-user { background:#fff0f0; color:#b42318; border-color:#f2c1bd !important; }
.v290-user-actions {
  grid-column:1/-1; display:grid; gap:6px; padding-top:7px; margin-top:1px; border-top:1px solid var(--line-soft);
}
.v290-user-actions.hidden { display:none !important; }
.v290-role-change { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; }
.v290-role-change select { min-height:32px !important; height:32px; padding:0 7px; font-size:9px; border:1px solid var(--line); border-radius:8px; background:var(--panel); color:var(--text); }
.v290-role-change button,
.v290-make-super,
.v290-delete-user { min-height:32px; padding:0 9px; border-radius:8px; border:1px solid var(--line); font-size:8.5px; font-weight:850; background:var(--bg); color:var(--text); }
.v290-make-super { color:var(--brand); border-color:color-mix(in srgb,var(--brand) 34%,var(--line)); }
.v290-delete-user { color:var(--danger); border-color:color-mix(in srgb,var(--danger) 30%,var(--line)); }
.v290-rejected-users { margin-top:4px; border-top:1px solid var(--line-soft); padding-top:5px; }
.v290-rejected-users summary { cursor:pointer; color:var(--muted); font-size:8.5px; font-weight:800; }
.v290-rejected-row { display:flex; justify-content:space-between; gap:8px; padding:5px 2px; color:var(--muted); font-size:8.5px; }
.v290-rejected-row small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v290-users-empty { padding:12px; text-align:center; color:var(--muted); font-size:9px; }
.v290-new-user-form label { margin:3px 0 1px; font-size:9px; }
.v290-new-user-form small { color:var(--muted); font-size:8px; }
.v290-form-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:2px; }
.v290-form-title button { width:27px; height:27px; border:0; border-radius:8px; background:var(--bg); color:var(--text); }

/* Login: autocadastro público sem poluir a tela. */
.v290-login-register-wrap { display:grid; gap:7px; margin-top:12px; text-align:center; }
.v290-login-divider { position:relative; display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:10px; }
.v290-login-divider::before,.v290-login-divider::after { content:""; height:1px; flex:1; background:var(--line); }
.v290-login-divider span { padding:0 9px; }
.v290-register-link { min-height:38px; border:1px solid color-mix(in srgb,var(--brand) 34%,var(--line)); border-radius:10px; background:color-mix(in srgb,var(--brand) 5%,#fff); color:var(--brand-dark); font-weight:800; }
.v290-login-register-wrap > small { color:var(--muted); font-size:9px; }
.v290-register-modal { position:fixed; inset:0; z-index:30000; display:grid; place-items:center; padding:16px; background:rgba(8,15,26,.62); backdrop-filter:blur(4px); }
.v290-register-card { width:min(440px,100%); max-height:calc(100dvh - 32px); overflow:auto; padding:18px; border:1px solid var(--line); border-radius:16px; background:var(--panel); color:var(--text); box-shadow:var(--shadow); }
.v290-register-card header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.v290-register-card header > div { display:grid; gap:2px; }
.v290-register-card header strong { font-size:15px; }
.v290-register-card header small { color:var(--muted); font-size:9px; }
#v290-register-close { width:32px; height:32px; border:0; border-radius:9px; background:var(--bg); color:var(--text); font-size:18px; }
.v290-register-card label { font-size:10px; }
.v290-register-card input { min-height:40px; height:40px; }
.v290-login-preview { margin:5px 0 2px; padding:7px 9px; border-radius:8px; background:var(--bg); color:var(--muted); font-size:9px; }
.v290-login-preview strong { color:var(--brand); }
.v290-role-choice { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.v290-role-choice > label { position:relative; margin:0; cursor:pointer; }
.v290-role-choice input { position:absolute; opacity:0; pointer-events:none; }
.v290-role-choice span { min-height:58px; display:flex; flex-direction:column; justify-content:center; gap:2px; padding:8px 9px; border:1px solid var(--line); border-radius:10px; background:var(--panel); }
.v290-role-choice input:checked + span { border-color:var(--brand); box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 11%,transparent); background:color-mix(in srgb,var(--brand) 5%,var(--panel)); }
.v290-role-choice b { font-size:10px; }
.v290-role-choice small { color:var(--muted); font-size:8px; line-height:1.25; }
.v290-register-status { min-height:18px; margin:8px 0; font-size:9px; line-height:1.4; }
.v290-register-status.is-error { color:var(--danger); }
.v290-register-status.is-success { padding:9px; border-radius:9px; background:#eaf8f0; color:#17683d; }
html[data-theme="dark"] .v290-register-link { background:color-mix(in srgb,var(--brand) 8%,var(--panel)); color:#8dbbff; }

@media (max-width:760px) {
  .v283-project-actions { gap:6px !important; }
  .v283-project-actions > button { height:38px !important; min-height:38px !important; font-size:9.5px !important; padding:0 7px !important; }
  .v290-action-icon { width:16px; height:16px; flex-basis:16px; }
  #usersList { max-height:40dvh !important; }
  .v290-user-card { grid-template-columns:32px minmax(0,1fr) 30px; padding:6px; }
  .v290-role-choice { grid-template-columns:1fr; }
  .v290-register-card { padding:14px; border-radius:14px; }
}

@media (max-width:360px) {
  .v283-project-actions > button { font-size:9px !important; gap:4px !important; }
  .v290-action-icon { display:none; }
}


/* =====================================================================
   WEBGIS V2.9.1 — AÇÕES ALINHADAS + MAPA SEM SOBREPOSIÇÃO
   ===================================================================== */

/* Os 4 comandos mantêm o texto completo e a mesma geometria visual. */
.v283-project-actions {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:7px !important;
  align-items:stretch !important;
}
.v283-project-actions > button {
  width:100% !important;
  min-width:0 !important;
  height:56px !important;
  min-height:56px !important;
  display:grid !important;
  grid-template-columns:22px minmax(0,1fr) !important;
  align-items:center !important;
  justify-items:start !important;
  gap:8px !important;
  margin:0 !important;
  padding:7px 10px !important;
  border-radius:11px !important;
  font-size:10.5px !important;
  line-height:1.18 !important;
  text-align:left !important;
  white-space:normal !important;
  overflow:hidden !important;
  box-shadow:none !important;
  transform:none !important;
}
.v283-project-actions .v290-action-icon {
  width:22px !important;
  height:22px !important;
  flex:0 0 22px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:7px !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:900 !important;
}
.v283-project-actions .v290-action-label {
  width:100% !important;
  min-width:0 !important;
  display:block !important;
  font-weight:850 !important;
  line-height:1.18 !important;
  text-wrap:balance;
  overflow-wrap:anywhere;
}
.v283-project-actions #openImport,
.v283-project-actions #openBaseImport {
  background:linear-gradient(135deg, color-mix(in srgb,var(--brand) 92%,#fff), color-mix(in srgb,var(--brand) 80%,#745cff)) !important;
  border:1px solid color-mix(in srgb,var(--brand) 78%,var(--line)) !important;
  color:#fff !important;
}
.v283-project-actions #generateFieldKmz,
.v283-project-actions #openKmzVersions {
  background:color-mix(in srgb,var(--brand) 5%,var(--panel)) !important;
  border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line)) !important;
  color:var(--text) !important;
}
.v283-project-actions > button:hover {
  transform:translateY(-1px) !important;
  box-shadow:0 5px 14px rgba(15,23,42,.08) !important;
}

/* Enquadrar mapa: vira um controle próprio, sempre abaixo dos controles MapLibre. */
.map-floating.v291-fit-floating {
  position:absolute !important;
  z-index:12020 !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
}
.map-floating.v291-fit-floating #fitAllButton,
#fitAllButton.v291-fit-all {
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  min-height:40px !important;
  padding:0 !important;
  display:grid !important;
  place-items:center !important;
  border:1px solid var(--line) !important;
  border-radius:11px !important;
  background:var(--panel) !important;
  color:var(--text) !important;
  box-shadow:0 5px 16px rgba(15,23,42,.14) !important;
  font-size:21px !important;
  font-weight:900 !important;
  line-height:1 !important;
}
.map-floating.v291-fit-floating #fitAllButton:hover,
#fitAllButton.v291-fit-all:hover {
  background:var(--panel-3) !important;
  transform:translateY(-1px) !important;
}
html[data-theme="dark"] .map-floating.v291-fit-floating #fitAllButton,
html[data-theme="dark"] #fitAllButton.v291-fit-all {
  background:#101927 !important;
  color:#f4f7fb !important;
  border-color:#2b3a50 !important;
  box-shadow:0 8px 24px rgba(0,0,0,.34) !important;
}
html[data-theme="dark"] .map-floating.v291-fit-floating #fitAllButton:hover,
html[data-theme="dark"] #fitAllButton.v291-fit-all:hover {
  background:#182436 !important;
}

/* Camadas permanece separado, ao lado esquerdo dos controles nativos. */
@media (min-width:761px) {
  .v2-layer-filter {
    top:10px !important;
    right:62px !important;
    left:auto !important;
  }
}

@media (max-width:760px) {
  .v283-project-actions > button {
    height:58px !important;
    min-height:58px !important;
    padding:7px 8px !important;
    gap:7px !important;
    font-size:9.8px !important;
  }
  .v283-project-actions .v290-action-icon {
    width:20px !important;
    height:20px !important;
    flex-basis:20px !important;
  }
  .v2-layer-filter {
    top:10px !important;
    left:10px !important;
    right:auto !important;
  }
  .map-floating.v291-fit-floating #fitAllButton,
  #fitAllButton.v291-fit-all {
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    min-height:36px !important;
    border-radius:10px !important;
    font-size:19px !important;
  }
}

@media (max-width:360px) {
  .v283-project-actions > button {
    font-size:9.3px !important;
    padding:6px 7px !important;
  }
  /* Ao contrário da V2.9.0, o ícone não some: mantém alinhamento dos quatro cards. */
  .v283-project-actions .v290-action-icon { display:grid !important; }
}


/* =====================================================================
   WEBGIS V2.9.2 — POLIMENTO VISUAL DA SIDEBAR + CONTROLES DO MAPA
   ===================================================================== */

/* 1) AÇÕES DE PROJETO: quatro retângulos realmente alinhados, sem ícones. */
.v283-project-actions {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  grid-auto-rows:50px !important;
  gap:8px !important;
  margin:0 0 10px !important;
  align-items:stretch !important;
}
.v283-project-actions > button,
.v283-project-actions > button.v292-clean-action {
  width:100% !important;
  height:50px !important;
  min-height:50px !important;
  margin:0 !important;
  padding:6px 10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  white-space:normal !important;
  overflow:visible !important;
  border-radius:10px !important;
  font-size:10px !important;
  line-height:1.16 !important;
  font-weight:850 !important;
  letter-spacing:0 !important;
  box-shadow:none !important;
  transform:none !important;
}
.v283-project-actions .v290-action-icon { display:none !important; }
.v283-project-actions .v290-action-label {
  display:block !important;
  width:100% !important;
  text-align:center !important;
}
.v283-project-actions #openImport,
.v283-project-actions #openBaseImport {
  background:linear-gradient(135deg, color-mix(in srgb,var(--brand) 94%,#fff), color-mix(in srgb,var(--brand) 84%,#6c63ff)) !important;
  color:#fff !important;
  border:1px solid color-mix(in srgb,var(--brand) 74%,var(--line)) !important;
}
.v283-project-actions #generateFieldKmz,
.v283-project-actions #openKmzVersions {
  background:color-mix(in srgb,var(--brand) 3%,var(--panel)) !important;
  color:var(--text) !important;
  border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line)) !important;
}
.v283-project-actions > button:hover {
  transform:translateY(-1px) !important;
  box-shadow:0 5px 14px rgba(15,23,42,.08) !important;
}

/* 2) FILTRO SEMPRE ACIMA DOS CARDS DE PROJETO. */
.v283-project-content,
.v283-project-content.v292-project-content {
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
}
.v283-project-content .v2-project-search-wrap {
  order:0 !important;
  flex:0 0 auto !important;
  margin:0 0 8px !important;
  min-height:38px !important;
  border-radius:10px !important;
}
.v283-project-content #projectsList,
.v283-project-content .projects-list {
  order:1 !important;
  flex:1 1 auto !important;
  margin:0 !important;
}

/* 3) MAPA: duas colunas perfeitamente alinhadas.
      Esquerda = Camadas/Tempo real. Direita = navegação/GPS/enquadrar. */
.maplibregl-ctrl-top-right {
  top:12px !important;
  right:12px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:8px !important;
}
.maplibregl-ctrl-top-right > .maplibregl-ctrl {
  float:none !important;
  margin:0 !important;
}
.maplibregl-ctrl-top-right .maplibregl-ctrl-group {
  width:42px !important;
  margin:0 !important;
  border-radius:10px !important;
  overflow:hidden !important;
}
.maplibregl-ctrl-top-right .maplibregl-ctrl-group button {
  width:42px !important;
  height:42px !important;
  min-width:42px !important;
  min-height:42px !important;
  padding:0 !important;
}

.v2-layer-filter {
  top:12px !important;
  right:62px !important;
  left:auto !important;
  margin:0 !important;
}
.v2-layer-filter > button {
  width:108px !important;
  min-width:108px !important;
  height:42px !important;
  min-height:42px !important;
  padding:0 10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  border-radius:10px !important;
  font-size:10px !important;
  box-shadow:0 5px 16px rgba(15,23,42,.12) !important;
}

.v28-realtime-badge,
.v28-realtime-badge.v283-realtime-ready {
  position:fixed !important;
  top:calc(var(--topbar) + 62px) !important;
  right:62px !important;
  left:auto !important;
  bottom:auto !important;
  width:108px !important;
  max-width:108px !important;
  min-height:30px !important;
  padding:5px 8px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
  border-radius:999px !important;
  font-size:8.6px !important;
  line-height:1 !important;
  z-index:12040 !important;
}

.map-floating.v291-fit-floating,
.map-floating.v292-fit-floating {
  position:absolute !important;
  z-index:12020 !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
}
.map-floating.v292-fit-floating #fitAllButton,
#fitAllButton.v292-fit-all {
  width:var(--v292-control-size,42px) !important;
  height:var(--v292-control-size,42px) !important;
  min-width:var(--v292-control-size,42px) !important;
  min-height:var(--v292-control-size,42px) !important;
  padding:0 !important;
  display:grid !important;
  place-items:center !important;
  border:1px solid var(--line) !important;
  border-radius:10px !important;
  background:var(--panel) !important;
  color:var(--text) !important;
  box-shadow:0 5px 16px rgba(15,23,42,.12) !important;
  font-size:20px !important;
  line-height:1 !important;
}
html[data-theme="dark"] .map-floating.v292-fit-floating #fitAllButton,
html[data-theme="dark"] #fitAllButton.v292-fit-all {
  background:#101927 !important;
  color:#f4f7fb !important;
  border-color:#2b3a50 !important;
  box-shadow:0 8px 24px rgba(0,0,0,.34) !important;
}

/* A coluna direita inteira usa a mesma geometria no tema claro/escuro. */
html[data-theme="dark"] .maplibregl-ctrl-top-right .maplibregl-ctrl-group,
html[data-theme="dark"] .v2-layer-filter > button {
  border-color:#2b3a50 !important;
  box-shadow:0 8px 24px rgba(0,0,0,.30) !important;
}

@media (max-width:760px) {
  .v283-project-actions {
    grid-auto-rows:48px !important;
    gap:7px !important;
  }
  .v283-project-actions > button,
  .v283-project-actions > button.v292-clean-action {
    height:48px !important;
    min-height:48px !important;
    padding:5px 8px !important;
    font-size:9.6px !important;
    line-height:1.14 !important;
  }
  .v283-project-content .v2-project-search-wrap {
    min-height:37px !important;
    margin-bottom:7px !important;
  }

  .maplibregl-ctrl-top-right {
    top:10px !important;
    right:10px !important;
    gap:7px !important;
  }
  .maplibregl-ctrl-top-right .maplibregl-ctrl-group,
  .maplibregl-ctrl-top-right .maplibregl-ctrl-group button {
    width:40px !important;
    min-width:40px !important;
  }
  .maplibregl-ctrl-top-right .maplibregl-ctrl-group button {
    height:40px !important;
    min-height:40px !important;
  }
  .v2-layer-filter {
    top:10px !important;
    right:58px !important;
    left:auto !important;
  }
  .v2-layer-filter > button {
    width:104px !important;
    min-width:104px !important;
    height:40px !important;
    min-height:40px !important;
    font-size:9.5px !important;
  }
  .v28-realtime-badge,
  .v28-realtime-badge.v283-realtime-ready {
    top:calc(var(--topbar) + 57px) !important;
    right:58px !important;
    left:auto !important;
    width:104px !important;
    max-width:104px !important;
    min-height:29px !important;
    font-size:8.2px !important;
  }
}

@media (max-width:360px) {
  .v283-project-actions > button,
  .v283-project-actions > button.v292-clean-action {
    font-size:9.1px !important;
    padding:4px 6px !important;
  }
  .v2-layer-filter > button,
  .v28-realtime-badge,
  .v28-realtime-badge.v283-realtime-ready {
    width:98px !important;
    min-width:98px !important;
    max-width:98px !important;
  }
}

/* =====================================================================
   WEBGIS V2.9.3 — REFINO VISUAL FINAL
   ===================================================================== */

/* Cards de ação dos projetos: mesma caixa, mesma altura, mesma linha visual. */
.v283-project-actions,
.v283-project-actions.v293-refined-actions {
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows:72px !important;
  gap:10px !important;
  align-items:stretch !important;
  margin:0 0 10px !important;
}
.v283-project-actions > button,
.v283-project-actions > button.v292-clean-action,
.v283-project-actions > button.v293-refined-action {
  width:100% !important;
  min-width:0 !important;
  height:72px !important;
  min-height:72px !important;
  margin:0 !important;
  padding:12px 14px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  white-space:normal !important;
  word-break:keep-all !important;
  overflow-wrap:anywhere !important;
  line-height:1.16 !important;
  font-size:13px !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
  border-radius:14px !important;
  box-shadow:none !important;
  transform:none !important;
}
.v293-action-text {
  display:block !important;
  width:100% !important;
  text-align:center !important;
}
.v283-project-actions #openImport,
.v283-project-actions #openBaseImport {
  background:linear-gradient(135deg, color-mix(in srgb,var(--brand) 88%,#fff), color-mix(in srgb,var(--brand) 72%,#7667ff)) !important;
  border:1px solid color-mix(in srgb,var(--brand) 72%,var(--line)) !important;
  color:#fff !important;
}
.v283-project-actions #generateFieldKmz,
.v283-project-actions #openKmzVersions {
  background:color-mix(in srgb,var(--brand) 4%,var(--panel)) !important;
  border:1px solid color-mix(in srgb,var(--brand) 24%,var(--line)) !important;
  color:var(--text) !important;
}

/* Busca primeiro, projetos logo abaixo. */
.v283-project-content,
.v292-project-content {
  display:flex !important;
  flex-direction:column !important;
  gap:0 !important;
}
.v283-project-content .v2-project-search-wrap,
.v292-project-content .v2-project-search-wrap {
  order:0 !important;
  margin:0 0 10px !important;
}
.v283-project-content #projectsList,
.v283-project-content .projects-list,
.v292-project-content #projectsList,
.v292-project-content .projects-list {
  order:1 !important;
}

/* Mapa: duas colunas limpas e estáveis. */
.maplibregl-ctrl-top-right,
.maplibregl-ctrl-top-right.v293-map-controls-ready {
  top:14px !important;
  right:14px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:10px !important;
}
.maplibregl-ctrl-top-right .maplibregl-ctrl,
.maplibregl-ctrl-top-right .maplibregl-ctrl-group {
  float:none !important;
  margin:0 !important;
}
.maplibregl-ctrl-top-right .maplibregl-ctrl-group {
  width:44px !important;
  border-radius:14px !important;
  overflow:hidden !important;
}
.maplibregl-ctrl-top-right .maplibregl-ctrl-group button {
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  min-height:44px !important;
  padding:0 !important;
}

.v2-layer-filter,
.v2-layer-filter.v293-layer-stack {
  position:absolute !important;
  top:14px !important;
  left:14px !important;
  right:auto !important;
  margin:0 !important;
}
.v2-layer-filter > button {
  min-width:118px !important;
  width:118px !important;
  min-height:44px !important;
  height:44px !important;
  padding:0 14px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:14px !important;
  font-size:13px !important;
  font-weight:800 !important;
}

.v28-realtime-badge,
.v28-realtime-badge.v283-realtime-ready,
.v28-realtime-badge.v293-realtime-stack {
  position:fixed !important;
  top:60px !important;
  left:14px !important;
  right:auto !important;
  bottom:auto !important;
  min-width:118px !important;
  width:max-content !important;
  max-width:150px !important;
  min-height:32px !important;
  padding:6px 10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  border-radius:999px !important;
  font-size:10px !important;
  line-height:1 !important;
  white-space:nowrap !important;
  z-index:12040 !important;
}

.map-floating.v292-fit-floating,
.map-floating.v293-fit-stack {
  position:absolute !important;
  z-index:12020 !important;
  width:44px !important;
  height:44px !important;
  margin:0 !important;
}
.map-floating.v292-fit-floating #fitAllButton,
.map-floating.v293-fit-stack #fitAllButton,
#fitAllButton.v292-fit-all,
#fitAllButton.v293-fit-btn {
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  min-height:44px !important;
  padding:0 !important;
  display:grid !important;
  place-items:center !important;
  border:1px solid var(--line) !important;
  border-radius:14px !important;
  background:var(--panel) !important;
  color:var(--text) !important;
  box-shadow:0 6px 18px rgba(15,23,42,.14) !important;
  font-size:20px !important;
}
html[data-theme="dark"] .map-floating.v292-fit-floating #fitAllButton,
html[data-theme="dark"] .map-floating.v293-fit-stack #fitAllButton,
html[data-theme="dark"] #fitAllButton.v292-fit-all,
html[data-theme="dark"] #fitAllButton.v293-fit-btn {
  background:#101927 !important;
  color:#f4f7fb !important;
  border-color:#2b3a50 !important;
  box-shadow:0 8px 24px rgba(0,0,0,.34) !important;
}

@media (max-width:760px) {
  .v283-project-actions,
  .v283-project-actions.v293-refined-actions {
    grid-auto-rows:64px !important;
    gap:8px !important;
  }
  .v283-project-actions > button,
  .v283-project-actions > button.v292-clean-action,
  .v283-project-actions > button.v293-refined-action {
    height:64px !important;
    min-height:64px !important;
    padding:10px 12px !important;
    font-size:11.5px !important;
  }

  .maplibregl-ctrl-top-right,
  .maplibregl-ctrl-top-right.v293-map-controls-ready {
    top:12px !important;
    right:12px !important;
    gap:8px !important;
  }
  .maplibregl-ctrl-top-right .maplibregl-ctrl-group,
  .map-floating.v292-fit-floating,
  .map-floating.v293-fit-stack {
    width:40px !important;
  }
  .maplibregl-ctrl-top-right .maplibregl-ctrl-group button,
  .map-floating.v292-fit-floating #fitAllButton,
  .map-floating.v293-fit-stack #fitAllButton,
  #fitAllButton.v292-fit-all,
  #fitAllButton.v293-fit-btn {
    width:40px !important;
    height:40px !important;
    min-width:40px !important;
    min-height:40px !important;
  }
  .v2-layer-filter,
  .v2-layer-filter.v293-layer-stack {
    top:12px !important;
    left:12px !important;
  }
  .v2-layer-filter > button {
    width:112px !important;
    min-width:112px !important;
    height:40px !important;
    min-height:40px !important;
    font-size:12px !important;
  }
  .v28-realtime-badge,
  .v28-realtime-badge.v283-realtime-ready,
  .v28-realtime-badge.v293-realtime-stack {
    top:56px !important;
    left:12px !important;
    min-width:112px !important;
    max-width:140px !important;
    min-height:30px !important;
    font-size:9px !important;
  }
}


/* =====================================================================
   WEBGIS V2.9.4 — UI COMPACTA / MAPA ALINHADO
   ===================================================================== */

/* 1) AÇÕES: quatro botões exatamente da mesma geometria e mesma linguagem. */
.v283-project-actions,
.v283-project-actions.v293-refined-actions,
.v283-project-actions.v294-project-actions {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  grid-auto-rows:48px !important;
  gap:8px !important;
  align-items:stretch !important;
  margin:0 0 9px !important;
}

.v283-project-actions > button,
.v283-project-actions > button.v292-clean-action,
.v283-project-actions > button.v293-refined-action,
.v283-project-actions > button.v294-project-action {
  width:100% !important;
  min-width:0 !important;
  height:48px !important;
  min-height:48px !important;
  margin:0 !important;
  padding:6px 10px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  background:linear-gradient(
    135deg,
    color-mix(in srgb,var(--brand) 91%,#fff),
    color-mix(in srgb,var(--brand) 78%,#7567ff)
  ) !important;
  color:#fff !important;
  border:1px solid color-mix(in srgb,var(--brand) 76%,var(--line)) !important;
  border-radius:11px !important;
  box-shadow:0 3px 8px rgba(37,99,235,.10) !important;

  font-size:10.5px !important;
  font-weight:800 !important;
  line-height:1.12 !important;
  letter-spacing:0 !important;
  text-align:center !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;

  transform:none !important;
}

.v283-project-actions > button:hover,
.v283-project-actions > button.v294-project-action:hover {
  filter:brightness(.97) !important;
  transform:translateY(-1px) !important;
  box-shadow:0 5px 12px rgba(37,99,235,.14) !important;
}

/* Neutraliza estilos diferentes antigos dos dois botões inferiores. */
.v283-project-actions #generateFieldKmz,
.v283-project-actions #openKmzVersions,
.v283-project-actions #openImport,
.v283-project-actions #openBaseImport {
  background:linear-gradient(
    135deg,
    color-mix(in srgb,var(--brand) 91%,#fff),
    color-mix(in srgb,var(--brand) 78%,#7567ff)
  ) !important;
  color:#fff !important;
  border:1px solid color-mix(in srgb,var(--brand) 76%,var(--line)) !important;
}

/* Filtro continua imediatamente acima dos projetos. */
.v283-project-content .v2-project-search-wrap,
.v292-project-content .v2-project-search-wrap {
  margin:0 0 8px !important;
}

/* 2) MAPA: status à esquerda da navegação, sem atravessar a tela. */
#map {
  --v294-control-size:42px;
}

.v294-map-status-stack {
  position:absolute !important;
  top:12px !important;
  right:64px !important;
  left:auto !important;
  bottom:auto !important;
  z-index:12030 !important;

  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:8px !important;

  width:112px !important;
  pointer-events:none;
}

.v294-map-status-stack > * {
  pointer-events:auto;
}

.v294-map-status-stack .v2-layer-filter,
.v2-layer-filter.v294-layer-control {
  position:static !important;
  inset:auto !important;
  width:112px !important;
  margin:0 !important;
}

.v294-map-status-stack .v2-layer-filter > button,
.v2-layer-filter.v294-layer-control > button {
  width:112px !important;
  min-width:112px !important;
  height:42px !important;
  min-height:42px !important;
  margin:0 !important;
  padding:0 10px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;

  border-radius:11px !important;
  font-size:10.5px !important;
  font-weight:800 !important;
  box-shadow:0 4px 12px rgba(15,23,42,.14) !important;
}

.v294-map-status-stack .v28-realtime-badge,
.v28-realtime-badge.v294-realtime-control {
  position:static !important;
  inset:auto !important;

  width:112px !important;
  min-width:112px !important;
  max-width:112px !important;
  min-height:30px !important;
  margin:0 !important;
  padding:5px 8px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;

  border-radius:999px !important;
  font-size:8.8px !important;
  line-height:1 !important;
  white-space:nowrap !important;
  z-index:auto !important;
}

.maplibregl-ctrl-top-right {
  top:12px !important;
  right:12px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:8px !important;
}

.maplibregl-ctrl-top-right > .maplibregl-ctrl {
  float:none !important;
  margin:0 !important;
}

.maplibregl-ctrl-top-right .maplibregl-ctrl-group {
  width:42px !important;
  margin:0 !important;
  border-radius:11px !important;
  overflow:hidden !important;
}

.maplibregl-ctrl-top-right .maplibregl-ctrl-group button {
  width:42px !important;
  min-width:42px !important;
  height:42px !important;
  min-height:42px !important;
  padding:0 !important;
}

.map-floating.v294-fit-floating {
  position:absolute !important;
  z-index:12020 !important;
  margin:0 !important;
}

.map-floating.v294-fit-floating #fitAllButton,
#fitAllButton.v294-fit-button {
  width:var(--v294-control-size,42px) !important;
  min-width:var(--v294-control-size,42px) !important;
  height:var(--v294-control-size,42px) !important;
  min-height:var(--v294-control-size,42px) !important;

  display:grid !important;
  place-items:center !important;

  padding:0 !important;
  border:1px solid var(--line) !important;
  border-radius:11px !important;
  background:var(--panel) !important;
  color:var(--text) !important;
  box-shadow:0 4px 12px rgba(15,23,42,.14) !important;
  font-size:19px !important;
}

html[data-theme="dark"] .map-floating.v294-fit-floating #fitAllButton,
html[data-theme="dark"] #fitAllButton.v294-fit-button {
  background:#101927 !important;
  color:#f4f7fb !important;
  border-color:#2b3a50 !important;
  box-shadow:0 8px 20px rgba(0,0,0,.30) !important;
}

/* Mobile: mantém o mesmo desenho, apenas ligeiramente menor. */
@media (max-width:760px) {
  .v283-project-actions,
  .v283-project-actions.v293-refined-actions,
  .v283-project-actions.v294-project-actions {
    grid-auto-rows:46px !important;
    gap:7px !important;
  }

  .v283-project-actions > button,
  .v283-project-actions > button.v292-clean-action,
  .v283-project-actions > button.v293-refined-action,
  .v283-project-actions > button.v294-project-action {
    height:46px !important;
    min-height:46px !important;
    padding:5px 7px !important;
    font-size:9.7px !important;
    line-height:1.10 !important;
    border-radius:10px !important;
  }

  .v294-map-status-stack {
    top:10px !important;
    right:58px !important;
    width:104px !important;
    gap:7px !important;
  }

  .v294-map-status-stack .v2-layer-filter,
  .v2-layer-filter.v294-layer-control,
  .v294-map-status-stack .v2-layer-filter > button,
  .v2-layer-filter.v294-layer-control > button,
  .v294-map-status-stack .v28-realtime-badge,
  .v28-realtime-badge.v294-realtime-control {
    width:104px !important;
    min-width:104px !important;
    max-width:104px !important;
  }

  .v294-map-status-stack .v2-layer-filter > button,
  .v2-layer-filter.v294-layer-control > button {
    height:40px !important;
    min-height:40px !important;
    font-size:10px !important;
  }

  .v294-map-status-stack .v28-realtime-badge,
  .v28-realtime-badge.v294-realtime-control {
    min-height:29px !important;
    font-size:8.2px !important;
  }

  .maplibregl-ctrl-top-right {
    top:10px !important;
    right:10px !important;
    gap:7px !important;
  }

  .maplibregl-ctrl-top-right .maplibregl-ctrl-group,
  .maplibregl-ctrl-top-right .maplibregl-ctrl-group button {
    width:40px !important;
    min-width:40px !important;
  }

  .maplibregl-ctrl-top-right .maplibregl-ctrl-group button {
    height:40px !important;
    min-height:40px !important;
  }
}


/* =====================================================================
   WEBGIS V2.9.5 — HOTFIX DE NIVELAMENTO DOS 4 CARDS
   Causa: regras legadas com seletor por ID + !important mantinham
   margin-top em #generateFieldKmz e margens próprias em outros botões.
   Este bloco usa especificidade maior e zera definitivamente essas margens.
   ===================================================================== */

#v283-project-actions #openImport,
#v283-project-actions #openBaseImport,
#v283-project-actions #generateFieldKmz,
#v283-project-actions #openKmzVersions {
  position:static !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  left:auto !important;

  margin:0 !important;
  margin-top:0 !important;
  margin-right:0 !important;
  margin-bottom:0 !important;
  margin-left:0 !important;

  align-self:stretch !important;
  justify-self:stretch !important;

  width:100% !important;
  height:48px !important;
  min-height:48px !important;
  max-height:48px !important;

  transform:none !important;
}

/* A grade também recebe linhas fixas, evitando que qualquer margem legada
   volte a alterar a geometria visual da segunda linha. */
#v283-project-actions {
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  grid-template-rows:48px 48px !important;
  grid-auto-rows:48px !important;
  align-items:stretch !important;
  justify-items:stretch !important;
  row-gap:8px !important;
  column-gap:8px !important;
}

@media (max-width:760px) {
  #v283-project-actions {
    grid-template-rows:46px 46px !important;
    grid-auto-rows:46px !important;
    row-gap:7px !important;
    column-gap:7px !important;
  }

  #v283-project-actions #openImport,
  #v283-project-actions #openBaseImport,
  #v283-project-actions #generateFieldKmz,
  #v283-project-actions #openKmzVersions {
    height:46px !important;
    min-height:46px !important;
    max-height:46px !important;
  }
}


/* =====================================================================
   WEBGIS V2.10 — CAMPO REAL
   ===================================================================== */

/* Toolbar do mapa: uma única âncora. Fica abaixo da sidebar e de modais. */
#v210-map-status-stack {
  position:absolute !important;
  top:12px !important;
  right:64px !important;
  left:auto !important;
  bottom:auto !important;
  z-index:9 !important;
  width:112px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  pointer-events:none !important;
}
#v210-map-status-stack > * { pointer-events:auto !important; }
#v210-map-status-stack .v2-layer-filter,
#v210-map-status-stack .v28-realtime-badge {
  position:static !important;
  inset:auto !important;
  width:112px !important;
  min-width:112px !important;
  max-width:112px !important;
  margin:0 !important;
  transform:none !important;
}
#v210-map-status-stack .v2-layer-filter > button { width:112px !important; min-width:112px !important; }
#v210-map-status-stack.is-sidebar-open { z-index:4 !important; }

/* Evita que stacks/regras antigas retomem o controle depois do carregamento. */
#v294-map-status-stack:empty { display:none !important; }
.sidebar { z-index:30 !important; }
.maplibregl-ctrl-top-right,
.map-floating.v294-fit-floating,
.map-floating.v293-fit-stack,
.map-floating.v292-fit-floating { z-index:8 !important; }

/* Sugestão de localização: bottom sheet compacto e mapa utilizável no celular. */
@media (max-width:760px) {
  #v210-map-status-stack {
    top:10px !important;
    right:58px !important;
    width:104px !important;
    gap:7px !important;
  }
  #v210-map-status-stack .v2-layer-filter,
  #v210-map-status-stack .v28-realtime-badge,
  #v210-map-status-stack .v2-layer-filter > button {
    width:104px !important;
    min-width:104px !important;
    max-width:104px !important;
  }
  #sidebar.open ~ .map-area #v210-map-status-stack,
  body:has(#sidebar.open) #v210-map-status-stack,
  body:has(#sidebar.open) .maplibregl-ctrl-top-right,
  body:has(#sidebar.open) .map-floating { visibility:hidden !important; pointer-events:none !important; }

  #webgis-candidate-edit-window .maplibregl-popup-content,
  .maplibregl-popup:has(.candidate-location-editor) .maplibregl-popup-content {
    padding:0 !important;
    border-radius:18px 18px 0 0 !important;
    overflow:hidden !important;
  }
  #webgis-candidate-edit-window,
  .maplibregl-popup:has(.candidate-location-editor) {
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    top:auto !important;
    transform:none !important;
    width:100vw !important;
    max-width:none !important;
    z-index:16040 !important;
  }
  #webgis-candidate-edit-window .candidate-location-editor,
  .maplibregl-popup:has(.candidate-location-editor) .candidate-location-editor {
    max-height:48dvh !important;
    overflow:auto !important;
    overscroll-behavior:contain !important;
    padding:9px 12px calc(12px + env(safe-area-inset-bottom,0px)) !important;
  }
  .candidate-location-editor .candidate-point-selector-grid { grid-template-columns:repeat(4,minmax(0,1fr)) !important; }
  .candidate-location-editor .candidate-point-selector { margin:5px 0 !important; }
  .candidate-location-editor .candidate-editor-summary { margin:5px 0 !important; }
  .candidate-location-editor .candidate-auto-area-hint { display:none !important; }
  .candidate-location-editor textarea { min-height:44px !important; max-height:72px !important; }
  .candidate-location-actions { position:sticky !important; bottom:0 !important; background:var(--panel) !important; padding-top:7px !important; }

  /* Uma tela por vez: painel anterior fica escondido, não empilhado. */
  .v2-picker:not(.hidden) ~ .v2-field-sheet { pointer-events:none !important; }
  .v210-mobile-flowbar {
    display:grid !important;
    grid-template-columns:42px 1fr 42px !important;
    align-items:center !important;
    gap:8px !important;
    min-height:44px !important;
    padding:4px 4px 7px !important;
    border-bottom:1px solid var(--line) !important;
    background:var(--panel) !important;
    position:sticky !important;
    top:0 !important;
    z-index:3 !important;
  }
  .v210-mobile-flowbar > span { text-align:center !important; font-size:11px !important; font-weight:800 !important; color:var(--muted) !important; text-transform:uppercase !important; letter-spacing:.05em !important; }
  .v210-mobile-flowbar button {
    width:40px !important; height:40px !important; border:1px solid var(--line) !important;
    border-radius:11px !important; background:var(--panel) !important; color:var(--text) !important;
    font-size:22px !important; line-height:1 !important;
  }
  .v210-mobile-close-all { justify-self:end !important; }

  /* Comandos do Candidate com alvos maiores para toque. */
  .candidate-actions button,
  .candidate-main-actions button,
  .candidate-secondary-actions button,
  .candidate-suggestion-main-actions button,
  .candidate-review-actions button,
  .v2-candidate-actions button {
    min-height:46px !important;
    border-radius:11px !important;
    font-size:12px !important;
    line-height:1.2 !important;
  }

  #candidateConsolidatedModal .webgis-summary-card { max-height:88dvh !important; overflow:auto !important; }
}

/* Rótulos de campo: Categoria + subtipo visualmente legíveis. */
.v2-object-card strong,
.v2-history-tags b { letter-spacing:.01em; }

/* =====================================================================
   WEBGIS V2.10.1 — HOTFIX SIDEBAR MOBILE INTERATIVA
   O backdrop mobile usa z-index 10040. Uma regra tardia da V2.10 havia
   reduzido o z-index global da sidebar, deixando o backdrop por cima dela.
   Resultado: drawer desfocado e sem receber toque/clique no celular.
   ===================================================================== */
@media (max-width:760px) {
  #sidebar.sidebar {
    z-index:10060 !important;
    pointer-events:auto !important;
    filter:none !important;
    -webkit-filter:none !important;
  }

  #v2-sidebar-backdrop {
    z-index:10040 !important;
    pointer-events:none !important;
  }

  #v2-sidebar-backdrop.show {
    display:block !important;
    pointer-events:auto !important;
  }

  /* Mantém o drawer acima do backdrop durante toda a animação. */
  #sidebar.sidebar.open {
    z-index:10060 !important;
    pointer-events:auto !important;
    touch-action:pan-y !important;
  }

  #sidebar.sidebar.open * {
    pointer-events:auto;
  }
}

/* =====================================================================
   WEBGIS V2.10.3 — HOTFIX SOLICITAÇÃO DE ACESSO / AÇÕES VISÍVEIS
   Ajuste isolado: aprovar e recusar cadastro ficam lado a lado sem corte,
   especialmente na sidebar mobile. Nenhum JS/Python alterado.
   ===================================================================== */

.v290-user-card.is-pending {
  grid-template-columns:34px minmax(0,1fr) auto !important;
}

.v290-pending-actions {
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:5px !important;
  width:auto !important;
  min-width:61px !important;
  overflow:visible !important;
}

.v290-pending-actions button {
  flex:0 0 28px !important;
  width:28px !important;
  min-width:28px !important;
  max-width:28px !important;
  height:28px !important;
  min-height:28px !important;
  max-height:28px !important;
  margin:0 !important;
  padding:0 !important;
}

@media (max-width:760px) {
  .v290-user-card.is-pending {
    grid-template-columns:32px minmax(0,1fr) auto !important;
    gap:6px !important;
  }

  .v290-pending-actions {
    min-width:61px !important;
    gap:5px !important;
  }
}


/* =====================================================================
   WEBGIS V2.11.0 — PWA
   Instalação minimalista dentro da sidebar, abaixo de "Usuários".
   ===================================================================== */
#v211-pwa-install {
  position: relative !important;
  inset: auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  z-index: auto !important;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  width: 100%;
  min-height: 34px;
  margin: 8px 0 0;
  padding: 7px 10px;

  border: 1px solid var(--line, #dbe3ec);
  border-radius: 10px;
  background: var(--panel-2, #f7f9fc);
  color: var(--text-soft, #415063);

  box-shadow: none;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .01em;

  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

#v211-pwa-install:hover {
  border-color: var(--brand, #2563eb);
  background: var(--panel, #ffffff);
  color: var(--brand, #2563eb);
}

#v211-pwa-install:active {
  transform: translateY(1px) !important;
}

#v211-pwa-install:disabled {
  opacity: .65;
  cursor: wait;
}

#v211-pwa-install.hidden {
  display: none !important;
}

html.v211-pwa-standalone,
html.v211-pwa-standalone body {
  min-height: 100%;
  overscroll-behavior-y: none;
}

@media (max-width:760px) {
  #v211-pwa-install {
    width: 100%;
    min-height: 36px;
    max-width: none;
    margin-top: 8px;
    white-space: nowrap;
  }
}

/* =====================================================================
   WEBGIS V2.12.0 — CENTRO AJUSTÁVEL + PREPARAÇÃO OFFLINE
   ===================================================================== */
.candidate-point-selector-grid-v212 {
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}
.candidate-center-selector {
  border-style:solid !important;
}
.candidate-center-selector b::before {
  content:"◎ ";
}
.candidate-coordinate-center-row {
  border:1px dashed var(--warning,#f59e0b) !important;
  border-radius:10px !important;
  padding:6px !important;
  margin-bottom:4px !important;
}

.v212-offline-project-actions {
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:8px;
}
.v212-prepare-offline,
.v212-remove-offline,
.v213632-release-project {
  min-height:32px;
  border:1px solid var(--line,#dbe3ec);
  border-radius:9px;
  background:var(--panel-2,#f7f9fc);
  color:var(--text-soft,#415063);
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.v212-prepare-offline {
  flex:1 1 auto;
  padding:6px 9px;
}
.v213632-release-project {
  flex:0 0 auto;
  padding:6px 9px;
  color:#15803d;
  border-color:#16a34a55;
  background:#16a34a0c;
  white-space:nowrap;
}
.v212-remove-offline {
  flex:0 0 32px;
  width:32px;
  padding:0;
  font-size:18px;
}
.v212-prepare-offline:hover,
.v212-remove-offline:hover,
.v213632-release-project:hover {
  border-color:var(--brand,#2563eb);
}
.v212-prepare-offline:disabled {
  opacity:.65;
  cursor:wait;
}

.v212-connectivity-pill {
  position:fixed;
  left:50%;
  bottom:calc(12px + env(safe-area-inset-bottom,0px));
  transform:translateX(-50%);
  z-index:12070;
  max-width:calc(100vw - 28px);
  padding:7px 11px;
  border:1px solid var(--line,#dbe3ec);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--text,#17212b);
  box-shadow:0 5px 18px rgba(15,23,42,.12);
  font-size:10px;
  line-height:1;
  font-weight:800;
  white-space:nowrap;
  pointer-events:none;
  backdrop-filter:blur(10px);
}
.v212-connectivity-pill.is-online { color:#15803d; }
.v212-connectivity-pill.is-offline { color:#b45309; }
html[data-theme="dark"] .v212-connectivity-pill {
  background:rgba(15,23,36,.94);
  border-color:var(--line,#26364a);
  color:var(--text,#f3f6fb);
}
html[data-theme="dark"] .v212-connectivity-pill.is-online { color:#86efac; }
html[data-theme="dark"] .v212-connectivity-pill.is-offline { color:#fbbf24; }

@media (max-width:760px) {
  .candidate-point-selector-grid-v212 {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .v212-connectivity-pill {
    bottom:calc(9px + env(safe-area-inset-bottom,0px));
    font-size:9.5px;
    padding:6px 9px;
  }
}


/* =====================================================================
   WEBGIS V2.12.2 — AJUSTES VISUAIS PWA / CONTROLES DO MAPA
   ===================================================================== */

/* Indicador Online/Offline permanece funcional no JS, mas oculto por enquanto. */
#v212-connectivity-pill,
.v212-connectivity-pill {
  display: none !important;
}

/* Sobe o conjunto Mapa / Satélite / Att para não ficar colado no rodapé. */
#webgis-basemap-switch,
.webgis-basemap-switch {
  bottom: 78px !important;
}

.refresh-map-button {
  bottom: 78px !important;
}

/* Mantém a atribuição logo abaixo do conjunto, também afastada do rodapé. */
.maplibregl-ctrl-bottom-right {
  bottom: 48px !important;
}

@media (max-width:760px) {
  #webgis-basemap-switch,
  .webgis-basemap-switch {
    right: 64px !important;
    bottom: 76px !important;
  }

  .refresh-map-button {
    right: 12px !important;
    bottom: 76px !important;
  }

  .maplibregl-ctrl-bottom-right {
    bottom: 46px !important;
  }
}


/* =====================================================================
   WEBGIS V2.13.1 — VISTORIA OFFLINE / SINCRONIZACAO
   ===================================================================== */
.v213-offline-visit-banner {
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:10px 0 12px;
  padding:10px 12px;
  border:1px solid rgba(37,99,235,.22);
  border-radius:12px;
  background:rgba(37,99,235,.08);
  color:var(--text,#17212b);
}

.v213-offline-visit-banner > span {
  flex:0 0 auto;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:rgba(37,99,235,.14);
  color:var(--brand,#2563eb);
  font-weight:900;
}

.v213-offline-visit-banner > div {
  min-width:0;
  display:grid;
  gap:2px;
}

.v213-offline-visit-banner strong {
  font-size:12px;
  line-height:1.25;
}

.v213-offline-visit-banner small {
  color:var(--muted,#6d7b86);
  font-size:10.5px;
  line-height:1.35;
}

html[data-theme="dark"] .v213-offline-visit-banner {
  border-color:rgba(96,165,250,.28);
  background:rgba(37,99,235,.13);
}

@media (max-width:760px) {
  .v213-offline-visit-banner {
    margin:8px 0 10px;
    padding:9px 10px;
  }
}

/* =====================================================================
   WEBGIS V2.13.2 — CAMPO OFFLINE / REFERÊNCIAS / NAVEGAÇÃO / CAMADAS
   ===================================================================== */

/* Camadas: correção definitiva de contraste/visibilidade no PC e mobile. */
#v2-layer-filter,
.v2-layer-filter {
  opacity:1 !important;
  filter:none !important;
  isolation:isolate !important;
}
#v2-layer-filter.open,
.v2-layer-filter.open { z-index:16020 !important; }
#v2-layer-filter-body {
  opacity:1 !important;
  filter:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  background:var(--panel,#fff) !important;
  color:var(--text,#17212b) !important;
  border:1px solid var(--line,#d8e0e7) !important;
  box-shadow:0 18px 52px rgba(15,23,42,.24) !important;
}
#v2-layer-filter-body * { opacity:1; }
#v2-layer-filter-body small { color:var(--muted,#6d7b86) !important; }
#v2-layer-filter-toggle[aria-expanded="true"] {
  background:var(--brand,#2563eb) !important;
  color:#fff !important;
  border-color:transparent !important;
  box-shadow:0 8px 22px rgba(37,99,235,.28) !important;
}
#v2-layer-filter-backdrop {
  background:rgba(15,23,42,.14) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
html[data-theme="dark"] #v2-layer-filter-body {
  background:#111827 !important;
  color:#f3f6fb !important;
  border-color:#334155 !important;
  box-shadow:0 22px 56px rgba(0,0,0,.48) !important;
}
@media (min-width:761px) {
  #v2-layer-filter-backdrop { display:none !important; }
  #v2-layer-filter-body {
    position:fixed !important;
    top:110px !important;
    right:74px !important;
    width:min(370px,calc(100vw - 100px)) !important;
    max-height:calc(100dvh - 145px) !important;
    overflow:auto !important;
    border-radius:16px !important;
    z-index:16030 !important;
  }
}
@media (max-width:760px) {
  #v2-layer-filter-body {
    background:var(--panel,#fff) !important;
    opacity:1 !important;
    border-radius:18px 18px 0 0 !important;
    box-shadow:0 -18px 50px rgba(15,23,42,.30) !important;
    z-index:16030 !important;
  }
  #v2-layer-filter-backdrop:not(.hidden) { z-index:16010 !important; }
}

/* Referências e identificação. */
.v2132-reference-color-row { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:12px !important; }
.v2132-reference-candidate-card {
  display:grid; gap:6px; padding:8px; margin:6px 0;
  border:1px solid var(--line,#d8e0e7); border-radius:10px; background:var(--panel,#fff);
}
.v2132-reference-candidate-card .v2-reference-candidate { width:100%; }
.v2132-reference-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.v2132-reference-actions button {
  min-height:34px; border:1px solid var(--line,#d8e0e7); border-radius:8px;
  background:var(--panel,#fff); color:var(--text,#17212b); font-size:10px; font-weight:800;
}
.v2132-reference-actions button:hover { border-color:var(--brand,#2563eb); }
.v2132-reference-link-method { font-size:9px !important; color:var(--muted,#6d7b86) !important; }
.v2132-id-stack { display:grid; gap:2px; margin-top:8px; padding:7px 9px; border-radius:8px; background:var(--bg,#eef2f5); }
.v2132-id-stack strong { font-size:11px; }
.v2132-id-stack small { font-size:9.5px; color:var(--muted,#6d7b86); }

/* Navegação GPS na sidebar. */
.v2132-navigation-panel {
  margin-top:12px; padding:11px; display:grid; gap:9px;
  border:1px solid var(--line,#d8e0e7); border-radius:13px; background:var(--panel,#fff);
}
.v2132-nav-title { display:flex; align-items:center; gap:8px; }
.v2132-nav-title > span {
  width:30px; height:30px; display:grid; place-items:center; flex:0 0 auto;
  border-radius:9px; background:rgba(37,99,235,.10); color:var(--brand,#2563eb); font-size:17px;
}
.v2132-nav-title > div { display:grid; gap:1px; min-width:0; }
.v2132-nav-title strong { font-size:11px; }
.v2132-nav-title small { font-size:9px; color:var(--muted,#6d7b86); }
#v2132-nav-target {
  width:100%; min-height:38px; padding:6px 8px; border:1px solid var(--line,#d8e0e7);
  border-radius:9px; background:var(--panel,#fff); color:var(--text,#17212b); font-size:10px;
}
.v2132-nav-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.v2132-nav-actions button {
  min-height:34px; border:0; border-radius:9px; background:var(--brand,#2563eb); color:#fff; font-size:10px; font-weight:800;
}
#v2132-nav-stop { background:#475569; }
.v2132-nav-distance {
  min-height:35px; display:grid; place-items:center; text-align:center; padding:6px;
  border-radius:9px; background:var(--bg,#eef2f5); color:var(--muted,#6d7b86); font-size:9.5px;
}
.v2132-nav-distance strong { display:block; color:var(--text,#17212b); font-size:16px; line-height:1.1; }
.v2132-nav-distance span { display:block; margin-top:2px; }

/* Offline: deixa visualmente claro que os controles continuam ativos. */
.v213-offline-visit-banner { border-style:solid !important; }
.v2-object-row .v2-object-readonly { opacity:.7; }

@media (max-width:760px) {
  .v2132-navigation-panel { margin-top:10px; padding:10px; }
  .v2132-reference-actions { grid-template-columns:1fr; }
  #v2132-nav-target { min-height:42px; }
  .v2132-nav-actions button { min-height:40px; }
}


/* =====================================================================
   WEBGIS V2.13.3 — HOTFIX MOBILE + WEBAPP / PWA
   ===================================================================== */

/* O botão de instalação continua disponível no navegador mesmo quando o
   beforeinstallprompt demora ou não é exposto. No modo app ele some. */
#v211-pwa-install:not(.hidden) {
  display:inline-flex !important;
}
#v211-pwa-install.is-ready {
  border-color:color-mix(in srgb,var(--brand,#2563eb) 58%,var(--line,#dbe3ec)) !important;
  color:var(--brand,#2563eb) !important;
}
html.v211-pwa-standalone #v211-pwa-install,
body.v211-pwa-standalone #v211-pwa-install {
  display:none !important;
}

/* CORREÇÃO MOBILE CAMADAS:
   o backdrop possuía z-index muito maior que o stack que contém o botão e o
   painel. Visualmente o painel podia aparecer, mas o backdrop capturava o toque. */
#v210-map-status-stack.is-layer-open {
  z-index:16025 !important;
  pointer-events:auto !important;
}
#v210-map-status-stack.is-layer-open #v2-layer-filter,
#v210-map-status-stack.is-layer-open #v2-layer-filter-body {
  pointer-events:auto !important;
}

@media (max-width:760px) {
  #v2-layer-filter-backdrop {
    position:fixed !important;
    inset:var(--topbar,58px) 0 0 0 !important;
    z-index:16010 !important;
    pointer-events:auto !important;
    touch-action:none !important;
  }

  #v210-map-status-stack.is-layer-open {
    z-index:16025 !important;
    visibility:visible !important;
  }

  #v210-map-status-stack.is-layer-open #v2-layer-filter {
    visibility:visible !important;
    z-index:16025 !important;
  }

  #v2-layer-filter-body {
    position:fixed !important;
    left:8px !important;
    right:8px !important;
    top:auto !important;
    bottom:max(8px,env(safe-area-inset-bottom,0px)) !important;
    width:auto !important;
    max-width:none !important;
    max-height:min(78dvh,calc(100dvh - var(--topbar,58px) - 18px)) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain !important;
    touch-action:pan-y !important;
    pointer-events:auto !important;
    z-index:16030 !important;
  }

  #v2-layer-filter-body button,
  #v2-layer-filter-body input,
  #v2-layer-filter-body label,
  #v2-layer-filter-body summary {
    pointer-events:auto !important;
    touch-action:manipulation;
  }

  /* Área de toque confortável dentro do WebApp instalado. */
  #v2-layer-filter-toggle,
  #v2-layer-filter-close,
  #v211-pwa-install {
    min-height:44px !important;
  }
}


/* =====================================================================
   WEBGIS V2.13.5 — MOBILE / WEBAPP HARDENING
   ===================================================================== */
:root {
  --webgis-visual-height: 100dvh;
  --webgis-visual-offset-top: 0px;
}

html.v211-pwa-standalone,
html.v211-pwa-standalone body {
  overscroll-behavior: none;
}

@media (max-width:760px) {
  html.v211-pwa-standalone {
    --webgis-safe-top: env(safe-area-inset-top, 0px);
    --webgis-safe-bottom: env(safe-area-inset-bottom, 0px);
    --topbar: calc(58px + var(--webgis-safe-top));
  }

  html.v211-pwa-standalone .topbar {
    height: var(--topbar) !important;
    padding-top: var(--webgis-safe-top) !important;
  }

  .app-screen,
  .workspace,
  .map-area {
    max-height: var(--webgis-visual-height, 100dvh);
  }

  #v2-layer-filter-body {
    max-height: min(
      78dvh,
      calc(var(--webgis-visual-height, 100dvh) - 76px - env(safe-area-inset-bottom, 0px))
    ) !important;
    padding-bottom: max(12px, env(safe-area-inset-bottom, 0px)) !important;
    overscroll-behavior-y: contain !important;
    touch-action: pan-y !important;
    pointer-events: auto !important;
  }

  #v2-layer-filter-body label,
  #v2-layer-filter-body summary,
  #v2-layer-filter-body button,
  #v2-layer-filter-body input,
  #v2-layer-filter-body select {
    min-height: 44px;
    touch-action: manipulation !important;
  }

  #v2-layer-filter-body input[type="checkbox"],
  #v2-layer-filter-body input[type="radio"] {
    min-width: 22px !important;
    min-height: 22px !important;
  }

  .v2-field-sheet,
  .v2-picker,
  .webgis-summary-window,
  #webgis-candidate-edit-window {
    max-height: calc(var(--webgis-visual-height, 100dvh) - 8px) !important;
  }

  .v2-mobile-visit-nav {
    padding-bottom: max(5px, env(safe-area-inset-bottom, 0px)) !important;
  }

  .v2-photo-actions .v2-photo-button,
  .v2-object-photo,
  .v2-mobile-visit-nav button,
  .v2132-nav-actions button,
  #v211-pwa-install {
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent;
  }

  /* Quando o teclado ocupa parte da tela, prioriza conteúdo editável. */
  html.v2135-keyboard-open .v2-field-sheet,
  html.v2135-keyboard-open .v2-picker,
  html.v2135-keyboard-open #v2-layer-filter-body {
    max-height: calc(var(--webgis-visual-height, 100dvh) - 10px) !important;
  }
}

html.v2135-photo-busy .v2-photo-button,
html.v2135-photo-busy .v2-object-photo {
  opacity:.58 !important;
  pointer-events:none !important;
}
html.v2135-photo-busy .v2-photo-actions::after {
  content:"Salvando foto...";
  display:grid;
  place-items:center;
  min-height:34px;
  margin-top:7px;
  border-radius:9px;
  background:var(--bg,#eef2f5);
  color:var(--muted,#6d7b86);
  font-size:11px;
  font-weight:800;
}

.v2135-touch-active {
  -webkit-tap-highlight-color: transparent;
}


/* =====================================================================
   WEBGIS V2.13.6 — RESERVA OFFLINE
   ===================================================================== */
.v2136-reservation-badge{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;margin:8px 0;padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:11.5px;line-height:1.25}
.v2136-reservation-lock{font-size:13px;line-height:1}.v2136-reservation-copy{display:grid;gap:1px;min-width:0}.v2136-reservation-copy strong{font-size:11.5px;white-space:normal}.v2136-reservation-badge small{color:var(--muted);font-size:10.5px}
.v2136-reservation-badge.mine{border-color:#16a34a55;background:#16a34a10}.v2136-reservation-badge.other{border-color:#f59e0b66;background:#f59e0b12}
.v2136-reservation-badge .v2136-force-release,.v2136-reservation-badge .v213632-release-own-candidate{width:auto!important;min-width:0!important;min-height:30px!important;margin:0!important;border-radius:8px;padding:5px 9px!important;font-size:10.5px!important;font-weight:800;background:transparent;white-space:nowrap;flex:none!important}.v2136-reservation-badge .v2136-force-release{border:1px solid #b4231855;color:#b42318}.v2136-reservation-badge .v2136-force-release:hover{background:#b4231810}.v2136-reservation-badge .v213632-release-own-candidate{border:1px solid #15803d55;color:#15803d}.v2136-reservation-badge .v213632-release-own-candidate:hover{background:#16a34a10}
.v2136-reserved-other{opacity:.88}.v2136-reserved-other button:disabled,button:disabled{cursor:not-allowed}
.v2136-offline-modal{position:fixed;inset:0;z-index:12050;background:rgba(9,18,24,.68);display:grid;place-items:center;padding:16px}.v2136-offline-modal.hidden{display:none!important}
.v2136-offline-card{width:min(720px,100%);max-height:min(88dvh,820px);overflow:hidden;display:flex;flex-direction:column;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.v2136-offline-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.v2136-offline-head>div{display:grid;gap:2px}.v2136-offline-head small{color:var(--muted)}.v2136-offline-head button{width:38px;height:38px;border:0;border-radius:10px;background:var(--bg);color:var(--text);font-size:24px}
#v2136-offline-body{padding:16px;overflow:auto}.v2136-loading{padding:28px;text-align:center;color:var(--muted)}
.v2136-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.v2136-mode{margin:0;padding:12px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:flex-start;gap:8px;background:var(--panel)}.v2136-mode.active{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 15%,transparent)}.v2136-mode input{width:auto;min-height:auto;margin-top:3px}.v2136-mode span{display:grid;gap:2px}.v2136-mode small{color:var(--muted)}
.v2136-warning{margin:12px 0;padding:10px 12px;border-radius:10px;background:#f59e0b18;border:1px solid #f59e0b55;font-size:12px;line-height:1.4}
.v2136-selector-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 8px}.v2136-selector-toolbar label{margin:0;display:flex;align-items:center;gap:7px}.v2136-selector-toolbar input{width:auto;min-height:auto}.v2136-selector-toolbar span{font-size:12px;color:var(--muted)}
.v2136-candidate-list{display:grid;gap:7px;max-height:330px;overflow:auto;padding-right:3px}.v2136-candidate-row{margin:0;display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.v2136-candidate-row.blocked{background:#f59e0b0d}.v2136-candidate-row input{width:auto;min-height:auto}.v2136-candidate-main{display:grid;gap:2px;flex:1;min-width:0}.v2136-candidate-main strong,.v2136-candidate-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v2136-candidate-main small{color:var(--muted)}.v2136-candidate-res{font-size:11px;color:var(--muted);text-align:right;max-width:180px}
.v2136-expiry{margin-top:12px;font-size:12px;color:var(--muted);line-height:1.45}.v21362-offline-map-note{margin-top:10px;padding:10px 11px;border-radius:10px;background:color-mix(in srgb,var(--brand) 7%,var(--panel));border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));font-size:11.5px;line-height:1.45}.v21362-offline-map-note strong{display:block;margin-bottom:2px}.v2136-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.v2136-actions button{border:0;border-radius:10px;min-height:42px;padding:9px 14px;font-weight:750}.v2136-actions #v2136-cancel{background:var(--bg);color:var(--text)}.v2136-actions #v2136-confirm{background:var(--brand);color:#fff}
@media(max-width:760px){.v2136-reservation-badge{grid-template-columns:auto minmax(0,1fr) auto}.v2136-reservation-badge .v2136-force-release,.v2136-reservation-badge .v213632-release-own-candidate{padding:5px 7px!important}.v2136-offline-modal{padding:0;align-items:end}.v2136-offline-card{width:100%;max-height:92dvh;border-radius:18px 18px 0 0}.v2136-mode-grid{grid-template-columns:1fr}.v2136-candidate-list{max-height:42dvh}.v2136-candidate-row{align-items:flex-start}.v2136-candidate-res{max-width:105px}.v2136-actions{position:sticky;bottom:-16px;background:var(--panel);padding:10px 0 16px}.v2136-actions button{flex:1}}


/* V2.13.6.3 — estado do seletor de mapa quando o aparelho esta offline */
.webgis-basemap-switch button:disabled{opacity:.46!important;cursor:not-allowed!important;filter:saturate(.45)}


/* V2.13.6.3.2 — mapa offline robusto + liberação manual de reserva */
@media(max-width:760px){
  .v212-offline-project-actions{flex-wrap:wrap}
  .v212-prepare-offline{flex:1 1 100%}
  .v213632-release-project{flex:1 1 auto;min-width:96px}
}


/* =====================================================================
   WEBGIS V2.13.7 — CENTRAL DE SINCRONIZAÇÃO E CONFLITOS
   ===================================================================== */
.v2137-sync-card{margin:10px 12px 0;}
.v2137-sync-main-btn{width:100%;display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 12px;border:1px solid var(--line,#dbe3ec);border-radius:14px;background:var(--panel,#fff);color:var(--text,#17212b);cursor:pointer;text-align:left;box-shadow:0 3px 12px rgba(15,23,42,.05)}
.v2137-sync-main-btn:hover{border-color:var(--brand,#2563eb)}
.v2137-sync-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(37,99,235,.1);color:var(--brand,#2563eb);font-size:20px;font-weight:900;flex:0 0 auto}
.v2137-sync-copy{display:grid;gap:2px;min-width:0;flex:1}.v2137-sync-copy strong{font-size:12px}.v2137-sync-copy small{font-size:10px;color:var(--muted,#6d7b86);white-space:normal;line-height:1.25}
.v2137-sync-badge{min-width:24px;height:24px;padding:0 7px;display:grid;place-items:center;border-radius:999px;background:#f59e0b;color:white;font-size:11px;font-weight:900}.v2137-sync-badge.hidden{display:none}
.v2137-sync-card.has-conflict .v2137-sync-icon,.v2137-sync-card.has-conflict .v2137-sync-badge{background:#dc2626;color:#fff}.v2137-sync-card.is-clean .v2137-sync-icon{background:rgba(22,163,74,.12);color:#15803d}
.v2137-sync-modal{position:fixed;inset:0;z-index:15050;display:flex;align-items:center;justify-content:center;padding:18px}.v2137-sync-modal.hidden{display:none}
.v2137-sync-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.48);backdrop-filter:blur(3px)}
.v2137-sync-sheet{position:relative;width:min(720px,calc(100vw - 24px));max-height:min(86vh,780px);display:flex;flex-direction:column;border:1px solid var(--line,#dbe3ec);border-radius:20px;background:var(--panel,#fff);color:var(--text,#17212b);box-shadow:0 24px 80px rgba(15,23,42,.28);overflow:hidden}
.v2137-sync-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line,#dbe3ec)}.v2137-sync-header>div{display:grid;gap:2px}.v2137-sync-header strong{font-size:16px}.v2137-sync-header small{font-size:11px;color:var(--muted,#6d7b86)}
.v2137-close{width:36px;height:36px;border:0;border-radius:10px;background:var(--panel-2,#f4f7fb);color:var(--text,#17212b);font-size:22px;cursor:pointer}
.v2137-sync-body{padding:14px 16px;overflow:auto;overscroll-behavior:contain}.v2137-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.v2137-summary-item{padding:10px;border:1px solid rgba(245,158,11,.25);border-radius:12px;background:rgba(245,158,11,.08);display:grid;gap:2px}.v2137-summary-item strong{font-size:20px}.v2137-summary-item span{font-size:10px;color:var(--muted,#6d7b86)}.v2137-summary-item.conflict{border-color:rgba(220,38,38,.25);background:rgba(220,38,38,.07)}.v2137-summary-item.synced{border-color:rgba(22,163,74,.22);background:rgba(22,163,74,.07)}
.v2137-connectivity{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;margin-bottom:12px;border-radius:11px;background:var(--panel-2,#f5f7fb);font-size:10px}.v2137-connectivity span{color:var(--muted,#6d7b86);text-align:right}.v2137-connectivity.online strong{color:#15803d}.v2137-connectivity.offline strong{color:#b45309}
.v2137-candidate-list{display:grid;gap:10px}.v2137-candidate-card{padding:12px;border:1px solid var(--line,#dbe3ec);border-radius:14px;background:var(--panel,#fff)}.v2137-candidate-card.pending{border-color:rgba(245,158,11,.35)}.v2137-candidate-card.conflict{border-color:rgba(220,38,38,.4)}.v2137-candidate-card.synced{border-color:rgba(22,163,74,.28)}
.v2137-candidate-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.v2137-candidate-top>div{display:grid;gap:2px;min-width:0}.v2137-candidate-top strong{font-size:13px}.v2137-candidate-top small{font-size:10px;color:var(--muted,#6d7b86)}
.v2137-state-pill{padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;white-space:nowrap}.v2137-state-pill.pending{background:rgba(245,158,11,.13);color:#b45309}.v2137-state-pill.conflict{background:rgba(220,38,38,.11);color:#b91c1c}.v2137-state-pill.synced{background:rgba(22,163,74,.11);color:#15803d}
.v2137-progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.v2137-progress-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:9px;background:var(--panel-2,#f5f7fb);font-size:10px}.v2137-progress-row span{font-weight:800}.v2137-progress-row small{font-weight:800}.v2137-progress-row.synced small{color:#15803d}.v2137-progress-row.pending small{color:#b45309}.v2137-progress-row.conflict small{color:#b91c1c}.v2137-progress-row.empty{opacity:.58}
.v2137-last-sync{margin-top:8px;font-size:9.5px;color:var(--muted,#6d7b86)}.v2137-errors{margin-top:8px;padding:8px 9px;border-radius:9px;background:rgba(220,38,38,.07);color:#b91c1c;font-size:9.5px;line-height:1.35;display:grid;gap:4px}.v2137-conflict-note{margin-top:8px;display:grid;gap:2px;padding:8px 9px;border:1px dashed rgba(220,38,38,.3);border-radius:9px}.v2137-conflict-note strong{font-size:10px;color:#b91c1c}.v2137-conflict-note span{font-size:9.5px;color:var(--muted,#6d7b86)}
.v2137-empty{padding:28px 16px;text-align:center;display:grid;gap:5px;color:var(--muted,#6d7b86)}.v2137-empty strong{color:var(--text,#17212b);font-size:12px}.v2137-empty span{font-size:10px}
.v2137-sync-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line,#dbe3ec)}.v2137-sync-footer button{min-height:38px;padding:0 14px;border-radius:10px;font-size:11px;font-weight:900;cursor:pointer}.v2137-sync-footer .secondary{border:1px solid var(--line,#dbe3ec);background:var(--panel-2,#f5f7fb);color:var(--text,#17212b)}.v2137-sync-footer .primary{border:1px solid var(--brand,#2563eb);background:var(--brand,#2563eb);color:white}.v2137-sync-footer button:disabled{opacity:.55;cursor:not-allowed}
body.v2137-sync-open{overflow:hidden}
html[data-theme="dark"] .v2137-sync-main-btn,html[data-theme="dark"] .v2137-sync-sheet,html[data-theme="dark"] .v2137-candidate-card{background:var(--panel,#0f1724)}
@media(max-width:760px){.v2137-sync-modal{align-items:flex-end;padding:0}.v2137-sync-sheet{width:100%;max-height:88vh;border-radius:18px 18px 0 0;border-bottom:0}.v2137-sync-header{padding:14px 15px}.v2137-sync-body{padding:12px}.v2137-summary-grid{gap:6px}.v2137-summary-item{padding:8px}.v2137-summary-item strong{font-size:18px}.v2137-progress-grid{grid-template-columns:1fr}.v2137-connectivity{align-items:flex-start;flex-direction:column}.v2137-connectivity span{text-align:left}.v2137-sync-footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))}.v2137-sync-footer button{flex:1}.v2137-sync-card{margin:8px 10px 0}}


/* =====================================================================
   WEBGIS V2.13.7.1 — REVISÃO DE CONFLITOS
   ===================================================================== */
.v2137-conflict-note{display:flex;align-items:center;justify-content:space-between;gap:10px}
.v2137-conflict-note>div{display:grid;gap:2px;min-width:0}
.v21371-review-conflict{flex:0 0 auto;border:0;border-radius:9px;padding:7px 10px;background:#b91c1c;color:#fff;font-weight:800;cursor:pointer}
.v21371-conflict-modal{position:fixed;inset:0;z-index:16050;display:grid;place-items:center;padding:18px}
.v21371-conflict-modal.hidden{display:none}
.v21371-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(3px)}
.v21371-sheet{position:relative;width:min(680px,100%);max-height:min(760px,92dvh);display:flex;flex-direction:column;background:var(--panel,#fff);color:var(--text,#17212b);border:1px solid var(--line,#dbe3ec);border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.28);overflow:hidden}
.v21371-header{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border-bottom:1px solid var(--line,#dbe3ec)}
.v21371-header>div{display:grid;gap:2px}.v21371-header strong{font-size:16px}.v21371-header small{color:var(--muted,#6d7b86)}
.v21371-header button{width:34px;height:34px;border:0;border-radius:10px;background:var(--panel-2,#f7f9fc);font-size:22px;color:inherit;cursor:pointer}
.v21371-body{overflow:auto;padding:16px;display:grid;gap:12px}
.v21371-candidate{display:grid;gap:2px}.v21371-candidate strong{font-size:18px}.v21371-candidate span{font-size:12px;color:var(--muted,#6d7b86)}
.v21371-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}.v21371-compare section{display:grid;gap:5px;padding:12px;border:1px solid var(--line,#dbe3ec);border-radius:13px;background:var(--panel-2,#f7f9fc)}
.v21371-compare small{font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--muted,#6d7b86)}.v21371-compare strong{font-size:13px}.v21371-compare span{font-size:11px;color:var(--text-soft,#415063)}
.v21371-location,.v21371-safety{display:grid;gap:4px;padding:11px 12px;border-radius:12px;background:rgba(37,99,235,.08);border:1px solid rgba(37,99,235,.18)}
.v21371-location span,.v21371-safety span{font-size:11px;color:var(--text-soft,#415063)}
.v21371-safety{background:rgba(245,158,11,.09);border-color:rgba(245,158,11,.25)}
.v21371-conflict-list{display:grid;gap:8px}.v21371-conflict-list article{display:grid;gap:3px;padding:10px 12px;border-radius:11px;border:1px solid rgba(185,28,28,.2);background:rgba(185,28,28,.06)}
.v21371-conflict-list article strong{font-size:12px}.v21371-conflict-list article span{font-size:11px}.v21371-conflict-list article small{font-size:10px;color:var(--muted,#6d7b86)}
.v21371-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line,#dbe3ec);background:var(--panel,#fff)}
.v21371-footer button{min-height:38px;border-radius:10px;padding:8px 12px;font-weight:800;cursor:pointer}.v21371-footer .secondary{border:1px solid var(--line,#dbe3ec);background:var(--panel-2,#f7f9fc);color:inherit}.v21371-footer .danger{border:1px solid rgba(185,28,28,.25);background:rgba(185,28,28,.08);color:#b91c1c}.v21371-footer .primary{border:0;background:var(--brand,#2563eb);color:#fff}.v21371-footer .hidden{display:none!important}
.v21371-loading,.v21371-empty{padding:28px;text-align:center;color:var(--muted,#6d7b86)}
@media(max-width:760px){.v21371-conflict-modal{padding:0;place-items:end center}.v21371-sheet{width:100%;max-height:90dvh;border-radius:18px 18px 0 0}.v21371-compare{grid-template-columns:1fr}.v21371-footer{display:grid;grid-template-columns:1fr 1fr}.v21371-footer .primary{grid-column:1/-1}}


/* =====================================================================
   WEBGIS V2.14.0 — DASHBOARD / CENTRAL OPERACIONAL
   ===================================================================== */
.v214-dashboard-launch{width:100%;display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:10px 11px;border:1px solid rgba(37,99,235,.24);border-radius:12px;background:linear-gradient(135deg,rgba(37,99,235,.11),rgba(14,165,233,.06));color:var(--text,#17212b);cursor:pointer;text-align:left;transition:.18s ease}.v214-dashboard-launch:hover{border-color:rgba(37,99,235,.48);transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,23,42,.08)}.v214-dashboard-launch-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--brand,#2563eb);color:#fff;font-size:17px;font-weight:900;flex:none}.v214-dashboard-launch>span:nth-child(2){display:grid;gap:1px;min-width:0;flex:1}.v214-dashboard-launch strong{font-size:12px}.v214-dashboard-launch small{font-size:9.5px;color:var(--muted,#6d7b86)}.v214-dashboard-launch-arrow{font-size:22px;color:var(--brand,#2563eb)}
.v214-dashboard{position:fixed;inset:0;z-index:13050}.v214-dashboard.hidden{display:none!important}.v214-dashboard-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.54);backdrop-filter:blur(3px)}.v214-dashboard-shell{position:absolute;inset:24px;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line,#dbe3ec);border-radius:18px;background:var(--panel,#fff);box-shadow:0 24px 70px rgba(2,6,23,.28)}.v214-dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line,#e5e7eb);background:linear-gradient(135deg,rgba(37,99,235,.08),transparent)}.v214-dashboard-title-wrap{display:flex;align-items:center;gap:11px}.v214-dashboard-logo{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--brand,#2563eb);color:#fff;font-size:21px}.v214-dashboard-title-wrap>div{display:grid;gap:2px}.v214-dashboard-title-wrap strong{font-size:17px}.v214-dashboard-title-wrap small{font-size:10.5px;color:var(--muted,#6d7b86)}.v214-dashboard-header-actions{display:flex;gap:7px}.v214-dashboard-icon-btn{width:36px;height:36px;border:1px solid var(--line,#dbe3ec);border-radius:10px;background:var(--panel-2,#f8fafc);color:var(--text,#17212b);font-size:19px;cursor:pointer}.v214-dashboard-body{flex:1;overflow:auto;padding:16px;background:var(--bg,#f4f7fb)}.v214-dashboard-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;border-top:1px solid var(--line,#e5e7eb);background:var(--panel,#fff)}.v214-dashboard-footer>small{font-size:10px;color:var(--muted,#6d7b86)}.v214-dashboard-footer>div{display:flex;gap:8px}.v214-dashboard-loading,.v214-dashboard-error,.v214-offline-dashboard{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--muted,#6d7b86)}.v214-dashboard-error strong,.v214-offline-dashboard strong{color:var(--text,#17212b);font-size:15px}.v214-dashboard-error button{margin-top:8px}
.v214-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:12px}.v214-kpi{min-width:0;display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line,#e1e7ef);border-radius:14px;background:var(--panel,#fff);box-shadow:0 4px 13px rgba(15,23,42,.04)}.v214-kpi-icon{width:35px;height:35px;display:grid;place-items:center;flex:none;border-radius:10px;background:rgba(37,99,235,.1);color:var(--brand,#2563eb);font-size:17px}.v214-kpi>div:last-child{min-width:0;display:grid;gap:0}.v214-kpi strong{font-size:21px;line-height:1.05}.v214-kpi span{font-size:10.5px;font-weight:800}.v214-kpi small{font-size:9px;color:var(--muted,#6d7b86);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v214-kpi.warn .v214-kpi-icon{background:rgba(245,158,11,.12);color:#b45309}.v214-kpi.reserve .v214-kpi-icon{background:rgba(249,115,22,.12);color:#c2410c}.v214-kpi.suggest .v214-kpi-icon{background:rgba(168,85,247,.11);color:#7e22ce}.v214-kpi.online .v214-kpi-icon{background:rgba(22,163,74,.11);color:#15803d}
.v214-local-sync{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 12px;border:1px solid rgba(34,197,94,.25);border-radius:12px;background:rgba(34,197,94,.07)}.v214-local-sync>div{display:grid;gap:1px}.v214-local-sync strong{font-size:11px}.v214-local-sync span{font-size:9.5px;color:var(--muted,#6d7b86)}.v214-local-sync button{border:0;border-radius:8px;padding:7px 10px;background:rgba(22,163,74,.12);color:#15803d;font-size:9.5px;font-weight:900;cursor:pointer}.v214-local-sync.pending{border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.08)}.v214-local-sync.pending button{background:rgba(245,158,11,.13);color:#b45309}.v214-local-sync.conflict{border-color:rgba(220,38,38,.28);background:rgba(220,38,38,.07)}.v214-local-sync.conflict button{background:rgba(220,38,38,.11);color:#b91c1c}
.v214-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:12px}.v214-panel{min-width:0;border:1px solid var(--line,#e1e7ef);border-radius:14px;background:var(--panel,#fff);overflow:hidden;box-shadow:0 4px 13px rgba(15,23,42,.035)}.v214-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 13px;border-bottom:1px solid var(--line,#edf0f4)}.v214-panel>header>div{display:grid;gap:2px}.v214-panel>header strong{font-size:12px}.v214-panel>header small,.v214-panel>header>span{font-size:9px;color:var(--muted,#6d7b86)}.v214-panel-projects{grid-row:span 2}.v214-panel-visits{grid-column:1/-1}.v214-project-list{max-height:440px;overflow:auto}.v214-project-row{display:grid;grid-template-columns:minmax(145px,1fr) minmax(150px,.9fr) auto;gap:13px;align-items:center;padding:10px 13px;border-bottom:1px solid var(--line,#eef2f6)}.v214-project-row:last-child{border-bottom:0}.v214-project-name{min-width:0;display:grid;gap:1px}.v214-project-name strong{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v214-project-name small{font-size:8.5px;color:var(--muted,#6d7b86)}.v214-progress{display:grid;gap:4px}.v214-progress>div{height:6px;border-radius:99px;background:var(--panel-2,#eef2f7);overflow:hidden}.v214-progress>div>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#16a34a)}.v214-progress small{font-size:8.5px;color:var(--muted,#6d7b86)}.v214-project-metrics{display:flex;gap:5px;justify-content:flex-end}.v214-project-metrics span{min-width:38px;padding:4px 6px;border-radius:7px;background:var(--panel-2,#f4f6f9);font-size:8.5px;text-align:center;white-space:nowrap}.v214-mini-list{max-height:210px;overflow:auto}.v214-mini-row{display:flex;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--line,#eef2f6)}.v214-mini-row:last-child{border-bottom:0}.v214-mini-row>div{min-width:0;display:grid;gap:1px;flex:1}.v214-mini-row strong{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v214-mini-row small{font-size:8.3px;color:var(--muted,#6d7b86);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v214-mini-row em{font-size:8px;color:var(--muted,#6d7b86);font-style:normal;text-align:right;white-space:nowrap}.v214-online-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.12);flex:none}.v214-lock-dot{width:18px;text-align:center;flex:none;font-size:11px}.v214-visit-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.v214-visit-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:9px 12px;border-bottom:1px solid var(--line,#eef2f6)}.v214-visit-row:nth-child(odd){border-right:1px solid var(--line,#eef2f6)}.v214-visit-row>div{min-width:0;display:grid;gap:1px}.v214-visit-row strong{font-size:9.5px}.v214-visit-row small{font-size:8.2px;color:var(--muted,#6d7b86);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v214-visit-row>span{font-size:8px;font-weight:900;padding:4px 6px;border-radius:999px;background:var(--panel-2,#f4f6f9)}.v214-visit-row>span.ok{color:#15803d;background:rgba(22,163,74,.1)}.v214-visit-row>span.progress{color:#b45309;background:rgba(245,158,11,.11)}.v214-visit-row>em{font-size:8px;color:var(--muted,#6d7b86);font-style:normal;white-space:nowrap}.v214-empty{padding:18px;text-align:center;color:var(--muted,#6d7b86);font-size:9.5px}.v214-empty.compact{padding:22px 12px}
html[data-theme="dark"] .v214-dashboard-shell,html[data-theme="dark"] .v214-panel,html[data-theme="dark"] .v214-kpi,html[data-theme="dark"] .v214-dashboard-footer{background:var(--panel,#111827)}html[data-theme="dark"] .v214-dashboard-body{background:var(--bg,#0b111b)}html[data-theme="dark"] .v214-dashboard-launch{background:linear-gradient(135deg,rgba(59,130,246,.16),rgba(14,165,233,.06))}
@media(max-width:1050px){.v214-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v214-dashboard-grid{grid-template-columns:1fr 1fr}.v214-panel-projects,.v214-panel-visits{grid-column:1/-1;grid-row:auto}}
@media(max-width:760px){.v214-dashboard-shell{inset:0;border:0;border-radius:0}.v214-dashboard-header{padding:12px 13px}.v214-dashboard-title-wrap strong{font-size:14px}.v214-dashboard-body{padding:10px}.v214-dashboard-footer{padding:9px 10px}.v214-dashboard-footer>small{display:none}.v214-dashboard-footer>div{width:100%}.v214-dashboard-footer button{flex:1}.v214-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.v214-kpi{padding:9px;gap:8px}.v214-kpi-icon{width:30px;height:30px}.v214-kpi strong{font-size:17px}.v214-kpi span{font-size:9.5px}.v214-dashboard-grid{grid-template-columns:1fr;gap:9px}.v214-panel-projects,.v214-panel-visits{grid-column:auto}.v214-project-row{grid-template-columns:minmax(0,1fr) 100px;gap:8px}.v214-project-metrics{grid-column:1/-1;justify-content:flex-start}.v214-project-list{max-height:none}.v214-visit-list{grid-template-columns:1fr}.v214-visit-row:nth-child(odd){border-right:0}.v214-mini-list{max-height:none}.v214-local-sync{align-items:flex-start}.v214-local-sync button{flex:none}.v214-dashboard-header-actions{gap:5px}}


/* =====================================================================
   WEBGIS V2.14.0.2 — DASHBOARD VISIVEL NA SIDEBAR COMPACTA
   ===================================================================== */
.v283-project-actions > #v214-open-dashboard {
  grid-column: 1 / -1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  min-height:40px !important;
  height:40px !important;
  background:linear-gradient(135deg,var(--brand,#2563eb),#3b82f6) !important;
  color:#fff !important;
  border:1px solid var(--brand,#2563eb) !important;
}
.v283-project-actions > #v214-open-dashboard .v290-action-icon,
.v283-project-actions > #v214-open-dashboard .v290-action-label { color:#fff !important; }


/* WEBGIS V2.14.0.3 — Dashboard compatibilidade com backend 2.13.x */
.v214-compat-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px;padding:11px 13px;border:1px solid rgba(245,158,11,.30);border-radius:12px;background:rgba(245,158,11,.08);color:var(--text,#17212b)}
.v214-compat-banner>div{display:grid;gap:2px;min-width:0}.v214-compat-banner strong{font-size:11px}.v214-compat-banner span{font-size:9.5px;color:var(--muted,#6d7b86);line-height:1.35}.v214-compat-banner code{flex:none;padding:5px 7px;border-radius:7px;background:rgba(245,158,11,.12);color:#b45309;font-size:8.5px}
@media(max-width:760px){.v214-compat-banner{align-items:flex-start;flex-direction:column}.v214-compat-banner code{max-width:100%;overflow:hidden;text-overflow:ellipsis}}

/* =====================================================================
   WEBGIS V2.15.0 — CENTRAL OPERACIONAL COMPLETA
   ===================================================================== */
.v215-filterbar{
  display:grid;grid-template-columns:minmax(190px,.9fr) 150px minmax(230px,1.35fr) auto;
  gap:9px;align-items:end;margin:0 0 10px;padding:10px;border:1px solid var(--line,#dde5ee);
  border-radius:13px;background:var(--panel,#fff)
}
.v215-filterbar label{display:grid;gap:4px;min-width:0}.v215-filterbar label>span{font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6d7b86)}
.v215-filterbar select,.v215-filterbar input{width:100%;height:36px;min-width:0;border:1px solid var(--line,#dbe3ec);border-radius:9px;background:var(--panel-2,#f8fafc);color:var(--text,#17212b);padding:0 10px;font-size:10.5px;outline:none}
.v215-filterbar select:focus,.v215-filterbar input:focus{border-color:var(--brand,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand,#2563eb) 12%,transparent)}
.v215-filterbar>button{height:36px;padding:0 14px;border-radius:9px}

.v215-kpi-grid{grid-template-columns:repeat(7,minmax(105px,1fr))!important}
button.v215-kpi{position:relative;width:100%;text-align:left;font-family:inherit;cursor:pointer;appearance:none}
button.v215-kpi>b{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-size:18px;color:var(--muted,#94a3b8);font-weight:500}
button.v215-kpi:hover{border-color:color-mix(in srgb,var(--brand,#2563eb) 42%,var(--line,#dbe3ec));transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,23,42,.07)}
button.v215-kpi.conflict{border-color:rgba(220,38,38,.28);background:color-mix(in srgb,#dc2626 6%,var(--panel,#fff))}

.v215-reportbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line,#dde5ee);border-radius:12px;background:var(--panel,#fff)}
.v215-reportbar>div:first-child{display:grid;gap:2px}.v215-reportbar strong{font-size:10.5px}.v215-reportbar small{font-size:8.5px;color:var(--muted,#6d7b86)}.v215-reportbar>div:last-child{display:flex;gap:7px;flex-wrap:wrap}
.v215-reportbar button{min-height:32px;padding:0 10px;border-radius:8px;font-size:9px}

.v215-dashboard-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.82fr)!important}
.v215-panel-trend{grid-column:1/-1}
button.v215-project-row{width:100%;font-family:inherit;text-align:left;border:0;border-bottom:1px solid var(--line,#eef2f6);border-radius:0;background:transparent;color:var(--text,#17212b);cursor:pointer}
button.v215-project-row:hover{background:color-mix(in srgb,var(--brand,#2563eb) 5%,var(--panel,#fff))}
button.v215-project-row:last-child{border-bottom:0}

.v215-team-list{max-height:320px;overflow:auto}.v215-team-list.drawer{max-height:none}
.v215-team-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--line,#eef2f6)}
.v215-team-row:last-child{border-bottom:0}.v215-team-presence{width:9px;height:9px;border-radius:50%;background:#94a3b8}.v215-team-presence.online{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.12)}
.v215-team-main{min-width:0;display:grid;gap:2px}.v215-team-main strong{font-size:9.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v215-team-main small{font-size:8.2px;color:var(--muted,#6d7b86);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v215-team-meta{display:grid;gap:2px;text-align:right}.v215-team-meta span{font-size:8.5px;font-weight:900}.v215-team-meta small{font-size:7.8px;color:var(--muted,#6d7b86)}

.v215-status-list{display:grid;gap:9px;padding:12px}.v215-status-row{display:grid;gap:4px}.v215-status-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.v215-status-row strong{font-size:8.8px}.v215-status-row span{font-size:8.2px;color:var(--muted,#6d7b86);font-weight:800}
.v215-status-track{height:7px;border-radius:99px;background:var(--panel-2,#edf2f7);overflow:hidden}.v215-status-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand,#2563eb),#0ea5e9)}

.v215-trend-chart{height:170px;display:flex;align-items:stretch;gap:5px;padding:14px 13px 5px;overflow-x:auto}.v215-trend-col{min-width:32px;flex:1 0 32px;display:grid;grid-template-rows:1fr auto;gap:5px;text-align:center}
.v215-trend-bars{height:130px;display:flex;align-items:flex-end;justify-content:center;gap:3px}.v215-trend-bars i{display:block;width:8px;min-height:2px;border-radius:5px 5px 2px 2px}.v215-trend-bars i.started{background:#93c5fd}.v215-trend-bars i.finalized{background:#22c55e}.v215-trend-col small{font-size:7.3px;color:var(--muted,#6d7b86);white-space:nowrap}
.v215-trend-legend{display:flex;justify-content:center;gap:15px;padding:0 12px 11px;font-size:8px;color:var(--muted,#6d7b86)}.v215-trend-legend span{display:flex;align-items:center;gap:5px}.v215-trend-legend i{width:9px;height:9px;border-radius:3px}.v215-trend-legend i.started{background:#93c5fd}.v215-trend-legend i.finalized{background:#22c55e}
button.v215-recent-row{width:100%;font-family:inherit;text-align:left;border-top:0;border-left:0;border-right:0;background:transparent;color:var(--text,#17212b);cursor:pointer}.v215-recent-row:hover{background:color-mix(in srgb,var(--brand,#2563eb) 5%,var(--panel,#fff))}

.v215-drawer{position:absolute;z-index:5;top:0;right:0;bottom:0;width:min(720px,55vw);display:flex;flex-direction:column;background:var(--panel,#fff);border-left:1px solid var(--line,#dbe3ec);box-shadow:-18px 0 45px rgba(15,23,42,.16);animation:v215DrawerIn .18s ease-out}
.v215-drawer.hidden{display:none!important}@keyframes v215DrawerIn{from{transform:translateX(24px);opacity:.45}to{transform:none;opacity:1}}
.v215-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid var(--line,#e5e7eb);background:linear-gradient(135deg,color-mix(in srgb,var(--brand,#2563eb) 7%,var(--panel,#fff)),var(--panel,#fff))}
.v215-drawer-head>div{display:grid;gap:2px;min-width:0}.v215-drawer-head strong{font-size:13px}.v215-drawer-head small{font-size:8.5px;color:var(--muted,#6d7b86);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v215-drawer-head>button{width:34px;height:34px;border:1px solid var(--line,#dbe3ec);border-radius:9px;background:var(--panel-2,#f8fafc);color:var(--text,#17212b);font-size:20px;cursor:pointer}
.v215-drawer-body{flex:1;overflow:auto;padding:12px;background:var(--bg,#f4f7fb)}

.v215-table{display:grid;border:1px solid var(--line,#dfe6ee);border-radius:12px;overflow:hidden;background:var(--panel,#fff)}
.v215-table-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;align-items:center;min-height:52px;padding:9px 10px;border:0;border-bottom:1px solid var(--line,#edf1f5);background:transparent;color:var(--text,#17212b);font-family:inherit;text-align:left}
.v215-table-row:last-child{border-bottom:0}.v215-table-row>div:first-child{min-width:0;display:grid;gap:2px}.v215-table-row strong{font-size:9.5px}.v215-table-row small{font-size:8px;color:var(--muted,#6d7b86);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
button.v215-project-list-row{cursor:pointer;width:100%}.v215-project-list-row:hover{background:color-mix(in srgb,var(--brand,#2563eb) 5%,var(--panel,#fff))}
.v215-pill{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:4px 7px;border-radius:999px;background:var(--panel-2,#f1f5f9);font-size:7.8px;font-weight:900;white-space:nowrap}.v215-pill.ok{color:#15803d;background:rgba(22,163,74,.1)}.v215-pill.warn,.v215-pill.reserve{color:#b45309;background:rgba(245,158,11,.12)}.v215-pill.danger{color:#b91c1c;background:rgba(220,38,38,.1)}
.v215-row-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:5px;min-width:auto!important}.v215-row-actions button{min-height:28px;padding:0 8px;border-radius:7px;font-size:8px;white-space:nowrap}

.v215-project-hero{display:grid;gap:8px;padding:13px;border:1px solid var(--line,#dfe6ee);border-radius:13px;background:var(--panel,#fff);margin-bottom:10px}.v215-project-hero>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.v215-project-hero strong{font-size:13px}.v215-project-hero span{font-size:8.5px;color:var(--muted,#6d7b86)}
.v215-project-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:10px}.v215-project-kpis>div{display:grid;gap:2px;padding:10px;border:1px solid var(--line,#dfe6ee);border-radius:10px;background:var(--panel,#fff)}.v215-project-kpis strong{font-size:16px}.v215-project-kpis span{font-size:7.8px;color:var(--muted,#6d7b86);font-weight:800}
.v215-project-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.v215-project-actions button{min-height:33px;padding:0 10px;border-radius:8px;font-size:8.5px}
.v215-drawer-section{margin-top:10px;border:1px solid var(--line,#dfe6ee);border-radius:12px;overflow:hidden;background:var(--panel,#fff)}.v215-drawer-section>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;border-bottom:1px solid var(--line,#edf1f5)}.v215-drawer-section>header strong{font-size:10px}.v215-drawer-section>header span{font-size:8px;color:var(--muted,#6d7b86)}

html[data-theme="dark"] .v215-filterbar,html[data-theme="dark"] .v215-reportbar,html[data-theme="dark"] .v215-drawer,html[data-theme="dark"] .v215-table,html[data-theme="dark"] .v215-project-hero,html[data-theme="dark"] .v215-project-kpis>div,html[data-theme="dark"] .v215-drawer-section{background:var(--panel,#111827)}
html[data-theme="dark"] .v215-drawer-body{background:var(--bg,#0b111b)}

@media(max-width:1250px){.v215-kpi-grid{grid-template-columns:repeat(4,minmax(110px,1fr))!important}.v215-dashboard-grid{grid-template-columns:1fr 1fr!important}.v215-dashboard-grid .v214-panel-projects,.v215-dashboard-grid .v214-panel-visits,.v215-panel-trend{grid-column:1/-1}}
@media(max-width:850px){.v215-filterbar{grid-template-columns:1fr 1fr}.v215-filter-search{grid-column:1/-1}.v215-filterbar>button{grid-column:1/-1}.v215-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.v215-dashboard-grid{grid-template-columns:1fr!important}.v215-dashboard-grid .v214-panel-projects,.v215-dashboard-grid .v214-panel-visits,.v215-panel-trend{grid-column:auto}.v215-drawer{width:100%;border-left:0}.v215-project-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.v215-filterbar{grid-template-columns:1fr}.v215-filter-search,.v215-filterbar>button{grid-column:auto}.v215-reportbar{align-items:flex-start;flex-direction:column}.v215-reportbar>div:last-child{width:100%}.v215-reportbar button{flex:1}.v215-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.v215-table-row{grid-template-columns:minmax(0,1fr) auto}.v215-table-row>.v215-row-actions{grid-column:1/-1;justify-content:flex-start}.v215-project-actions{display:grid;grid-template-columns:1fr 1fr}.v215-project-actions button{width:100%}.v215-trend-chart{height:155px}.v215-trend-bars{height:115px}}

/* =====================================================================
   WEBGIS V2.16.0 — PRODUCTION READINESS / SAÚDE DO SISTEMA
   ===================================================================== */
.v216-health-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line,#dfe6ee);border-radius:14px;background:var(--panel,#fff);margin-bottom:10px}
.v216-health-hero>div{display:grid;gap:3px;min-width:0}.v216-health-hero strong{font-size:13px}.v216-health-hero span{font-size:8.5px;color:var(--muted,#6d7b86)}
.v216-health-hero.ok{border-color:rgba(22,163,74,.25);background:color-mix(in srgb,#16a34a 4%,var(--panel,#fff))}.v216-health-hero.danger{border-color:rgba(220,38,38,.28);background:color-mix(in srgb,#dc2626 4%,var(--panel,#fff))}
.v216-health-pill{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:5px 8px;border-radius:999px;font-size:7.7px;font-weight:900;white-space:nowrap}.v216-health-pill.ok{color:#15803d;background:rgba(22,163,74,.11)}.v216-health-pill.warn{color:#b45309;background:rgba(245,158,11,.13)}
.v216-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.v216-health-grid>div{display:grid;gap:3px;min-height:78px;padding:11px;border:1px solid var(--line,#dfe6ee);border-radius:11px;background:var(--panel,#fff)}.v216-health-grid span{font-size:7.8px;color:var(--muted,#6d7b86);font-weight:800}.v216-health-grid strong{font-size:15px;line-height:1.15}.v216-health-grid small{font-size:7.5px;color:var(--muted,#6d7b86);overflow:hidden;text-overflow:ellipsis}
.v216-check-list{display:grid}.v216-check-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-bottom:1px solid var(--line,#edf1f5)}.v216-check-list>div:last-child{border-bottom:0}.v216-check-list>div>span{font-size:9px;font-weight:800}
.v216-system-actions{display:flex;flex-wrap:wrap;gap:6px;padding:10px 11px;border-bottom:1px solid var(--line,#edf1f5)}.v216-system-actions button{min-height:31px;padding:0 9px;border-radius:8px;font-size:8px}
.v216-backup-list{display:grid}.v216-backup-list>div{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 11px;border-bottom:1px solid var(--line,#edf1f5)}.v216-backup-list>div:last-child{border-bottom:0}.v216-backup-list span{font-size:7.5px;text-transform:uppercase;color:var(--muted,#6d7b86);font-weight:900}.v216-backup-list strong{font-size:8.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v216-backup-list small{font-size:7.5px;color:var(--muted,#6d7b86);white-space:nowrap}
.v216-audit-list{display:grid}.v216-audit-list>div{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:center;padding:8px 11px;border-bottom:1px solid var(--line,#edf1f5)}.v216-audit-list>div:last-child{border-bottom:0}.v216-audit-list>div>span{display:inline-grid;place-items:center;min-height:23px;border-radius:7px;font-size:7.5px;font-weight:900}.v216-audit-list>div>span.ok{background:rgba(22,163,74,.1);color:#15803d}.v216-audit-list>div>span.danger{background:rgba(220,38,38,.1);color:#b91c1c}.v216-audit-list>div>div{display:grid;gap:2px;min-width:0}.v216-audit-list strong{font-size:8.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v216-audit-list small{font-size:7.5px;color:var(--muted,#6d7b86)}
.v216-log-view{margin:0;padding:12px;min-height:260px;max-height:68vh;overflow:auto;background:#0b111b;color:#e5edf7;border-radius:10px;font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;word-break:break-word}
html[data-theme="dark"] .v216-health-hero,html[data-theme="dark"] .v216-health-grid>div{background:var(--panel,#111827)}
@media(max-width:760px){.v216-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v216-backup-list>div{grid-template-columns:58px minmax(0,1fr)}.v216-backup-list small{grid-column:2}.v216-system-actions{display:grid;grid-template-columns:1fr 1fr}.v216-system-actions button{width:100%}}
@media(max-width:460px){.v216-health-grid{grid-template-columns:1fr 1fr}.v216-health-hero{align-items:flex-start}.v216-system-actions{grid-template-columns:1fr}}


/* =====================================================================
   WEBGIS V2.16.1.1 — HEADER VANTE FIXO + POWER BI + LOGIN LIMPO
   ===================================================================== */
/* O texto "Web GIS" foi removido do header. A marca oficial passa a ocupar
   o início da barra e a imagem NÃO sofre filter/opacity/inversão por tema. */
.topbar-left {
  min-width: 0;
}
.topbar-left > .v2161-topbar-brand {
  margin: 0 !important;
  min-width: 92px !important;
  min-height: 38px !important;
  padding: 3px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.topbar-left > .v2161-topbar-brand img,
html[data-theme="light"] .topbar-left > .v2161-topbar-brand img,
html[data-theme="dark"] .topbar-left > .v2161-topbar-brand img {
  display: block !important;
  width: 92px !important;
  max-width: 92px !important;
  height: auto !important;
  max-height: 30px !important;
  object-fit: contain !important;
  filter: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
  transform: none !important;
}
.topbar-left > .v2161-topbar-brand:hover,
html[data-theme="dark"] .topbar-left > .v2161-topbar-brand,
html[data-theme="light"] .topbar-left > .v2161-topbar-brand {
  background: transparent !important;
  border-color: transparent !important;
}
.v2161-powerbi-btn {
  white-space: nowrap;
}
@media (max-width: 760px) {
  .topbar-left > .v2161-topbar-brand {
    min-width: 76px !important;
    min-height: 34px !important;
  }
  .topbar-left > .v2161-topbar-brand img,
  html[data-theme="light"] .topbar-left > .v2161-topbar-brand img,
  html[data-theme="dark"] .topbar-left > .v2161-topbar-brand img {
    width: 76px !important;
    max-width: 76px !important;
    max-height: 26px !important;
  }
}


/* =====================================================================
   WEBGIS V2.16.1.2 — IDENTIDADE VANTE NO MODO DARK
   Mantém o arquivo oficial da marca intacto. No dark mode, a logo recebe
   apenas uma pequena placa branca para preservar as cores originais,
   contraste e leitura — sem filter, inversão, recoloração ou distorção.
   ===================================================================== */
html[data-theme="dark"] .topbar-left > .v2161-topbar-brand {
  box-sizing: border-box !important;
  min-width: auto !important;
  min-height: 38px !important;
  padding: 2px 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
html[data-theme="dark"] .topbar-left > .v2161-topbar-brand:hover {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
html[data-theme="dark"] .topbar-left > .v2161-topbar-brand img {
  width: 110px !important;
  max-width: 110px !important;
  height: auto !important;
  max-height: 32px !important;
  object-fit: contain !important;
  filter: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
  transform: none !important;
}
@media (max-width: 760px) {
  html[data-theme="dark"] .topbar-left > .v2161-topbar-brand {
    min-width: auto !important;
    min-height: 34px !important;
    padding: 2px 0 !important;
    border-radius: 0 !important;
  }
  html[data-theme="dark"] .topbar-left > .v2161-topbar-brand img {
    width: 92px !important;
    max-width: 92px !important;
    max-height: 28px !important;
  }
}


/* V2.16.1.4 - crisp Vante logo */
.topbar-left > .v2161-topbar-brand img {
  image-rendering: auto !important;
  filter: none !important;
  opacity: 1 !important;
}
html[data-theme="dark"] .topbar-left > .v2161-topbar-brand img {
  width: 102px !important;
  max-width: 102px !important;
  max-height: 30px !important;
}
html[data-theme="light"] .topbar-left > .v2161-topbar-brand img,
:root:not([data-theme="dark"]) .topbar-left > .v2161-topbar-brand img {
  width: 102px !important;
  max-width: 102px !important;
  max-height: 30px !important;
}
@media (max-width: 760px) {
  html[data-theme="dark"] .topbar-left > .v2161-topbar-brand img,
  html[data-theme="light"] .topbar-left > .v2161-topbar-brand img,
  :root:not([data-theme="dark"]) .topbar-left > .v2161-topbar-brand img {
    width: 88px !important;
    max-width: 88px !important;
    max-height: 26px !important;
  }
}


/* =========================================================
   WEBGIS V2.17.0 — GESTÃO DE CANDIDATES / WORKFLOW PN
========================================================= */
body.v217-modal-open { overflow: hidden; }
.v217-workflow-launch { margin-top: 8px; }

.v217-workflow-modal,
.v217-audit-modal {
  position: fixed;
  inset: 0;
  z-index: 10040;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(9, 17, 28, .68);
  backdrop-filter: blur(7px);
}
.v217-workflow-modal.hidden,
.v217-audit-modal.hidden { display: none !important; }

.v217-workflow-shell,
.v217-audit-shell {
  width: min(1480px, 96vw);
  max-height: 94vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--panel, #fff);
  color: var(--text, #17212b);
  border: 1px solid var(--line, #dbe3ec);
  border-radius: 18px;
  box-shadow: 0 28px 80px rgba(3, 12, 24, .34);
}
.v217-audit-shell { width: min(920px, 94vw); }

.v217-workflow-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 22px 16px;
  border-bottom: 1px solid var(--line, #dbe3ec);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--brand, #2563eb) 8%, transparent), transparent 46%),
    var(--panel, #fff);
}
.v217-workflow-header h2 {
  margin: 3px 0 4px;
  font-size: 22px;
  line-height: 1.1;
}
.v217-workflow-header p {
  margin: 0;
  color: var(--muted, #667085);
  font-size: 12px;
}
.v217-eyebrow {
  display: block;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .14em;
  color: var(--brand, #2563eb);
}
.v217-workflow-close {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  border: 1px solid var(--line, #dbe3ec);
  background: var(--panel-2, #f8fafc);
  color: var(--text, #17212b);
  font-size: 24px;
  cursor: pointer;
}

.v217-workflow-filters {
  display: grid;
  grid-template-columns: minmax(150px,1fr) minmax(145px,.85fr) minmax(180px,1.05fr) minmax(150px,.85fr) minmax(210px,1.3fr) auto;
  gap: 10px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line, #dbe3ec);
  background: var(--panel-2, #f8fafc);
}
.v217-workflow-filters label {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.v217-workflow-filters label > span {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted, #667085);
}
.v217-workflow-filters select,
.v217-workflow-filters input,
.v217-table select {
  width: 100%;
  min-width: 0;
  height: 36px;
  border: 1px solid var(--line, #dbe3ec);
  border-radius: 9px;
  padding: 0 9px;
  background: var(--panel, #fff);
  color: var(--text, #17212b);
  font-size: 11px;
}
.v217-workflow-filters button { align-self: end; height: 36px; }

.v217-bulkbar {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 11px 18px;
  border-bottom: 1px solid var(--line, #dbe3ec);
}
.v217-bulkbar label {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
}
.v217-bulkbar strong {
  margin-right: auto;
  font-size: 11px;
}
.v217-bulk-actions {
  display: flex;
  gap: 8px;
}
.v217-bulkbar.v217-readonly .v217-bulk-actions { display: none; }
.v217-bulkbar button { min-height: 34px; }
.v217-bulkbar button:disabled { opacity: .45; cursor: not-allowed; }

.v217-workflow-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 18px;
  color: var(--muted, #667085);
  font-size: 10px;
  border-bottom: 1px solid var(--line, #dbe3ec);
}

.v217-table-wrap {
  flex: 1;
  min-height: 260px;
  overflow: auto;
}
.v217-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 11px;
}
.v217-table thead {
  position: sticky;
  top: 0;
  z-index: 2;
}
.v217-table th {
  padding: 10px 9px;
  text-align: left;
  white-space: nowrap;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .045em;
  color: var(--muted, #667085);
  background: var(--panel-2, #f8fafc);
  border-bottom: 1px solid var(--line, #dbe3ec);
}
.v217-table td {
  padding: 9px;
  vertical-align: middle;
  border-bottom: 1px solid color-mix(in srgb, var(--line, #dbe3ec) 72%, transparent);
}
.v217-table tr:hover td {
  background: color-mix(in srgb, var(--brand, #2563eb) 4%, transparent);
}
.v217-table td strong,
.v217-table td span,
.v217-table td small { display: block; }
.v217-table td small {
  margin-top: 2px;
  color: var(--muted, #667085);
  font-size: 9px;
}
.v217-table select:disabled {
  opacity: .55;
  cursor: not-allowed;
}
.v217-check-col { width: 34px; text-align: center !important; }
.v217-check-col input { width: 15px; height: 15px; }

.v217-badge {
  display: inline-flex !important;
  align-items: center;
  width: max-content;
  max-width: 180px;
  padding: 5px 8px;
  border-radius: 999px;
  font-size: 9px !important;
  font-weight: 800;
  line-height: 1.1;
  background: color-mix(in srgb, var(--muted, #667085) 10%, transparent);
  color: var(--text, #17212b);
}
.v217-badge.approved {
  background: rgba(22,163,74,.12);
  color: #15803d;
}
.v217-badge.rejected {
  background: rgba(220,38,38,.12);
  color: #b91c1c;
}
.v217-badge.qualification {
  background: rgba(124,58,237,.12);
  color: #6d28d9;
}
.v217-badge.neutral {
  background: rgba(100,116,139,.12);
  color: var(--muted, #667085);
}

.v217-workflow-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 8px 18px;
  border-top: 1px solid var(--line, #dbe3ec);
  background: var(--panel-2, #f8fafc);
}
#v217-workflow-status {
  font-size: 10px;
  color: var(--muted, #667085);
}
#v217-workflow-status[data-kind="ok"] { color: #15803d; }
#v217-workflow-status[data-kind="error"] { color: #b91c1c; }

.v217-empty {
  padding: 28px !important;
  text-align: center !important;
  color: var(--muted, #667085);
}
.v217-empty.error { color: #b91c1c; }

.v217-audit-body {
  padding: 10px 18px 18px;
  max-height: 72vh;
  overflow: auto;
}
.v217-audit-row {
  display: grid;
  grid-template-columns: minmax(0,1.3fr) minmax(240px,.8fr);
  gap: 16px;
  padding: 12px 2px;
  border-bottom: 1px solid var(--line, #dbe3ec);
}
.v217-audit-row > div {
  display: grid;
  gap: 3px;
}
.v217-audit-row > div:last-child { text-align: right; }
.v217-audit-row strong,
.v217-audit-row b { font-size: 11px; }
.v217-audit-row span,
.v217-audit-row small {
  color: var(--muted, #667085);
  font-size: 9px;
}

[data-theme="dark"] .v217-badge.approved { color: #4ade80; }
[data-theme="dark"] .v217-badge.rejected { color: #f87171; }
[data-theme="dark"] .v217-badge.qualification { color: #c4b5fd; }

@media (max-width: 980px) {
  .v217-workflow-modal { padding: 0; place-items: stretch; }
  .v217-workflow-shell {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
  .v217-workflow-filters {
    grid-template-columns: 1fr 1fr;
  }
  .v217-search { grid-column: 1 / -1; }
  .v217-workflow-filters button { grid-column: 1 / -1; }
  .v217-bulkbar {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .v217-bulkbar strong { margin-right: 0; }
  .v217-bulk-actions { width: 100%; }
  .v217-bulk-actions button { flex: 1; }
  .v217-workflow-meta { flex-direction: column; }
  .v217-table { min-width: 980px; }
  .v217-audit-row { grid-template-columns: 1fr; }
  .v217-audit-row > div:last-child { text-align: left; }
}

/* V2.17.0 — Pipeline PN no Dashboard */
.v217-pipeline-list{display:grid;gap:10px;padding:4px 0}
.v217-pipeline-row{display:grid;gap:5px}
.v217-pipeline-row>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}
.v217-pipeline-row>div span{color:var(--text,#1f2937);font-weight:600}
.v217-pipeline-row>div strong{font-variant-numeric:tabular-nums}
.v217-pipeline-row>i{display:block;height:7px;border-radius:999px;background:rgba(100,116,139,.16);overflow:hidden}
.v217-pipeline-row>i>b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#00a6b2,#3b82f6)}
body.dark .v217-pipeline-row>div span{color:#e8eef7}

/* =========================================================
   V2.17.0 — REFINO VISUAL GESTÃO CANDIDATES / PN — 01/10/2026
   Paleta PN provisória: substituir somente os valores --v217-pn-color
   quando as cores oficiais forem definidas pelo Vitor.
========================================================= */

/* Isolamento e hierarquia visual do modal */
.v217-workflow-filters label,
.v217-bulkbar label {
  margin: 0;
}

.v217-workflow-shell {
  border-color: color-mix(in srgb, var(--line, #dbe3ec) 82%, var(--brand, #2563eb));
}

.v217-workflow-header {
  padding: 18px 20px 15px;
}

.v217-workflow-header h2 {
  font-weight: 850;
  letter-spacing: -.025em;
}

.v217-workflow-filters {
  gap: 9px;
  padding: 12px 16px;
}

.v217-workflow-filters label > span {
  font-size: 8.5px;
  font-weight: 850;
  letter-spacing: .075em;
}

.v217-workflow-filters select,
.v217-workflow-filters input,
.v217-table select {
  height: 35px;
  min-height: 35px !important;
  border-radius: 9px !important;
  font-size: 10.5px;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.v217-workflow-filters select:focus,
.v217-workflow-filters input:focus,
.v217-table select:focus {
  border-color: color-mix(in srgb, var(--brand, #2563eb) 70%, #fff) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand, #2563eb) 11%, transparent) !important;
}

/* Barra de seleção mais limpa */
.v217-bulkbar {
  min-height: 52px;
  gap: 11px;
  padding: 9px 16px;
  background: color-mix(in srgb, var(--panel, #fff) 96%, var(--brand, #2563eb));
}

.v217-bulkbar label {
  gap: 6px;
  color: var(--muted, #667085);
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
  user-select: none;
}

.v217-bulkbar strong {
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--panel-2, #f8fafc);
  border: 1px solid var(--line, #dbe3ec);
  color: var(--text, #17212b);
  font-size: 9.5px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

/* Checkbox minimalista — sobrescreve o input global somente dentro da V2.17 */
#v217-select-all,
.v217-row-check {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  flex: 0 0 auto;
  width: 13px !important;
  height: 13px !important;
  min-height: 13px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1.5px solid color-mix(in srgb, var(--muted, #667085) 58%, transparent) !important;
  border-radius: 4px !important;
  background: var(--panel, #fff) !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background .13s ease, border-color .13s ease, transform .13s ease, box-shadow .13s ease;
}

#v217-select-all:hover,
.v217-row-check:hover {
  border-color: var(--brand, #2563eb) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand, #2563eb) 9%, transparent) !important;
}

#v217-select-all:checked,
.v217-row-check:checked,
#v217-select-all:indeterminate {
  border-color: var(--brand, #2563eb) !important;
  background: var(--brand, #2563eb) !important;
}

#v217-select-all:checked::after,
.v217-row-check:checked::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 1.5px;
  width: 5px;
  height: 7px;
  border: solid #fff;
  border-width: 0 1.6px 1.6px 0;
  transform: rotate(45deg);
}

#v217-select-all:indeterminate::after {
  content: "";
  position: absolute;
  left: 2.5px;
  top: 5px;
  width: 6px;
  height: 1.5px;
  border-radius: 999px;
  background: #fff;
}

.v217-check-col {
  width: 27px;
  min-width: 27px;
  padding-left: 7px !important;
  padding-right: 5px !important;
}

/* Ações — mesma família visual, sem aparência genérica */
.v217-control-btn,
.v217-action-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 35px !important;
  min-height: 35px !important;
  padding: 0 13px !important;
  border-radius: 9px !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  letter-spacing: .01em;
  white-space: nowrap;
  cursor: pointer;
  transition: transform .14s ease, box-shadow .14s ease, filter .14s ease, border-color .14s ease !important;
}

.v217-control-btn::before,
.v217-action-btn::before {
  display: inline-grid;
  place-items: center;
  width: 16px;
  height: 16px;
  border-radius: 5px;
  font-size: 11px;
  line-height: 1;
  font-weight: 900;
}

#v217-workflow-refresh.v217-refresh-btn {
  border: 1px solid color-mix(in srgb, var(--brand, #2563eb) 22%, var(--line, #dbe3ec)) !important;
  background: var(--panel, #fff) !important;
  color: var(--text, #17212b) !important;
  box-shadow: 0 3px 10px rgba(15, 23, 42, .05) !important;
}
#v217-workflow-refresh.v217-refresh-btn::before {
  content: "↻";
  background: color-mix(in srgb, var(--brand, #2563eb) 10%, transparent);
  color: var(--brand, #2563eb);
}
#v217-workflow-refresh.v217-refresh-btn:hover {
  border-color: color-mix(in srgb, var(--brand, #2563eb) 55%, var(--line, #dbe3ec)) !important;
  background: color-mix(in srgb, var(--panel, #fff) 96%, var(--brand, #2563eb)) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(15, 23, 42, .08) !important;
}

#v217-bulk-approve.v217-approve-btn {
  border: 1px solid #15803d !important;
  background: linear-gradient(180deg, #22a957, #15803d) !important;
  color: #fff !important;
  box-shadow: 0 5px 14px rgba(21, 128, 61, .20) !important;
}
#v217-bulk-approve.v217-approve-btn::before {
  content: "✓";
  background: rgba(255,255,255,.16);
  color: #fff;
}
#v217-bulk-approve.v217-approve-btn:hover:not(:disabled) {
  filter: brightness(1.04);
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(21, 128, 61, .25) !important;
}

#v217-bulk-reject.v217-reject-btn {
  border: 1px solid #c62828 !important;
  background: linear-gradient(180deg, #e54848, #c62828) !important;
  color: #fff !important;
  box-shadow: 0 5px 14px rgba(198, 40, 40, .18) !important;
}
#v217-bulk-reject.v217-reject-btn::before {
  content: "×";
  background: rgba(255,255,255,.16);
  color: #fff;
  font-size: 14px;
}
#v217-bulk-reject.v217-reject-btn:hover:not(:disabled) {
  filter: brightness(1.04);
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(198, 40, 40, .24) !important;
}

.v217-action-btn:disabled {
  filter: grayscale(.18);
  opacity: .48 !important;
}

/* Tabela — leitura rápida das informações principais */
.v217-workflow-meta {
  padding: 8px 16px;
  background: color-mix(in srgb, var(--panel-2, #f8fafc) 72%, var(--panel, #fff));
}

.v217-table {
  font-size: 10.5px;
}

.v217-table th {
  padding: 9px 8px;
  font-size: 8.3px;
  font-weight: 850;
  letter-spacing: .065em;
  box-shadow: inset 0 -1px 0 var(--line, #dbe3ec);
}

.v217-table td {
  padding: 9px 8px;
  transition: background .12s ease;
}

.v217-table tbody tr:nth-child(even) td {
  background: color-mix(in srgb, var(--panel-2, #f8fafc) 35%, transparent);
}

.v217-table tbody tr:hover td {
  background: color-mix(in srgb, var(--brand, #2563eb) 5.5%, var(--panel, #fff));
}

.v217-table tbody tr:has(.v217-row-check:checked) td {
  background: color-mix(in srgb, var(--brand, #2563eb) 7%, var(--panel, #fff));
}

.v217-table tbody tr:has(.v217-row-check:checked) td:first-child {
  box-shadow: inset 3px 0 0 var(--brand, #2563eb);
}

.v217-table td strong {
  color: var(--text, #17212b);
  font-size: 10.5px;
  font-weight: 800;
}

.v217-table td small {
  margin-top: 3px;
  font-size: 8.5px;
  line-height: 1.25;
}

/* ---------- Status PN: uma classe por etapa ---------- */
.pn-nao-definido {
  --v217-pn-color: #64748b;
}
.pn-em-busca {
  --v217-pn-color: #64748b;
}
.pn-em-elaboracao-sar {
  --v217-pn-color: #d97706;
}
.pn-em-qualificacao {
  --v217-pn-color: #7c3aed;
}
.pn-em-qualificacao-winity {
  --v217-pn-color: #2563eb;
}
.pn-desqualificado-winity {
  --v217-pn-color: #dc2626;
}
.pn-desqualificado-operadora {
  --v217-pn-color: #e11d48;
}
.pn-desqualificado-concessionaria {
  --v217-pn-color: #c2410c;
}
.pn-qualificado {
  --v217-pn-color: #059669;
}
.pn-em-elaboracao-kit {
  --v217-pn-color: #0891b2;
}
.pn-kit-protocolado {
  --v217-pn-color: #0284c7;
}
.pn-kit-aprovado {
  --v217-pn-color: #16a34a;
}

/* Badge de PN: cor legível + ponto indicador */
.v217-pn-badge {
  gap: 6px;
  max-width: 210px;
  border: 1px solid color-mix(in srgb, var(--v217-pn-color, #64748b) 24%, transparent);
  background: color-mix(in srgb, var(--v217-pn-color, #64748b) 10%, var(--panel, #fff)) !important;
  color: color-mix(in srgb, var(--v217-pn-color, #64748b) 82%, var(--text, #17212b)) !important;
}

.v217-pn-badge::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: var(--v217-pn-color, #64748b);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--v217-pn-color, #64748b) 15%, transparent);
}

/* Select editável de PN mantém a identidade do status atual */
.v217-pn-status[class*="pn-"],
#v217-filter-pn-status[class*="pn-"] {
  border-color: color-mix(in srgb, var(--v217-pn-color, #64748b) 38%, var(--line, #dbe3ec)) !important;
  background:
    linear-gradient(90deg,
      color-mix(in srgb, var(--v217-pn-color, #64748b) 10%, var(--input, #fff)) 0,
      color-mix(in srgb, var(--v217-pn-color, #64748b) 3%, var(--input, #fff)) 38%,
      var(--input, #fff) 100%) !important;
  color: var(--text, #17212b) !important;
  box-shadow: inset 3px 0 0 var(--v217-pn-color, #64748b) !important;
  font-weight: 750;
}

.v217-pn-status[class*="pn-"]:focus,
#v217-filter-pn-status[class*="pn-"]:focus {
  border-color: var(--v217-pn-color, #64748b) !important;
  box-shadow:
    inset 3px 0 0 var(--v217-pn-color, #64748b),
    0 0 0 3px color-mix(in srgb, var(--v217-pn-color, #64748b) 12%, transparent) !important;
}

/* Pipeline do Dashboard usa exatamente a mesma cor de cada Status PN */
.v217-pipeline-row > div span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.v217-pipeline-row > div span::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--v217-pn-color, #64748b);
}

.v217-pipeline-row > div strong {
  min-width: 26px;
  padding: 2px 7px;
  border-radius: 999px;
  text-align: center;
  background: color-mix(in srgb, var(--v217-pn-color, #64748b) 9%, var(--panel-2, #f8fafc));
  color: color-mix(in srgb, var(--v217-pn-color, #64748b) 82%, var(--text, #17212b));
}

.v217-pipeline-row > i {
  height: 6px;
}

.v217-pipeline-row > i > b {
  background: var(--v217-pn-color, #64748b) !important;
}

/* Tema escuro */
[data-theme="dark"] .v217-bulkbar,
body.dark .v217-bulkbar {
  background: color-mix(in srgb, var(--panel, #111827) 93%, var(--brand, #2563eb));
}

[data-theme="dark"] #v217-select-all,
[data-theme="dark"] .v217-row-check,
body.dark #v217-select-all,
body.dark .v217-row-check {
  background: var(--panel-2, #182230) !important;
}

[data-theme="dark"] .v217-pn-badge,
body.dark .v217-pn-badge {
  background: color-mix(in srgb, var(--v217-pn-color, #64748b) 15%, var(--panel, #111827)) !important;
  color: color-mix(in srgb, var(--v217-pn-color, #94a3b8) 58%, #fff) !important;
}

[data-theme="dark"] #v217-workflow-refresh.v217-refresh-btn,
body.dark #v217-workflow-refresh.v217-refresh-btn {
  background: var(--panel-2, #182230) !important;
}

@media (max-width: 980px) {
  .v217-control-btn,
  .v217-action-btn {
    min-height: 38px !important;
    height: 38px !important;
  }

  .v217-bulkbar {
    gap: 9px;
    padding: 10px 12px;
  }

  .v217-bulk-actions {
    gap: 7px;
  }
}


/* =====================================================================
   WEBGIS V2.17.1 - Continuidade Fase 1
   Projetos/Referências, busca por coordenada e gestão visual
   ===================================================================== */
.project-group-card {
  overflow: hidden;
  border: 1px solid rgba(37, 99, 235, .16);
  background: var(--panel-bg, #fff);
}
.project-group-card > summary { list-style: none; }
.project-group-card > summary::-webkit-details-marker { display: none; }
.project-group-summary {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 11px; cursor: pointer;
  background: linear-gradient(180deg, rgba(37,99,235,.08), rgba(37,99,235,.03));
  border-bottom: 1px solid rgba(37,99,235,.12);
}
.project-group-title { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.project-group-title strong { font-size: 13px; letter-spacing: .01em; }
.project-group-title small { font-size: 10px; opacity: .7; }
.project-group-toggle-wrap { display:flex; align-items:center; gap:5px; font-size:10px; font-weight:700; cursor:pointer; }
.project-group-toggle-wrap input { width: 13px; height: 13px; margin: 0; }
.project-reference-list { display:flex; flex-direction:column; }
.project-reference-row {
  display:grid; grid-template-columns: 18px minmax(0,1fr) auto; align-items:start; gap:8px;
  padding:9px 10px; border-top:1px solid rgba(148,163,184,.16);
}
.project-reference-row:first-child { border-top:0; }
.project-reference-row > .project-toggle { width:13px; height:13px; margin-top:3px; }
.project-reference-title { display:flex; align-items:center; gap:7px; min-width:0; }
.project-reference-title span { font-size:11px; font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.project-reference-title em { flex:0 0 auto; font-style:normal; font-size:8.5px; font-weight:800; padding:2px 5px; border-radius:999px; background:rgba(15,118,110,.10); color:#0f766e; }
.project-card:not(.project-group-card) .project-reference-row { padding: 0; border: 0; }

.v218-field-label-switch { margin: 8px 0 4px; }

.v218-coordinate-search {
  position:absolute; z-index:34; top:12px; left:50%; transform:translateX(-50%);
  width:min(520px, calc(100% - 190px)); pointer-events:none;
}
.v218-coordinate-bar, .v218-coordinate-result { pointer-events:auto; }
.v218-coordinate-bar {
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:7px;
  padding:7px 8px 7px 11px; border:1px solid rgba(15,23,42,.14); border-radius:12px;
  background:rgba(255,255,255,.96); box-shadow:0 8px 26px rgba(15,23,42,.16); backdrop-filter:blur(12px);
}
.v218-coordinate-bar > span { font-size:17px; color:#2563eb; }
.v218-coordinate-bar input { min-width:0; border:0; outline:0; background:transparent; font-size:12px; padding:5px 2px; }
.v218-coordinate-bar button, .v218-coordinate-add button {
  border:0; border-radius:8px; background:#2563eb; color:#fff; font-weight:800; font-size:11px; padding:7px 10px; cursor:pointer;
}
.v218-coordinate-result {
  margin-top:6px; padding:10px; border:1px solid rgba(15,23,42,.12); border-radius:12px;
  background:rgba(255,255,255,.98); box-shadow:0 10px 28px rgba(15,23,42,.18);
}
.v218-coordinate-result.hidden { display:none; }
.v218-coordinate-result-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.v218-coordinate-result-head strong { font-size:12px; }
.v218-coordinate-result-head button { border:0; background:transparent; font-size:18px; cursor:pointer; opacity:.65; }
.v218-coordinate-result code { display:block; margin:4px 0 8px; font-size:11px; }
.v218-coordinate-add { display:grid; grid-template-columns:1.15fr 1fr auto; gap:7px; align-items:end; }
.v218-coordinate-add label { display:flex; flex-direction:column; gap:3px; min-width:0; margin:0; }
.v218-coordinate-add label span { font-size:9px; font-weight:800; opacity:.72; text-transform:uppercase; letter-spacing:.04em; }
.v218-coordinate-add select, .v218-coordinate-add input { width:100%; min-width:0; padding:7px 8px; border:1px solid rgba(148,163,184,.45); border-radius:8px; background:#fff; font-size:10.5px; }
.v218-coordinate-feedback { margin-top:6px; min-height:13px; font-size:10px; color:#475569; }

.v217-actions-col { width: 86px; text-align:center; }
.v217-history-btn { border:1px solid rgba(37,99,235,.24); background:rgba(37,99,235,.07); color:#1d4ed8; border-radius:8px; padding:6px 8px; font-size:10px; font-weight:800; cursor:pointer; }
.v217-history-btn:hover { background:rgba(37,99,235,.13); }

@media (max-width: 760px) {
  .v218-coordinate-search { top:10px; left:10px; right:10px; transform:none; width:auto; }
  .v218-coordinate-add { grid-template-columns:1fr; }
  .v218-coordinate-add button { width:100%; }
  .project-reference-row { grid-template-columns:18px minmax(0,1fr) auto; }
}

[data-theme="dark"] .v218-coordinate-bar,
[data-theme="dark"] .v218-coordinate-result { background:rgba(17,24,39,.96); border-color:rgba(148,163,184,.25); color:#e5e7eb; }
[data-theme="dark"] .v218-coordinate-bar input,
[data-theme="dark"] .v218-coordinate-add select,
[data-theme="dark"] .v218-coordinate-add input { color:#e5e7eb; background:rgba(31,41,55,.92); border-color:rgba(148,163,184,.28); }
[data-theme="dark"] .project-reference-title em { color:#5eead4; background:rgba(20,184,166,.14); }

/* Ajustes finais do agrupamento de projetos/referências. */
#projectsList .project-group-card { padding: 0 !important; }
#projectsList .project-group-card .project-reference-row { padding: 8px 9px !important; }
#projectsList .project-card:not(.project-group-card) .project-reference-row { width: 100%; }
#projectsList .project-card:not(.project-group-card) > .project-row { width: 100%; }

/* =========================================================
   V2.17.2 - LIXEIRA DE PROJETOS / RECUPERAÇÃO 30 DIAS
   ========================================================= */
.v218-trash-launch {
  width: 100%;
  margin-top: 10px;
  display: grid;
  grid-template-columns: 32px 1fr auto;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  color: var(--text);
  text-align: left;
  box-shadow: 0 2px 8px rgba(15, 23, 42, .05);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.v218-trash-launch:hover {
  transform: translateY(-1px);
  border-color: #94a3b8;
  box-shadow: 0 6px 16px rgba(15, 23, 42, .08);
  background: color-mix(in srgb, var(--panel) 94%, var(--bg));
}

.v218-trash-launch-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: rgba(100, 116, 139, .12);
  font-size: 16px;
}

.v218-trash-launch-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.v218-trash-launch-copy strong {
  font-size: 13px;
  line-height: 1.2;
}

.v218-trash-launch-copy small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.25;
}

.v218-trash-count {
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #eef2f7;
  color: #475569;
  font-size: 11px;
  font-weight: 800;
}

html[data-theme="dark"] .v218-trash-count {
  background: #1e293b;
  color: #cbd5e1;
}

.v218-trash-modal {
  position: fixed;
  inset: 0;
  z-index: 12050;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(2, 8, 23, .66);
  backdrop-filter: blur(4px);
}

.v218-trash-shell {
  width: min(980px, 96vw);
  max-height: min(840px, 92vh);
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--panel);
  color: var(--text);
  box-shadow: 0 28px 80px rgba(2, 8, 23, .28);
}

.v218-trash-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 24px 18px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, color-mix(in srgb, var(--panel) 96%, #64748b), var(--panel));
}

.v218-trash-header h2 {
  margin: 3px 0 5px;
  font-size: 24px;
}

.v218-trash-header p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.v218-trash-toolbar {
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--panel) 97%, var(--bg));
}

.v218-trash-toolbar > div {
  display: grid;
  gap: 2px;
}

.v218-trash-toolbar strong {
  font-size: 13px;
}

.v218-trash-toolbar span {
  color: var(--muted);
  font-size: 11px;
}

.v218-trash-body {
  overflow: auto;
  padding: 16px 20px 20px;
  display: grid;
  gap: 12px;
  align-content: start;
}

.v218-trash-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--panel);
  box-shadow: 0 4px 14px rgba(15, 23, 42, .05);
}

.v218-trash-card-main {
  min-width: 0;
}

.v218-trash-card-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.v218-trash-card-title strong {
  font-size: 15px;
}

.v218-trash-card-title > span {
  padding: 2px 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bg) 84%, #64748b);
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}

.v218-trash-source {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  word-break: break-word;
}

.v218-trash-meta-grid {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 8px;
}

.v218-trash-meta-grid > div {
  padding: 8px 9px;
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  border-radius: 9px;
  background: color-mix(in srgb, var(--panel) 96%, var(--bg));
  display: grid;
  gap: 2px;
}

.v218-trash-meta-grid span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.v218-trash-meta-grid b {
  font-size: 11px;
  font-weight: 750;
}

.v218-trash-days.is-warning {
  border-color: rgba(245, 158, 11, .4);
  background: rgba(245, 158, 11, .08);
}

.v218-trash-days.is-urgent {
  border-color: rgba(220, 38, 38, .4);
  background: rgba(220, 38, 38, .08);
}

.v218-trash-stats {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.v218-trash-stats span {
  padding: 4px 7px;
  border-radius: 7px;
  background: color-mix(in srgb, var(--bg) 78%, var(--panel));
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}

.v218-trash-actions {
  min-width: 174px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}

.v218-trash-restore,
.v218-trash-permanent {
  min-height: 36px;
  padding: 8px 11px;
  border-radius: 9px;
  font-size: 11px;
  font-weight: 800;
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease;
}

.v218-trash-restore {
  border: 1px solid rgba(22, 163, 74, .28);
  background: rgba(22, 163, 74, .09);
  color: #15803d;
}

.v218-trash-restore:hover {
  transform: translateY(-1px);
  background: rgba(22, 163, 74, .15);
  box-shadow: 0 5px 12px rgba(22, 163, 74, .11);
}

.v218-trash-permanent {
  border: 1px solid rgba(180, 35, 24, .28);
  background: rgba(180, 35, 24, .08);
  color: var(--danger);
}

.v218-trash-permanent:hover {
  transform: translateY(-1px);
  background: rgba(180, 35, 24, .14);
  box-shadow: 0 5px 12px rgba(180, 35, 24, .1);
}

.v218-trash-restore:disabled,
.v218-trash-permanent:disabled {
  opacity: .55;
  cursor: wait;
  transform: none;
}

.v218-trash-empty {
  min-height: 250px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 6px;
  color: var(--muted);
  text-align: center;
}

.v218-trash-empty > span {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  margin-bottom: 4px;
  border-radius: 50%;
  background: rgba(22, 163, 74, .1);
  color: #16a34a;
  font-size: 22px;
}

.v218-trash-empty strong {
  color: var(--text);
}

.v218-trash-empty small {
  font-size: 11px;
}

.v218-trash-footer {
  padding: 11px 20px;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: var(--muted);
  font-size: 10px;
  background: color-mix(in srgb, var(--panel) 97%, var(--bg));
}

#v218-trash-status {
  font-weight: 700;
  color: var(--text);
}

#v218-trash-status.is-error {
  color: var(--danger);
}

html[data-theme="dark"] .v218-trash-restore {
  color: #86efac;
}

html[data-theme="dark"] .v218-trash-permanent {
  color: #fca5a5;
}

@media (max-width: 760px) {
  .v218-trash-modal { padding: 8px; }
  .v218-trash-shell { width: 100%; max-height: 96dvh; border-radius: 14px; }
  .v218-trash-header { padding: 16px; }
  .v218-trash-toolbar { padding: 10px 14px; }
  .v218-trash-body { padding: 10px; }
  .v218-trash-card { grid-template-columns: 1fr; gap: 12px; }
  .v218-trash-meta-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v218-trash-actions { min-width: 0; display: grid; grid-template-columns: 1fr 1fr; }
  .v218-trash-footer { align-items: flex-start; flex-direction: column; }
}

/* =====================================================================
   WEBGIS V2.19.0 — GOOGLE EARTH / ÁRVORE / TOPO / SELEÇÃO EM MASSA
   ===================================================================== */

/* Busca de coordenadas agora vive na sidebar, sem cobrir o mapa. */
#v218-coordinate-search.v218-coordinate-search {
  position: static !important;
  inset: auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  transform: none !important;
  width: 100% !important;
  margin: 7px 0 9px !important;
  pointer-events: auto !important;
  z-index: auto !important;
}
#v218-coordinate-search .v218-coordinate-bar {
  box-shadow: none !important;
  border-color: var(--line) !important;
  background: var(--panel) !important;
  padding: 6px 7px 6px 9px !important;
}
#v218-coordinate-search .v218-coordinate-result {
  box-shadow: none !important;
  border-color: var(--line) !important;
  background: var(--panel) !important;
}
#v218-coordinate-search .v218-coordinate-add {
  grid-template-columns: 1fr !important;
}
#v218-coordinate-search .v218-coordinate-add button { width: 100% !important; }

/* Camadas e Tempo real ficam junto de tema / usuário / sair. */
.topbar-right > #v2-layer-filter,
.topbar-right > .v2-layer-filter,
.topbar-right > #v28-realtime-badge,
.topbar-right > .v28-realtime-badge {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  margin: 0 !important;
  z-index: 120 !important;
}
.topbar-right > #v2-layer-filter > #v2-layer-filter-toggle,
.topbar-right > .v2-layer-filter > #v2-layer-filter-toggle {
  width: auto !important;
  min-width: 0 !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 10px !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
}
.topbar-right > #v28-realtime-badge,
.topbar-right > .v28-realtime-badge {
  width: auto !important;
  min-width: 0 !important;
  height: 38px !important;
  min-height: 38px !important;
  max-width: none !important;
  padding: 0 10px !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  display: inline-flex !important;
  align-items: center !important;
}
.topbar-right #v2-layer-filter-body {
  position: fixed !important;
  top: calc(var(--topbar) + 8px) !important;
  right: 12px !important;
  left: auto !important;
  bottom: auto !important;
  width: min(370px, calc(100vw - 24px)) !important;
  max-width: min(370px, calc(100vw - 24px)) !important;
  max-height: calc(100dvh - var(--topbar) - 24px) !important;
  overflow: auto !important;
  z-index: 20020 !important;
  margin: 0 !important;
}

/* Seleção em massa de projetos/referências. */
.v219-bulk-projects {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 6px 0 8px;
}
.v219-bulk-projects > button,
.v219-bulk-projects #v219-bulk-actions button {
  min-height: 32px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  color: var(--text);
  font-size: 10px;
  font-weight: 800;
  padding: 6px 9px;
}
.v219-bulk-projects #v219-bulk-actions {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto auto;
  align-items: center;
  gap: 6px;
}
.v219-bulk-projects #v219-bulk-actions.hidden,
.v219-bulk-projects > .hidden { display: none !important; }
.v219-bulk-projects #v219-bulk-trash {
  background: rgba(180,35,24,.08);
  border-color: rgba(180,35,24,.25);
  color: var(--danger);
}
.v219-bulk-projects #v219-bulk-trash:disabled { opacity: .45; cursor: default; }
.v219-bulk-projects #v219-bulk-count { font-size: 10px; color: var(--muted); }

/* Referência + checkbox extra de seleção. */
.project-reference-row.v219-bulk-mode {
  grid-template-columns: 18px 18px minmax(0,1fr) !important;
}
.project-reference-row.v219-bulk-mode > .delete-project { display: none !important; }
.v219-delete-select {
  width: 13px !important;
  height: 13px !important;
  min-height: 13px !important;
  margin: 3px 0 0 !important;
  accent-color: var(--danger);
}

/* Subpastas preservadas da pasta escolhida no Windows. */
.v219-source-folder {
  border-top: 1px solid rgba(148,163,184,.16);
  background: rgba(148,163,184,.035);
}
.v219-source-folder > summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 9px;
  cursor: pointer;
  font-size: 10.5px;
  font-weight: 800;
  color: var(--text);
}
.v219-source-folder > summary::-webkit-details-marker { display:none; }
.v219-source-folder > summary small { color: var(--muted); font-size: 9px; }
.v219-source-folder-body { padding-left: 8px; border-left: 1px dashed rgba(148,163,184,.32); }
.v219-reference-path { color: var(--muted); font-size: 9px; font-weight: 650; }

/* Cada KMZ/KML pode ser expandido sem carregar geometria pesada novamente. */
.v219-reference-expand {
  margin-top: 5px;
  border: 0;
  background: transparent;
  color: var(--brand);
  font-size: 9.5px;
  font-weight: 800;
  padding: 2px 0;
  cursor: pointer;
}
.v219-reference-expand.is-open { color: var(--text); }
.v219-reference-tree-body {
  margin: 5px 0 2px;
  padding: 6px;
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 8px;
  background: rgba(148,163,184,.045);
  max-height: 300px;
  overflow: auto;
}
.v219-reference-tree-body.hidden { display:none !important; }
.v219-tree-section { border-bottom: 1px solid rgba(148,163,184,.15); }
.v219-tree-section:last-child { border-bottom: 0; }
.v219-tree-section > summary {
  display:flex; align-items:center; justify-content:space-between; gap:6px;
  list-style:none; cursor:pointer; padding:5px 2px; font-size:10px; font-weight:850;
}
.v219-tree-section > summary::-webkit-details-marker { display:none; }
.v219-tree-section > summary small { color:var(--muted); font-size:9px; }
.v219-tree-items { display:flex; flex-direction:column; gap:2px; padding:2px 0 6px; }
.v219-tree-items > label {
  display:grid; grid-template-columns:14px minmax(0,1fr) auto; align-items:center; gap:5px;
  margin:0; padding:4px 3px; border-radius:6px; font-size:9.5px; font-weight:650;
}
.v219-tree-items > label:hover { background:rgba(37,99,235,.06); }
.v219-tree-items input,
.v219-tree-candidates input { width:12px !important; height:12px !important; min-height:12px !important; margin:0 !important; }
.v219-tree-items span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.v219-tree-items small { color:var(--muted); font-size:8px; }
.v219-tree-note { color:var(--muted); font-size:9px; padding:5px 2px; }
.v219-tree-note.is-error { color:var(--danger); }
.v219-tree-candidates > details { border-top:1px solid rgba(148,163,184,.12); }
.v219-tree-candidates > details > summary {
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:5px;
  list-style:none; padding:4px 2px; cursor:pointer;
}
.v219-tree-candidates > details > summary::-webkit-details-marker { display:none; }
.v219-tree-candidates summary label { margin:0; display:flex; align-items:center; gap:5px; min-width:0; font-size:9.5px; }
.v219-tree-candidates summary span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v219-tree-candidates summary small { font-size:8px; color:var(--muted); }
.v219-point-list { display:flex; flex-wrap:wrap; gap:4px; padding:3px 2px 6px 18px; }
.v219-point-list span { padding:2px 5px; border-radius:999px; background:rgba(37,99,235,.08); color:var(--brand); font-size:8.5px; font-weight:800; }

/* Os P1..Pn continuam como pontos; traçados só aparecem se Camadas > Traçados for ligado. */
.v218-field-label-switch { margin-top: 6px; }

html[data-theme="dark"] .v219-reference-tree-body,
html[data-theme="dark"] .v219-source-folder { background:rgba(148,163,184,.055); }

@media (max-width:760px) {
  .topbar-right > #v2-layer-filter > #v2-layer-filter-toggle b { display:none; }
  .topbar-right > #v28-realtime-badge .v28-realtime-text { display:none; }
  .topbar-right > #v28-realtime-badge,
  .topbar-right > .v28-realtime-badge,
  .topbar-right > #v2-layer-filter > #v2-layer-filter-toggle { padding:0 8px !important; }
  .topbar-right #v2-layer-filter-body {
    top: var(--topbar) !important;
    left: 8px !important;
    right: 8px !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - var(--topbar) - 8px) !important;
  }
  .v219-bulk-projects #v219-bulk-actions { grid-template-columns:1fr 1fr; }
  .v219-bulk-projects #v219-bulk-count { grid-column:1 / -1; }
}


/* =====================================================================
   WEBGIS V2.19.1 - POPUP DE REFERENCIAS KML/KMZ
   ===================================================================== */
.v2191-reference-data {
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--panel);
}

.v2191-reference-data-title {
  padding: 9px 11px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
  background: color-mix(in srgb, var(--bg) 72%, var(--panel));
  border-bottom: 1px solid var(--line);
}

.v2191-reference-fields {
  margin: 0;
  padding: 0;
}

.v2191-reference-field {
  display: grid;
  grid-template-columns: minmax(105px, .85fr) minmax(0, 1.35fr);
  gap: 10px;
  padding: 8px 11px;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
  align-items: start;
}

.v2191-reference-field:last-child {
  border-bottom: 0;
}

.v2191-reference-field dt,
.v2191-reference-field dd {
  margin: 0;
  min-width: 0;
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.v2191-reference-field dt {
  color: var(--muted);
  font-weight: 700;
}

.v2191-reference-field dd {
  color: var(--text);
  font-weight: 650;
}

.v2191-reference-plain {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

html[data-theme="dark"] .v2191-reference-data {
  background: var(--panel);
}

@media (max-width: 520px) {
  .v2191-reference-field {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}

/* =====================================================================
   WEBGIS V2.20.0 - FONTE DE VERDADE / UX EARTH
   ===================================================================== */
.v220-reference-card {
  display: grid;
  gap: 10px;
  min-width: min(420px, 72vw);
}
.v220-reference-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.v220-reference-head > div { display: grid; gap: 2px; min-width: 0; }
.v220-reference-head span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.v220-reference-head strong {
  color: var(--text);
  font-size: 18px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.v220-geometry-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.v220-geometry-meta span {
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--bg);
  color: var(--muted);
  font-size: 10px;
  font-weight: 750;
}
.v220-info-section {
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--panel);
}
.v220-info-section h4 {
  margin: 0;
  padding: 8px 10px;
  background: var(--bg);
  border-bottom: 1px solid var(--line);
  color: var(--text);
  font-size: 11px;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.v220-info-section dl { margin: 0; }
.v220-info-section dl > div {
  display: grid;
  grid-template-columns: minmax(120px, .9fr) minmax(0, 1.4fr);
  gap: 12px;
  padding: 7px 10px;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 68%, transparent);
}
.v220-info-section dl > div:last-child { border-bottom: 0; }
.v220-info-section dt,
.v220-info-section dd { margin: 0; font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.v220-info-section dt { color: var(--muted); font-weight: 700; }
.v220-info-section dd { color: var(--text); font-weight: 650; }

/* Busca por coordenadas: fechada vira somente um botão no mapa. */
#v218-coordinate-search {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 12;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: auto;
  max-width: min(480px, calc(100% - 92px));
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
#v218-coordinate-search .v220-coordinate-toggle,
.v220-recenter {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: color-mix(in srgb, var(--panel) 96%, transparent);
  color: var(--text);
  box-shadow: 0 5px 18px rgba(15, 23, 42, .13);
  font-size: 20px;
  font-weight: 800;
}
#v218-coordinate-search .v218-coordinate-content {
  display: none;
  width: min(420px, calc(100vw - 120px));
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--panel) 97%, transparent);
  box-shadow: 0 8px 24px rgba(15, 23, 42, .15);
}
#v218-coordinate-search.is-open .v218-coordinate-content { display: block; }
#v218-coordinate-search .v218-coordinate-bar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; }
#v218-coordinate-search .v218-coordinate-bar input { min-height: 40px; }
#v218-coordinate-search .v218-coordinate-bar button { min-height: 40px; padding: 0 14px; }
.v220-recenter {
  position: absolute;
  top: 64px;
  left: 14px;
  z-index: 11;
}

/* Árvore estilo Earth */
.v220-tree-tools {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto auto auto;
  gap: 5px;
  padding: 7px 0;
}
.v220-tree-tools input {
  min-height: 34px;
  padding: 6px 8px;
  font-size: 11px;
}
.v220-tree-tools button,
.v220-folder-actions button,
.v220-cat-actions button {
  min-height: 30px;
  padding: 4px 7px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--panel);
  color: var(--text);
  font-size: 10px;
  font-weight: 750;
}
.v220-tree-category { border-left: 2px solid var(--line); margin: 4px 0 6px 5px; padding-left: 7px; }
.v220-tree-category > summary,
.v219-source-folder > summary { align-items: center; }
.v220-cat-actions,
.v220-folder-actions { margin-left: auto; display: inline-flex; gap: 3px; }
.v220-tree-feature { min-width: 0; }
.v220-tree-feature > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v220-tree-feature.hidden { display: none !important; }

@media (max-width: 760px) {
  .v220-reference-card { min-width: 0; width: 100%; }
  .v220-info-section dl > div { grid-template-columns: 1fr; gap: 2px; }
  #v218-coordinate-search { top: 10px; left: 10px; max-width: calc(100% - 20px); }
  #v218-coordinate-search .v218-coordinate-content { width: min(360px, calc(100vw - 72px)); }
  .v220-recenter { top: 60px; left: 10px; }
  .v220-tree-tools { grid-template-columns: 1fr 1fr; }
  .v220-tree-tools input { grid-column: 1 / -1; }
}


/* =====================================================================
   WEBGIS V2.20.1 - PREVIEW VISUAL "EARTH PRO"
   ---------------------------------------------------------------------
   Camada apenas de interface. Nao altera banco, geometrias ou regras.
   ===================================================================== */
html.v221-earth-ui {
  --v221-sidebar: 318px;
  --v221-topbar: 50px;
  --v221-radius: 8px;
  --topbar: var(--v221-topbar);
}

html.v221-earth-ui body {
  background: #eef2f6;
}

html.v221-earth-ui .topbar {
  height: var(--v221-topbar) !important;
  min-height: var(--v221-topbar) !important;
  padding: 0 10px 0 8px !important;
  border-bottom: 1px solid #d9dee6 !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.08) !important;
  background: rgba(248,250,252,.98) !important;
  backdrop-filter: blur(12px);
  gap: 10px;
  z-index: 80;
}

html[data-theme="dark"].v221-earth-ui .topbar {
  background: #171b22 !important;
  border-bottom-color: #2c333d !important;
  box-shadow: 0 1px 7px rgba(0,0,0,.36) !important;
}

html.v221-earth-ui .topbar-left {
  flex: 0 0 auto;
  min-width: 146px;
}

html.v221-earth-ui .topbar .badge.v2-vante-brand {
  height: 34px !important;
  padding: 0 9px !important;
  border-radius: 6px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html.v221-earth-ui .topbar .badge.v2-vante-brand img {
  max-height: 24px !important;
}

html.v221-earth-ui .v221-earth-nav {
  display: flex;
  align-items: stretch;
  align-self: stretch;
  min-width: 0;
  margin-right: auto;
  border-left: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}

html.v221-earth-ui .v221-earth-nav button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 74px;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 12px !important;
  margin: 0 !important;
  border: 0 !important;
  border-right: 1px solid color-mix(in srgb, var(--line) 68%, transparent) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--text) !important;
  font-size: 11px !important;
  font-weight: 650 !important;
  line-height: 1 !important;
  box-shadow: none !important;
  cursor: pointer;
}

html.v221-earth-ui .v221-earth-nav button:hover {
  background: color-mix(in srgb, var(--brand) 8%, transparent) !important;
  color: var(--brand) !important;
}

html.v221-earth-ui .v221-earth-nav button:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: -2px;
}

html.v221-earth-ui .v221-earth-nav-icon {
  font-size: 14px;
  opacity: .8;
}

html.v221-earth-ui .topbar-right {
  gap: 5px !important;
  flex: 0 0 auto;
}

html.v221-earth-ui .topbar-right > button,
html.v221-earth-ui .topbar-right > .theme-toggle,
html.v221-earth-ui .topbar-right > .v2-layer-filter > button,
html.v221-earth-ui .topbar-right > #v28-realtime-badge {
  min-height: 31px !important;
  height: 31px !important;
  border-radius: 6px !important;
  border-color: color-mix(in srgb, var(--line) 82%, transparent) !important;
  box-shadow: none !important;
}

html.v221-earth-ui #userLabel {
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  font-weight: 700;
}

html.v221-earth-ui .workspace {
  grid-template-columns: var(--v221-sidebar) minmax(0,1fr) !important;
  height: calc(100dvh - var(--v221-topbar)) !important;
}

html.v221-earth-ui .workspace:has(.sidebar.collapsed) {
  grid-template-columns: 24px minmax(0,1fr) !important;
}

html.v221-earth-ui .sidebar {
  width: var(--v221-sidebar) !important;
  min-width: 0 !important;
  height: calc(100dvh - var(--v221-topbar)) !important;
  max-height: calc(100dvh - var(--v221-topbar)) !important;
  padding: 0 !important;
  gap: 0 !important;
  border-right: 1px solid #d9dee6 !important;
  background: #f7f8fa !important;
  box-shadow: 2px 0 8px rgba(15,23,42,.06) !important;
  overflow-x: hidden !important;
}

html[data-theme="dark"].v221-earth-ui .sidebar {
  background: #20252c !important;
  border-right-color: #343b45 !important;
  box-shadow: 2px 0 9px rgba(0,0,0,.32) !important;
}

html.v221-earth-ui .sidebar-header {
  min-height: 54px;
  padding: 9px 12px !important;
  display: flex !important;
  align-items: center !important;
  border-bottom: 1px solid var(--line) !important;
  background: color-mix(in srgb, var(--panel) 92%, var(--bg)) !important;
}

html.v221-earth-ui .sidebar-header h2 {
  display: flex !important;
  flex-direction: column;
  gap: 1px;
  margin: 0 !important;
  font-size: 14px !important;
  font-weight: 750 !important;
  letter-spacing: -.01em;
}

html.v221-earth-ui .sidebar-header h2::before {
  content: "PAINEL DO MAPA";
  color: var(--muted);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .12em;
}

html.v221-earth-ui .sidebar-header h2::after {
  content: "Lugares e camadas";
  color: var(--muted);
  font-size: 9px;
  font-weight: 500;
}

html.v221-earth-ui .sidebar-toggle {
  right: -12px !important;
  top: 10px !important;
  width: 24px !important;
  height: 30px !important;
  border-radius: 0 6px 6px 0 !important;
  border: 1px solid var(--line) !important;
  border-left: 0 !important;
  background: var(--panel) !important;
  color: var(--muted) !important;
  box-shadow: 2px 1px 5px rgba(15,23,42,.08) !important;
  z-index: 20;
}

html.v221-earth-ui .sidebar.collapsed {
  width: 24px !important;
  min-width: 24px !important;
  padding: 0 !important;
}

html.v221-earth-ui .sidebar.collapsed .sidebar-toggle {
  right: -24px !important;
}

html.v221-earth-ui #v283-projects-shell {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  margin: 0 !important;
}

html.v221-earth-ui #v283-projects-toggle,
html.v221-earth-ui .v283-section-toggle {
  min-height: 37px !important;
  padding: 0 11px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  border-radius: 0 !important;
  background: color-mix(in srgb, var(--panel) 88%, var(--bg)) !important;
  color: var(--text) !important;
  box-shadow: none !important;
  font-size: 11px !important;
}

html.v221-earth-ui #v283-projects-toggle .v283-section-icon {
  opacity: .65;
}

html.v221-earth-ui .v283-section-count {
  margin-left: auto;
  min-width: 22px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: color-mix(in srgb, var(--brand) 12%, transparent);
  color: var(--brand);
  font-size: 9px;
  font-weight: 800;
}

html.v221-earth-ui #v283-projects-body,
html.v221-earth-ui .v283-section-body {
  padding: 0 !important;
}

html.v221-earth-ui #v283-project-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  gap: 5px !important;
  padding: 8px 8px 7px !important;
  border-bottom: 1px solid var(--line) !important;
  background: color-mix(in srgb, var(--panel) 96%, var(--bg)) !important;
}

html.v221-earth-ui #v283-project-actions > button {
  min-width: 0 !important;
  height: 30px !important;
  min-height: 30px !important;
  padding: 0 7px !important;
  border: 1px solid var(--line) !important;
  border-radius: 5px !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  box-shadow: none !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

html.v221-earth-ui #v283-project-actions > button:hover {
  border-color: color-mix(in srgb, var(--brand) 48%, var(--line)) !important;
  background: color-mix(in srgb, var(--brand) 7%, var(--panel)) !important;
}

/* Dashboard e Gestao ficam na barra superior nesta previa. */
html.v221-earth-ui #v283-project-actions > #v214-open-dashboard,
html.v221-earth-ui #v283-project-actions > #v217-open-workflow {
  display: none !important;
}

html.v221-earth-ui .v283-project-content,
html.v221-earth-ui .v283-project-content.v292-project-content {
  padding: 0 !important;
  gap: 0 !important;
}

html.v221-earth-ui .v283-project-content .v2-project-search-wrap {
  position: sticky;
  top: 0;
  z-index: 6;
  margin: 0 !important;
  padding: 8px !important;
  border-bottom: 1px solid var(--line) !important;
  background: color-mix(in srgb, var(--panel) 94%, var(--bg)) !important;
}

html.v221-earth-ui #v2-project-search {
  min-height: 34px !important;
  height: 34px !important;
  padding: 0 9px 0 30px !important;
  border: 1px solid var(--line) !important;
  border-radius: 5px !important;
  background-color: var(--panel) !important;
  background-image: radial-gradient(circle at 14px 14px, transparent 5px, currentColor 5px, currentColor 6px, transparent 6px), linear-gradient(45deg, transparent 46%, currentColor 47%, currentColor 54%, transparent 55%);
  background-size: 20px 20px, 7px 7px;
  background-position: 0 0, 18px 18px;
  background-repeat: no-repeat;
  color: var(--text) !important;
  font-size: 10px !important;
  box-shadow: inset 0 1px 2px rgba(15,23,42,.04) !important;
}

html.v221-earth-ui #projectsList,
html.v221-earth-ui .projects-list {
  gap: 0 !important;
  padding: 4px 5px 12px !important;
}

html.v221-earth-ui .project-card {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: transparent !important;
  box-shadow: none !important;
}

html.v221-earth-ui .project-card:hover {
  background: color-mix(in srgb, var(--brand) 6%, transparent) !important;
}

html.v221-earth-ui .project-group-summary {
  min-height: 31px !important;
  padding: 5px 6px !important;
  border-radius: 4px !important;
  background: transparent !important;
}

html.v221-earth-ui .project-group-title strong {
  font-size: 10.5px !important;
  font-weight: 750 !important;
}

html.v221-earth-ui .project-group-title small,
html.v221-earth-ui .project-meta,
html.v221-earth-ui .project-meta small {
  font-size: 8.5px !important;
  color: var(--muted) !important;
}

html.v221-earth-ui .project-reference-list {
  margin-left: 10px;
  padding-left: 7px;
  border-left: 1px solid color-mix(in srgb, var(--line) 86%, transparent);
}

html.v221-earth-ui .project-reference-row {
  grid-template-columns: 17px minmax(0,1fr) auto !important;
  gap: 4px !important;
  padding: 5px 5px !important;
  border-top: 0 !important;
  border-radius: 4px;
}

html.v221-earth-ui .project-reference-row:hover {
  background: color-mix(in srgb, var(--brand) 7%, transparent);
}

html.v221-earth-ui .project-reference-title span {
  font-size: 10px !important;
  font-weight: 700 !important;
}

html.v221-earth-ui .project-reference-title em {
  font-size: 7.5px !important;
  padding: 1px 4px !important;
  border-radius: 3px !important;
}

html.v221-earth-ui .v219-reference-expand {
  color: var(--muted) !important;
  font-size: 8.5px !important;
}

html.v221-earth-ui .v219-reference-tree-body {
  max-height: 340px !important;
  padding: 4px !important;
  border-radius: 4px !important;
  border-color: color-mix(in srgb, var(--line) 85%, transparent) !important;
  background: color-mix(in srgb, var(--panel) 50%, transparent) !important;
}

html.v221-earth-ui .v219-source-folder,
html.v221-earth-ui .v220-tree-category {
  border-radius: 3px !important;
}

html.v221-earth-ui .v219-source-folder > summary,
html.v221-earth-ui .v220-tree-category > summary,
html.v221-earth-ui .v219-tree-section > summary {
  min-height: 26px;
  padding: 3px 4px !important;
  font-size: 9px !important;
}

html.v221-earth-ui .v219-tree-items > label,
html.v221-earth-ui .v219-tree-candidates > details > summary {
  min-height: 24px;
  padding: 3px 4px !important;
  border-radius: 3px !important;
  font-size: 9px !important;
}

html.v221-earth-ui .v220-tree-tools {
  gap: 4px !important;
  padding: 5px 2px !important;
}

html.v221-earth-ui .v220-tree-tools input {
  min-height: 29px !important;
  height: 29px !important;
  border-radius: 4px !important;
  font-size: 9px !important;
}

html.v221-earth-ui .v220-tree-tools button,
html.v221-earth-ui .v220-folder-actions button,
html.v221-earth-ui .v220-cat-actions button {
  min-height: 25px !important;
  height: 25px !important;
  padding: 2px 5px !important;
  border-radius: 4px !important;
  font-size: 8px !important;
}

html.v221-earth-ui .color-panel,
html.v221-earth-ui .users-panel,
html.v221-earth-ui .sidebar-note,
html.v221-earth-ui #v211-pwa-install,
html.v221-earth-ui #v218-trash-open {
  margin-left: 8px !important;
  margin-right: 8px !important;
}

html.v221-earth-ui .color-panel,
html.v221-earth-ui .users-panel {
  border-radius: 5px !important;
  box-shadow: none !important;
}

html.v221-earth-ui .map-area {
  background: #dfe5ea !important;
}

html.v221-earth-ui #map {
  inset: 0 !important;
}

/* Controles de mapa compactos e no estilo de ferramenta desktop. */
html.v221-earth-ui .maplibregl-ctrl-top-right {
  top: 10px !important;
  right: 10px !important;
}

html.v221-earth-ui .maplibregl-ctrl-group {
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.18) !important;
  border-radius: 5px !important;
  box-shadow: 0 2px 8px rgba(15,23,42,.14) !important;
}

html[data-theme="dark"].v221-earth-ui .maplibregl-ctrl-group {
  border-color: rgba(255,255,255,.15) !important;
}

html.v221-earth-ui .maplibregl-ctrl-group button {
  width: 34px !important;
  height: 34px !important;
}

html.v221-earth-ui .map-action,
html.v221-earth-ui .refresh-map-button,
html.v221-earth-ui .v220-recenter,
html.v221-earth-ui #v218-coordinate-search .v220-coordinate-toggle {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  border-radius: 5px !important;
  border: 1px solid rgba(15,23,42,.18) !important;
  background: color-mix(in srgb, var(--panel) 95%, transparent) !important;
  box-shadow: 0 2px 7px rgba(15,23,42,.13) !important;
}

html.v221-earth-ui #v218-coordinate-search {
  position: fixed !important;
  top: calc(var(--v221-topbar) + 10px) !important;
  left: calc(var(--v221-sidebar) + 12px) !important;
  z-index: 65 !important;
  max-width: min(480px, calc(100vw - var(--v221-sidebar) - 100px)) !important;
}

html.v221-earth-ui .sidebar.collapsed ~ .map-area #v218-coordinate-search,
html.v221-earth-ui body:has(.sidebar.collapsed) #v218-coordinate-search {
  left: 38px !important;
}

html.v221-earth-ui #v218-coordinate-search .v218-coordinate-content {
  border-radius: 6px !important;
  border: 1px solid rgba(15,23,42,.18) !important;
  box-shadow: 0 4px 14px rgba(15,23,42,.16) !important;
}

html.v221-earth-ui .v220-recenter {
  position: fixed !important;
  top: calc(var(--v221-topbar) + 52px) !important;
  left: calc(var(--v221-sidebar) + 12px) !important;
}

html.v221-earth-ui body:has(.sidebar.collapsed) .v220-recenter {
  left: 38px !important;
}

html.v221-earth-ui .webgis-basemap-switch {
  border-radius: 5px !important;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.18) !important;
  box-shadow: 0 2px 8px rgba(15,23,42,.13) !important;
}

html.v221-earth-ui .webgis-basemap-switch button {
  min-height: 30px !important;
  border-radius: 0 !important;
  font-size: 9px !important;
}

/* Barra inferior semelhante a leitura de status do Earth. */
html.v221-earth-ui .status-bar {
  left: 8px !important;
  right: 8px !important;
  bottom: 7px !important;
  width: auto !important;
  min-height: 25px !important;
  padding: 5px 9px !important;
  border: 1px solid rgba(15,23,42,.15) !important;
  border-radius: 4px !important;
  background: color-mix(in srgb, var(--panel) 91%, transparent) !important;
  color: var(--muted) !important;
  box-shadow: 0 2px 7px rgba(15,23,42,.09) !important;
  backdrop-filter: blur(9px);
  font-size: 9px !important;
  pointer-events: none;
}

/* Popups mais proximos de um painel de propriedades de GIS desktop. */
html.v221-earth-ui .maplibregl-popup-content {
  min-width: 260px;
  max-width: min(430px, 72vw);
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.16) !important;
  border-radius: 7px !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  box-shadow: 0 8px 26px rgba(15,23,42,.22) !important;
}

html.v221-earth-ui .maplibregl-popup-content > *:not(.maplibregl-popup-close-button) {
  margin-left: 10px;
  margin-right: 10px;
}

html.v221-earth-ui .maplibregl-popup-close-button {
  width: 28px;
  height: 28px;
  color: var(--muted) !important;
  font-size: 18px !important;
}

html.v221-earth-ui .v220-reference-card {
  min-width: min(390px, 68vw) !important;
  gap: 7px !important;
  padding: 12px 0 10px !important;
}

html.v221-earth-ui .v220-reference-head strong {
  font-size: 15px !important;
}

html.v221-earth-ui .v220-info-section {
  border-radius: 5px !important;
}

html.v221-earth-ui .v220-info-section h4 {
  padding: 6px 8px !important;
  font-size: 9px !important;
}

html.v221-earth-ui .v220-info-section dl > div {
  padding: 5px 8px !important;
}

html.v221-earth-ui .v220-info-section dt,
html.v221-earth-ui .v220-info-section dd {
  font-size: 10px !important;
}

@media (max-width: 1080px) {
  html.v221-earth-ui .v221-earth-nav button {
    min-width: 52px;
    padding: 0 8px !important;
  }
  html.v221-earth-ui .v221-earth-nav-label { display: none; }
}

@media (max-width: 760px) {
  html.v221-earth-ui { --v221-topbar: 52px; --v221-sidebar: min(88vw, 330px); }
  html.v221-earth-ui .v221-earth-nav { display: none !important; }
  html.v221-earth-ui .topbar-left { min-width: 0; }
  html.v221-earth-ui .workspace { display: block !important; }
  html.v221-earth-ui .sidebar {
    width: min(88vw, 330px) !important;
    top: var(--v221-topbar) !important;
    height: calc(100dvh - var(--v221-topbar)) !important;
  }
  html.v221-earth-ui #v218-coordinate-search {
    top: calc(var(--v221-topbar) + 8px) !important;
    left: 9px !important;
    max-width: calc(100vw - 18px) !important;
  }
  html.v221-earth-ui .v220-recenter {
    top: calc(var(--v221-topbar) + 50px) !important;
    left: 9px !important;
  }
  html.v221-earth-ui .status-bar {
    bottom: 62px !important;
  }
}


/* =====================================================================
   WEBGIS V2.22.0 - FIGMA PRODUCT UI
   Camada visual final. Centraliza o design sem alterar regras de negocio.
   ===================================================================== */
html.v222-figma-ui {
  --brand:#2468eb;
  --brand-dark:#1753c7;
  --brand-soft:#edf4ff;
  --teal:#14b8b0;
  --ink:#172033;
  --muted:#718096;
  --line:#e2e8f0;
  --panel:#ffffff;
  --surface:#ffffff;
  --soft:#f7f9fc;
  --bg:#eef2f7;
  --success:#1f9d6a;
  --danger:#b42318;
  --shadow:0 14px 40px rgba(28,45,78,.14);
  --v222-topbar:68px;
  --v222-sidebar:360px;
  font-family:Inter,"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}
html.v222-figma-ui body { background:var(--bg); color:var(--ink); }
html.v222-figma-ui button, html.v222-figma-ui input, html.v222-figma-ui select, html.v222-figma-ui textarea { font:inherit; }
html.v222-figma-ui .v222-icon { display:block; flex:0 0 auto; }

/* LOGIN */
html.v222-figma-ui .login-screen { background:linear-gradient(145deg,#edf4ff 0%,#f8fbff 42%,#eef7f5 100%); }
html.v222-figma-ui .login-card.v222-login-card { width:min(430px,calc(100vw - 32px)); padding:34px; border:1px solid rgba(36,104,235,.10); border-radius:22px; box-shadow:0 22px 70px rgba(28,45,78,.16); background:rgba(255,255,255,.98); }
html.v222-figma-ui .v222-login-brand { display:flex; align-items:center; gap:16px; margin-bottom:26px; padding-bottom:22px; border-bottom:1px solid var(--line); }
html.v222-figma-ui .v222-login-brand img { width:96px; max-height:34px; object-fit:contain; }
html.v222-figma-ui .v222-login-brand div { padding-left:16px; border-left:1px solid var(--line); }
html.v222-figma-ui .v222-login-brand strong, html.v222-figma-ui .v222-login-brand small { display:block; }
html.v222-figma-ui .v222-login-brand strong { font-size:15px; }
html.v222-figma-ui .v222-login-brand small { margin-top:3px; color:var(--muted); font-size:11px; }
html.v222-figma-ui .login-card h1 { margin:0 0 7px; font-size:27px; letter-spacing:-.035em; }
html.v222-figma-ui .login-card p { margin:0 0 24px; color:var(--muted); font-size:13px; line-height:1.5; }
html.v222-figma-ui .login-card label { color:#4b5c72; font-size:11px; font-weight:700; }
html.v222-figma-ui .login-card input { min-height:46px; margin-top:6px; border:1px solid var(--line); border-radius:11px; background:#fbfcfe; }
html.v222-figma-ui .login-card input:focus { border-color:#9cbcf3; box-shadow:0 0 0 4px rgba(36,104,235,.09); }
html.v222-figma-ui .login-card .primary { min-height:46px; border-radius:11px; background:linear-gradient(135deg,var(--brand),#387cf6); box-shadow:0 9px 20px rgba(36,104,235,.22); }

/* TOPBAR */
html.v222-figma-ui .app-screen { height:100dvh; overflow:hidden; }
html.v222-figma-ui .topbar { position:relative; z-index:90; height:var(--v222-topbar)!important; min-height:var(--v222-topbar)!important; padding:0 18px!important; display:flex!important; align-items:center!important; gap:0!important; border-bottom:1px solid var(--line)!important; background:rgba(255,255,255,.98)!important; box-shadow:none!important; backdrop-filter:blur(14px); }
html.v222-figma-ui .topbar-left { min-width:236px; display:flex!important; align-items:center!important; gap:13px!important; }
html.v222-figma-ui .topbar .badge.v2-vante-brand { height:38px!important; padding:0!important; border:0!important; background:transparent!important; box-shadow:none!important; }
html.v222-figma-ui .topbar .badge.v2-vante-brand img { width:78px!important; max-width:78px!important; max-height:28px!important; object-fit:contain; }
html.v222-figma-ui .topbar .badge.v2-vante-brand > span { display:none!important; }
html.v222-figma-ui .v222-product-divider { width:1px; height:30px; background:var(--line); }
html.v222-figma-ui .v222-product-copy { display:flex; flex-direction:column; align-items:flex-start; line-height:1.2; }
html.v222-figma-ui .v222-product-copy strong { font-size:14px; font-weight:800; color:var(--ink); }
html.v222-figma-ui .v222-product-copy small { margin-top:3px; color:var(--muted); font-size:9px; }
html.v222-figma-ui .v222-primary-nav { align-self:stretch; display:flex; align-items:stretch; margin-right:auto; margin-left:0; border-left:1px solid #edf1f6; }
html.v222-figma-ui .v222-primary-nav button { position:relative; min-width:98px; display:flex; align-items:center; justify-content:center; gap:8px; padding:0 16px; border:0; border-right:1px solid #edf1f6; border-radius:0; background:transparent; color:#65748a; font-size:11px; font-weight:650; cursor:pointer; }
html.v222-figma-ui .v222-primary-nav button::after { content:""; position:absolute; right:18px; bottom:0; left:18px; height:3px; border-radius:3px 3px 0 0; background:transparent; }
html.v222-figma-ui .v222-primary-nav button:hover { color:var(--brand); background:#f8faff; }
html.v222-figma-ui .v222-primary-nav button.active { color:var(--brand); background:#f7faff; }
html.v222-figma-ui .v222-primary-nav button.active::after { background:var(--brand); }
html.v222-figma-ui .topbar-right { margin-left:auto; display:flex!important; align-items:center!important; gap:10px!important; }
html.v222-figma-ui .theme-toggle { width:38px!important; height:38px!important; min-width:38px!important; border:1px solid var(--line)!important; border-radius:11px!important; background:white!important; color:#64748b!important; box-shadow:none!important; }
html.v222-figma-ui .theme-toggle:hover { color:var(--brand)!important; background:var(--brand-soft)!important; }
html.v222-figma-ui .v222-user-panel { display:flex; align-items:center; gap:9px; min-width:130px; }
html.v222-figma-ui .v222-user-avatar { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; color:var(--brand); background:var(--brand-soft); font-size:10px; font-weight:850; }
html.v222-figma-ui .v222-user-copy { display:block; min-width:78px; }
html.v222-figma-ui .v222-user-copy strong, html.v222-figma-ui .v222-user-copy small { display:block; max-width:130px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
html.v222-figma-ui .v222-user-copy strong { color:var(--ink); font-size:11px; font-weight:750; }
html.v222-figma-ui .v222-user-copy small { margin-top:2px; color:var(--muted); font-size:9px; }
html.v222-figma-ui .v222-logout-button { height:38px!important; min-height:38px!important; display:flex!important; align-items:center!important; gap:7px!important; padding:0 12px!important; border:1px solid var(--line)!important; border-radius:10px!important; background:white!important; color:#45556c!important; font-size:10px!important; font-weight:650!important; box-shadow:none!important; }
html.v222-figma-ui .v222-logout-button:hover { border-color:#f3c9ca!important; color:#b33a3f!important; background:#fff7f7!important; }

/* WORKSPACE + SIDEBAR */
html.v222-figma-ui .workspace { display:grid!important; grid-template-columns:var(--v222-sidebar) minmax(0,1fr)!important; height:calc(100dvh - var(--v222-topbar))!important; min-height:0!important; }
html.v222-figma-ui .workspace:has(.sidebar.collapsed) { grid-template-columns:0 minmax(0,1fr)!important; }
html.v222-figma-ui .sidebar { position:relative!important; z-index:35!important; width:var(--v222-sidebar)!important; min-width:var(--v222-sidebar)!important; height:calc(100dvh - var(--v222-topbar))!important; max-height:calc(100dvh - var(--v222-topbar))!important; display:flex!important; flex-direction:column!important; gap:0!important; padding:0 14px 22px!important; overflow-y:auto!important; overflow-x:hidden!important; border-right:1px solid var(--line)!important; background:var(--surface)!important; box-shadow:7px 0 28px rgba(28,45,78,.05)!important; scrollbar-color:#c9d4e2 transparent; scrollbar-width:thin; }
html.v222-figma-ui .sidebar.collapsed { width:0!important; min-width:0!important; padding:0!important; border:0!important; overflow:visible!important; }
html.v222-figma-ui .sidebar-header { position:sticky; top:0; z-index:15; min-height:79px!important; margin:0 -14px 0!important; padding:20px 18px 14px!important; display:flex!important; align-items:center!important; gap:8px!important; border-bottom:0!important; background:linear-gradient(to bottom,#fff 80%,rgba(255,255,255,.92))!important; }
html.v222-figma-ui .v222-sidebar-heading { flex:1; min-width:0; }
html.v222-figma-ui .v222-eyebrow { display:block; margin-bottom:5px; color:var(--brand); font-size:8px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
html.v222-figma-ui .sidebar-header h2 { margin:0!important; color:var(--ink)!important; font-size:20px!important; font-weight:800!important; letter-spacing:-.04em!important; }
html.v222-figma-ui .sidebar-header h2::before, html.v222-figma-ui .sidebar-header h2::after { display:none!important; }
html.v222-figma-ui .v222-count-badge { min-width:26px; height:26px; display:grid; place-items:center; border-radius:9px; color:var(--brand); background:var(--brand-soft); font-size:9px; font-weight:850; }
html.v222-figma-ui .sidebar-toggle { right:-13px!important; top:24px!important; width:26px!important; height:32px!important; border:1px solid var(--line)!important; border-left:0!important; border-radius:0 8px 8px 0!important; background:#fff!important; color:#8a98aa!important; box-shadow:3px 2px 8px rgba(28,45,78,.08)!important; }
html.v222-figma-ui .sidebar.collapsed .sidebar-toggle { right:-26px!important; }

/* dashboard + quick actions */
html.v222-figma-ui #v214-open-dashboard.v222-dashboard-button { width:100%!important; min-height:45px!important; display:flex!important; align-items:center!important; gap:10px!important; margin:0 0 10px!important; padding:0 13px!important; border:0!important; border-radius:12px!important; color:#fff!important; background:linear-gradient(135deg,#2468eb,#3b7cf3)!important; box-shadow:0 8px 18px rgba(36,104,235,.20)!important; }
html.v222-figma-ui #v214-open-dashboard.v222-dashboard-button > span { flex:1; display:flex; align-items:center; justify-content:space-between; gap:8px; }
html.v222-figma-ui #v214-open-dashboard.v222-dashboard-button strong { font-size:11px!important; }
html.v222-figma-ui #v214-open-dashboard.v222-dashboard-button small { display:none!important; }
html.v222-figma-ui #v283-projects-shell { margin:0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; }
html.v222-figma-ui #v283-projects-toggle { display:none!important; }
html.v222-figma-ui #v283-projects-body { display:block!important; padding:0!important; }
html.v222-figma-ui #v283-project-actions { display:grid!important; grid-template-columns:1fr 1fr!important; gap:8px!important; margin:0 0 10px!important; padding:0!important; border:0!important; background:transparent!important; }
html.v222-figma-ui #v283-project-actions > #v214-open-dashboard, html.v222-figma-ui #v283-project-actions > #v217-open-workflow { display:none!important; }
html.v222-figma-ui .v222-quick-action { min-height:55px!important; display:flex!important; align-items:center!important; justify-content:flex-start!important; gap:10px!important; padding:8px 11px!important; border:1px solid #dce6f6!important; border-radius:11px!important; color:#315077!important; background:#f8fbff!important; text-align:left!important; font-size:10px!important; font-weight:750!important; box-shadow:none!important; }
html.v222-figma-ui .v222-quick-action .v222-icon { color:var(--brand); }
html.v222-figma-ui .v222-quick-action:hover { border-color:#9bbcf7!important; color:var(--brand)!important; background:var(--brand-soft)!important; transform:translateY(-1px); }

/* search + project cards */
html.v222-figma-ui .v283-project-content, html.v222-figma-ui .v283-project-content.v292-project-content { padding:0!important; gap:0!important; }
html.v222-figma-ui .v283-project-content .v2-project-search-wrap { position:sticky!important; top:79px!important; z-index:12!important; margin:0 0 10px!important; padding:0!important; border:0!important; background:#fff!important; }
html.v222-figma-ui #v2-project-search { width:100%!important; height:41px!important; min-height:41px!important; padding:0 12px 0 38px!important; border:1px solid var(--line)!important; border-radius:10px!important; color:var(--ink)!important; background:#f7f9fc!important; font-size:10px!important; box-shadow:none!important; }
html.v222-figma-ui #v2-project-search:focus { border-color:#9cbcf3!important; box-shadow:0 0 0 3px rgba(36,104,235,.08)!important; background:#fff!important; }
html.v222-figma-ui #projectsList, html.v222-figma-ui .projects-list { display:grid!important; gap:8px!important; padding:0 0 2px!important; }
html.v222-figma-ui .project-card { margin:0!important; padding:0!important; overflow:hidden!important; border:1px solid var(--line)!important; border-radius:12px!important; background:#fff!important; box-shadow:none!important; transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease!important; }
html.v222-figma-ui .project-card:hover { border-color:#c6d9fb!important; box-shadow:0 5px 16px rgba(36,104,235,.07)!important; transform:translateY(-1px); }
html.v222-figma-ui .project-group-summary { min-height:46px!important; padding:9px 10px!important; border-radius:0!important; background:#fff!important; }
html.v222-figma-ui .project-group-title strong { font-size:10.5px!important; color:var(--ink)!important; font-weight:800!important; }
html.v222-figma-ui .project-group-title small, html.v222-figma-ui .project-meta, html.v222-figma-ui .project-meta small { color:var(--muted)!important; font-size:8.5px!important; }
html.v222-figma-ui .project-reference-list { margin:0!important; padding:0 8px 8px!important; border:0!important; }
html.v222-figma-ui .project-reference-row { grid-template-columns:18px minmax(0,1fr) auto!important; gap:6px!important; min-height:36px!important; padding:5px 6px!important; border:0!important; border-radius:8px!important; }
html.v222-figma-ui .project-reference-row:hover { background:var(--soft)!important; }
html.v222-figma-ui .project-reference-title span { font-size:9.5px!important; }
html.v222-figma-ui input[type="checkbox"] { accent-color:var(--brand); }
html.v222-figma-ui .project-card input[type="checkbox"], html.v222-figma-ui .v219-tree-candidates input[type="checkbox"], html.v222-figma-ui .v220-tree-feature input[type="checkbox"] { width:15px!important; height:15px!important; min-width:15px!important; }
html.v222-figma-ui .v219-reference-expand { font-size:8.5px!important; color:#6f7f94!important; }
html.v222-figma-ui .v219-reference-tree-body { max-height:380px!important; margin:4px 0 0!important; padding:6px!important; border:1px solid #edf1f6!important; border-radius:9px!important; background:#fbfcfe!important; }
html.v222-figma-ui .v219-source-folder, html.v222-figma-ui .v220-tree-category, html.v222-figma-ui .v222-pn-node { border:0!important; border-radius:8px!important; background:#fff!important; }
html.v222-figma-ui .v219-source-folder>summary, html.v222-figma-ui .v220-tree-category>summary, html.v222-figma-ui .v219-tree-section>summary, html.v222-figma-ui .v222-pn-node>summary { min-height:30px!important; padding:5px 6px!important; border-radius:7px!important; font-size:9px!important; }
html.v222-figma-ui .v219-source-folder>summary:hover, html.v222-figma-ui .v220-tree-category>summary:hover, html.v222-figma-ui .v222-pn-node>summary:hover { background:var(--brand-soft)!important; }
html.v222-figma-ui .v222-pn-tree { display:grid; gap:5px; }
html.v222-figma-ui .v222-pn-node>summary { display:flex; align-items:center; justify-content:space-between; gap:8px; }
html.v222-figma-ui .v222-pn-node>summary>span { display:grid; gap:2px; }
html.v222-figma-ui .v222-pn-node>summary b { font-size:9.5px; color:var(--ink); }
html.v222-figma-ui .v222-pn-node>summary small, html.v222-figma-ui .v222-pn-node>summary em { color:var(--muted); font-size:8px; font-style:normal; }
html.v222-figma-ui .v219-point-list { display:flex; flex-wrap:wrap; gap:4px; padding:4px 6px 8px 26px; }
html.v222-figma-ui .v219-point-list span { padding:3px 6px; border:1px solid var(--line); border-radius:999px; color:#617088; background:#f8fafc; font-size:8px; }

/* secondary cards / workflow / users */
html.v222-figma-ui #v283-secondary-tools { display:grid!important; gap:8px!important; margin-top:8px!important; }
html.v222-figma-ui .v2-sidebar-export-card, html.v222-figma-ui .v2-photo-storage-card, html.v222-figma-ui .color-panel, html.v222-figma-ui .users-panel, html.v222-figma-ui #v2137-sync-card { margin:8px 0 0!important; border:1px solid var(--line)!important; border-radius:12px!important; background:#fff!important; box-shadow:none!important; }
html.v222-figma-ui .v222-workflow-button { width:100%!important; min-height:58px!important; display:flex!important; align-items:center!important; gap:10px!important; margin:8px 0 0!important; padding:9px 10px!important; border:1px solid #bcd2fa!important; border-radius:12px!important; color:#243c63!important; background:linear-gradient(135deg,#f4f8ff,#edf4ff)!important; text-align:left!important; box-shadow:none!important; }
html.v222-figma-ui .v222-workflow-button .v222-workflow-icon { width:34px; height:34px; display:grid; flex:0 0 34px; place-items:center; border-radius:10px; color:#fff; background:var(--brand); }
html.v222-figma-ui .v222-workflow-button>span:nth-child(2) { min-width:0; flex:1; }
html.v222-figma-ui .v222-workflow-button strong, html.v222-figma-ui .v222-workflow-button small { display:block; }
html.v222-figma-ui .v222-workflow-button strong { font-size:10px; }
html.v222-figma-ui .v222-workflow-button small { margin-top:3px; color:#718096; font-size:8px; }
html.v222-figma-ui .color-panel-toggle { min-height:44px!important; padding:0 11px!important; border:0!important; background:transparent!important; font-size:10px!important; font-weight:750!important; }
html.v222-figma-ui .sidebar-note { margin:9px 0 0!important; padding:10px 11px!important; border-radius:10px!important; border:1px dashed #d9e2ef!important; background:#fbfcfe!important; color:var(--muted)!important; font-size:9px!important; }
html.v222-figma-ui #v211-pwa-install, html.v222-figma-ui #v218-trash-open { margin:8px 0 0!important; border-radius:10px!important; }

/* MAP */
html.v222-figma-ui .map-area { position:relative!important; min-width:0!important; height:100%!important; overflow:hidden!important; background:#e8eee7!important; }
html.v222-figma-ui #map { position:absolute!important; inset:0!important; }
html.v222-figma-ui #v218-coordinate-search { position:absolute!important; top:22px!important; left:50%!important; z-index:45!important; width:min(520px,calc(100% - 250px))!important; max-width:none!important; height:48px!important; display:flex!important; align-items:center!important; gap:0!important; margin:0!important; padding:0!important; transform:translateX(-50%)!important; }
html.v222-figma-ui #v218-coordinate-search .v220-coordinate-toggle { position:absolute!important; left:12px!important; top:50%!important; z-index:2!important; width:18px!important; height:18px!important; min-width:18px!important; min-height:18px!important; padding:0!important; transform:translateY(-50%)!important; border:0!important; background:transparent!important; color:#7591b8!important; box-shadow:none!important; font-size:16px!important; pointer-events:none; }
html.v222-figma-ui #v218-coordinate-search .v218-coordinate-content { display:block!important; width:100%!important; height:48px!important; padding:5px!important; border:1px solid rgba(40,63,89,.10)!important; border-radius:13px!important; background:rgba(255,255,255,.97)!important; box-shadow:0 14px 40px rgba(28,45,78,.14)!important; }
html.v222-figma-ui #v218-coordinate-search .v218-coordinate-bar { height:100%!important; display:grid!important; grid-template-columns:minmax(0,1fr) auto!important; gap:7px!important; }
html.v222-figma-ui #v218-coordinate-search input { height:100%!important; min-height:0!important; padding:0 8px 0 32px!important; border:0!important; outline:0!important; background:transparent!important; color:var(--ink)!important; font-size:10px!important; }
html.v222-figma-ui #v218-coordinate-search #v218-coordinate-go { min-width:83px!important; height:38px!important; min-height:38px!important; display:flex!important; align-items:center!important; justify-content:center!important; gap:6px!important; padding:0 13px!important; border:0!important; border-radius:9px!important; color:#fff!important; background:var(--brand)!important; font-size:9px!important; font-weight:750!important; }
html.v222-figma-ui #v218-coordinate-search .v218-coordinate-result { position:absolute; top:56px; left:0; width:100%; border-radius:11px; box-shadow:var(--shadow); }

/* map controls / layers / realtime */
html.v222-figma-ui .maplibregl-ctrl-top-right { top:74px!important; right:18px!important; }
html.v222-figma-ui .maplibregl-ctrl-group { overflow:hidden!important; border:1px solid rgba(40,63,89,.10)!important; border-radius:12px!important; background:#fff!important; box-shadow:0 10px 28px rgba(28,45,78,.13)!important; }
html.v222-figma-ui .maplibregl-ctrl-group button { width:46px!important; height:42px!important; }
html.v222-figma-ui .v222-map-layers { position:absolute!important; top:18px!important; right:18px!important; z-index:55!important; margin:0!important; }
html.v222-figma-ui .v222-map-layers #v2-layer-filter-toggle { width:46px!important; height:56px!important; min-width:46px!important; min-height:56px!important; display:flex!important; flex-direction:column!important; align-items:center!important; justify-content:center!important; gap:3px!important; padding:0!important; border:1px solid rgba(40,63,89,.10)!important; border-radius:12px 12px 0 0!important; color:#4d5e73!important; background:#fff!important; box-shadow:0 10px 28px rgba(28,45,78,.13)!important; }
html.v222-figma-ui .v222-map-layers #v2-layer-filter-toggle span { font-size:17px!important; }
html.v222-figma-ui .v222-map-layers #v2-layer-filter-toggle b { font-size:7px!important; }
html.v222-figma-ui .v222-map-layers #v2-layer-filter-body { position:absolute!important; top:0!important; right:58px!important; width:310px!important; max-height:min(72vh,640px)!important; overflow:auto!important; border:1px solid var(--line)!important; border-radius:14px!important; background:#fff!important; box-shadow:var(--shadow)!important; }
html.v222-figma-ui .v222-live-badge { position:absolute!important; top:84px!important; right:80px!important; z-index:50!important; height:31px!important; min-height:31px!important; display:flex!important; align-items:center!important; gap:7px!important; padding:0 10px!important; border:0!important; border-radius:9px!important; color:#466256!important; background:rgba(255,255,255,.96)!important; box-shadow:0 5px 15px rgba(28,45,78,.12)!important; font-size:8px!important; font-weight:750!important; }
html.v222-figma-ui .v222-live-badge .v28-realtime-dot { width:7px!important; height:7px!important; border-radius:50%!important; background:#25b47e!important; box-shadow:0 0 0 3px rgba(37,180,126,.12)!important; }
html.v222-figma-ui .map-floating { position:absolute!important; top:auto!important; right:18px!important; bottom:78px!important; left:auto!important; width:48px!important; height:48px!important; z-index:44!important; }
html.v222-figma-ui .map-action, html.v222-figma-ui .refresh-map-button, html.v222-figma-ui .v220-recenter { width:48px!important; height:48px!important; min-width:48px!important; min-height:48px!important; display:grid!important; place-items:center!important; border:3px solid #fff!important; border-radius:50%!important; color:#fff!important; background:var(--brand)!important; box-shadow:0 8px 20px rgba(36,104,235,.30)!important; }
html.v222-figma-ui .refresh-map-button { right:18px!important; bottom:22px!important; font-size:0!important; }
html.v222-figma-ui .v220-recenter { top:auto!important; right:76px!important; bottom:22px!important; left:auto!important; width:42px!important; height:42px!important; min-width:42px!important; min-height:42px!important; border:1px solid rgba(40,63,89,.10)!important; color:#4d5e73!important; background:#fff!important; box-shadow:0 7px 18px rgba(28,45,78,.14)!important; font-size:18px!important; }
html.v222-figma-ui .webgis-basemap-switch { right:79px!important; bottom:22px!important; padding:4px!important; border:1px solid rgba(40,63,89,.10)!important; border-radius:11px!important; background:#fff!important; box-shadow:var(--shadow)!important; }
html.v222-figma-ui .webgis-basemap-switch button { height:32px!important; min-height:32px!important; padding:0 12px!important; border:0!important; border-radius:8px!important; color:#5f6e81!important; background:transparent!important; font-size:9px!important; font-weight:750!important; }
html.v222-figma-ui .webgis-basemap-switch button.active { color:var(--brand)!important; background:var(--brand-soft)!important; }
html.v222-figma-ui .status-bar { left:16px!important; right:auto!important; bottom:18px!important; width:auto!important; max-width:min(500px,calc(100% - 390px))!important; min-height:36px!important; padding:7px 12px!important; border:1px solid rgba(40,63,89,.08)!important; border-radius:10px!important; color:#4f5d6f!important; background:rgba(255,255,255,.95)!important; box-shadow:0 5px 16px rgba(28,45,78,.12)!important; backdrop-filter:blur(10px); font-size:8px!important; }

/* Popups */
html.v222-figma-ui .maplibregl-popup-content { min-width:280px!important; max-width:min(440px,76vw)!important; padding:12px!important; border:1px solid rgba(40,63,89,.10)!important; border-radius:14px!important; background:#fff!important; color:var(--ink)!important; box-shadow:0 18px 48px rgba(28,45,78,.22)!important; }
html.v222-figma-ui .maplibregl-popup-close-button { width:30px!important; height:30px!important; border-radius:8px!important; color:#8b98aa!important; font-size:18px!important; }
html.v222-figma-ui .popup-title { padding-right:30px; color:var(--ink); font-size:15px!important; font-weight:800!important; }

/* Modals / workflow / dashboard */
html.v222-figma-ui .modal, html.v222-figma-ui .field-modal, html.v222-figma-ui .v217-workflow-modal, html.v222-figma-ui .v217-audit-modal, html.v222-figma-ui .v218-trash-modal { backdrop-filter:blur(7px); }
html.v222-figma-ui .modal-card, html.v222-figma-ui .field-modal-card, html.v222-figma-ui .v217-workflow-shell, html.v222-figma-ui .v217-audit-shell, html.v222-figma-ui .v218-trash-shell, html.v222-figma-ui .v214-dashboard-shell { overflow:hidden; border:1px solid rgba(40,63,89,.12)!important; border-radius:18px!important; background:#fff!important; box-shadow:0 26px 80px rgba(28,45,78,.24)!important; }
html.v222-figma-ui .modal-header, html.v222-figma-ui .v217-workflow-header, html.v222-figma-ui .v218-trash-header, html.v222-figma-ui .v214-dashboard-header { padding:18px 20px!important; border-bottom:1px solid var(--line)!important; background:#fff!important; }
html.v222-figma-ui .modal-header h2, html.v222-figma-ui .v217-workflow-header h2, html.v222-figma-ui .v218-trash-header h2 { margin:0!important; font-size:18px!important; letter-spacing:-.025em; }
html.v222-figma-ui .v217-workflow-filters { gap:10px!important; padding:14px 18px!important; background:#f8fafc!important; border-bottom:1px solid var(--line)!important; }
html.v222-figma-ui .v217-workflow-filters input, html.v222-figma-ui .v217-workflow-filters select, html.v222-figma-ui .modal input, html.v222-figma-ui .modal select, html.v222-figma-ui .modal textarea { min-height:40px!important; border:1px solid var(--line)!important; border-radius:9px!important; background:#fff!important; }
html.v222-figma-ui .v217-bulkbar { margin:12px 18px!important; padding:10px 12px!important; border:1px solid #dce6f6!important; border-radius:11px!important; background:#f8fbff!important; }
html.v222-figma-ui .v217-table-wrap { margin:0 18px 16px!important; border:1px solid var(--line)!important; border-radius:12px!important; overflow:auto!important; }
html.v222-figma-ui .v217-table th { padding:10px!important; background:#f7f9fc!important; color:#64748b!important; font-size:9px!important; letter-spacing:.03em; }
html.v222-figma-ui .v217-table td { padding:9px 10px!important; border-top:1px solid #edf1f6!important; font-size:10px!important; }
html.v222-figma-ui .primary { background:var(--brand)!important; border-color:var(--brand)!important; border-radius:9px!important; }
html.v222-figma-ui .ghost-button, html.v222-figma-ui .secondary { border-color:var(--line)!important; border-radius:9px!important; background:#fff!important; }

/* DARK */
html[data-theme="dark"].v222-figma-ui { --ink:#e7edf5; --muted:#9aa8ba; --line:#303a47; --panel:#151b23; --surface:#151b23; --soft:#1d2530; --bg:#0e141b; --brand-soft:#172642; }
html[data-theme="dark"].v222-figma-ui .topbar, html[data-theme="dark"].v222-figma-ui .sidebar, html[data-theme="dark"].v222-figma-ui .sidebar-header, html[data-theme="dark"].v222-figma-ui .project-card, html[data-theme="dark"].v222-figma-ui .v222-map-layers #v2-layer-filter-toggle, html[data-theme="dark"].v222-figma-ui .v222-map-layers #v2-layer-filter-body, html[data-theme="dark"].v222-figma-ui .maplibregl-popup-content { background:#151b23!important; color:var(--ink)!important; }
html[data-theme="dark"].v222-figma-ui .v283-project-content .v2-project-search-wrap { background:#151b23!important; }
html[data-theme="dark"].v222-figma-ui .v222-quick-action { background:#182231!important; border-color:#2c3b50!important; color:#b9c9df!important; }
html[data-theme="dark"].v222-figma-ui .v222-user-avatar { background:#172642; }

/* RESPONSIVE */
@media (max-width:1180px){
  html.v222-figma-ui .v222-primary-nav button { min-width:58px; padding:0 10px; }
  html.v222-figma-ui .v222-primary-nav button span { display:none; }
  html.v222-figma-ui .v222-user-copy { display:none; }
  html.v222-figma-ui .v222-user-panel { min-width:auto; }
}
@media (max-width:920px){
  html.v222-figma-ui { --v222-sidebar:min(360px,calc(100vw - 54px)); }
  html.v222-figma-ui .v222-primary-nav { display:none!important; }
  html.v222-figma-ui .workspace { display:block!important; }
  html.v222-figma-ui .sidebar { position:absolute!important; inset:0 auto 0 0!important; width:var(--v222-sidebar)!important; min-width:0!important; transform:translateX(-105%); transition:transform .22s ease!important; }
  html.v222-figma-ui .sidebar.open { transform:translateX(0); }
  html.v222-figma-ui #v218-coordinate-search { width:min(500px,calc(100% - 180px))!important; }
}
@media (max-width:640px){
  html.v222-figma-ui { --v222-topbar:60px; }
  html.v222-figma-ui .topbar { padding:0 12px!important; }
  html.v222-figma-ui .topbar-left { min-width:0; gap:8px!important; }
  html.v222-figma-ui .v222-product-divider, html.v222-figma-ui .v222-product-copy, html.v222-figma-ui .v222-user-panel, html.v222-figma-ui .v222-logout-button { display:none!important; }
  html.v222-figma-ui .topbar .badge.v2-vante-brand img { width:70px!important; }
  html.v222-figma-ui .sidebar { inset:auto 0 0!important; width:100%!important; height:min(88vh,740px)!important; max-height:min(88vh,740px)!important; border:0!important; border-radius:20px 20px 0 0!important; transform:translateY(105%); }
  html.v222-figma-ui .sidebar.open { transform:translateY(0); }
  html.v222-figma-ui .sidebar::before { content:""; position:absolute; top:7px; left:50%; width:36px; height:4px; border-radius:999px; background:#d5deea; transform:translateX(-50%); z-index:20; }
  html.v222-figma-ui .sidebar-header { padding-top:25px!important; }
  html.v222-figma-ui #v218-coordinate-search { top:12px!important; right:66px!important; left:12px!important; width:auto!important; height:44px!important; transform:none!important; }
  html.v222-figma-ui #v218-coordinate-search .v218-coordinate-content { height:44px!important; }
  html.v222-figma-ui #v218-coordinate-search #v218-coordinate-go { width:38px!important; min-width:38px!important; height:34px!important; padding:0!important; }
  html.v222-figma-ui #v218-coordinate-search #v218-coordinate-go span { display:none; }
  html.v222-figma-ui .v222-map-layers { top:12px!important; right:12px!important; }
  html.v222-figma-ui .v222-map-layers #v2-layer-filter-toggle { width:44px!important; height:44px!important; min-height:44px!important; border-radius:11px!important; }
  html.v222-figma-ui .v222-map-layers #v2-layer-filter-toggle b { display:none; }
  html.v222-figma-ui .v222-map-layers #v2-layer-filter-body { position:fixed!important; inset:auto 8px 8px!important; width:auto!important; max-height:82vh!important; border-radius:18px!important; }
  html.v222-figma-ui .v222-live-badge { top:66px!important; right:64px!important; }
  html.v222-figma-ui .status-bar { right:12px!important; bottom:74px!important; left:12px!important; max-width:none!important; }
  html.v222-figma-ui .webgis-basemap-switch { right:72px!important; bottom:18px!important; }
  html.v222-figma-ui .refresh-map-button { right:12px!important; bottom:16px!important; }
  html.v222-figma-ui .v220-recenter { right:154px!important; bottom:18px!important; }
  html.v222-figma-ui .map-floating { display:none!important; }
}
@media (prefers-reduced-motion:reduce){html.v222-figma-ui *,html.v222-figma-ui *::before,html.v222-figma-ui *::after{transition-duration:.01ms!important;scroll-behavior:auto!important;}}


/* =====================================================================
   WEBGIS V2.22.1 - HOTFIX SIDEBAR / BUSCAS / PROJETOS
   ===================================================================== */
@media (min-width:921px) {
  html.v222-figma-ui .workspace { grid-template-columns:var(--v222-sidebar) minmax(0,1fr)!important; transition:none!important; }
  html.v222-figma-ui .workspace:has(.sidebar.collapsed) { grid-template-columns:0 minmax(0,1fr)!important; }
  html.v222-figma-ui .sidebar { transform:none!important; transition:none!important; }
  html.v222-figma-ui .sidebar.collapsed { width:0!important; min-width:0!important; max-width:0!important; padding:0!important; overflow:visible!important; }
}
html.v222-figma-ui #v283-projects-shell, html.v222-figma-ui #v283-projects-body, html.v222-figma-ui #v283-project-content, html.v222-figma-ui .v283-project-content { overflow:visible!important; max-height:none!important; }
html.v222-figma-ui .v283-project-content #projectsList, html.v222-figma-ui .v283-project-content .projects-list, html.v222-figma-ui #projectsList, html.v222-figma-ui .projects-list { display:grid!important; visibility:visible!important; opacity:1!important; max-height:none!important; height:auto!important; min-height:0!important; overflow:visible!important; gap:8px!important; }
html.v222-figma-ui .v283-project-content .v2-project-search-wrap, html.v222-figma-ui .v292-project-content .v2-project-search-wrap { position:relative!important; top:auto!important; left:auto!important; right:auto!important; z-index:1!important; width:100%!important; min-height:41px!important; margin:0 0 10px!important; padding:0!important; transform:none!important; }
html.v222-figma-ui .v2-project-search-wrap > span { position:absolute!important; left:12px!important; top:50%!important; z-index:2!important; color:#8a98aa!important; transform:translateY(-50%)!important; pointer-events:none!important; }
html.v222-figma-ui #v2-project-search { display:block!important; width:100%!important; padding-left:36px!important; }
html.v222-figma-ui #v218-coordinate-search { position:absolute!important; top:18px!important; left:50%!important; right:auto!important; z-index:70!important; width:min(520px,calc(100% - 240px))!important; margin:0!important; transform:translateX(-50%)!important; }
html.v222-figma-ui #v283-project-actions { display:grid!important; grid-template-columns:1fr 1fr!important; gap:8px!important; margin-bottom:10px!important; }
html.v222-figma-ui .sidebar-toggle { z-index:120!important; pointer-events:auto!important; }
@media (max-width:920px) { html.v222-figma-ui #v218-coordinate-search { top:12px!important; left:12px!important; right:66px!important; width:auto!important; transform:none!important; } html.v222-figma-ui .sidebar { transition:transform .22s ease!important; } }
@media (max-width:640px) { html.v222-figma-ui #v218-coordinate-search { top:12px!important; left:12px!important; right:66px!important; width:auto!important; transform:none!important; } }


/* =====================================================================
   WEBGIS V2.23.0 - CONSOLIDAÇÃO VISUAL / PERFORMANCE UX / DARK GLOBAL
   ===================================================================== */
html.v222-figma-ui { --v223-chart-0:#2468eb;--v223-chart-1:#14b8a6;--v223-chart-2:#f59e0b;--v223-chart-3:#8b5cf6;--v223-chart-4:#ef4444;--v223-chart-5:#06b6d4;--v223-chart-6:#84cc16;--v223-chart-7:#f97316; }

/* Sidebar retrátil: somente o puxador pode aparecer quando fechada. */
@media (min-width:921px){
 html.v222-figma-ui .sidebar.collapsed > :not(.sidebar-toggle){display:none!important;}
 html.v222-figma-ui .sidebar.collapsed{overflow:visible!important;background:transparent!important;box-shadow:none!important;}
 html.v222-figma-ui .sidebar.collapsed .sidebar-toggle{display:grid!important;position:absolute!important;left:0!important;top:42%!important;}
}

/* Busca de coordenada fica dentro do painel, sem competir com o mapa. */
html.v222-figma-ui #v218-coordinate-search.v223-coordinate-sidebar,
html.v222-figma-ui #v218-coordinate-search{
 position:relative!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;transform:none!important;
 width:100%!important;max-width:none!important;min-height:42px!important;margin:0 0 10px!important;padding:4px 4px 4px 10px!important;
 border:1px solid var(--line)!important;border-radius:11px!important;background:var(--panel)!important;box-shadow:none!important;z-index:2!important;
}
html.v222-figma-ui #v218-coordinate-search .v220-coordinate-toggle{display:none!important;}
html.v222-figma-ui #v218-coordinate-search .v220-coordinate-body{display:flex!important;width:100%!important;gap:6px!important;align-items:center!important;}
html.v222-figma-ui #v218-coordinate-input{height:34px!important;min-width:0!important;flex:1!important;border:0!important;background:transparent!important;padding:0 8px!important;font-size:10px!important;color:var(--text)!important;}
html.v222-figma-ui #v218-coordinate-go{height:34px!important;min-width:78px!important;border:0!important;border-radius:8px!important;background:var(--brand)!important;color:#fff!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;font-size:9px!important;font-weight:800!important;}

/* Projeto lógico + comandos de marcação. */
html.v222-figma-ui .project-group-summary{gap:8px!important;align-items:center!important;}
html.v222-figma-ui .v223-group-actions{margin-left:auto;display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end;}
html.v222-figma-ui .v223-group-actions button{height:25px;padding:0 7px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--muted);font-size:8px;font-weight:750;cursor:pointer;}
html.v222-figma-ui .v223-group-actions button:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft);}
html.v222-figma-ui .project-group-toggle-wrap{white-space:nowrap;}

/* Dashboard mais respirável e dinâmico. */
.v223-filterbar{grid-template-columns:minmax(180px,1.15fr) 130px 150px 150px 140px minmax(220px,1.5fr) auto!important;align-items:end!important;gap:9px!important;}
.v223-analytics{margin:12px 0;border:1px solid var(--line);border-radius:15px;background:var(--panel);overflow:hidden;}
.v223-analytics>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line);}
.v223-analytics>header>div:first-child{display:grid;gap:2px}.v223-analytics>header strong{font-size:12px}.v223-analytics>header small{font-size:9px;color:var(--muted)}
.v223-chart-controls{display:flex;gap:7px}.v223-chart-controls select{height:34px;min-width:128px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);padding:0 9px;font-size:9px;font-weight:700;}
.v223-chart-body{padding:14px;min-height:150px;}
.v223-bars{display:grid;gap:9px}.v223-bars>div{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(140px,2fr) 38px;align-items:center;gap:10px;font-size:9px}.v223-bars>div>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v223-bars>div>i{height:10px;border-radius:999px;background:var(--bg);overflow:hidden}.v223-bars>div>i>b{display:block;height:100%;border-radius:inherit}.v223-bars>div>strong{text-align:right}
.v223-donut-wrap{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:22px}.v223-donut{width:140px;height:140px;border-radius:50%;display:grid;place-items:center;position:relative}.v223-donut:after{content:"";position:absolute;inset:27px;border-radius:50%;background:var(--panel)}.v223-donut>span{position:relative;z-index:2;display:grid;text-align:center}.v223-donut b{font-size:24px}.v223-donut small{font-size:9px;color:var(--muted)}.v223-chart-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px}.v223-chart-legend span{display:flex;align-items:center;gap:7px;font-size:9px}.v223-chart-legend i{width:9px;height:9px;border-radius:3px}.v223-chart-legend b{margin-left:auto}
.v223-dashboard-primary{grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr)!important;}
.v223-dashboard-more{margin:12px 0 0;border:1px solid var(--line);border-radius:13px;background:var(--panel);overflow:hidden}.v223-dashboard-more>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;font-size:10px;font-weight:800}.v223-dashboard-more>summary::-webkit-details-marker{display:none}.v223-dashboard-more>summary span{color:var(--muted);font-size:9px;font-weight:500}.v223-dashboard-more>div{padding:0 12px 12px}
.v214-dashboard-title-wrap small{font-size:9px!important;color:var(--muted)!important;}

/* Dark mode coerente em TODAS as superfícies principais/legadas. */
html[data-theme="dark"].v222-figma-ui{color-scheme:dark;--bg:#0b1220;--panel:#111a27;--surface:#111a27;--line:#2a394c;--text:#edf4ff;--muted:#92a4ba;--brand-soft:#14284b;--shadow:0 14px 38px rgba(0,0,0,.38);}
html[data-theme="dark"].v222-figma-ui body,html[data-theme="dark"].v222-figma-ui .app-screen,html[data-theme="dark"].v222-figma-ui .topbar,html[data-theme="dark"].v222-figma-ui .sidebar{background:var(--panel)!important;color:var(--text)!important;border-color:var(--line)!important;}
html[data-theme="dark"].v222-figma-ui :is(.project-card,.project-group-summary,.project-reference-row,.v219-reference-tree-body,.v222-pn-node,.v222-candidate-node,.reference-card,.export-card,.navigation-card,.sync-card,.v214-dashboard-shell,.v214-dashboard-header,.v214-dashboard-footer,.v214-dashboard-body,.v214-panel,.v214-kpi,.v215-filterbar,.v215-reportbar,.v214-local-sync,.v223-analytics,.v223-dashboard-more,.v215-drawer,.v217-modal-card,.v218-trash-card,.v290-register-card,.v2136-offline-card,.v2137-sync-sheet,.v21371-sheet,.webgis-summary-window){background:var(--panel)!important;color:var(--text)!important;border-color:var(--line)!important;}
html[data-theme="dark"].v222-figma-ui :is(input,select,textarea,.secondary,.ghost-button,.icon-button,.theme-toggle,.v214-dashboard-icon-btn,.v223-group-actions button){background:#0d1725!important;color:var(--text)!important;border-color:var(--line)!important;}
html[data-theme="dark"].v222-figma-ui :is(.project-meta,small,.v214-project-name small,.v215-team-main small,.v215-team-meta small,.v223-dashboard-more>summary span){color:var(--muted)!important;}
html[data-theme="dark"].v222-figma-ui .v214-dashboard-backdrop{background:rgba(3,8,17,.72)!important;backdrop-filter:blur(6px);}
html[data-theme="dark"].v222-figma-ui .v214-dashboard-header{box-shadow:none!important;}
html[data-theme="dark"].v222-figma-ui .v215-filterbar label span{color:#a9bad0!important;}
html[data-theme="dark"].v222-figma-ui .project-group-summary{background:#101b2a!important;}
html[data-theme="dark"].v222-figma-ui .v222-pn-node>summary{background:#101b2a!important;}
html[data-theme="dark"].v222-figma-ui #v218-coordinate-search{background:#0d1725!important;}
html[data-theme="dark"].v222-figma-ui .v222-primary-nav button{color:#c5d2e1!important;border-color:var(--line)!important;}
html[data-theme="dark"].v222-figma-ui .v222-primary-nav button.active{background:#14284b!important;color:#fff!important;}

@media(max-width:1250px){.v223-filterbar{grid-template-columns:repeat(3,minmax(0,1fr))!important}.v223-filterbar .v215-filter-search{grid-column:span 2}.v223-dashboard-primary{grid-template-columns:1fr!important;}}
@media(max-width:760px){.v223-filterbar{grid-template-columns:1fr 1fr!important}.v223-filterbar .v215-filter-search{grid-column:1/-1}.v223-donut-wrap{grid-template-columns:1fr}.v223-donut{margin:auto}.v223-chart-legend{grid-template-columns:1fr}.v223-chart-controls{width:100%;flex-wrap:wrap}.v223-analytics>header{align-items:flex-start;flex-direction:column}.v223-group-actions button{display:none}.v223-dashboard-more>summary span{display:none}}


/* =====================================================================
   WEBGIS V2.24.0 — UI OPERACIONAL CONSOLIDADA
   Uma única camada final para sidebar, buscas, dark, controles e progresso.
   ===================================================================== */

/* A seta lateral foi aposentada. Projetos no topo abre/fecha a sidebar. */
html.v224-ui #toggleSidebar,
html.v224-ui .v224-legacy-sidebar-toggle { display:none !important; }

/* Sidebar totalmente recolhida no desktop. */
@media (min-width:921px){
  html.v224-ui .workspace{grid-template-columns:360px minmax(0,1fr)!important;}
  html.v224-ui .workspace:has(.sidebar.collapsed){grid-template-columns:0 minmax(0,1fr)!important;}
  html.v224-ui .sidebar{width:360px!important;min-width:360px!important;max-width:360px!important;transition:none!important;}
  html.v224-ui .sidebar.collapsed{width:0!important;min-width:0!important;max-width:0!important;border:0!important;overflow:hidden!important;}
  html.v224-ui .sidebar.collapsed>*{display:none!important;}
}

/* Header da sidebar mais compacto: remove o buraco enorme. */
html.v224-ui .sidebar-header{
  min-height:62px!important;
  padding:14px 16px 12px!important;
  margin:0!important;
}
html.v224-ui .v222-sidebar-heading{gap:2px!important;}
html.v224-ui .v222-sidebar-heading h2{font-size:19px!important;line-height:1.1!important;margin:0!important;}
html.v224-ui #v214-open-dashboard{margin:10px 14px!important;width:calc(100% - 28px)!important;}
html.v224-ui #v283-projects-shell{margin:0 14px 10px!important;width:calc(100% - 28px)!important;}

/* Ações rápidas: não deixam um botão órfão ocupando meia sidebar. */
html.v224-ui #v283-project-actions{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  margin:0 0 10px!important;
}
html.v224-ui #v283-project-actions:has(> :only-child){
  grid-template-columns:1fr!important;
}
html.v224-ui #v283-project-actions>.v222-quick-action{
  width:100%!important;min-height:44px!important;height:44px!important;
  justify-content:center!important;border-radius:10px!important;
}

/* Duas buscas claramente diferentes e alinhadas. */
html.v224-ui .v283-project-content .v2-project-search-wrap{
  position:relative!important;top:auto!important;z-index:2!important;
  width:100%!important;min-height:42px!important;margin:0 0 9px!important;padding:0!important;
  border:1px solid var(--line)!important;border-radius:11px!important;background:var(--panel)!important;
}
html.v224-ui .v283-project-content .v2-project-search-wrap>span{
  position:absolute!important;left:12px!important;top:50%!important;transform:translateY(-50%)!important;
  width:16px!important;height:16px!important;display:grid!important;place-items:center!important;
  color:var(--muted)!important;pointer-events:none!important;
}
html.v224-ui #v2-project-search{
  width:100%!important;height:40px!important;min-height:40px!important;padding:0 12px 0 36px!important;
  border:0!important;border-radius:10px!important;background:transparent!important;background-image:none!important;
  color:var(--text)!important;box-shadow:none!important;font-size:10px!important;
}
html.v224-ui #v218-coordinate-search.v224-coordinate-sidebar,
html.v224-ui #v218-coordinate-search{
  position:relative!important;inset:auto!important;transform:none!important;width:100%!important;
  min-height:46px!important;margin:0 0 10px!important;padding:4px!important;
  border:1px solid var(--line)!important;border-radius:11px!important;background:var(--panel)!important;box-shadow:none!important;
}
html.v224-ui #v218-coordinate-search .v220-coordinate-toggle{display:none!important;}
html.v224-ui #v218-coordinate-search .v218-coordinate-content{display:block!important;width:100%!important;min-width:0!important;}
html.v224-ui #v218-coordinate-search .v218-coordinate-bar{
  display:flex!important;align-items:center!important;width:100%!important;gap:6px!important;
}
html.v224-ui #v218-coordinate-input{
  flex:1!important;min-width:0!important;height:36px!important;padding:0 10px!important;border:0!important;
  border-radius:8px!important;background:transparent!important;color:var(--text)!important;outline:0!important;font-size:10px!important;
}
html.v224-ui #v218-coordinate-go{
  flex:0 0 auto!important;height:36px!important;min-width:82px!important;padding:0 12px!important;border:0!important;
  border-radius:8px!important;background:var(--brand)!important;color:#fff!important;font-size:9px!important;font-weight:800!important;
  display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;
}
html.v224-ui #v218-coordinate-result{margin-top:5px!important;border-top:1px solid var(--line)!important;}

/* Grupo de projeto: comandos realmente alinhados. */
html.v224-ui .project-group-summary{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;
  padding:10px 10px!important;
}
html.v224-ui .v223-group-actions{
  display:grid!important;grid-template-columns:auto auto!important;align-items:center!important;justify-items:end!important;gap:5px!important;
  margin:0!important;
}
html.v224-ui .v223-group-actions .project-group-toggle-wrap{grid-row:1 / span 2;align-self:center!important;}
html.v224-ui .v223-group-actions button{width:78px!important;height:25px!important;margin:0!important;}

/* PN agora tem ações próprias. */
html.v224-ui .v222-pn-node>summary{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important;gap:7px!important;}
html.v224-ui .v224-pn-tools{display:flex!important;align-items:center!important;gap:4px!important;}
html.v224-ui .v224-pn-tools button{
  height:25px!important;padding:0 7px!important;border:1px solid var(--line)!important;border-radius:7px!important;
  background:var(--surface)!important;color:var(--text)!important;font-size:8px!important;font-weight:750!important;cursor:pointer!important;
}
html.v224-ui .v224-pn-tools button:hover{border-color:var(--brand)!important;color:var(--brand)!important;background:var(--brand-soft)!important;}
.v224-pn-action-modal{position:fixed;inset:0;z-index:11050;display:grid;place-items:center;padding:18px;background:rgba(5,12,24,.55);backdrop-filter:blur(6px);}
.v224-pn-action-card{width:min(440px,94vw);max-height:min(620px,82vh);overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 26px 80px rgba(0,0,0,.28);color:var(--text);}
.v224-pn-action-card>header{display:flex;align-items:flex-start;gap:12px;padding:16px;border-bottom:1px solid var(--line);}
.v224-pn-action-card>header>div{display:grid;gap:2px;flex:1}.v224-pn-action-card>header span{font-size:8px;font-weight:850;letter-spacing:.12em;color:var(--brand)}.v224-pn-action-card>header strong{font-size:17px}.v224-pn-action-card>header small{font-size:9px;color:var(--muted)}
.v224-pn-action-card>header button{width:32px;height:32px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text)}
.v224-pn-action-list{display:grid;gap:7px;padding:12px;overflow:auto;max-height:500px}
.v224-pn-action-list>button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);text-align:left}
.v224-pn-action-list>button>span{display:grid;gap:2px;flex:1}.v224-pn-action-list strong{font-size:11px}.v224-pn-action-list small{font-size:9px;color:var(--muted)}
.v224-workflow-actions{display:flex!important;align-items:center!important;gap:5px!important;white-space:nowrap!important;}
.v224-workflow-actions button{height:29px!important;padding:0 8px!important;border:1px solid var(--line)!important;border-radius:7px!important;background:var(--surface)!important;color:var(--text)!important;font-size:8px!important;font-weight:750!important;}

/* Progresso real de carregamento do mapa. */
.v224-map-progress{
  position:absolute;left:50%;bottom:22px;z-index:85;width:min(520px,calc(100% - 150px));
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:11px 13px;
  border:1px solid rgba(40,63,89,.14);border-radius:13px;background:rgba(255,255,255,.96);
  box-shadow:0 12px 32px rgba(28,45,78,.18);backdrop-filter:blur(10px);transform:translateX(-50%);
  color:#172033;transition:opacity .18s ease,transform .18s ease;
}
.v224-map-progress.hidden{display:none!important;}
.v224-map-progress-copy{display:grid;gap:1px}.v224-map-progress-copy strong{font-size:10px}.v224-map-progress-copy span{font-size:8px;color:#718096}
.v224-map-progress-value b{font-size:13px;color:#2468eb}
.v224-map-progress-track{grid-column:1/-1;height:5px;overflow:hidden;border-radius:999px;background:#e7edf7}
.v224-map-progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2468eb,#14b8b0);transition:width .18s ease}
.v224-map-progress.is-complete .v224-map-progress-track i{background:#1f9d6a}

/* Controles do mapa: UMA coluna, mesma largura e alinhamento. */
html.v224-ui .maplibregl-ctrl-top-right{
  top:82px!important;right:16px!important;display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:8px!important;
}
html.v224-ui .maplibregl-ctrl-top-right>.maplibregl-ctrl{margin:0!important;}
html.v224-ui .maplibregl-ctrl-top-right .maplibregl-ctrl-group{
  width:44px!important;border:1px solid rgba(40,63,89,.12)!important;border-radius:12px!important;overflow:hidden!important;
  box-shadow:0 8px 22px rgba(28,45,78,.14)!important;background:var(--panel)!important;
}
html.v224-ui .maplibregl-ctrl-top-right .maplibregl-ctrl-group button{width:44px!important;height:42px!important;background:var(--panel)!important;}
html.v224-ui .map-floating{
  position:absolute!important;top:230px!important;right:16px!important;bottom:auto!important;left:auto!important;margin:0!important;z-index:65!important;
}
html.v224-ui #fitAllButton,
html.v224-ui #refreshMapButton{
  width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important;
  border:1px solid rgba(40,63,89,.12)!important;border-radius:12px!important;background:var(--panel)!important;color:var(--text)!important;
  display:grid!important;place-items:center!important;box-shadow:0 8px 22px rgba(28,45,78,.14)!important;
}
html.v224-ui #refreshMapButton{
  position:absolute!important;top:282px!important;right:16px!important;bottom:auto!important;left:auto!important;z-index:65!important;
}
html.v224-ui #fitAllButton:hover,html.v224-ui #refreshMapButton:hover{background:var(--brand-soft)!important;color:var(--brand)!important;}
html.v224-ui .webgis-basemap-switch{
  right:72px!important;bottom:10px!important;top:auto!important;
}

/* DARK MODE: superfícies e componentes antigos deixam de usar branco hardcoded. */
html[data-theme="dark"].v224-ui{
  color-scheme:dark;
  --bg:#08111d;--panel:#0f1a28;--surface:#111e2e;--line:#2a3b50;--text:#eef5ff;--muted:#91a4ba;
  --brand:#4f83ff;--brand-soft:#172c50;--shadow:0 16px 42px rgba(0,0,0,.42);
}
html[data-theme="dark"].v224-ui body,
html[data-theme="dark"].v224-ui .app-screen,
html[data-theme="dark"].v224-ui .topbar,
html[data-theme="dark"].v224-ui .sidebar,
html[data-theme="dark"].v224-ui .sidebar-header{background:var(--panel)!important;color:var(--text)!important;border-color:var(--line)!important;}

html[data-theme="dark"].v224-ui :is(
  .project-card,.project-group-summary,.project-reference-row,.project-reference-list,.v219-reference-tree-body,.v219-source-folder-body,
  .v222-pn-node,.v222-pn-node>summary,.v222-candidate-node,.v222-candidate-node>summary,.v219-tree-section,.v219-tree-items,
  .reference-card,.export-card,.navigation-card,.sync-card,.v222-dashboard-button,.v222-workflow-button,
  .v214-dashboard-shell,.v214-dashboard-header,.v214-dashboard-body,.v214-dashboard-footer,.v214-panel,.v214-kpi,
  .v215-filterbar,.v215-reportbar,.v214-local-sync,.v223-analytics,.v223-dashboard-more,.v215-drawer,
  .v217-workflow-shell,.v217-workflow-header,.v217-workflow-filters,.v217-bulkbar,.v217-workflow-meta,.v217-table-wrap,.v217-workflow-footer,
  .v217-audit-shell,.v217-audit-row,.v218-trash-shell,.v218-trash-header,.v290-register-card,
  .v2136-offline-card,.v2137-sync-sheet,.v21371-sheet,.webgis-summary-window,.modal-card,.field-modal-card,.webgis-field-modal-card,
  #v218-coordinate-search,.v283-project-content .v2-project-search-wrap,.v224-pn-action-card
){background:var(--panel)!important;color:var(--text)!important;border-color:var(--line)!important;}

html[data-theme="dark"].v224-ui :is(input,select,textarea,button.secondary,.ghost-button,.icon-button,.theme-toggle,
  .v217-table select,.v217-workflow-filters input,.v217-workflow-filters select,.v224-workflow-actions button,.v224-pn-tools button,
  .v224-pn-action-list>button,.v224-pn-action-card>header button
){background:#0b1624!important;color:var(--text)!important;border-color:var(--line)!important;}

html[data-theme="dark"].v224-ui .v217-table{background:var(--panel)!important;color:var(--text)!important;}
html[data-theme="dark"].v224-ui .v217-table thead,
html[data-theme="dark"].v224-ui .v217-table th{background:#0b1624!important;color:#a9bbcf!important;border-color:var(--line)!important;}
html[data-theme="dark"].v224-ui .v217-table td{background:var(--panel)!important;color:var(--text)!important;border-color:var(--line)!important;}
html[data-theme="dark"].v224-ui .v217-table tbody tr:nth-child(even) td{background:#101d2c!important;}
html[data-theme="dark"].v224-ui .v217-table tbody tr:hover td{background:#15263a!important;}
html[data-theme="dark"].v224-ui .v217-workflow-modal,
html[data-theme="dark"].v224-ui .v217-audit-modal,
html[data-theme="dark"].v224-ui .v214-dashboard-backdrop{background:rgba(2,7,15,.74)!important;backdrop-filter:blur(7px)!important;}
html[data-theme="dark"].v224-ui .v217-bulkbar{background:#102238!important;border-color:#284565!important;}
html[data-theme="dark"].v224-ui .v217-workflow-meta{background:#0b1624!important;}
html[data-theme="dark"].v224-ui :is(.v217-workflow-header p,.v217-workflow-filters label>span,.v217-workflow-meta,.project-meta,small){color:var(--muted)!important;}
html[data-theme="dark"].v224-ui .v224-map-progress{background:rgba(13,24,38,.97)!important;color:var(--text)!important;border-color:var(--line)!important;}
html[data-theme="dark"].v224-ui .v224-map-progress-copy span{color:var(--muted)!important;}
html[data-theme="dark"].v224-ui .v224-map-progress-track{background:#26374b!important;}
html[data-theme="dark"].v224-ui .maplibregl-ctrl-top-right .maplibregl-ctrl-group,
html[data-theme="dark"].v224-ui #fitAllButton,
html[data-theme="dark"].v224-ui #refreshMapButton,
html[data-theme="dark"].v224-ui .webgis-basemap-switch{background:#0c1725!important;color:var(--text)!important;border-color:#2d4056!important;}
html[data-theme="dark"].v224-ui .maplibregl-ctrl-top-right .maplibregl-ctrl-group button{background:#0c1725!important;border-color:#2d4056!important;}
html[data-theme="dark"].v224-ui .maplibregl-ctrl-icon{filter:invert(1) brightness(1.35)!important;}

/* Map selector ainda mais embaixo, conforme operação. */
html.v224-ui #webgis-basemap-switch{bottom:8px!important;}

@media(max-width:920px){
  html.v224-ui .v224-map-progress{bottom:72px;width:calc(100% - 24px);}
  html.v224-ui .maplibregl-ctrl-top-right{top:72px!important;right:10px!important;}
  html.v224-ui .map-floating{top:220px!important;right:10px!important;}
  html.v224-ui #refreshMapButton{top:272px!important;right:10px!important;}
  html.v224-ui #webgis-basemap-switch{right:62px!important;bottom:8px!important;}
  html.v224-ui .v224-pn-tools{flex-wrap:wrap!important;}
}


/* =====================================================================
   WEBGIS V2.24.1 - HOTFIX VISUAL / DARK / SEARCH / LOGOUT
   ===================================================================== */

/* SIDEBAR SEM VAZIOS */
html.v224-ui #v283-projects-body {
  display: grid !important;
  gap: 8px !important;
  padding: 8px !important;
}
html.v224-ui #v283-project-actions {
  margin: 0 !important;
}
html.v224-ui #v283-project-content {
  display: grid !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
}
html.v224-ui #v283-project-actions.v241-only-generate {
  grid-template-columns: 1fr !important;
}
html.v224-ui #v283-project-actions #generateFieldKmz {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  height: 46px !important;
  min-height: 46px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 1px solid color-mix(in srgb, var(--brand) 76%, #fff 24%) !important;
  border-radius: 11px !important;
  background: linear-gradient(135deg, var(--brand), #3e76f5) !important;
  color: #fff !important;
  box-shadow: 0 7px 18px color-mix(in srgb, var(--brand) 22%, transparent) !important;
  font-size: 10px !important;
  font-weight: 850 !important;
}
html.v224-ui #v283-project-actions #generateFieldKmz:hover {
  transform: translateY(-1px) !important;
  filter: brightness(1.04) !important;
}

/* FILTRO DE PROJETOS */
html.v224-ui .v283-project-content .v2-project-search-wrap {
  position: relative !important;
  width: 100% !important;
  height: 40px !important;
  min-height: 40px !important;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 10px 0 36px !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  background: var(--surface) !important;
  box-shadow: none !important;
  overflow: hidden !important;
  pointer-events: auto !important;
}
html.v224-ui .v283-project-content .v2-project-search-wrap > span {
  position: absolute !important;
  left: 11px !important;
  top: 50% !important;
  width: 16px !important;
  height: 16px !important;
  display: grid !important;
  place-items: center !important;
  transform: translateY(-50%) !important;
  color: var(--muted) !important;
  pointer-events: none !important;
}
html.v224-ui #v2-project-search {
  display: block !important;
  width: 100% !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  color: var(--text) !important;
  box-shadow: none !important;
  font-size: 10px !important;
}
html.v224-ui .v283-project-content .v2-project-search-wrap:focus-within {
  border-color: color-mix(in srgb, var(--brand) 55%, var(--line)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 10%, transparent) !important;
}

/* BUSCA DE COORDENADA: UM ÚNICO CONTORNO */
html.v224-ui #v218-coordinate-search {
  width: 100% !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
html.v224-ui #v218-coordinate-search .v218-coordinate-content {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
html.v224-ui #v218-coordinate-search .v218-coordinate-bar {
  width: 100% !important;
  height: 42px !important;
  display: grid !important;
  grid-template-columns: minmax(0,1fr) 82px !important;
  gap: 6px !important;
  padding: 3px !important;
  border: 1px solid var(--line) !important;
  border-radius: 11px !important;
  background: var(--surface) !important;
  box-shadow: none !important;
}
html.v224-ui #v218-coordinate-input {
  height: 34px !important;
  min-height: 34px !important;
  padding: 0 9px !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  color: var(--text) !important;
  box-shadow: none !important;
  font-size: 9.5px !important;
}
html.v224-ui #v218-coordinate-go {
  width: 82px !important;
  min-width: 82px !important;
  height: 34px !important;
  min-height: 34px !important;
  padding: 0 10px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: var(--brand) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 9px !important;
  font-weight: 850 !important;
}
html.v224-ui #v218-coordinate-search .v218-coordinate-bar:focus-within {
  border-color: color-mix(in srgb, var(--brand) 55%, var(--line)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 10%, transparent) !important;
}

/* DARK MODE: CARTÕES QUE AINDA FICAVAM BRANCOS */
html[data-theme="dark"].v224-ui .v2-sidebar-export-card,
html[data-theme="dark"].v224-ui .v2-photo-storage-card,
html[data-theme="dark"].v224-ui #v283-secondary-tools,
html[data-theme="dark"].v224-ui .v222-workflow-button,
html[data-theme="dark"].v224-ui .v222-dashboard-button,
html[data-theme="dark"].v224-ui .navigation-card,
html[data-theme="dark"].v224-ui .sync-card,
html[data-theme="dark"].v224-ui .sidebar-note,
html[data-theme="dark"].v224-ui .v283-sidebar-section,
html[data-theme="dark"].v224-ui .v283-section-body,
html[data-theme="dark"].v224-ui .v2-general-export-actions button {
  background: var(--surface) !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
  box-shadow: none !important;
}
html[data-theme="dark"].v224-ui .v222-workflow-button {
  background: linear-gradient(135deg,#10233d,#142a48) !important;
  border-color: #2d4d72 !important;
}
html[data-theme="dark"].v224-ui .v222-workflow-button strong,
html[data-theme="dark"].v224-ui .v2-sidebar-tool-title strong {
  color: var(--text) !important;
}
html[data-theme="dark"].v224-ui .v222-workflow-button small,
html[data-theme="dark"].v224-ui .v2-sidebar-tool-title small,
html[data-theme="dark"].v224-ui #v2102-export-selection-label {
  color: var(--muted) !important;
}
html[data-theme="dark"].v224-ui .v283-project-content .v2-project-search-wrap,
html[data-theme="dark"].v224-ui #v218-coordinate-search .v218-coordinate-bar {
  background: #0b1624 !important;
  border-color: #2a3b50 !important;
}
html[data-theme="dark"].v224-ui #v2-project-search,
html[data-theme="dark"].v224-ui #v218-coordinate-input {
  background: transparent !important;
  color: #eef5ff !important;
}
html[data-theme="dark"].v224-ui #v2-project-search::placeholder,
html[data-theme="dark"].v224-ui #v218-coordinate-input::placeholder {
  color: #71869f !important;
}

/* RECENTRALIZAR AZUL + MAPA/SATÉLITE À ESQUERDA */
html.v224-ui #v220-recenter,
html.v224-ui .v220-recenter {
  position: absolute !important;
  right: 16px !important;
  bottom: 14px !important;
  top: auto !important;
  left: auto !important;
  z-index: 78 !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  border: 2px solid #fff !important;
  border-radius: 50% !important;
  background: var(--brand) !important;
  color: #fff !important;
  box-shadow: 0 8px 22px color-mix(in srgb,var(--brand) 34%,transparent) !important;
  font-size: 0 !important;
}
html.v224-ui #webgis-basemap-switch,
html.v224-ui .webgis-basemap-switch {
  right: 72px !important;
  bottom: 16px !important;
  top: auto !important;
  left: auto !important;
  z-index: 76 !important;
  margin: 0 !important;
}
html[data-theme="dark"].v224-ui #v220-recenter,
html[data-theme="dark"].v224-ui .v220-recenter {
  border-color: #dce8ff !important;
  background: #356ff4 !important;
}
html[data-theme="dark"].v224-ui #webgis-basemap-switch,
html[data-theme="dark"].v224-ui .webgis-basemap-switch {
  background: #0b1624 !important;
  border-color: #2a3b50 !important;
}

/* LOGOUT */
html.v224-ui #logoutButton {
  min-width: 74px !important;
  gap: 7px !important;
  cursor: pointer !important;
}
html.v224-ui #logoutButton.is-logging-out {
  opacity: .72 !important;
  cursor: wait !important;
  pointer-events: none !important;
}
html.v224-ui #logoutButton:hover {
  color: #dc2626 !important;
  border-color: color-mix(in srgb,#dc2626 38%,var(--line)) !important;
  background: color-mix(in srgb,#dc2626 7%,var(--panel)) !important;
}

/* Sidebar recolhida nunca deixa export flutuar. */
html.v224-ui .sidebar.collapsed .v2-sidebar-export-card {
  display: none !important;
}

@media(max-width:920px){
  html.v224-ui #v220-recenter,
  html.v224-ui .v220-recenter {
    right:10px !important;
    bottom:12px !important;
  }
  html.v224-ui #webgis-basemap-switch,
  html.v224-ui .webgis-basemap-switch {
    right:66px !important;
    bottom:14px !important;
  }
}


/* =====================================================================
   WEBGIS V2.24.2 - ESTABILIDADE / CANDIDATES / MOBILE / LOGIN DARK
   ===================================================================== */

/* LOGIN DARK */
html[data-theme="dark"].v224-ui .login-screen {
  background:
    radial-gradient(circle at 18% 20%, rgba(36,104,235,.18), transparent 32%),
    radial-gradient(circle at 82% 78%, rgba(20,184,176,.09), transparent 31%),
    #07111d !important;
}
html[data-theme="dark"].v224-ui .login-card.v222-login-card {
  background:#0d1826 !important;
  border-color:#273a51 !important;
  color:#eef5ff !important;
  box-shadow:0 28px 80px rgba(0,0,0,.48) !important;
}
html[data-theme="dark"].v224-ui .v222-login-brand { border-color:#2b3d54 !important; }
html[data-theme="dark"].v224-ui .v222-login-brand strong,
html[data-theme="dark"].v224-ui .login-card h1,
html[data-theme="dark"].v224-ui .login-card label { color:#eef5ff !important; }
html[data-theme="dark"].v224-ui .v222-login-brand small,
html[data-theme="dark"].v224-ui .login-card p,
html[data-theme="dark"].v224-ui .v290-login-register-wrap > small { color:#8ea2bb !important; }
html[data-theme="dark"].v224-ui .login-card input {
  background:#091421 !important;
  border-color:#2b3d54 !important;
  color:#eef5ff !important;
}
html[data-theme="dark"].v224-ui .login-card input:focus {
  border-color:#4d83f7 !important;
  box-shadow:0 0 0 4px rgba(77,131,247,.13) !important;
}
html[data-theme="dark"].v224-ui .v290-register-link {
  background:#101f34 !important;
  border-color:#31547d !important;
  color:#9bc0ff !important;
}
html[data-theme="dark"].v224-ui .v290-login-divider::before,
html[data-theme="dark"].v224-ui .v290-login-divider::after { background:#2a3d54 !important; }
html[data-theme="dark"].v224-ui .v290-register-modal {
  background:rgba(1,7,15,.80) !important;
  backdrop-filter:blur(8px) !important;
}
html[data-theme="dark"].v224-ui .v290-register-card {
  background:#0d1826 !important;
  border-color:#2a3d54 !important;
  color:#eef5ff !important;
}
html[data-theme="dark"].v224-ui .v290-register-card input {
  background:#091421 !important;
  border-color:#2a3d54 !important;
  color:#eef5ff !important;
}
html[data-theme="dark"].v224-ui .v290-login-preview,
html[data-theme="dark"].v224-ui #v290-register-close {
  background:#091421 !important;
  color:#c7d6e8 !important;
  border-color:#2a3d54 !important;
}
html[data-theme="dark"].v224-ui .v290-role-choice label > span {
  background:#0b1624 !important;
  color:#dbe8f7 !important;
  border-color:#2a3d54 !important;
}
html[data-theme="dark"].v224-ui .v290-role-choice label:has(input:checked) > span {
  background:#10284c !important;
  border-color:#4d83f7 !important;
}
html[data-theme="dark"].v224-ui .v290-role-choice small { color:#8fa3bc !important; }

/* MAP TOOLS */
html.v224-ui .map-floating { display:none !important; }
html.v224-ui #refreshMapButton {
  position:static !important;
  inset:auto !important;
  margin:0 !important;
}
html.v224-ui #v242-map-tools {
  position:absolute !important;
  z-index:74 !important;
  top:286px !important;
  right:12px !important;
  width:46px !important;
  display:grid !important;
  gap:8px !important;
}
html.v224-ui #v242-map-tools > button {
  width:46px !important;
  height:46px !important;
  min-width:46px !important;
  min-height:46px !important;
  display:grid !important;
  place-items:center !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(40,63,89,.12) !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.98) !important;
  color:#40536c !important;
  box-shadow:0 8px 22px rgba(28,45,78,.14) !important;
  font-size:0 !important;
}
html[data-theme="dark"].v224-ui #v242-map-tools > button {
  background:#0b1624 !important;
  color:#eef5ff !important;
  border-color:#2b3e54 !important;
  box-shadow:0 10px 28px rgba(0,0,0,.32) !important;
}

/* SINCRONIZAÇÃO BLUE FAB */
html.v224-ui #v242-map-sync {
  position:absolute !important;
  z-index:82 !important;
  right:14px !important;
  bottom:14px !important;
  width:48px !important;
  height:48px !important;
  display:grid !important;
  place-items:center !important;
  padding:0 !important;
  border:2px solid #fff !important;
  border-radius:50% !important;
  background:linear-gradient(145deg,#2468eb,#397bff) !important;
  color:#fff !important;
  box-shadow:0 10px 28px rgba(36,104,235,.36) !important;
  cursor:pointer !important;
}
html.v224-ui #v242-map-sync:hover { transform:translateY(-1px) !important; filter:brightness(1.06) !important; }
html.v224-ui #v242-map-sync.has-pending {
  box-shadow:0 0 0 5px rgba(245,158,11,.18),0 10px 28px rgba(36,104,235,.38) !important;
}
html.v224-ui #v242-map-sync-badge {
  position:absolute !important;
  top:-5px !important;
  right:-4px !important;
  min-width:18px !important;
  height:18px !important;
  display:grid !important;
  place-items:center !important;
  padding:0 4px !important;
  border:2px solid var(--panel) !important;
  border-radius:999px !important;
  background:#f59e0b !important;
  color:#fff !important;
  font-size:8px !important;
  font-weight:900 !important;
}
html.v224-ui #v242-map-sync-badge.hidden { display:none !important; }

/* antigo recentralizar sai para não disputar canto */
html.v224-ui #v220-recenter,
html.v224-ui .v220-recenter { display:none !important; }

html.v224-ui #webgis-basemap-switch,
html.v224-ui .webgis-basemap-switch {
  right:72px !important;
  bottom:16px !important;
}

/* progresso cancelado desaparece de verdade */
html.v224-ui .v224-map-progress.hidden {
  display:none !important;
  pointer-events:none !important;
}

/* MOBILE / INFORMAÇÕES */
@media (max-width:640px) {
  html.v224-ui .maplibregl-popup {
    max-width:calc(100vw - 20px) !important;
  }
  html.v224-ui .maplibregl-popup-content {
    width:min(420px,calc(100vw - 20px)) !important;
    max-width:calc(100vw - 20px) !important;
    max-height:min(68dvh,560px) !important;
    overflow:auto !important;
    padding:14px !important;
    border-radius:14px !important;
  }
  html.v224-ui .maplibregl-popup-content :is(button,select,input,textarea) {
    max-width:100% !important;
  }
  html.v224-ui .webgis-summary-window {
    position:fixed !important;
    z-index:30000 !important;
    left:8px !important;
    right:8px !important;
    bottom:8px !important;
    top:auto !important;
    width:auto !important;
    max-width:none !important;
    max-height:72dvh !important;
    overflow:auto !important;
    border-radius:16px !important;
  }
  html.v224-ui .webgis-summary-window :is(.popup-actions,.v2-candidate-color-row,.v2-candidate-export-actions) {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  html.v224-ui .webgis-summary-window button {
    width:100% !important;
    min-height:42px !important;
  }
  html.v224-ui #v242-map-tools {
    top:210px !important;
    right:8px !important;
  }
  html.v224-ui #v242-map-tools > button {
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
  }
  html.v224-ui #v242-map-sync {
    width:46px !important;
    height:46px !important;
    right:10px !important;
    bottom:10px !important;
  }
  html.v224-ui #webgis-basemap-switch,
  html.v224-ui .webgis-basemap-switch {
    right:64px !important;
    bottom:12px !important;
  }
}


/* =====================================================================
   WEBGIS V2.24.3 - INTERAÇÃO / PAINEL DE CAMPO / AÇÕES
   ===================================================================== */

/* ---------- AÇÕES DO PROJETO POR PERFIL ---------- */
html.v224-ui #v283-project-actions {
  display:grid !important;
  gap:8px !important;
  margin:0 0 8px !important;
  padding:0 !important;
}

html.v224-ui #v283-project-actions.v243-actions-four,
html.v224-ui #v283-project-actions.v243-actions-three,
html.v224-ui #v283-project-actions.v243-actions-two {
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

html.v224-ui #v283-project-actions.v243-actions-one {
  grid-template-columns:1fr !important;
}

html.v224-ui #v283-project-actions.v243-actions-empty {
  display:none !important;
}

html.v224-ui #v283-project-actions > .v243-project-action,
html.v224-ui #v283-project-actions > button {
  grid-column:auto !important;
  width:100% !important;
  min-width:0 !important;
  height:48px !important;
  min-height:48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:9px !important;
  margin:0 !important;
  padding:0 12px !important;
  border:1px solid var(--line) !important;
  border-radius:11px !important;
  background:var(--panel) !important;
  color:var(--text) !important;
  box-shadow:none !important;
  text-align:left !important;
  font-size:9.5px !important;
  font-weight:800 !important;
}

html.v224-ui #v283-project-actions > button .v290-action-icon {
  width:28px !important;
  height:28px !important;
  display:grid !important;
  place-items:center !important;
  flex:0 0 28px !important;
  border-radius:8px !important;
  background:var(--brand-soft) !important;
  color:var(--brand) !important;
  font-size:14px !important;
}

html.v224-ui #v283-project-actions > button .v290-action-label {
  min-width:0 !important;
  color:inherit !important;
  line-height:1.15 !important;
}

html.v224-ui #v283-project-actions > button:hover {
  border-color:color-mix(in srgb,var(--brand) 42%,var(--line)) !important;
  background:color-mix(in srgb,var(--brand-soft) 42%,var(--panel)) !important;
  transform:translateY(-1px) !important;
}

html.v224-ui #v283-project-actions.v243-actions-one > #generateFieldKmz {
  justify-content:center !important;
  background:linear-gradient(135deg,var(--brand),#3e76f5) !important;
  border-color:transparent !important;
  color:#fff !important;
  box-shadow:0 7px 18px color-mix(in srgb,var(--brand) 22%,transparent) !important;
}

html.v224-ui #v283-project-actions.v243-actions-one > #generateFieldKmz .v290-action-icon {
  background:rgba(255,255,255,.14) !important;
  color:#fff !important;
}

html[data-theme="dark"].v224-ui #v283-project-actions > button {
  background:#0d1928 !important;
  border-color:#2a3d54 !important;
  color:#eef5ff !important;
}

html[data-theme="dark"].v224-ui #v283-project-actions > button:hover {
  background:#13243a !important;
  border-color:#3d6594 !important;
}

html[data-theme="dark"].v224-ui #v283-project-actions > button .v290-action-icon {
  background:#142d50 !important;
  color:#84afff !important;
}

/* ---------- VER ITENS / REFERÊNCIAS: UMA ÚNICA ROLAGEM ---------- */
html.v224-ui .v219-reference-tree-body {
  width:100% !important;
  max-width:100% !important;
  max-height:none !important;
  height:auto !important;
  margin:6px 0 2px !important;
  padding:6px !important;
  overflow:visible !important;
  border:1px solid var(--line) !important;
  border-radius:10px !important;
  background:var(--panel-2) !important;
  box-sizing:border-box !important;
}

html.v224-ui .v219-tree-section,
html.v224-ui .v219-tree-items,
html.v224-ui .v220-tree-category,
html.v224-ui .v220-tree-category > div,
html.v224-ui .v219-tree-candidates {
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow:visible !important;
  box-sizing:border-box !important;
}

html.v224-ui .v220-tree-category {
  margin:4px 0 !important;
  padding:0 !important;
  border:1px solid var(--line) !important;
  border-left:1px solid var(--line) !important;
  border-radius:9px !important;
  background:var(--panel) !important;
}

html.v224-ui .v220-tree-category > summary,
html.v224-ui .v219-tree-section > summary {
  width:100% !important;
  min-width:0 !important;
  min-height:38px !important;
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  padding:7px 8px !important;
  border-radius:8px !important;
  color:var(--text) !important;
  background:transparent !important;
  box-sizing:border-box !important;
}

html.v224-ui .v220-tree-category > summary > label {
  min-width:0 !important;
  flex:1 !important;
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
}

html.v224-ui .v220-tree-category > summary > label > span,
html.v224-ui .v220-tree-feature > span {
  min-width:0 !important;
  overflow:hidden !important;
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
}

html.v224-ui .v220-tree-feature {
  width:100% !important;
  min-width:0 !important;
  display:grid !important;
  grid-template-columns:16px minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:7px !important;
  margin:0 !important;
  padding:7px 8px !important;
  border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent) !important;
  background:transparent !important;
  color:var(--text) !important;
  box-sizing:border-box !important;
}

html.v224-ui .v220-tree-feature:hover {
  background:var(--brand-soft) !important;
}

html.v224-ui .v220-cat-actions {
  margin-left:auto !important;
  display:flex !important;
  align-items:center !important;
}

html.v224-ui .v220-cat-actions button {
  width:28px !important;
  height:28px !important;
  display:grid !important;
  place-items:center !important;
  padding:0 !important;
  border:1px solid var(--line) !important;
  border-radius:8px !important;
  background:var(--panel-2) !important;
  color:var(--brand) !important;
}

html[data-theme="dark"].v224-ui .v219-reference-tree-body {
  background:#0a1523 !important;
  border-color:#293d54 !important;
}

html[data-theme="dark"].v224-ui .v220-tree-category {
  background:#0d1928 !important;
  border-color:#2a3d54 !important;
}

html[data-theme="dark"].v224-ui .v220-tree-category > summary,
html[data-theme="dark"].v224-ui .v220-tree-feature {
  color:#eaf2fc !important;
  background:transparent !important;
}

html[data-theme="dark"].v224-ui .v220-tree-feature:hover,
html[data-theme="dark"].v224-ui .v220-tree-category > summary:hover {
  background:#13243a !important;
}

html[data-theme="dark"].v224-ui .v220-cat-actions button {
  background:#0a1523 !important;
  border-color:#2a3d54 !important;
  color:#84afff !important;
}

/* ---------- INFO CANDIDATE / CLIQUE ---------- */
html.v224-ui .v243-candidate-actions {
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:7px !important;
  margin-top:10px !important;
}

html.v224-ui .v243-candidate-actions > button {
  width:100% !important;
  min-height:38px !important;
  border:1px solid var(--line) !important;
  border-radius:9px !important;
  background:var(--panel-2) !important;
  color:var(--text) !important;
  font-weight:800 !important;
}

html.v224-ui .v243-candidate-actions > .v2-start-visit {
  background:var(--brand) !important;
  border-color:var(--brand) !important;
  color:#fff !important;
}

html[data-theme="dark"].v224-ui .v243-candidate-actions > button {
  background:#0b1624 !important;
  border-color:#2a3d54 !important;
  color:#eef5ff !important;
}

html[data-theme="dark"].v224-ui .v243-candidate-actions > .v2-start-visit {
  background:#356ff4 !important;
  border-color:#356ff4 !important;
  color:#fff !important;
}

@media(max-width:640px){
  html.v224-ui #v283-project-actions.v243-actions-four,
  html.v224-ui #v283-project-actions.v243-actions-three,
  html.v224-ui #v283-project-actions.v243-actions-two {
    grid-template-columns:1fr !important;
  }

  html.v224-ui #v283-project-actions > button {
    min-height:46px !important;
  }

  html.v224-ui .v219-reference-tree-body {
    padding:5px !important;
  }

  html.v224-ui .v220-tree-feature {
    grid-template-columns:16px minmax(0,1fr) !important;
  }

  html.v224-ui .v220-tree-feature small {
    grid-column:2 !important;
  }
}


/* =====================================================================
   WEBGIS V2.24.4 - LOGO VANTE LOGIN = IDENTIDADE DA TOPBAR
   ===================================================================== */
html.v224-ui .v222-login-brand img,
html.v222-figma-ui .v222-login-brand img {
  display:block !important;
  width:102px !important;
  max-width:102px !important;
  height:auto !important;
  max-height:30px !important;
  object-fit:contain !important;
  object-position:left center !important;
  filter:none !important;
  -webkit-filter:none !important;
  opacity:1 !important;
  mix-blend-mode:normal !important;
  transform:none !important;
  image-rendering:auto !important;
}

html[data-theme="dark"].v224-ui .v222-login-brand img,
html[data-theme="dark"].v222-figma-ui .v222-login-brand img {
  width:102px !important;
  max-width:102px !important;
  max-height:30px !important;
  filter:none !important;
  -webkit-filter:none !important;
  opacity:1 !important;
  mix-blend-mode:normal !important;
}

html.v224-ui .v222-login-brand,
html.v222-figma-ui .v222-login-brand {
  min-height:48px !important;
}

@media(max-width:640px){
  html.v224-ui .v222-login-brand img,
  html.v222-figma-ui .v222-login-brand img,
  html[data-theme="dark"].v224-ui .v222-login-brand img,
  html[data-theme="dark"].v222-figma-ui .v222-login-brand img {
    width:92px !important;
    max-width:92px !important;
    max-height:28px !important;
  }
}


/* =====================================================================
   WEBGIS V2.24.5 - CLICK ENGINE / FICHA DE INFORMAÇÕES
   ===================================================================== */
html.v224-ui #webgis-candidate-info-window {
  pointer-events:auto !important;
}

html.v224-ui #webgis-candidate-info-window .webgis-info-body {
  overflow:auto !important;
  overscroll-behavior:contain !important;
}

html.v224-ui #webgis-candidate-info-window .v243-candidate-actions {
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:7px !important;
  margin-top:10px !important;
}

html.v224-ui #webgis-candidate-info-window .v243-candidate-actions button {
  width:100% !important;
  min-height:38px !important;
  border-radius:9px !important;
}

html[data-theme="dark"].v224-ui #webgis-candidate-info-window {
  background:#0d1826 !important;
  border-color:#2b3d54 !important;
  color:#eef5ff !important;
}

html[data-theme="dark"].v224-ui #webgis-candidate-info-window .popup-title,
html[data-theme="dark"].v224-ui #webgis-candidate-info-window .popup-desc,
html[data-theme="dark"].v224-ui #webgis-candidate-info-window .project-meta {
  color:#eef5ff !important;
}

@media(max-width:640px){
  html.v224-ui #webgis-candidate-info-window {
    left:8px !important;
    right:8px !important;
    bottom:8px !important;
    top:auto !important;
    width:auto !important;
    max-width:none !important;
    max-height:72dvh !important;
  }
}


/* =====================================================================
   WEBGIS V2.24.6 - FICHA SEMPRE VISÍVEL AO CLICAR
   ===================================================================== */
html.v224-ui #webgis-candidate-info-window {
  z-index: 5000 !important;
}

html.v224-ui .v246-info-head {
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin:0 36px 12px 0 !important;
}

html.v224-ui .v246-info-head > div {
  min-width:0 !important;
}

html.v224-ui .v246-info-id {
  flex:0 0 auto !important;
  max-width:150px !important;
  padding:5px 8px !important;
  border:1px solid var(--line) !important;
  border-radius:999px !important;
  background:var(--brand-soft) !important;
  color:var(--brand) !important;
  font-size:9px !important;
  font-weight:850 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

html.v224-ui .v246-info-grid {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:7px !important;
  margin:0 0 10px !important;
}

html.v224-ui .v246-info-grid > div,
html.v224-ui .v246-selected-point {
  min-width:0 !important;
  padding:8px 9px !important;
  border:1px solid var(--line) !important;
  border-radius:9px !important;
  background:var(--panel-2) !important;
}

html.v224-ui .v246-info-grid .v246-info-wide {
  grid-column:1 / -1 !important;
}

html.v224-ui .v246-info-grid small,
html.v224-ui .v246-selected-point small {
  display:block !important;
  margin-bottom:3px !important;
  color:var(--muted) !important;
  font-size:8px !important;
  font-weight:750 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
}

html.v224-ui .v246-info-grid strong,
html.v224-ui .v246-selected-point strong {
  display:block !important;
  min-width:0 !important;
  color:var(--text) !important;
  font-size:10px !important;
  line-height:1.25 !important;
  overflow-wrap:anywhere !important;
}

html.v224-ui .v246-selected-point {
  margin-bottom:10px !important;
}

html.v224-ui .v246-selected-point span {
  display:block !important;
  margin-top:3px !important;
  color:var(--muted) !important;
  font-size:9px !important;
}

html.v224-ui .v246-points {
  margin:0 0 10px !important;
  border:1px solid var(--line) !important;
  border-radius:9px !important;
  overflow:hidden !important;
  background:var(--panel-2) !important;
}

html.v224-ui .v246-points > summary {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  min-height:36px !important;
  padding:7px 9px !important;
  color:var(--text) !important;
  font-size:9px !important;
  font-weight:800 !important;
  cursor:pointer !important;
}

html.v224-ui .v246-points > div {
  border-top:1px solid var(--line) !important;
}

html.v224-ui .v246-point-row {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  padding:6px 9px !important;
  border-bottom:1px solid color-mix(in srgb,var(--line) 68%,transparent) !important;
}

html.v224-ui .v246-point-row:last-child {
  border-bottom:0 !important;
}

html.v224-ui .v246-point-row strong {
  color:var(--text) !important;
  font-size:9px !important;
}

html.v224-ui .v246-point-row span {
  color:var(--muted) !important;
  font-size:8.5px !important;
}

html.v224-ui .v246-loading-detail {
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  margin:0 0 10px !important;
  padding:8px 9px !important;
  border-radius:9px !important;
  background:var(--brand-soft) !important;
  color:var(--brand) !important;
  font-size:9px !important;
  font-weight:750 !important;
}

html.v224-ui .v246-loading-dot {
  width:8px !important;
  height:8px !important;
  border-radius:50% !important;
  background:currentColor !important;
  animation:v246Pulse 1s ease-in-out infinite !important;
}

@keyframes v246Pulse {
  0%,100% { opacity:.35; transform:scale(.8); }
  50% { opacity:1; transform:scale(1); }
}

html.v224-ui .v246-actions {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:7px !important;
}

html.v224-ui .v246-actions > button {
  width:100% !important;
  min-height:38px !important;
  margin:0 !important;
  border:1px solid var(--line) !important;
  border-radius:9px !important;
  background:var(--panel-2) !important;
  color:var(--text) !important;
  font-size:9px !important;
  font-weight:800 !important;
}

html.v224-ui .v246-actions > .v246-primary-action {
  background:var(--brand) !important;
  border-color:var(--brand) !important;
  color:#fff !important;
}

html[data-theme="dark"].v224-ui .v246-info-grid > div,
html[data-theme="dark"].v224-ui .v246-selected-point,
html[data-theme="dark"].v224-ui .v246-points,
html[data-theme="dark"].v224-ui .v246-actions > button {
  background:#0a1523 !important;
  border-color:#2a3d54 !important;
  color:#eef5ff !important;
}

html[data-theme="dark"].v224-ui .v246-info-grid strong,
html[data-theme="dark"].v224-ui .v246-selected-point strong,
html[data-theme="dark"].v224-ui .v246-points > summary,
html[data-theme="dark"].v224-ui .v246-point-row strong {
  color:#eef5ff !important;
}

html[data-theme="dark"].v224-ui .v246-actions > .v246-primary-action {
  background:#356ff4 !important;
  border-color:#356ff4 !important;
  color:#fff !important;
}

@media(max-width:640px){
  html.v224-ui .v246-info-grid,
  html.v224-ui .v246-actions {
    grid-template-columns:1fr !important;
  }

  html.v224-ui .v246-info-grid .v246-info-wide {
    grid-column:auto !important;
  }

  html.v224-ui .v246-info-head {
    flex-direction:column !important;
    margin-right:34px !important;
  }

  html.v224-ui .v246-info-id {
    max-width:100% !important;
  }
}


/* =====================================================================
   VMAPS V2.25.0 — IDENTIDADE OFICIAL
   ===================================================================== */
:root{
  --vmaps-cyan:#20d7d0;
  --vmaps-sky:#1ba5e8;
  --vmaps-blue:#356ff4;
}

html.v224-ui .v2161-topbar-brand,
html.v224-ui .v222-login-brand {
  overflow:visible !important;
}

html.v224-ui .v2161-topbar-brand img {
  width:116px !important;
  max-width:116px !important;
  height:38px !important;
  max-height:38px !important;
  object-fit:contain !important;
  object-position:left center !important;
  filter:none !important;
}

html.v224-ui .v222-login-brand img {
  width:126px !important;
  max-width:126px !important;
  height:38px !important;
  max-height:38px !important;
  object-fit:contain !important;
  object-position:left center !important;
  filter:none !important;
}

html.v224-ui .v222-product-copy strong,
html.v224-ui .v222-login-brand strong {
  color:var(--text) !important;
  font-weight:850 !important;
  letter-spacing:-.02em !important;
}

html.v224-ui .v222-product-copy small,
html.v224-ui .v222-login-brand small {
  color:var(--muted) !important;
}

html[data-theme="dark"].v224-ui .v2161-topbar-brand img,
html[data-theme="dark"].v224-ui .v222-login-brand img {
  filter:none !important;
  opacity:1 !important;
}

/* =====================================================================
   FICHA UNIVERSAL — CANDIDATE / COMAR / REFERÊNCIA
   ===================================================================== */
html.v224-ui .webgis-info-window {
  width:min(430px, calc(100vw - 28px)) !important;
  max-width:430px !important;
  max-height:min(78vh, 760px) !important;
  border:1px solid var(--line) !important;
  border-radius:16px !important;
  background:var(--panel) !important;
  box-shadow:0 24px 70px rgba(20,37,63,.24) !important;
  overflow:hidden !important;
}

html.v224-ui .webgis-info-body {
  padding:16px !important;
  overflow:auto !important;
  max-height:min(78vh, 760px) !important;
}

html.v224-ui .v246-info-grid {
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important;
}

html.v224-ui .v246-info-grid > div,
html.v224-ui .v246-selected-point,
html.v224-ui .v246-points,
html.v224-ui .v250-reference-card {
  border:1px solid var(--line) !important;
  border-radius:10px !important;
  background:var(--panel-2) !important;
}

html.v224-ui .v246-actions {
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important;
}

html.v224-ui .v246-actions > button {
  min-height:40px !important;
  margin:0 !important;
  border-radius:9px !important;
}

/* Referências / COMAR seguem o mesmo idioma visual do formulário */
html.v224-ui .v250-reference-card {
  overflow:hidden !important;
}

html.v224-ui .v250-reference-head {
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:12px !important;
  padding:12px !important;
  border-bottom:1px solid var(--line) !important;
}

html.v224-ui .v250-reference-head > div {
  min-width:0 !important;
}

html.v224-ui .v250-reference-head small {
  display:block !important;
  margin-bottom:3px !important;
  color:var(--muted) !important;
  font-size:8px !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.06em !important;
}

html.v224-ui .v250-reference-head strong {
  display:block !important;
  color:var(--text) !important;
  font-size:14px !important;
  line-height:1.25 !important;
  overflow-wrap:anywhere !important;
}

html.v224-ui .v250-reference-head > span {
  flex:0 0 auto !important;
  padding:5px 8px !important;
  border:1px solid var(--line) !important;
  border-radius:999px !important;
  background:var(--brand-soft) !important;
  color:var(--brand) !important;
  font-size:8px !important;
  font-weight:850 !important;
}

html.v224-ui .v250-reference-body {
  display:grid !important;
  gap:8px !important;
  padding:10px !important;
}

html.v224-ui .v250-reference-body .v220-info-section {
  margin:0 !important;
  padding:10px !important;
  border:1px solid var(--line) !important;
  border-radius:9px !important;
  background:var(--panel) !important;
}

html.v224-ui .v250-reference-body .v220-info-section h4 {
  margin:0 0 7px !important;
  color:var(--muted) !important;
  font-size:8px !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
}

html.v224-ui .v250-reference-body dl {
  margin:0 !important;
  display:grid !important;
  gap:0 !important;
}

html.v224-ui .v250-reference-body dl > div {
  display:grid !important;
  grid-template-columns:minmax(105px, 42%) minmax(0,1fr) !important;
  gap:9px !important;
  padding:6px 0 !important;
  border-bottom:1px solid color-mix(in srgb,var(--line) 68%,transparent) !important;
}

html.v224-ui .v250-reference-body dl > div:last-child {
  border-bottom:0 !important;
}

html.v224-ui .v250-reference-body dt {
  color:var(--muted) !important;
  font-size:8.5px !important;
  font-weight:750 !important;
}

html.v224-ui .v250-reference-body dd {
  margin:0 !important;
  color:var(--text) !important;
  font-size:9px !important;
  font-weight:650 !important;
  overflow-wrap:anywhere !important;
}

html.v224-ui .v250-reference-empty {
  padding:10px !important;
  color:var(--muted) !important;
  text-align:center !important;
  font-size:9px !important;
}

/* Candidate label fica legível sem virar uma nuvem branca */
html.v224-ui .maplibregl-map {
  --vmaps-label-dark:#162235;
}
html[data-theme="dark"].v224-ui .maplibregl-map {
  --vmaps-label-dark:#f2f7ff;
}

/* dark consistente */
html[data-theme="dark"].v224-ui .webgis-info-window,
html[data-theme="dark"].v224-ui .v246-info-grid > div,
html[data-theme="dark"].v224-ui .v246-selected-point,
html[data-theme="dark"].v224-ui .v246-points,
html[data-theme="dark"].v224-ui .v250-reference-card,
html[data-theme="dark"].v224-ui .v250-reference-body .v220-info-section {
  background:#0b1726 !important;
  border-color:#2a3e56 !important;
  color:#eef5ff !important;
}

html[data-theme="dark"].v224-ui .v250-reference-head strong,
html[data-theme="dark"].v224-ui .v250-reference-body dd {
  color:#eef5ff !important;
}

@media(max-width:640px){
  html.v224-ui .v2161-topbar-brand img {
    width:92px !important;
    height:32px !important;
  }

  html.v224-ui .v222-login-brand img {
    width:112px !important;
    height:34px !important;
  }

  html.v224-ui .webgis-info-window {
    position:fixed !important;
    left:8px !important;
    right:8px !important;
    bottom:8px !important;
    top:auto !important;
    width:auto !important;
    max-width:none !important;
    max-height:76dvh !important;
    border-radius:16px !important;
  }

  html.v224-ui .webgis-info-body {
    max-height:76dvh !important;
    padding:12px !important;
  }

  html.v224-ui .v246-info-grid,
  html.v224-ui .v246-actions {
    grid-template-columns:1fr !important;
  }

  html.v224-ui .v250-reference-body dl > div {
    grid-template-columns:1fr !important;
    gap:2px !important;
  }
}


/* =====================================================================
   VMAPS V2.26.0 — IDENTIDADE OFICIAL BASEADA NA LOGO FORNECIDA
   ===================================================================== */
html.v224-ui .v2161-topbar-brand {
  min-width:126px !important;
  max-width:142px !important;
  height:48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
html.v224-ui .v2161-topbar-brand img {
  width:132px !important;
  max-width:132px !important;
  height:42px !important;
  max-height:42px !important;
  object-fit:contain !important;
  object-position:left center !important;
  filter:none !important;
}
html.v224-ui .v222-product-copy strong {
  font-size:11px !important;
  font-weight:820 !important;
}
html.v224-ui .v222-product-copy small {
  font-size:8px !important;
}
html.v224-ui .v222-login-brand {
  min-height:56px !important;
  gap:14px !important;
}
html.v224-ui .v222-login-brand img {
  width:170px !important;
  max-width:170px !important;
  height:52px !important;
  max-height:52px !important;
  object-fit:contain !important;
  object-position:left center !important;
}
html.v224-ui .v222-login-brand > div {
  padding-left:12px !important;
  border-left:1px solid var(--line) !important;
}
html.v224-ui .v222-login-brand > div small {
  display:block !important;
  font-size:9px !important;
  font-weight:700 !important;
  color:var(--muted) !important;
}
html[data-theme="dark"].v224-ui .v2161-topbar-brand img,
html[data-theme="dark"].v224-ui .v222-login-brand img {
  filter:none !important;
  opacity:1 !important;
}

@media(max-width:640px){
  html.v224-ui .v2161-topbar-brand {
    min-width:96px !important;
    max-width:108px !important;
  }
  html.v224-ui .v2161-topbar-brand img {
    width:102px !important;
    max-width:102px !important;
    height:34px !important;
  }
  html.v224-ui .v222-login-brand img {
    width:142px !important;
    max-width:142px !important;
    height:44px !important;
  }
}


/* =====================================================================
   VMAPS V2.26.2 — LOGO OFICIAL ÚNICA
   ===================================================================== */
html.v224-ui .v222-product-divider,
html.v224-ui .v222-product-copy {
  display:none !important;
}

/* Topbar: a 4ª/5ª imagem é a marca inteira */
html.v224-ui .v2161-topbar-brand {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  width:74px !important;
  min-width:74px !important;
  max-width:74px !important;
  height:66px !important;
  padding:2px !important;
  margin:0 9px 0 7px !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
}

html.v224-ui .v2161-topbar-brand img {
  display:block !important;
  width:62px !important;
  height:62px !important;
  max-width:62px !important;
  max-height:62px !important;
  object-fit:contain !important;
  object-position:center !important;
  border:0 !important;
  background:transparent !important;
  filter:none !important;
  opacity:1 !important;
  mix-blend-mode:normal !important;
}

/* Login: também usa somente a logo inteira */
html.v224-ui .v222-login-brand {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:166px !important;
  padding:0 0 14px !important;
  border:0 !important;
}

html.v224-ui .v222-login-brand > div,
html.v224-ui .v222-login-brand strong,
html.v224-ui .v222-login-brand small {
  display:none !important;
}

html.v224-ui .v222-login-brand img {
  display:block !important;
  width:154px !important;
  height:154px !important;
  max-width:154px !important;
  max-height:154px !important;
  object-fit:contain !important;
  object-position:center !important;
  border:0 !important;
  background:transparent !important;
  filter:none !important;
  opacity:1 !important;
  mix-blend-mode:normal !important;
}

html[data-theme="dark"].v224-ui .v2161-topbar-brand img,
html[data-theme="dark"].v224-ui .v222-login-brand img,
html:not([data-theme="dark"]).v224-ui .v2161-topbar-brand img,
html:not([data-theme="dark"]).v224-ui .v222-login-brand img {
  filter:none !important;
  -webkit-filter:none !important;
}

@media(max-width:640px){
  html.v224-ui .v2161-topbar-brand {
    width:58px !important;
    min-width:58px !important;
    max-width:58px !important;
    height:58px !important;
    margin-left:3px !important;
    margin-right:5px !important;
  }
  html.v224-ui .v2161-topbar-brand img {
    width:52px !important;
    height:52px !important;
    max-width:44px !important; min-width:40px !important; padding-left:6px !important; padding-right:6px !important;
    max-height:52px !important;
  }
  html.v224-ui .v222-login-brand {
    min-height:142px !important;
  }
  html.v224-ui .v222-login-brand img {
    width:132px !important;
    height:132px !important;
    max-width:132px !important;
    max-height:132px !important;
  }
}


/* =====================================================================
   VMAPS V2.27.0 — ONLINE / PROJETOS / ÁRVORE / PWA
   ===================================================================== */

/* VMaps é online: remove preparação/download offline e navegação GPS antiga */
.v212-offline-project-actions,
.v212-connectivity-pill,
#v212-connectivity-pill,
.v2132-navigation-panel,
#v2132-navigation-panel,
#v2137-sync-card { display:none !important; }

/* Logo vertical completa, sem corte */
html.v222-figma-ui { --v222-topbar:76px; }
html.v224-ui .v2161-topbar-brand { width:78px!important; min-width:78px!important; max-width:78px!important; height:74px!important; padding:2px!important; overflow:visible!important; }
html.v224-ui .v2161-topbar-brand img { width:70px!important; height:70px!important; max-width:70px!important; max-height:70px!important; object-fit:contain!important; object-position:center!important; }
@media(max-width:640px){html.v222-figma-ui{--v222-topbar:64px}html.v224-ui .v2161-topbar-brand{width:62px!important;min-width:62px!important;max-width:62px!important;height:62px!important}html.v224-ui .v2161-topbar-brand img{width:58px!important;height:58px!important;max-width:58px!important;max-height:58px!important}}

/* Operadora do projeto */
.v227-project-operator{color:var(--brand)!important;font-weight:850!important}
#importModal #projectOperadora{width:100%;min-height:42px}

/* Visibilidade separada de exclusão */
#v219-bulk-projects,.v219-delete-select,.delete-project{display:none!important}
.v227-visibility-actions{display:flex!important;gap:6px!important;align-items:center!important}
.v227-visibility-actions button,.v220-folder-actions button,.v220-tree-tools button{min-height:30px!important;padding:5px 8px!important;border:1px solid var(--line)!important;border-radius:8px!important;background:var(--panel)!important;color:var(--text)!important;font-size:9px!important;font-weight:800!important}
.v227-visibility-actions button:first-child,.v220-folder-actions [data-v220-folder-show]{color:#15803d!important}
.v227-visibility-actions button:last-child,.v220-folder-actions [data-v220-folder-hide]{color:#b45309!important}

/* Ver itens mais limpo */
.v219-reference-tree-body{margin-top:8px!important;padding:8px!important;border:1px solid var(--line)!important;border-radius:12px!important;background:var(--panel-2)!important;overflow:visible!important;max-height:none!important}
.v220-tree-tools{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto auto!important;gap:6px!important;margin-bottom:8px!important}
.v220-tree-tools input{min-width:0!important;min-height:34px!important}
.v222-pn-node{border:1px solid var(--line)!important;border-radius:10px!important;margin:6px 0!important;overflow:hidden!important;background:var(--panel)!important}
.v222-pn-node>summary{padding:8px 9px!important}
.v224-pn-tools{display:flex!important;gap:5px!important;margin-left:auto!important}
.v224-pn-tools button,.v227-candidate-tools button{min-height:28px!important;padding:4px 8px!important;border:1px solid var(--line)!important;border-radius:8px!important;background:var(--panel-2)!important;color:var(--text)!important;font-size:8.5px!important;font-weight:800!important}
.v227-candidate-tools{display:flex!important;gap:5px!important;padding:6px 8px 2px 28px!important}
.v227-candidate-tools button:first-child{color:var(--brand)!important}
.v227-candidate-tools button:nth-child(2){color:#15803d!important}
html[data-theme="dark"].v224-ui .v219-reference-tree-body,html[data-theme="dark"].v224-ui .v222-pn-node,html[data-theme="dark"].v224-ui .v224-pn-tools button,html[data-theme="dark"].v224-ui .v227-candidate-tools button{background:#0b1726!important;border-color:#2a3e56!important;color:#eef5ff!important}

/* Botão de administração de exclusão */
#v227-manage-projects{width:100%;min-height:46px;margin:8px 0 0;padding:8px 10px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);cursor:pointer;text-align:left}
#v227-manage-projects.hidden{display:none!important}#v227-manage-projects>span:first-child{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#fff1f2;color:#be123c}#v227-manage-projects>span:last-child{display:grid;gap:1px}#v227-manage-projects strong{font-size:10px}#v227-manage-projects small{font-size:8px;color:var(--muted)}
.v227-project-manager{position:fixed;inset:0;z-index:30080;display:grid;place-items:center;padding:18px}.v227-project-manager.hidden{display:none}.v227-pm-backdrop{position:absolute;inset:0;background:rgba(5,12,22,.56);backdrop-filter:blur(5px)}.v227-pm-shell{position:relative;width:min(720px,calc(100vw - 28px));max-height:min(82dvh,780px);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 28px 90px rgba(0,0,0,.3);overflow:hidden}.v227-pm-shell>header{display:flex;justify-content:space-between;gap:14px;padding:16px;border-bottom:1px solid var(--line)}.v227-pm-shell>header span{font-size:8px;color:var(--brand);font-weight:900;letter-spacing:.08em}.v227-pm-shell>header h2{margin:3px 0;font-size:18px}.v227-pm-shell>header p{margin:0;color:var(--muted);font-size:9px}.v227-pm-shell>header>button{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text)}.v227-pm-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;padding:10px 12px;border-bottom:1px solid var(--line)}.v227-pm-toolbar input{min-width:0}.v227-pm-toolbar button,.v227-pm-shell footer button{border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text);font-weight:800}.v227-pm-list{overflow:auto;padding:8px 12px}.v227-pm-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border-bottom:1px solid var(--line);cursor:pointer}.v227-pm-row span{display:grid;gap:2px;min-width:0}.v227-pm-row strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v227-pm-row small,.v227-pm-row em{font-size:8px;color:var(--muted);font-style:normal}.v227-pm-shell footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-top:1px solid var(--line)}.v227-pm-shell .danger,#v227-trash-delete.danger{background:#b91c1c!important;border-color:#b91c1c!important;color:#fff!important}.v227-empty{padding:28px;text-align:center;color:var(--muted)}

/* Lixeira em massa */
.v227-trash-bulk{display:flex;gap:6px;align-items:center;margin-left:auto}.v227-trash-bulk button{min-height:32px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font-size:9px;font-weight:800}.v227-trash-select{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line);font-size:8px;color:var(--muted)}

/* Instalação PWA online */
#v211-pwa-install{display:flex!important}.v227-install-help{position:fixed;inset:0;z-index:30100;display:grid;place-items:center;padding:16px;background:rgba(5,12,22,.62);backdrop-filter:blur(6px)}.v227-install-card{position:relative;width:min(480px,calc(100vw - 24px));padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--text);box-shadow:0 30px 90px rgba(0,0,0,.35)}.v227-install-card>[data-v227-install-close]{position:absolute;right:10px;top:10px;width:32px;height:32px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text)}.v227-install-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:10px;border-radius:14px;background:var(--brand-soft);color:var(--brand);font-size:22px;font-weight:900}.v227-install-card h2{margin:0 0 6px}.v227-install-card p,.v227-install-card>small{color:var(--muted);font-size:9px}.v227-install-steps{display:grid;gap:8px;margin:14px 0}.v227-install-steps>div{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.v227-install-steps strong{font-size:10px}.v227-install-steps span{font-size:9px;color:var(--muted)}

@media(max-width:640px){.v220-tree-tools{grid-template-columns:1fr 1fr!important}.v220-tree-tools input{grid-column:1/-1}.v224-pn-tools,.v227-candidate-tools{flex-wrap:wrap}.v227-pm-toolbar{grid-template-columns:1fr 1fr}.v227-pm-toolbar input{grid-column:1/-1}.v218-trash-toolbar{align-items:flex-start!important;flex-direction:column!important}.v227-trash-bulk{width:100%;display:grid;grid-template-columns:1fr 1fr}.v227-trash-bulk #v227-trash-delete{grid-column:1/-1}}


/* =====================================================================
   VMAPS V2.27.1 — LOGIN SEGURO / LOGO CONTIDA
   ===================================================================== */

/* Regra deliberadamente independente de .v224-ui:
   deve funcionar antes do JavaScript principal terminar de carregar. */
#loginScreen.login-screen {
  min-height:100dvh !important;
  display:grid !important;
  place-items:center !important;
  padding:24px !important;
  overflow:auto !important;
}

#loginScreen .login-card {
  width:min(430px, calc(100vw - 32px)) !important;
  max-width:430px !important;
  min-width:0 !important;
  padding:32px !important;
  overflow:hidden !important;
}

#loginScreen .v222-login-brand {
  width:100% !important;
  min-height:218px !important;
  max-height:218px !important;
  margin:0 0 22px !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  border:0 !important;
}

#loginScreen .v222-login-brand img {
  display:block !important;
  width:210px !important;
  height:210px !important;
  max-width:100% !important;
  max-height:210px !important;
  object-fit:contain !important;
  object-position:center !important;
  flex:0 0 auto !important;
  margin:0 auto !important;
  border:0 !important;
  background:transparent !important;
  filter:none !important;
  opacity:1 !important;
  transform:none !important;
}

#loginScreen .login-card h1 {
  margin:0 0 7px !important;
}

#loginScreen .login-card > p {
  margin:0 0 22px !important;
}

#loginScreen #loginForm {
  width:100% !important;
  min-width:0 !important;
}

#loginScreen #loginForm input,
#loginScreen #loginForm button {
  width:100% !important;
  max-width:100% !important;
}

@media (max-width:640px) {
  #loginScreen.login-screen {
    padding:14px !important;
  }

  #loginScreen .login-card {
    width:min(100%, 390px) !important;
    padding:22px !important;
  }

  #loginScreen .v222-login-brand {
    min-height:176px !important;
    max-height:176px !important;
    margin-bottom:18px !important;
  }

  #loginScreen .v222-login-brand img {
    width:168px !important;
    height:168px !important;
    max-height:168px !important;
  }
}


/* =====================================================================
   VMAPS V2.27.4 — ESTABILIZAÇÃO VISUAL
   ===================================================================== */

/* O login precisa desaparecer de verdade depois da autenticação.
   A regra anterior de display:grid tinha mais especificidade que .hidden. */
#loginScreen.login-screen.hidden {
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

#appScreen.hidden {
  display:none !important;
}

body:has(#appScreen:not(.hidden)) #loginScreen {
  display:none !important;
}

/* O shell vazio fica no DOM só como sentinela para o JavaScript. */
#v2-project-tools.v274-empty-tool-shell {
  display:none !important;
}

/* Ferramentas secundárias: uma única ocorrência, layout previsível. */
#v283-secondary-tools {
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:10px !important;
  margin:10px 0 !important;
}

#v283-secondary-tools > .v2-sidebar-export-card,
#v283-secondary-tools > .v2-photo-storage-card {
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:12px !important;
  box-sizing:border-box !important;
  border-radius:12px !important;
  overflow:hidden !important;
}

#v283-secondary-tools .v2-sidebar-tool-title {
  margin:0 0 9px !important;
  min-width:0 !important;
}

#v283-secondary-tools .v2-sidebar-tool-title strong {
  display:block !important;
  font-size:11px !important;
  line-height:1.25 !important;
}

#v283-secondary-tools .v2-sidebar-tool-title small {
  display:block !important;
  margin-top:3px !important;
  font-size:9px !important;
  line-height:1.35 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

#v283-secondary-tools .v2-general-export-actions {
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:7px !important;
}

#v283-secondary-tools .v2-general-export-actions button,
#v283-secondary-tools #v2-photo-root-button {
  width:100% !important;
  min-width:0 !important;
  min-height:36px !important;
  padding:7px 8px !important;
  border-radius:9px !important;
  font-size:9px !important;
  line-height:1.2 !important;
  white-space:normal !important;
}

/* Modal de instalação — compacto e alinhado. */
.v227-install-card {
  width:min(460px, calc(100vw - 28px)) !important;
  max-width:460px !important;
  padding:22px !important;
  border-radius:16px !important;
  box-sizing:border-box !important;
}

.v227-install-steps {
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:8px !important;
  margin:14px 0 !important;
}

.v227-install-steps > div {
  min-width:0 !important;
  padding:10px 11px !important;
  border-radius:10px !important;
}

.v227-install-steps strong,
.v227-install-steps span {
  display:block !important;
}

.v227-install-steps span {
  margin-top:3px !important;
  line-height:1.4 !important;
}

@media(max-width:640px){
  #v283-secondary-tools .v2-general-export-actions {
    grid-template-columns:1fr !important;
  }
  .v227-install-card {
    padding:18px !important;
  }
}


/* =====================================================================
   VMAPS V2.27.6 — MOBILE FIRST / POPUPS CENTRALIZADOS
   ===================================================================== */

@media (max-width: 768px) {
  :root {
    --v276-mobile-gap: 10px;
    --v276-mobile-radius: 16px;
    --v276-mobile-max-h: calc(100dvh - 24px);
  }

  /* ---------------------------------------------------------
     POPUP DO MAPA
     No celular vira um card centralizado dentro do mapa.
     --------------------------------------------------------- */
  .maplibregl-popup {
    left: 50% !important;
    top: 50% !important;
    bottom: auto !important;
    right: auto !important;
    transform: translate(-50%, -50%) !important;
    width: calc(100% - 20px) !important;
    max-width: 430px !important;
    z-index: 4500 !important;
    pointer-events: none !important;
  }

  .maplibregl-popup-tip {
    display: none !important;
  }

  .maplibregl-popup-content {
    pointer-events: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    max-height: min(76dvh, 620px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    margin: 0 !important;
    padding: 18px 14px 14px !important;
    border-radius: var(--v276-mobile-radius) !important;
    box-sizing: border-box !important;
    text-align: left !important;
  }

  .maplibregl-popup-close-button {
    position: sticky !important;
    float: right !important;
    top: 0 !important;
    right: 0 !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    margin: -8px -5px 4px 8px !important;
    border-radius: 10px !important;
    font-size: 22px !important;
    line-height: 1 !important;
    z-index: 6 !important;
  }

  .popup-title,
  .v250-reference-head,
  .v250-reference-body,
  .v220-geometry-meta,
  .v2-reference-related-title {
    min-width: 0 !important;
  }

  .popup-title {
    padding-right: 4px !important;
    text-align: center !important;
    font-size: 16px !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere !important;
  }

  .popup-desc,
  .popup-coordinates,
  .popup-status,
  .popup-edit-form,
  .v250-reference-card,
  .v250-reference-body,
  .v2-reference-related,
  .v2132-reference-candidate-card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .popup-desc {
    max-height: none !important;
    overflow: visible !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere !important;
  }

  .popup-coordinates {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 5px !important;
    text-align: center !important;
  }

  .maplibregl-popup-content input,
  .maplibregl-popup-content select,
  .maplibregl-popup-content textarea,
  .maplibregl-popup-content button {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .maplibregl-popup-content input,
  .maplibregl-popup-content select,
  .maplibregl-popup-content textarea {
    width: 100% !important;
    min-height: 44px !important;
    font-size: 16px !important; /* evita zoom automático no iPhone */
    border-radius: 10px !important;
  }

  .maplibregl-popup-content textarea {
    min-height: 96px !important;
    resize: vertical !important;
  }

  .maplibregl-popup-content .popup-actions,
  .v2132-reference-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: 100% !important;
  }

  .maplibregl-popup-content .popup-actions button,
  .v2132-reference-actions button,
  .v2-reference-candidate {
    width: 100% !important;
    min-height: 44px !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: normal !important;
  }

  /* ---------------------------------------------------------
     FICHA DE REFERÊNCIA / COMAR / SARFS
     --------------------------------------------------------- */
  .v250-reference-card {
    margin: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
  }

  .v250-reference-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    text-align: center !important;
    align-items: center !important;
  }

  .v250-reference-head > div,
  .v250-reference-head > span {
    width: 100% !important;
    min-width: 0 !important;
    text-align: center !important;
  }

  .v250-reference-head strong,
  .v250-reference-head small,
  .v250-reference-body,
  .v250-reference-body * {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  .v220-geometry-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 6px !important;
    text-align: center !important;
  }

  .v2132-reference-candidate-card {
    padding: 10px !important;
    border-radius: 12px !important;
  }

  .v2-reference-candidate {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }

  .v2-reference-candidate span,
  .v2-reference-candidate strong,
  .v2-reference-candidate small,
  .v2-reference-candidate em {
    min-width: 0 !important;
    max-width: 100% !important;
    text-align: center !important;
    overflow-wrap: anywhere !important;
  }

  /* ---------------------------------------------------------
     MODAIS GERAIS
     --------------------------------------------------------- */
  .modal,
  #fieldModal,
  #fieldHistoryModal,
  #kmzVersionsModal,
  #kmzCompareModal,
  #importModal,
  #baseImportModal,
  #candidateConsolidatedModal,
  #v217WorkflowModal,
  #v217AuditModal,
  #v218TrashModal,
  #v224-pn-action-modal,
  #v290-register-modal,
  #v2137-sync-modal,
  #v21371-conflict-modal,
  #v214-dashboard-modal {
    align-items: center !important;
    justify-content: center !important;
    padding: var(--v276-mobile-gap) !important;
    box-sizing: border-box !important;
  }

  .modal-card,
  .field-modal-card,
  .field-history-modal-card,
  .v290-register-card,
  .v224-pn-action-card,
  #candidateConsolidatedModal > *,
  #v217WorkflowModal > *,
  #v217AuditModal > *,
  #v218TrashModal > *,
  #v2137-sync-modal > *,
  #v21371-conflict-modal > * {
    width: calc(100vw - 20px) !important;
    max-width: 520px !important;
    min-width: 0 !important;
    max-height: var(--v276-mobile-max-h) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    margin: auto !important;
    border-radius: var(--v276-mobile-radius) !important;
    box-sizing: border-box !important;
  }

  .modal-header,
  .field-modal-card .modal-header,
  .v290-register-card > header {
    position: sticky !important;
    top: 0 !important;
    z-index: 8 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .modal-header h2,
  .field-modal-card .modal-header h2,
  .field-modal-title,
  .field-modal-subtitle,
  .v290-register-card header strong,
  .v290-register-card header small {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
  }

  .field-modal-body,
  #fieldModal .field-form,
  #fieldHistoryModal .field-history-modal-card,
  #kmzVersionsModal .field-modal-card,
  #kmzCompareModal .field-modal-card {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* ---------------------------------------------------------
     FORMULÁRIOS / BUSCA
     --------------------------------------------------------- */
  .modal input,
  .modal select,
  .modal textarea,
  .field-modal-card input,
  .field-modal-card select,
  .field-modal-card textarea,
  .v290-register-card input,
  .v290-register-card select,
  .v290-register-card textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    font-size: 16px !important;
    box-sizing: border-box !important;
  }

  .modal button,
  .field-modal-card button,
  .v290-register-card button {
    min-height: 42px !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  /* Pesquisa da sidebar: botão e input não estouram a largura. */
  #sidebar input[type="search"],
  #sidebar input[type="text"],
  #sidebar select {
    min-width: 0 !important;
    max-width: 100% !important;
    font-size: 16px !important;
    box-sizing: border-box !important;
  }

  #sidebar button {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Bottom-sheet da vistoria continua utilizável sem cortar conteúdo. */
  #v2-field-sheet,
  .v2-field-sheet {
    max-height: calc(100dvh - 8px) !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  #v2-visit-body {
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: max(84px, env(safe-area-inset-bottom)) !important;
  }

  /* Tabelas largas passam a rolar horizontalmente no celular. */
  .modal table,
  .field-modal-card table,
  #candidateConsolidatedModal table,
  #v217WorkflowModal table,
  #v218TrashModal table {
    min-width: 680px !important;
  }

  .modal-card,
  .field-modal-card,
  #candidateConsolidatedModal > *,
  #v217WorkflowModal > *,
  #v218TrashModal > * {
    scrollbar-width: thin !important;
  }
}

@media (max-width: 420px) {
  .maplibregl-popup {
    width: calc(100% - 12px) !important;
  }

  .maplibregl-popup-content {
    max-height: 80dvh !important;
    padding: 16px 11px 12px !important;
    border-radius: 14px !important;
  }

  .modal,
  #fieldModal,
  #fieldHistoryModal,
  #kmzVersionsModal,
  #kmzCompareModal,
  #importModal,
  #baseImportModal,
  #candidateConsolidatedModal,
  #v217WorkflowModal,
  #v217AuditModal,
  #v218TrashModal,
  #v224-pn-action-modal,
  #v290-register-modal,
  #v2137-sync-modal,
  #v21371-conflict-modal {
    padding: 6px !important;
  }

  .modal-card,
  .field-modal-card,
  .field-history-modal-card,
  .v290-register-card,
  .v224-pn-action-card {
    width: calc(100vw - 12px) !important;
    max-height: calc(100dvh - 12px) !important;
    border-radius: 14px !important;
  }
}


/* =====================================================================
   VMAPS V2.27.7 — POPUP INICIAL MOBILE CENTRALIZADO
   Candidate / PN / Referência / COMAR / SARFS
   ===================================================================== */
@media (max-width: 768px) {
  /* A janela própria do VMaps é o popup inicial usado ao clicar em Candidate
     e também por referências/COMAR/SARFS. */
  html.v224-ui #webgis-candidate-info-window.webgis-info-window,
  #webgis-candidate-info-window.webgis-info-window {
    position: fixed !important;
    left: 50% !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    width: min(430px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: min(82dvh, 680px) !important;
    margin: 0 !important;
    overflow: hidden !important;
    border-radius: 16px !important;
    z-index: 16000 !important;
    box-sizing: border-box !important;
  }

  #webgis-candidate-info-window .webgis-info-body {
    width: 100% !important;
    max-width: 100% !important;
    max-height: min(82dvh, 680px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 48px 14px 16px !important;
    box-sizing: border-box !important;
  }

  #webgis-candidate-info-window .webgis-info-close {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    width: 38px !important;
    height: 38px !important;
    border-radius: 10px !important;
    z-index: 20 !important;
  }

  #webgis-candidate-info-window .popup-title,
  #webgis-candidate-info-window .project-meta {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: center !important;
    overflow-wrap: anywhere !important;
  }

  #webgis-candidate-info-window .popup-title {
    font-size: 17px !important;
    line-height: 1.25 !important;
  }

  #webgis-candidate-info-window .project-meta {
    margin-top: 4px !important;
    margin-bottom: 12px !important;
  }

  /* Ficha Candidate */
  #webgis-candidate-info-window .v246-info-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    gap: 8px !important;
    margin: 0 0 12px !important;
    text-align: center !important;
  }

  #webgis-candidate-info-window .v246-info-id {
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
    overflow-wrap: anywhere !important;
  }

  #webgis-candidate-info-window .v246-info-grid,
  #webgis-candidate-info-window .v246-actions,
  #webgis-candidate-info-window .v243-candidate-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: 100% !important;
  }

  #webgis-candidate-info-window .v246-info-grid > div,
  #webgis-candidate-info-window .v246-selected-point,
  #webgis-candidate-info-window .v246-points,
  #webgis-candidate-info-window .v250-reference-card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #webgis-candidate-info-window .v246-info-grid > div,
  #webgis-candidate-info-window .v246-selected-point {
    text-align: center !important;
  }

  #webgis-candidate-info-window .v246-point-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 3px !important;
    text-align: center !important;
  }

  #webgis-candidate-info-window button {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 44px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    white-space: normal !important;
  }

  /* Ficha de referência / COMAR / SARFS */
  #webgis-candidate-info-window .v250-reference-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    gap: 8px !important;
    text-align: center !important;
  }

  #webgis-candidate-info-window .v250-reference-head > div,
  #webgis-candidate-info-window .v250-reference-head > span,
  #webgis-candidate-info-window .v250-reference-body,
  #webgis-candidate-info-window .v250-reference-body * {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  #webgis-candidate-info-window .v250-reference-head > span {
    width: auto !important;
    justify-self: center !important;
  }

  #webgis-candidate-info-window .v250-reference-body dl > div {
    grid-template-columns: 1fr !important;
    gap: 3px !important;
    text-align: center !important;
  }

  #webgis-candidate-info-window .v250-reference-body dt,
  #webgis-candidate-info-window .v250-reference-body dd {
    text-align: center !important;
  }

  /* Editor Sugerir localização também centralizado no mobile */
  html.v224-ui #webgis-candidate-edit-window.webgis-edit-window,
  #webgis-candidate-edit-window.webgis-edit-window {
    position: fixed !important;
    left: 50% !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    inset: auto !important;
    transform: translate(-50%, -50%) !important;
    width: min(430px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: 82dvh !important;
    margin: 0 !important;
    border-radius: 16px !important;
    z-index: 17000 !important;
  }

  #webgis-candidate-edit-window .webgis-edit-body {
    max-height: 82dvh !important;
    overflow-y: auto !important;
    padding: 48px 14px 16px !important;
  }

  #webgis-candidate-edit-window input,
  #webgis-candidate-edit-window select,
  #webgis-candidate-edit-window textarea,
  #webgis-candidate-edit-window button {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #webgis-candidate-edit-window input,
  #webgis-candidate-edit-window select,
  #webgis-candidate-edit-window textarea {
    width: 100% !important;
    font-size: 16px !important;
  }

  /* Seletor de Candidate quando uma ação é iniciada a partir do PN */
  .v224-pn-action-modal {
    display: grid !important;
    place-items: center !important;
    padding: 10px !important;
    box-sizing: border-box !important;
  }

  .v224-pn-action-card {
    width: min(430px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: 82dvh !important;
    margin: auto !important;
    border-radius: 16px !important;
  }

  .v224-pn-action-card > header {
    align-items: center !important;
  }

  .v224-pn-action-card > header > div,
  .v224-pn-action-card > header strong,
  .v224-pn-action-card > header small {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }

  .v224-pn-action-list {
    max-height: calc(82dvh - 92px) !important;
    overflow-y: auto !important;
    padding: 10px !important;
  }

  .v224-pn-action-list > button {
    min-height: 48px !important;
    align-items: center !important;
  }
}

@media (max-width: 420px) {
  html.v224-ui #webgis-candidate-info-window.webgis-info-window,
  #webgis-candidate-info-window.webgis-info-window,
  html.v224-ui #webgis-candidate-edit-window.webgis-edit-window,
  #webgis-candidate-edit-window.webgis-edit-window,
  .v224-pn-action-card {
    width: calc(100vw - 12px) !important;
    max-width: calc(100vw - 12px) !important;
    max-height: calc(100dvh - 12px) !important;
  }

  #webgis-candidate-info-window .webgis-info-body,
  #webgis-candidate-edit-window .webgis-edit-body {
    max-height: calc(100dvh - 12px) !important;
  }
}


/* =====================================================================
   VMAPS V2.27.8 — EXCLUSÃO DE PROJETOS / SUBPASTAS
   ===================================================================== */
.v278-reference-actions {
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:7px !important;
  margin-top:7px !important;
}

.v278-reference-actions .v219-reference-expand {
  margin:0 !important;
}

.v278-delete-action {
  border:1px solid rgba(220,38,38,.34) !important;
  background:rgba(220,38,38,.07) !important;
  color:#b91c1c !important;
  font-weight:850 !important;
  letter-spacing:-.01em !important;
  border-radius:9px !important;
  transition:
    background .16s ease,
    border-color .16s ease,
    transform .16s ease,
    box-shadow .16s ease !important;
}

.v278-delete-action:hover {
  background:rgba(220,38,38,.13) !important;
  border-color:rgba(220,38,38,.58) !important;
  transform:translateY(-1px) !important;
  box-shadow:0 5px 14px rgba(127,29,29,.10) !important;
}

.v278-delete-project {
  min-height:30px !important;
  padding:5px 9px !important;
  font-size:9px !important;
}

.v220-folder-actions .v278-delete-folder {
  color:#b91c1c !important;
  border-color:rgba(220,38,38,.30) !important;
  background:rgba(220,38,38,.06) !important;
}

html[data-theme="dark"].v224-ui .v278-delete-action {
  color:#fca5a5 !important;
  border-color:rgba(248,113,113,.32) !important;
  background:rgba(127,29,29,.18) !important;
}

html[data-theme="dark"].v224-ui .v278-delete-action:hover {
  background:rgba(127,29,29,.32) !important;
  border-color:rgba(248,113,113,.52) !important;
}

@media(max-width:768px){
  .v278-reference-actions {
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  .v278-reference-actions > button {
    width:100% !important;
    min-height:42px !important;
  }

  .v220-folder-actions {
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:6px !important;
    width:100% !important;
    margin-top:7px !important;
  }

  .v220-folder-actions button {
    width:100% !important;
    min-height:38px !important;
  }

  .v220-folder-actions .v278-delete-folder {
    grid-column:1 / -1 !important;
  }

  .project-group-summary {
    align-items:flex-start !important;
  }

  .project-group-summary .v223-group-actions {
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    width:100% !important;
    margin-top:7px !important;
  }

  .project-group-summary .v278-delete-project {
    grid-column:1 / -1 !important;
  }
}


/* =====================================================================
   VMAPS V2.27.8 — BRAND PREMIUM
   Mantém a arte oficial inteira: símbolo + VMaps.
   ===================================================================== */

html.v222-figma-ui {
  --v222-topbar:84px !important;
}

html.v224-ui .topbar {
  min-height:var(--v222-topbar) !important;
  height:var(--v222-topbar) !important;
  padding:8px 14px !important;
  border-bottom:1px solid rgba(15,23,42,.08) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.92)) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.86) inset,
    0 10px 30px rgba(15,23,42,.055) !important;
  backdrop-filter:blur(18px) saturate(130%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(130%) !important;
}

html[data-theme="dark"].v224-ui .topbar {
  border-bottom-color:rgba(148,163,184,.13) !important;
  background:
    linear-gradient(180deg, rgba(7,15,27,.96), rgba(9,20,35,.93)) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.035) inset,
    0 12px 34px rgba(0,0,0,.25) !important;
}

/* "Placa" da marca: acabamento premium sem alterar a logo original */
html.v224-ui .v2161-topbar-brand {
  position:relative !important;
  isolation:isolate !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  width:88px !important;
  min-width:88px !important;
  max-width:88px !important;
  height:68px !important;
  margin:0 10px 0 2px !important;
  padding:5px 9px !important;
  overflow:hidden !important;
  border:1px solid rgba(15,23,42,.08) !important;
  border-radius:18px !important;
  background:
    radial-gradient(circle at 28% 16%, rgba(255,255,255,.98), rgba(255,255,255,.62) 34%, transparent 68%),
    linear-gradient(145deg, rgba(255,255,255,.92), rgba(241,245,249,.74)) !important;
  box-shadow:
    0 10px 26px rgba(15,23,42,.10),
    0 2px 7px rgba(15,23,42,.06),
    0 1px 0 rgba(255,255,255,.92) inset !important;
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease !important;
}

html.v224-ui .v2161-topbar-brand::before {
  content:"" !important;
  position:absolute !important;
  left:10px !important;
  right:10px !important;
  top:0 !important;
  height:1px !important;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.95), transparent) !important;
  z-index:-1 !important;
}

html.v224-ui .v2161-topbar-brand::after {
  content:"" !important;
  position:absolute !important;
  left:24px !important;
  right:24px !important;
  bottom:4px !important;
  height:2px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg, transparent, rgba(14,165,233,.55), transparent) !important;
  opacity:.72 !important;
}

html.v224-ui .v2161-topbar-brand:hover {
  transform:translateY(-1px) !important;
  border-color:rgba(14,165,233,.20) !important;
  box-shadow:
    0 13px 30px rgba(15,23,42,.13),
    0 3px 8px rgba(15,23,42,.07),
    0 1px 0 rgba(255,255,255,.95) inset !important;
}

html.v224-ui .v2161-topbar-brand img,
html[data-theme="light"].v224-ui .v2161-topbar-brand img,
html:not([data-theme="dark"]).v224-ui .v2161-topbar-brand img {
  display:block !important;
  width:62px !important;
  height:62px !important;
  max-width:62px !important;
  max-height:62px !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  filter:none !important;
  transform:none !important;
  opacity:1 !important;
  mix-blend-mode:normal !important;
}

html[data-theme="dark"].v224-ui .v2161-topbar-brand {
  border-color:rgba(148,163,184,.15) !important;
  background:
    radial-gradient(circle at 28% 16%, rgba(30,41,59,.86), rgba(15,23,42,.58) 38%, transparent 70%),
    linear-gradient(145deg, rgba(16,29,47,.95), rgba(7,16,29,.92)) !important;
  box-shadow:
    0 12px 30px rgba(0,0,0,.34),
    0 2px 8px rgba(0,0,0,.22),
    0 1px 0 rgba(255,255,255,.055) inset !important;
}

html[data-theme="dark"].v224-ui .v2161-topbar-brand::before {
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.16), transparent) !important;
}

html[data-theme="dark"].v224-ui .v2161-topbar-brand::after {
  background:linear-gradient(90deg, transparent, rgba(56,189,248,.78), transparent) !important;
}

html[data-theme="dark"].v224-ui .v2161-topbar-brand img {
  width:62px !important;
  height:62px !important;
  max-width:62px !important;
  max-height:62px !important;
  object-fit:contain !important;
  filter:none !important;
}

/* Controles da direita acompanham o acabamento da marca */
html.v224-ui .topbar-right {
  gap:8px !important;
}

html.v224-ui .theme-toggle,
html.v224-ui .v222-user-panel,
html.v224-ui .v222-logout-button {
  border-radius:12px !important;
}

html.v224-ui .theme-toggle,
html.v224-ui .v222-logout-button {
  min-height:40px !important;
}

html.v224-ui .v222-user-panel {
  min-height:44px !important;
  padding:5px 9px !important;
  border:1px solid rgba(15,23,42,.07) !important;
  background:rgba(255,255,255,.54) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.72) inset !important;
}

html[data-theme="dark"].v224-ui .v222-user-panel {
  border-color:rgba(148,163,184,.12) !important;
  background:rgba(15,23,42,.48) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.035) inset !important;
}

@media(max-width:640px){
  html.v222-figma-ui {
    --v222-topbar:72px !important;
  }

  html.v224-ui .topbar {
    padding:6px 8px !important;
  }

  html.v224-ui .v2161-topbar-brand {
    width:66px !important;
    min-width:66px !important;
    max-width:66px !important;
    height:58px !important;
    margin:0 5px 0 0 !important;
    padding:4px 7px !important;
    border-radius:15px !important;
  }

  html.v224-ui .v2161-topbar-brand img,
  html[data-theme="dark"].v224-ui .v2161-topbar-brand img,
  html[data-theme="light"].v224-ui .v2161-topbar-brand img,
  html:not([data-theme="dark"]).v224-ui .v2161-topbar-brand img {
    width:52px !important;
    height:52px !important;
    max-width:52px !important;
    max-height:52px !important;
  }

  html.v224-ui .v2161-topbar-brand::after {
    left:18px !important;
    right:18px !important;
    bottom:3px !important;
  }

  html.v224-ui .v222-user-panel {
    padding:4px 7px !important;
  }
}


/* =====================================================================
   VMAPS V2.27.9 — INSTALAÇÃO SEM TELA INTERMEDIÁRIA
   ===================================================================== */

/* A interface antiga de instruções não participa mais do fluxo normal. */
.v227-install-overlay,
.v227-install-modal,
#v227-install-modal,
#installVMapsModal,
[data-v227-install-modal] {
  display:none !important;
}

.v279-install-ready {
  cursor:pointer !important;
}



/* =====================================================================
   VMAPS V2.27.10 — INSTALL CTA PREMIUM
   ===================================================================== */
[data-install-vmaps],
[data-download-vmaps],
[data-v227-install],
[data-v279-install-direct],
#installVMapsBtn,
#downloadVMapsBtn {
  font-weight: 800 !important;
  letter-spacing: -.01em !important;
}

/* =====================================================================
   VMAPS V2.27.11 — CORREÇÕES OPERACIONAIS + ACABAMENTO VISUAL
   ===================================================================== */

/* Topbar: logo ganha presença e deixa de reservar um corredor vazio antes da navegação. */
html.v224-ui .topbar-left,
html.v222-figma-ui .topbar-left {
  min-width:0 !important;
  width:auto !important;
  gap:8px !important;
  flex:0 0 auto !important;
}
html.v224-ui .v2161-topbar-brand {
  width:112px !important;
  min-width:112px !important;
  max-width:112px !important;
  height:72px !important;
  margin:0 8px 0 0 !important;
  padding:2px 8px !important;
  border-radius:15px !important;
}
html.v224-ui .v2161-topbar-brand img,
html[data-theme="dark"].v224-ui .v2161-topbar-brand img,
html[data-theme="light"].v224-ui .v2161-topbar-brand img,
html:not([data-theme="dark"]).v224-ui .v2161-topbar-brand img {
  width:68px !important;
  height:68px !important;
  max-width:68px !important;
  max-height:68px !important;
  object-fit:contain !important;
  object-position:center !important;
}
html[data-theme="dark"].v224-ui .v2161-topbar-brand {
  background:linear-gradient(145deg,rgba(18,36,59,.96),rgba(8,19,33,.94)) !important;
  border:1px solid rgba(73,137,255,.26) !important;
  overflow:hidden !important;
  box-shadow:0 8px 24px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06) !important;
}
html[data-theme="dark"].v224-ui .v2161-topbar-brand::after {
  left:22px !important; right:22px !important; bottom:3px !important;
  background:linear-gradient(90deg,transparent,#36bffa,transparent) !important;
}
html.v222-figma-ui .v222-primary-nav { margin-left:0 !important; }

/* Importadores: cabeçalho e formulário respeitam o tema escuro. */
html[data-theme="dark"] #importModal .modal-card,
html[data-theme="dark"] #baseImportModal .modal-card {
  background:#0d1a2a !important;
  color:#edf4ff !important;
  border:1px solid #263b55 !important;
  box-shadow:0 28px 80px rgba(0,0,0,.52) !important;
}
html[data-theme="dark"] #importModal .modal-header,
html[data-theme="dark"] #baseImportModal .modal-header {
  background:linear-gradient(135deg,#12243b,#0b1727) !important;
  color:#f8fbff !important;
  border-bottom:1px solid #263b55 !important;
}
html[data-theme="dark"] #importModal .modal-header h2,
html[data-theme="dark"] #baseImportModal .modal-header h2 { color:#f8fbff !important; }
html[data-theme="dark"] #importModal label,
html[data-theme="dark"] #baseImportModal label { color:#d9e5f4 !important; }
html[data-theme="dark"] #importModal label small,
html[data-theme="dark"] #baseImportModal label small,
html[data-theme="dark"] #importModal .small-status,
html[data-theme="dark"] #baseImportModal .small-status { color:#9fb1c7 !important; }
html[data-theme="dark"] #importModal input,
html[data-theme="dark"] #baseImportModal input,
html[data-theme="dark"] #baseImportModal select {
  background:#0a1625 !important;
  color:#eaf2fb !important;
  border-color:#2d435e !important;
}
html[data-theme="dark"] #importModal input::file-selector-button,
html[data-theme="dark"] #baseImportModal input::file-selector-button {
  background:#1c3150 !important;
  color:#f4f8ff !important;
  border:0 !important;
  border-radius:7px !important;
  padding:7px 10px !important;
  margin-right:9px !important;
}

/* Buscar coordenadas fica sempre sobre o mapa. */
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map {
  position:absolute !important;
  top:18px !important;
  left:50% !important;
  right:auto !important;
  width:min(520px,calc(100% - 240px)) !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  transform:translateX(-50%) !important;
  z-index:70 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map .v218-coordinate-content {
  width:100% !important;
  padding:5px !important;
  border:1px solid var(--line) !important;
  border-radius:13px !important;
  background:var(--panel) !important;
  box-shadow:0 14px 40px rgba(10,23,40,.18) !important;
}
@media(max-width:920px){
  html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map {
    top:10px !important; left:10px !important; right:58px !important; width:auto !important; transform:none !important;
  }
}

/* Projeto lógico: ações em uma linha coerente, sem Excluir caindo sozinho. */
html.v224-ui .project-group-summary {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:8px !important;
  padding:10px 10px !important;
}
html.v224-ui .v223-group-actions.v227-visibility-actions {
  display:grid !important;
  grid-template-columns:auto auto !important;
  gap:5px !important;
  align-items:center !important;
  justify-items:stretch !important;
  margin-left:auto !important;
}
html.v224-ui .v223-group-actions.v227-visibility-actions button {
  width:auto !important;
  min-width:82px !important;
  min-height:29px !important;
  white-space:nowrap !important;
}
html.v224-ui .v223-group-actions.v227-visibility-actions .v278-delete-project {
  grid-column:1 / -1 !important;
  color:#dc4c5a !important;
  border-color:color-mix(in srgb,#dc4c5a 35%,var(--line)) !important;
  background:color-mix(in srgb,#dc4c5a 8%,var(--panel)) !important;
}

/* Elementos da árvore que podem levar ao mapa. */
.v22711-map-jump { cursor:zoom-in !important; border-radius:5px; transition:background .14s ease,color .14s ease; }
.v22711-map-jump:hover { color:var(--brand) !important; background:var(--brand-soft) !important; }
.v219-point-list .v22711-map-jump { padding:2px 4px; }

/* Campo de observação da vistoria. */
.v22711-visit-observation-card {
  margin:10px 0 12px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:linear-gradient(145deg,var(--panel),var(--panel-2));
}
.v22711-visit-observation-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:8px; }
.v22711-visit-observation-head > div { display:grid; gap:2px; }
.v22711-visit-observation-head strong { font-size:10px; color:var(--text); }
.v22711-visit-observation-head small { font-size:8px; color:var(--muted); line-height:1.35; }
.v22711-visit-observation-head > span { padding:4px 7px; border-radius:999px; background:var(--brand-soft); color:var(--brand); font-size:7px; font-weight:850; white-space:nowrap; }
#v22711-visit-observation { width:100%; min-height:76px; resize:vertical; padding:10px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); font:inherit; line-height:1.45; }
#v22711-visit-observation:focus { outline:0; border-color:var(--brand); box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 13%,transparent); }
#v22711-visit-observation:disabled { opacity:.78; resize:none; }
.v22711-review-observation { margin:12px 0; padding:11px; border:1px solid var(--line); border-radius:10px; background:var(--panel-2); }
.v22711-review-observation strong { display:block; margin-bottom:5px; font-size:9px; }
.v22711-review-observation p { margin:0; color:var(--muted); font-size:9px; line-height:1.45; white-space:pre-wrap; }

/* Confirmação visual de importação. */
.v22711-success-toast {
  position:fixed; z-index:40050; top:18px; left:50%;
  display:flex; align-items:center; gap:10px;
  min-width:min(420px,calc(100vw - 28px)); max-width:620px;
  padding:11px 14px; border:1px solid rgba(34,197,94,.35); border-radius:13px;
  background:rgba(9,38,29,.96); color:#ecfff4;
  box-shadow:0 18px 55px rgba(0,0,0,.3); backdrop-filter:blur(10px);
  transform:translate(-50%,-14px); opacity:0; transition:.22s ease;
}
.v22711-success-toast.show { transform:translate(-50%,0); opacity:1; }
.v22711-success-icon { width:28px; height:28px; flex:0 0 28px; display:grid; place-items:center; border-radius:9px; background:#22c55e; color:#052e16; font-weight:950; }
.v22711-success-toast div { display:grid; gap:2px; }
.v22711-success-toast strong { font-size:10px; }
.v22711-success-toast small { font-size:8px; color:#bce7cc; }

@media(max-width:640px){
  html.v224-ui .v2161-topbar-brand { width:72px !important; min-width:72px !important; max-width:72px !important; height:60px !important; margin-right:4px !important; padding:2px 4px !important; }
  html.v224-ui .v2161-topbar-brand img,
  html[data-theme="dark"].v224-ui .v2161-topbar-brand img,
  html[data-theme="light"].v224-ui .v2161-topbar-brand img { width:58px !important; height:58px !important; max-width:58px !important; max-height:58px !important; }
  .v22711-success-toast { top:10px; }
  .v22711-visit-observation-head { flex-direction:column; gap:6px; }
}

/* Estado recolhido do buscador no mapa: botão compacto, sem ocupar a sidebar. */
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-collapsed {
  width:44px !important;
  height:44px !important;
  min-height:44px !important;
  padding:0 !important;
  border:1px solid var(--line) !important;
  border-radius:12px !important;
  background:var(--panel) !important;
  box-shadow:0 10px 28px rgba(10,23,40,.18) !important;
}
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-collapsed .v218-coordinate-content { display:none !important; }
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-collapsed .v220-coordinate-toggle {
  display:grid !important; position:static !important; width:44px !important; height:44px !important; min-width:44px !important; min-height:44px !important;
  place-items:center !important; border:0 !important; background:transparent !important; color:var(--brand) !important; pointer-events:auto !important; transform:none !important;
}
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-open .v220-coordinate-toggle { display:none !important; }
@media(max-width:920px){
  html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-collapsed { left:auto !important; right:58px !important; width:42px !important; height:42px !important; }
}


/* =====================================================================
   VMAPS V2.27.12 — BUSCA DE COORDENADA COMPACTA + GESTÃO ADMIN
   ===================================================================== */
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map {
  top:14px !important;
  width:min(455px,calc(100% - 260px)) !important;
}
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-open .v218-coordinate-content {
  padding:4px !important;
  border:1px solid color-mix(in srgb,var(--line) 86%,transparent) !important;
  border-radius:14px !important;
  background:color-mix(in srgb,var(--panel) 96%,transparent) !important;
  box-shadow:0 12px 34px rgba(5,15,29,.18) !important;
  backdrop-filter:blur(12px);
}
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map .v218-coordinate-bar {
  display:grid !important;
  grid-template-columns:28px minmax(0,1fr) 78px 34px !important;
  align-items:center !important;
  gap:4px !important;
  width:100% !important;
  height:40px !important;
  padding:0 3px !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  box-shadow:none !important;
}
html.v222-figma-ui #v218-coordinate-search .v22712-coordinate-icon {
  width:28px;height:28px;display:grid;place-items:center;
  color:var(--brand);font-size:15px;font-weight:900;opacity:.9;
}
html.v222-figma-ui #v218-coordinate-input {
  height:34px !important;min-height:34px !important;padding:0 7px !important;
  border:0 !important;outline:0 !important;border-radius:8px !important;
  background:transparent !important;color:var(--text) !important;
  font-size:10px !important;box-shadow:none !important;
}
html.v222-figma-ui #v218-coordinate-input::placeholder { color:var(--muted) !important; opacity:.78; }
html.v222-figma-ui #v218-coordinate-go {
  width:78px !important;min-width:78px !important;height:34px !important;min-height:34px !important;
  padding:0 10px !important;border:0 !important;border-radius:9px !important;
  display:flex !important;align-items:center !important;justify-content:center !important;gap:5px !important;
  background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 78%,#6b8cff)) !important;
  color:#fff !important;font-size:9px !important;font-weight:850 !important;
  box-shadow:0 5px 13px color-mix(in srgb,var(--brand) 20%,transparent) !important;
}
html.v222-figma-ui #v218-coordinate-search .v22712-coordinate-close {
  width:32px !important;height:32px !important;min-width:32px !important;min-height:32px !important;
  display:grid !important;place-items:center !important;padding:0 !important;
  border:1px solid var(--line) !important;border-radius:9px !important;
  background:var(--panel-2) !important;color:var(--muted) !important;
  font-size:17px !important;font-weight:500 !important;line-height:1 !important;box-shadow:none !important;
}
html.v222-figma-ui #v218-coordinate-search .v22712-coordinate-close:hover { color:var(--text) !important;background:var(--soft) !important; }
html.v222-figma-ui #v218-coordinate-search .v218-coordinate-result {
  margin:4px 0 0 !important;padding:10px !important;border:1px solid var(--line) !important;
  border-radius:11px !important;background:var(--panel) !important;box-shadow:0 12px 28px rgba(5,15,29,.14) !important;
}
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-collapsed {
  width:42px !important;height:42px !important;min-height:42px !important;
  border-radius:13px !important;background:var(--panel) !important;
  border:1px solid var(--line) !important;box-shadow:0 8px 22px rgba(5,15,29,.16) !important;
}
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-collapsed .v220-coordinate-toggle {
  width:42px !important;height:42px !important;min-width:42px !important;min-height:42px !important;
  border-radius:13px !important;color:var(--brand) !important;font-size:16px !important;
}
html[data-theme="dark"].v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-open .v218-coordinate-content {
  background:rgba(8,20,34,.96) !important;border-color:#293d57 !important;
}
html[data-theme="dark"].v222-figma-ui #v218-coordinate-search .v22712-coordinate-close {
  background:#111f31 !important;border-color:#2a3d55 !important;color:#9fb2c9 !important;
}

/* Gestão de usuários volta a ser um bloco ADMIN de primeira classe. */
html.v222-figma-ui #usersPanel.v22712-admin-users {
  margin:8px 0 0 !important;border:1px solid var(--line) !important;border-radius:12px !important;
  background:var(--panel) !important;overflow:hidden !important;box-shadow:none !important;
}
html.v222-figma-ui #usersPanel.v22712-admin-users #toggleUsersPanel {
  width:100% !important;min-height:46px !important;padding:9px 11px !important;
  display:flex !important;align-items:center !important;gap:7px !important;
  border:0 !important;background:transparent !important;color:var(--text) !important;
  font-size:10px !important;font-weight:850 !important;text-align:left !important;
}
html.v222-figma-ui #usersPanel.v22712-admin-users #toggleUsersPanel::before {
  content:"◎";width:27px;height:27px;display:grid;place-items:center;border-radius:8px;
  background:var(--brand-soft);color:var(--brand);font-size:13px;
}
html.v222-figma-ui #usersPanel.v22712-admin-users #usersPanelContent {
  border-top:1px solid var(--line) !important;background:var(--panel-2) !important;
}
html[data-theme="dark"].v222-figma-ui #usersPanel.v22712-admin-users,
html[data-theme="dark"].v222-figma-ui #usersPanel.v22712-admin-users #usersPanelContent {
  background:#0e1a2a !important;border-color:#283b52 !important;
}

@media(max-width:920px){
  html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-open {
    top:10px !important;left:10px !important;right:58px !important;width:auto !important;transform:none !important;
  }
  html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map .v218-coordinate-bar {
    grid-template-columns:26px minmax(0,1fr) 38px 32px !important;
  }
  html.v222-figma-ui #v218-coordinate-go { width:38px !important;min-width:38px !important;padding:0 !important; }
  html.v222-figma-ui #v218-coordinate-go span { display:none !important; }
}


/* =====================================================================
   VMAPS V2.27.13 — USUÁRIOS ADMIN SEMPRE VISÍVEIS + EXCLUSÃO COMPACTA
   ===================================================================== */
html.v222-figma-ui #v22713-users-launch {
  width:100% !important;
  min-height:54px !important;
  margin:8px 0 0 !important;
  padding:8px 10px !important;
  display:flex !important;
  align-items:center !important;
  gap:9px !important;
  border:1px solid var(--line) !important;
  border-radius:12px !important;
  background:linear-gradient(135deg,var(--panel),var(--panel-2)) !important;
  color:var(--text) !important;
  text-align:left !important;
  box-shadow:none !important;
}
html.v222-figma-ui #v22713-users-launch.hidden { display:none !important; }
html.v222-figma-ui #v22713-users-launch:hover {
  border-color:color-mix(in srgb,var(--brand) 32%,var(--line)) !important;
  background:linear-gradient(135deg,var(--panel),var(--brand-soft)) !important;
}
html.v222-figma-ui #v22713-users-launch .v22713-users-icon {
  width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;
  border-radius:9px;background:var(--brand-soft);color:var(--brand);
  font-size:17px;font-weight:900;
}
html.v222-figma-ui #v22713-users-launch .v22713-users-copy { min-width:0;flex:1;display:grid;gap:2px; }
html.v222-figma-ui #v22713-users-launch .v22713-users-copy strong { font-size:10px;line-height:1.1; }
html.v222-figma-ui #v22713-users-launch .v22713-users-copy small { color:var(--muted);font-size:8px;line-height:1.2; }
html.v222-figma-ui #v22713-users-launch .v22713-users-count {
  min-width:22px;height:22px;padding:0 6px;display:grid;place-items:center;
  border-radius:999px;background:var(--brand-soft);color:var(--brand);
  font-size:8px;font-weight:900;
}
html.v222-figma-ui #v22713-users-launch .v22713-users-chevron { color:var(--muted);font-size:16px; }
html.v222-figma-ui #usersPanel.v22713-inline-users {
  margin:6px 0 0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  overflow:visible !important;
  box-shadow:none !important;
}
html.v222-figma-ui #usersPanel.v22713-inline-users > #toggleUsersPanel { display:none !important; }
html.v222-figma-ui #usersPanel.v22713-inline-users > #usersPanelContent {
  margin:0 !important;
  padding:8px !important;
  border:1px solid var(--line) !important;
  border-radius:12px !important;
  background:var(--panel-2) !important;
  box-shadow:0 8px 22px rgba(5,15,29,.06) !important;
}
html[data-theme="dark"].v222-figma-ui #v22713-users-launch,
html[data-theme="dark"].v222-figma-ui #usersPanel.v22713-inline-users > #usersPanelContent {
  background:#0e1a2a !important;
  border-color:#283b52 !important;
}

/* Cabeçalho de grupo: Mostrar / Ocultar / lixeira na mesma linha. */
html.v224-ui .v223-group-actions.v227-visibility-actions {
  grid-template-columns:minmax(78px,1fr) minmax(78px,1fr) 34px !important;
  gap:5px !important;
}
html.v224-ui .v223-group-actions.v227-visibility-actions button {
  min-width:0 !important;
}
html.v224-ui .v223-group-actions.v227-visibility-actions .v22713-group-delete {
  grid-column:auto !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:29px !important;
  min-height:29px !important;
  padding:0 !important;
  display:grid !important;
  place-items:center !important;
  border-radius:9px !important;
  color:#dc4c5a !important;
  border-color:color-mix(in srgb,#dc4c5a 28%,var(--line)) !important;
  background:color-mix(in srgb,#dc4c5a 5%,var(--panel)) !important;
  box-shadow:none !important;
}
html.v224-ui .v223-group-actions.v227-visibility-actions .v22713-group-delete:hover {
  color:#fff !important;
  border-color:#dc4c5a !important;
  background:#dc4c5a !important;
  transform:translateY(-1px) !important;
}
html.v224-ui .v223-group-actions.v227-visibility-actions .v22713-group-delete span {
  font-size:12px;line-height:1;
}
@media(max-width:768px){
  html.v224-ui .project-group-summary .v223-group-actions.v227-visibility-actions {
    grid-template-columns:1fr 1fr 36px !important;
    width:100% !important;
  }
  html.v224-ui .project-group-summary .v22713-group-delete {
    grid-column:auto !important;
    width:36px !important;
    min-width:36px !important;
    max-width:36px !important;
    min-height:38px !important;
    height:38px !important;
  }
}


/* =====================================================================
   VMAPS V2.27.14 — TIPOGRAFIA MAIS LEGÍVEL
   Aumenta a escala visual sem alterar a estrutura do layout.
   ===================================================================== */
html.v222-figma-ui body {
  font-size:14px !important;
  line-height:1.42;
}

/* Topbar */
html.v222-figma-ui .v222-primary-nav button { font-size:13px !important; }
html.v222-figma-ui .v222-user-copy strong { font-size:13px !important; }
html.v222-figma-ui .v222-user-copy small { font-size:10.5px !important; }
html.v222-figma-ui .v222-logout-button { font-size:12px !important; }
html.v222-figma-ui .v222-product-copy strong { font-size:15px !important; }
html.v222-figma-ui .v222-product-copy small { font-size:10.5px !important; }

/* Sidebar */
html.v222-figma-ui .v222-eyebrow { font-size:9.5px !important; }
html.v222-figma-ui .v222-count-badge { font-size:10.5px !important; }
html.v222-figma-ui #v214-open-dashboard.v222-dashboard-button strong { font-size:12.5px !important; }
html.v222-figma-ui .v222-quick-action { font-size:11.5px !important; }
html.v222-figma-ui .v283-project-content input,
html.v222-figma-ui .v283-project-content select,
html.v222-figma-ui .v283-project-content textarea { font-size:12px !important; }

/* Projetos e árvore */
html.v222-figma-ui .project-group-title strong { font-size:12.5px !important; }
html.v222-figma-ui .project-group-title small,
html.v222-figma-ui .project-meta,
html.v222-figma-ui .project-meta small { font-size:10px !important; }
html.v222-figma-ui .project-reference-title span { font-size:11px !important; }
html.v222-figma-ui .project-reference-title em { font-size:9.5px !important; }
html.v222-figma-ui .v219-reference-expand,
html.v222-figma-ui .v219-reference-path { font-size:10px !important; }
html.v222-figma-ui .v219-source-folder>summary,
html.v222-figma-ui .v220-tree-category>summary,
html.v222-figma-ui .v219-tree-section>summary,
html.v222-figma-ui .v222-pn-node>summary { font-size:10.5px !important; }
html.v222-figma-ui .v222-pn-node>summary b { font-size:11px !important; }
html.v222-figma-ui .v222-pn-node>summary small,
html.v222-figma-ui .v222-pn-node>summary em { font-size:9.5px !important; }
html.v224-ui .v227-visibility-actions button,
html.v224-ui .v220-folder-actions button,
html.v224-ui .v220-tree-tools button { font-size:10.5px !important; }
html.v224-ui .v224-pn-tools button,
html.v224-ui .v227-candidate-tools button { font-size:10px !important; }

/* Cards e ferramentas secundárias */
#v283-secondary-tools .v2-sidebar-tool-title strong { font-size:12px !important; }
#v283-secondary-tools .v2-sidebar-tool-title small { font-size:10px !important; }
#v283-secondary-tools .v2-general-export-actions button,
#v283-secondary-tools #v2-photo-root-button { font-size:10.5px !important; }
#v227-manage-projects strong { font-size:12px !important; }
#v227-manage-projects small { font-size:10px !important; }
.v227-trash-bulk button { font-size:10.5px !important; }
.v227-trash-select { font-size:10px !important; }

/* Usuários */
html.v222-figma-ui #v22713-users-launch .v22713-users-copy strong { font-size:12px !important; }
html.v222-figma-ui #v22713-users-launch .v22713-users-copy small { font-size:10px !important; }
html.v222-figma-ui #v22713-users-launch .v22713-users-count { font-size:10px !important; }
html.v222-figma-ui #usersPanel { font-size:12px !important; }
html.v222-figma-ui #usersPanel button { font-size:11px !important; }

/* Busca de coordenadas */
html.v222-figma-ui #v218-coordinate-input { font-size:11.5px !important; }
html.v222-figma-ui #v218-coordinate-go { font-size:10.5px !important; }
html.v222-figma-ui #v218-coordinate-search .v218-coordinate-result { font-size:11.5px !important; }

/* Modais, formulários e janelas */
html.v222-figma-ui :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card,.v218-trash-card,.v227-pm-shell) {
  font-size:13px !important;
}
html.v222-figma-ui :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card,.v218-trash-card,.v227-pm-shell) label {
  font-size:12px !important;
}
html.v222-figma-ui :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card,.v218-trash-card,.v227-pm-shell) :is(input,select,textarea) {
  font-size:13px !important;
}
html.v222-figma-ui :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card,.v218-trash-card,.v227-pm-shell) button {
  font-size:12px !important;
}
.v227-pm-shell>header span { font-size:10px !important; }
.v227-pm-shell>header p { font-size:11px !important; }
.v227-pm-row strong { font-size:12px !important; }
.v227-pm-row small,.v227-pm-row em { font-size:10px !important; }
.v227-install-card p,.v227-install-card>small { font-size:11px !important; }
.v227-install-steps strong { font-size:12px !important; }
.v227-install-steps span { font-size:11px !important; }

/* Popups e ficha do Candidate */
html.v222-figma-ui .maplibregl-popup-content { font-size:12.5px !important; }
html.v222-figma-ui .popup-title,
html.v222-figma-ui #webgis-candidate-info-window .popup-title { font-size:16px !important; }
html.v222-figma-ui :is(.popup-desc,.popup-coordinates,.popup-status),
html.v222-figma-ui #webgis-candidate-info-window .project-meta { font-size:11.5px !important; }
html.v222-figma-ui .maplibregl-popup-content button,
html.v222-figma-ui #webgis-candidate-info-window button { font-size:11px !important; }

/* Dashboard/Central de Operações */
html.v222-figma-ui .v214-panel>header strong { font-size:13px !important; }
html.v222-figma-ui .v214-panel>header small,
html.v222-figma-ui .v214-panel>header>span { font-size:10.5px !important; }
html.v222-figma-ui .v214-project-name strong { font-size:12px !important; }
html.v222-figma-ui .v214-project-name small,
html.v222-figma-ui .v214-progress small,
html.v222-figma-ui .v214-project-metrics span { font-size:10px !important; }
html.v222-figma-ui .v214-mini-row strong,
html.v222-figma-ui .v214-visit-row strong { font-size:11px !important; }
html.v222-figma-ui .v214-mini-row small,
html.v222-figma-ui .v214-visit-row small,
html.v222-figma-ui .v214-mini-row em,
html.v222-figma-ui .v214-visit-row>em,
html.v222-figma-ui .v214-visit-row>span { font-size:9.8px !important; }
html.v222-figma-ui .v214-empty { font-size:11px !important; }
html.v222-figma-ui .v223-analytics>header strong { font-size:13px !important; }
html.v222-figma-ui .v223-analytics>header small,
html.v222-figma-ui .v223-chart-controls select,
html.v222-figma-ui .v223-bars>div,
html.v222-figma-ui .v223-chart-legend span,
html.v222-figma-ui .v223-donut small { font-size:10.5px !important; }
html.v222-figma-ui .v223-dashboard-more>summary { font-size:11.5px !important; }
html.v222-figma-ui .v223-dashboard-more>summary span,
html.v222-figma-ui .v214-dashboard-title-wrap small { font-size:10px !important; }

/* Feedback / avisos */
.v22711-success-toast strong { font-size:12px !important; }
.v22711-success-toast small { font-size:10px !important; }

/* Mobile: mantém legibilidade e evita zoom automático em campos no iPhone. */
@media(max-width:920px){
  html.v222-figma-ui body { font-size:14px !important; }
  html.v222-figma-ui :is(input,select,textarea),
  html.v222-figma-ui .maplibregl-popup-content :is(input,select,textarea),
  html.v222-figma-ui :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card) :is(input,select,textarea) {
    font-size:16px !important;
  }
  html.v222-figma-ui .v222-primary-nav button { font-size:12px !important; }
  html.v222-figma-ui .project-group-title strong { font-size:13px !important; }
  html.v222-figma-ui .project-reference-title span { font-size:11.5px !important; }
}
\n\n/* =====================================================================\n   VMAPS V2.27.15 — TIPOGRAFIA CONFORTÁVEL (NÍVEL 2)\n   Segundo aumento solicitado: prioriza leitura em desktop sem quebrar mobile.\n   ===================================================================== */\nhtml.v222-figma-ui body { font-size:15px !important; line-height:1.46 !important; }\n\n/* Topbar */\nhtml.v222-figma-ui .v222-primary-nav button { font-size:14px !important; }\nhtml.v222-figma-ui .v222-user-copy strong { font-size:14px !important; }\nhtml.v222-figma-ui .v222-user-copy small { font-size:11.5px !important; }\nhtml.v222-figma-ui .v222-logout-button { font-size:13px !important; }\nhtml.v222-figma-ui .v222-product-copy strong { font-size:16px !important; }\nhtml.v222-figma-ui .v222-product-copy small { font-size:11.5px !important; }\n\n/* Sidebar / árvore */\nhtml.v222-figma-ui .v222-eyebrow { font-size:10.5px !important; letter-spacing:.08em !important; }\nhtml.v222-figma-ui .v222-count-badge { font-size:11.5px !important; }\nhtml.v222-figma-ui #v214-open-dashboard.v222-dashboard-button strong { font-size:13.5px !important; }\nhtml.v222-figma-ui .v222-quick-action { font-size:12.5px !important; }\nhtml.v222-figma-ui .project-group-title strong { font-size:13.5px !important; }\nhtml.v222-figma-ui .project-group-title small,\nhtml.v222-figma-ui .project-meta,\nhtml.v222-figma-ui .project-meta small { font-size:11.2px !important; line-height:1.35 !important; }\nhtml.v222-figma-ui .project-reference-title span { font-size:12.5px !important; }\nhtml.v222-figma-ui .project-reference-title em { font-size:10.5px !important; }\nhtml.v222-figma-ui .v219-reference-expand,\nhtml.v222-figma-ui .v219-reference-path { font-size:11px !important; }\nhtml.v222-figma-ui .v219-source-folder>summary,\nhtml.v222-figma-ui .v220-tree-category>summary,\nhtml.v222-figma-ui .v219-tree-section>summary,\nhtml.v222-figma-ui .v222-pn-node>summary { font-size:12px !important; }\nhtml.v222-figma-ui .v222-pn-node>summary b { font-size:12.5px !important; }\nhtml.v222-figma-ui .v222-pn-node>summary small,\nhtml.v222-figma-ui .v222-pn-node>summary em { font-size:10.8px !important; }\nhtml.v224-ui .v227-visibility-actions button,\nhtml.v224-ui .v220-folder-actions button,\nhtml.v224-ui .v220-tree-tools button { font-size:11.5px !important; }\nhtml.v224-ui .v224-pn-tools button,\nhtml.v224-ui .v227-candidate-tools button { font-size:11.2px !important; }\n\n/* Cards / ferramentas / usuários */\n#v283-secondary-tools .v2-sidebar-tool-title strong,\n#v227-manage-projects strong,\nhtml.v222-figma-ui #v22713-users-launch .v22713-users-copy strong { font-size:13px !important; }\n#v283-secondary-tools .v2-sidebar-tool-title small,\n#v227-manage-projects small,\nhtml.v222-figma-ui #v22713-users-launch .v22713-users-copy small { font-size:11px !important; }\n#v283-secondary-tools .v2-general-export-actions button,\n#v283-secondary-tools #v2-photo-root-button,\n.v227-trash-bulk button { font-size:11.5px !important; }\n.v227-trash-select { font-size:11px !important; }\nhtml.v222-figma-ui #usersPanel { font-size:13px !important; }\nhtml.v222-figma-ui #usersPanel button { font-size:12px !important; }\n\n/* Busca */\nhtml.v222-figma-ui #v218-coordinate-input { font-size:13px !important; }\nhtml.v222-figma-ui #v218-coordinate-go { font-size:11.5px !important; }\nhtml.v222-figma-ui #v218-coordinate-search .v218-coordinate-result { font-size:12.5px !important; }\n\n/* Modais / formulários */\nhtml.v222-figma-ui :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card,.v218-trash-card,.v227-pm-shell) { font-size:14px !important; }\nhtml.v222-figma-ui :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card,.v218-trash-card,.v227-pm-shell) label { font-size:13px !important; }\nhtml.v222-figma-ui :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card,.v218-trash-card,.v227-pm-shell) :is(input,select,textarea) { font-size:14px !important; }\nhtml.v222-figma-ui :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card,.v218-trash-card,.v227-pm-shell) button { font-size:13px !important; }\n\n/* Candidate / popup / editor de localização */\nhtml.v222-figma-ui .maplibregl-popup-content { font-size:13.5px !important; }\nhtml.v222-figma-ui .popup-title,\nhtml.v222-figma-ui #webgis-candidate-info-window .popup-title { font-size:17px !important; }\nhtml.v222-figma-ui :is(.popup-desc,.popup-coordinates,.popup-status),\nhtml.v222-figma-ui #webgis-candidate-info-window .project-meta { font-size:12.5px !important; }\nhtml.v222-figma-ui .maplibregl-popup-content button,\nhtml.v222-figma-ui #webgis-candidate-info-window button { font-size:12px !important; }\n#webgis-candidate-edit-window { font-size:14px !important; }\n#webgis-candidate-edit-window .candidate-location-editor-title { font-size:18px !important; }\n#webgis-candidate-edit-window button { font-size:12.5px !important; }\n#webgis-candidate-edit-window :is(input,textarea) { font-size:14px !important; }\n\n/* Dashboard */\nhtml.v222-figma-ui .v214-panel>header strong,\nhtml.v222-figma-ui .v223-analytics>header strong { font-size:14px !important; }\nhtml.v222-figma-ui .v214-panel>header small,\nhtml.v222-figma-ui .v214-panel>header>span,\nhtml.v222-figma-ui .v223-analytics>header small { font-size:11.5px !important; }\nhtml.v222-figma-ui .v214-project-name strong { font-size:13px !important; }\nhtml.v222-figma-ui .v214-project-name small,\nhtml.v222-figma-ui .v214-progress small,\nhtml.v222-figma-ui .v214-project-metrics span { font-size:11px !important; }\nhtml.v222-figma-ui .v214-mini-row strong,\nhtml.v222-figma-ui .v214-visit-row strong { font-size:12px !important; }\nhtml.v222-figma-ui .v214-mini-row small,\nhtml.v222-figma-ui .v214-visit-row small,\nhtml.v222-figma-ui .v214-mini-row em,\nhtml.v222-figma-ui .v214-visit-row>em,\nhtml.v222-figma-ui .v214-visit-row>span { font-size:10.8px !important; }\n\n@media(max-width:920px){\n  html.v222-figma-ui body { font-size:15px !important; }\n  html.v222-figma-ui :is(input,select,textarea),\n  html.v222-figma-ui .maplibregl-popup-content :is(input,select,textarea),\n  html.v222-figma-ui :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card) :is(input,select,textarea),\n  #webgis-candidate-edit-window :is(input,textarea) { font-size:16px !important; }\n  html.v222-figma-ui .v222-primary-nav button { font-size:13px !important; }\n  html.v222-figma-ui .project-group-title strong { font-size:14px !important; }\n  html.v222-figma-ui .project-reference-title span { font-size:12.5px !important; }\n}\n

/* =====================================================================
   VMAPS V2.27.16 — USUÁRIOS LEGÍVEIS + SUBPASTAS SEM APERTO
   ===================================================================== */
/* Usuários cadastrados: os estilos antigos ainda prendiam nomes em 10.5px/8px. */
html.v222-figma-ui #usersList .v290-users-group-title {
  font-size:12px !important;
  padding:5px 3px 7px !important;
}
html.v222-figma-ui #usersList .v290-user-card {
  grid-template-columns:40px minmax(0,1fr) 36px !important;
  gap:9px !important;
  padding:10px !important;
  border-radius:12px !important;
}
html.v222-figma-ui #usersList .v290-user-avatar {
  width:38px !important;height:38px !important;font-size:13px !important;
}
html.v222-figma-ui #usersList .v290-user-main strong {
  font-size:14px !important;line-height:1.25 !important;
}
html.v222-figma-ui #usersList .v290-user-main small {
  font-size:12px !important;line-height:1.3 !important;
}
html.v222-figma-ui #usersList .v290-role-pill {
  font-size:10.5px !important;padding:3px 7px !important;
}
html.v222-figma-ui #usersList .v290-role-change select,
html.v222-figma-ui #usersList .v290-role-change button,
html.v222-figma-ui #usersList .v290-make-super,
html.v222-figma-ui #usersList .v290-delete-user {
  font-size:11.5px !important;min-height:36px !important;
}
html.v222-figma-ui #usersList .v290-users-empty,
html.v222-figma-ui #usersList .v290-rejected-users summary,
html.v222-figma-ui #usersList .v290-rejected-row,
html.v222-figma-ui #usersList .v290-new-user-form label,
html.v222-figma-ui #usersList .v290-new-user-form small {
  font-size:11.5px !important;
}
html.v222-figma-ui #v22713-users-launch .v22713-users-copy strong { font-size:14px !important; }
html.v222-figma-ui #v22713-users-launch .v22713-users-copy small { font-size:12px !important; }
html.v222-figma-ui #v22713-users-launch .v22713-users-count { font-size:11px !important; }

/* Subpasta: nome em cima e ações com espaço real, sem cortar Excluir. */
html.v222-figma-ui .v219-source-folder > summary {
  flex-wrap:wrap !important;
  row-gap:7px !important;
  padding:8px !important;
}
html.v222-figma-ui .v219-source-folder > summary .v220-folder-actions {
  flex:0 0 100% !important;
  width:100% !important;
  margin:0 !important;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:6px !important;
}
html.v222-figma-ui .v220-folder-actions button {
  width:100% !important;
  min-width:0 !important;
  min-height:36px !important;
  padding:6px 5px !important;
  font-size:11.5px !important;
  white-space:nowrap !important;
}
html.v222-figma-ui .v220-folder-actions .v278-delete-folder {
  font-size:11.5px !important;
}

/* Editor: sem convite para criar centro artificial. */
#webgis-candidate-edit-window .candidate-point-selector-grid-v212 {
  align-items:stretch !important;
}
#webgis-candidate-edit-window .candidate-suggestion-point-btn {
  min-width:82px !important;
}

@media(max-width:920px){
  html.v222-figma-ui #usersList .v290-user-main strong { font-size:14px !important; }
  html.v222-figma-ui #usersList .v290-user-main small { font-size:12px !important; }
  html.v222-figma-ui .v219-source-folder > summary .v220-folder-actions {
    grid-template-columns:1fr 1fr !important;
  }
}


/* =====================================================================
   VMAPS V2.27.17 — PALETA OFICIAL LIGHT / DARK
   Base light: #cbdad5 | Base dark: #3a415a
   Mantém cores semânticas (ação/sucesso/alerta/erro/status) independentes.
   ===================================================================== */
:root,
html[data-theme="light"] {
  --bg: #cbdad5 !important;
  --panel: #dce7e3 !important;
  --line: #9fb3ac !important;
  --text: #17231f !important;
  --muted: #53645f !important;
  --vmaps-base: #cbdad5;
  --vmaps-surface: #dce7e3;
  --vmaps-surface-2: #e9f0ee;
  --vmaps-deep: #b4c7c1;
  --vmaps-line: #9fb3ac;
  --vmaps-text: #17231f;
  --vmaps-muted: #53645f;
}

html[data-theme="dark"] {
  --bg: #3a415a !important;
  --panel: #454d69 !important;
  --line: #68728f !important;
  --text: #f7f8ff !important;
  --muted: #c4cadd !important;
  --vmaps-base: #3a415a;
  --vmaps-surface: #454d69;
  --vmaps-surface-2: #30364a;
  --vmaps-deep: #2e3448;
  --vmaps-line: #68728f;
  --vmaps-text: #f7f8ff;
  --vmaps-muted: #c4cadd;
}

html[data-theme="light"] body,
html[data-theme="light"] .app-screen,
html[data-theme="dark"] body,
html[data-theme="dark"] .app-screen {
  background: var(--vmaps-base) !important;
  color: var(--vmaps-text) !important;
}

/* Login */
html[data-theme="light"] .login-screen,
html[data-theme="dark"] .login-screen {
  background: var(--vmaps-base) !important;
}
html[data-theme="light"] .login-card,
html[data-theme="dark"] .login-card {
  background: var(--vmaps-surface) !important;
  color: var(--vmaps-text) !important;
  border: 1px solid var(--vmaps-line) !important;
}

/* Estrutura principal */
html.v222-figma-ui[data-theme="light"] .topbar,
html.v222-figma-ui[data-theme="light"] .sidebar,
html.v222-figma-ui[data-theme="dark"] .topbar,
html.v222-figma-ui[data-theme="dark"] .sidebar {
  background: var(--vmaps-base) !important;
  color: var(--vmaps-text) !important;
  border-color: var(--vmaps-line) !important;
}

html.v222-figma-ui[data-theme="light"] .v222-primary-nav,
html.v222-figma-ui[data-theme="dark"] .v222-primary-nav {
  border-color: var(--vmaps-line) !important;
}
html.v222-figma-ui[data-theme="light"] .v222-primary-nav button,
html.v222-figma-ui[data-theme="dark"] .v222-primary-nav button {
  color: var(--vmaps-text) !important;
  border-color: var(--vmaps-line) !important;
  background: transparent !important;
}
html.v222-figma-ui[data-theme="light"] .v222-primary-nav button:hover,
html.v222-figma-ui[data-theme="light"] .v222-primary-nav button.active,
html.v222-figma-ui[data-theme="dark"] .v222-primary-nav button:hover,
html.v222-figma-ui[data-theme="dark"] .v222-primary-nav button.active {
  background: var(--vmaps-surface) !important;
  color: var(--brand) !important;
}

/* Controles do topo */
html.v222-figma-ui[data-theme="light"] :is(.theme-toggle,.v222-user-panel,.v222-logout-button),
html.v222-figma-ui[data-theme="dark"] :is(.theme-toggle,.v222-user-panel,.v222-logout-button) {
  background: var(--vmaps-surface) !important;
  color: var(--vmaps-text) !important;
  border-color: var(--vmaps-line) !important;
}

/* Cards e lançadores da sidebar */
html.v222-figma-ui[data-theme="light"] :is(
  .v214-dashboard-launch,.v217-workflow-launch,#v22713-users-launch,#v227-manage-projects,
  .v218-trash-launch,.v2-sidebar-tool,.v2-sidebar-tool-card,.color-panel
),
html.v222-figma-ui[data-theme="dark"] :is(
  .v214-dashboard-launch,.v217-workflow-launch,#v22713-users-launch,#v227-manage-projects,
  .v218-trash-launch,.v2-sidebar-tool,.v2-sidebar-tool-card,.color-panel
) {
  background: var(--vmaps-surface) !important;
  color: var(--vmaps-text) !important;
  border-color: var(--vmaps-line) !important;
  box-shadow: none !important;
}

/* Busca, projetos e árvore */
html.v222-figma-ui[data-theme="light"] :is(
  .v283-project-content .v2-project-search-wrap,.project-group-summary,.project-reference-row,
  .v219-source-folder,.v220-tree-category,.v222-pn-node,.v219-tree-section
),
html.v222-figma-ui[data-theme="dark"] :is(
  .v283-project-content .v2-project-search-wrap,.project-group-summary,.project-reference-row,
  .v219-source-folder,.v220-tree-category,.v222-pn-node,.v219-tree-section
) {
  background: var(--vmaps-surface) !important;
  color: var(--vmaps-text) !important;
  border-color: var(--vmaps-line) !important;
}
html.v222-figma-ui[data-theme="light"] :is(.v219-source-folder>summary,.v220-tree-category>summary,.v222-pn-node>summary):hover,
html.v222-figma-ui[data-theme="dark"] :is(.v219-source-folder>summary,.v220-tree-category>summary,.v222-pn-node>summary):hover {
  background: var(--vmaps-surface-2) !important;
}

/* Inputs e busca de coordenada */
html[data-theme="light"] :is(input:not([type="color"]),select,textarea),
html[data-theme="dark"] :is(input:not([type="color"]),select,textarea) {
  background: var(--vmaps-surface-2) !important;
  color: var(--vmaps-text) !important;
  border-color: var(--vmaps-line) !important;
}
html[data-theme="light"] :is(input,textarea)::placeholder,
html[data-theme="dark"] :is(input,textarea)::placeholder { color: var(--vmaps-muted) !important; }

html[data-theme="light"] #v218-coordinate-search,
html[data-theme="dark"] #v218-coordinate-search {
  background: var(--vmaps-surface) !important;
  border-color: var(--vmaps-line) !important;
  color: var(--vmaps-text) !important;
}

/* Botões neutros — cores semânticas permanecem intactas */
html[data-theme="light"] :is(.ghost-button,.icon-button,.sidebar-toggle),
html[data-theme="dark"] :is(.ghost-button,.icon-button,.sidebar-toggle) {
  background: var(--vmaps-surface) !important;
  color: var(--vmaps-text) !important;
  border-color: var(--vmaps-line) !important;
}
html[data-theme="light"] :is(.v227-visibility-actions,.v220-folder-actions,.v220-tree-tools) button:not(.v278-delete-folder):not(.v22713-group-delete),
html[data-theme="dark"] :is(.v227-visibility-actions,.v220-folder-actions,.v220-tree-tools) button:not(.v278-delete-folder):not(.v22713-group-delete) {
  background: var(--vmaps-surface-2) !important;
  border-color: var(--vmaps-line) !important;
}

/* Modais / janelas / popup */
html[data-theme="light"] :is(
  .modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card,
  .v218-trash-card,.v227-pm-shell,#webgis-candidate-info-window,#webgis-candidate-edit-window,
  .maplibregl-popup-content
),
html[data-theme="dark"] :is(
  .modal-card,.field-modal-card,.field-history-modal-card,.v217-modal-card,.v290-register-card,
  .v218-trash-card,.v227-pm-shell,#webgis-candidate-info-window,#webgis-candidate-edit-window,
  .maplibregl-popup-content
) {
  background: var(--vmaps-surface) !important;
  color: var(--vmaps-text) !important;
  border-color: var(--vmaps-line) !important;
}

/* Gestão de usuários */
html[data-theme="light"] :is(#usersPanel,.v290-user-card,.v290-users-panel,.v290-new-user-form),
html[data-theme="dark"] :is(#usersPanel,.v290-user-card,.v290-users-panel,.v290-new-user-form) {
  background: var(--vmaps-surface) !important;
  color: var(--vmaps-text) !important;
  border-color: var(--vmaps-line) !important;
}

/* Dashboard e central operacional */
html[data-theme="light"] :is(.v214-dashboard-shell,.v214-panel,.v214-kpi,.v214-dashboard-footer,.v223-analytics),
html[data-theme="dark"] :is(.v214-dashboard-shell,.v214-panel,.v214-kpi,.v214-dashboard-footer,.v223-analytics) {
  background: var(--vmaps-surface) !important;
  color: var(--vmaps-text) !important;
  border-color: var(--vmaps-line) !important;
}
html[data-theme="light"] .v214-dashboard-body,
html[data-theme="dark"] .v214-dashboard-body {
  background: var(--vmaps-base) !important;
}

/* Textos secundários seguem a paleta */
html[data-theme="light"] :is(.project-meta,.v222-user-copy small,.v2-sidebar-tool-title small,.v218-trash-launch-copy small),
html[data-theme="dark"] :is(.project-meta,.v222-user-copy small,.v2-sidebar-tool-title small,.v218-trash-launch-copy small) {
  color: var(--vmaps-muted) !important;
}

/* Controles nativos do mapa */
html[data-theme="light"] .maplibregl-ctrl-group,
html[data-theme="dark"] .maplibregl-ctrl-group,
html[data-theme="light"] .maplibregl-ctrl-group button,
html[data-theme="dark"] .maplibregl-ctrl-group button {
  background: var(--vmaps-surface) !important;
  border-color: var(--vmaps-line) !important;
}
html[data-theme="light"] .maplibregl-ctrl-icon,
html[data-theme="dark"] .maplibregl-ctrl-icon { filter:none; }

/* Scrollbar coerente com a paleta */
html[data-theme="light"] :is(.sidebar,#projectsList,.projects-list)::-webkit-scrollbar-thumb,
html[data-theme="dark"] :is(.sidebar,#projectsList,.projects-list)::-webkit-scrollbar-thumb {
  background: var(--vmaps-line) !important;
}

/* =====================================================================
   VMAPS V2.27.18 — PALETA OFICIAL CONSOLIDADA + ALINHAMENTO GERAL
   Bases: dark #3a415a | light #cbdad5
   Esta camada final elimina cores legadas e normaliza componentes vistos nos prints.
   ===================================================================== */
:root,
html[data-theme="light"] {
  --vmaps-base:#cbdad5 !important;
  --vmaps-surface:#d7e3df !important;
  --vmaps-surface-2:#e3ece9 !important;
  --vmaps-surface-3:#b7cbc4 !important;
  --vmaps-deep:#9fb8af !important;
  --vmaps-line:#90aaa1 !important;
  --vmaps-text:#17231f !important;
  --vmaps-muted:#50645d !important;
  --vmaps-action:#aec4bc !important;
  --vmaps-action-hover:#9fb8af !important;
  --vmaps-action-text:#17231f !important;
  --panel:var(--vmaps-surface) !important;
  --panel-2:var(--vmaps-surface-2) !important;
  --panel-3:var(--vmaps-surface-3) !important;
  --bg:var(--vmaps-base) !important;
  --line:var(--vmaps-line) !important;
  --text:var(--vmaps-text) !important;
  --muted:var(--vmaps-muted) !important;
}
html[data-theme="dark"] {
  --vmaps-base:#3a415a !important;
  --vmaps-surface:#454d69 !important;
  --vmaps-surface-2:#505975 !important;
  --vmaps-surface-3:#30364a !important;
  --vmaps-deep:#252b3c !important;
  --vmaps-line:#6a7593 !important;
  --vmaps-text:#f7f8ff !important;
  --vmaps-muted:#cbd0df !important;
  --vmaps-action:#59627f !important;
  --vmaps-action-hover:#687391 !important;
  --vmaps-action-text:#ffffff !important;
  --panel:var(--vmaps-surface) !important;
  --panel-2:var(--vmaps-surface-2) !important;
  --panel-3:var(--vmaps-surface-3) !important;
  --bg:var(--vmaps-base) !important;
  --line:var(--vmaps-line) !important;
  --text:var(--vmaps-text) !important;
  --muted:var(--vmaps-muted) !important;
}

/* LOGIN + SOLICITAR ACESSO */
html[data-theme="light"] .login-screen,
html[data-theme="dark"] .login-screen {
  background:linear-gradient(135deg,var(--vmaps-base),color-mix(in srgb,var(--vmaps-base) 82%,var(--vmaps-deep))) !important;
}
html[data-theme="light"] .login-card.v222-login-card,
html[data-theme="dark"] .login-card.v222-login-card,
html[data-theme="light"] .v290-register-card,
html[data-theme="dark"] .v290-register-card {
  background:var(--vmaps-surface) !important;
  border-color:var(--vmaps-line) !important;
  color:var(--vmaps-text) !important;
  box-shadow:0 22px 56px color-mix(in srgb,var(--vmaps-deep) 28%,transparent) !important;
}
html[data-theme="light"] .v290-register-modal,
html[data-theme="dark"] .v290-register-modal {
  background:color-mix(in srgb,var(--vmaps-deep) 62%,transparent) !important;
  backdrop-filter:blur(8px) !important;
}
html[data-theme="light"] :is(.login-card,.v290-register-card) :is(input,select,textarea,.v290-login-preview,.v290-role-choice span,#v290-register-close),
html[data-theme="dark"] :is(.login-card,.v290-register-card) :is(input,select,textarea,.v290-login-preview,.v290-role-choice span,#v290-register-close) {
  background:var(--vmaps-surface-2) !important;
  border-color:var(--vmaps-line) !important;
  color:var(--vmaps-text) !important;
}
html[data-theme="light"] .v290-role-choice input:checked + span,
html[data-theme="dark"] .v290-role-choice input:checked + span {
  background:var(--vmaps-surface-3) !important;
  border-color:var(--vmaps-deep) !important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--vmaps-line) 40%,transparent) !important;
}
html[data-theme="light"] :is(.login-card .primary,.v290-register-card .primary,.v290-register-link),
html[data-theme="dark"] :is(.login-card .primary,.v290-register-card .primary,.v290-register-link) {
  background:var(--vmaps-action) !important;
  color:var(--vmaps-action-text) !important;
  border:1px solid var(--vmaps-line) !important;
  box-shadow:none !important;
}
html[data-theme="light"] :is(.login-card .primary,.v290-register-card .primary,.v290-register-link):hover,
html[data-theme="dark"] :is(.login-card .primary,.v290-register-card .primary,.v290-register-link):hover {
  background:var(--vmaps-action-hover) !important;
}

/* LOGO DA TOPBAR: maior, sem placa, sombra ou linha decorativa. */
html.v224-ui .v2161-topbar-brand,
html[data-theme="light"].v224-ui .v2161-topbar-brand,
html[data-theme="dark"].v224-ui .v2161-topbar-brand {
  width:132px !important;
  min-width:132px !important;
  max-width:132px !important;
  height:82px !important;
  margin:0 8px 0 0 !important;
  padding:0 !important;
  overflow:visible !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
}
html.v224-ui .v2161-topbar-brand::before,
html.v224-ui .v2161-topbar-brand::after { display:none !important; content:none !important; }
html.v224-ui .v2161-topbar-brand:hover { transform:none !important; box-shadow:none !important; }
html.v224-ui .v2161-topbar-brand img,
html[data-theme="light"].v224-ui .v2161-topbar-brand img,
html[data-theme="dark"].v224-ui .v2161-topbar-brand img {
  width:104px !important;
  height:78px !important;
  max-width:104px !important;
  max-height:78px !important;
  object-fit:contain !important;
  object-position:center !important;
  filter:none !important;
}

/* TOPBAR: controles neutros na paleta oficial. */
html.v222-figma-ui .topbar { background:var(--vmaps-base) !important; border-color:var(--vmaps-line) !important; box-shadow:none !important; }
html.v222-figma-ui :is(.theme-toggle,.v222-user-panel,.v222-logout-button) {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border:1px solid var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui .v222-user-avatar { background:var(--vmaps-surface-3) !important; color:var(--vmaps-text) !important; }
html.v222-figma-ui #logoutButton:hover { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }

/* SIDEBAR / PAINEL DO MAPA */
html.v222-figma-ui .sidebar,
html.v222-figma-ui .sidebar-header,
html.v222-figma-ui .v283-sidebar-section,
html.v222-figma-ui .v283-section-body {
  background:var(--vmaps-base) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
}
html.v222-figma-ui .sidebar-header { box-shadow:none !important; }
html.v222-figma-ui .v283-project-actions > button,
html.v222-figma-ui .v283-project-actions > button.v292-clean-action,
html.v222-figma-ui .v283-project-actions > button.v293-refined-action,
html.v222-figma-ui .v283-project-actions > button.v294-project-action,
html.v222-figma-ui #v283-project-actions #generateFieldKmz,
html.v222-figma-ui #v283-project-actions #openKmzVersions,
html.v222-figma-ui #v283-project-actions #openImport,
html.v222-figma-ui #v283-project-actions #openBaseImport {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border:1px solid var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui .v283-project-actions > button:hover { background:var(--vmaps-surface-2) !important; }
html.v222-figma-ui .v283-project-actions .v290-action-icon { background:var(--vmaps-surface-3) !important; color:var(--vmaps-text) !important; }
html.v222-figma-ui .v283-project-content .v2-project-search-wrap { background:var(--vmaps-surface) !important; border-color:var(--vmaps-line) !important; }

/* Exportar selecionados + pasta das fotos + gestão + lixeira + usuários */
html.v222-figma-ui :is(
  .v2-sidebar-tool,.v2-sidebar-tool-card,.v2-sidebar-export-card,.v2-sidebar-photo-card,
  .v214-dashboard-launch,.v217-workflow-launch,#v22713-users-launch,#v227-manage-projects,
  .v218-trash-launch,#usersPanel,.v283-secondary-tools>*,.color-panel
) {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui :is(
  .v2-sidebar-tool button,.v2-sidebar-tool-card button,.v2-general-export-actions button,#v2-photo-root-button,
  #v22713-users-launch,#v227-manage-projects,.v218-trash-launch
) {
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}

/* Usuários: lista, formulário e botão Novo usuário na paleta oficial. */
html.v222-figma-ui #usersPanelContent,
html.v222-figma-ui .v283-user-search-wrap,
html.v222-figma-ui #usersList,
html.v222-figma-ui .v290-users-group,
html.v222-figma-ui .v290-user-card,
html.v222-figma-ui .v290-new-user-form,
html.v222-figma-ui .v290-rejected-users {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
}
html.v222-figma-ui .v290-user-card {
  grid-template-columns:42px minmax(0,1fr) 38px !important;
  gap:10px !important;
  padding:11px !important;
  margin:0 0 8px !important;
  border:1px solid var(--vmaps-line) !important;
  border-radius:12px !important;
}
html.v222-figma-ui .v290-user-avatar { background:var(--vmaps-surface-3) !important; color:var(--vmaps-text) !important; }
html.v222-figma-ui .v290-user-main { gap:4px 6px !important; }
html.v222-figma-ui .v290-user-main strong { font-size:14px !important; }
html.v222-figma-ui .v290-user-main small { font-size:11.5px !important; color:var(--vmaps-muted) !important; }
html.v222-figma-ui .v290-role-pill { font-size:10px !important; padding:3px 7px !important; background:var(--vmaps-surface-3) !important; color:var(--vmaps-text) !important; }
html.v222-figma-ui .v290-manage-user,
html.v222-figma-ui .v290-form-title button { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui #newUserButton,
html.v222-figma-ui #saveNewUser,
html.v222-figma-ui .v290-new-user-form .primary,
html.v222-figma-ui #usersPanel button.primary {
  background:var(--vmaps-action) !important;
  color:var(--vmaps-action-text) !important;
  border:1px solid var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui #newUserButton:hover,
html.v222-figma-ui #saveNewUser:hover { background:var(--vmaps-action-hover) !important; }
html.v222-figma-ui .v290-new-user-form :is(input,select) { background:var(--vmaps-surface-2) !important; border-color:var(--vmaps-line) !important; color:var(--vmaps-text) !important; }

/* Solicitações pendentes: ações deixam de esmagar nome/login/função. */
html.v222-figma-ui .v290-user-card.is-pending {
  grid-template-columns:42px minmax(0,1fr) !important;
}
html.v222-figma-ui .v290-user-card.is-pending .v290-pending-actions {
  grid-column:1/-1 !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:8px !important;
  margin-top:3px !important;
}
html.v222-figma-ui .v290-pending-actions button {
  width:100% !important;
  height:36px !important;
  min-height:36px !important;
  border-radius:9px !important;
  font-size:0 !important;
}
html.v222-figma-ui .v290-approve-user::after { content:"✓  Aceitar"; font-size:11.5px; font-weight:850; }
html.v222-figma-ui .v290-reject-user::after { content:"×  Recusar"; font-size:11.5px; font-weight:850; }

/* ÁRVORE PN/CANDIDATES: não espremer status, contagem e comandos. */
html.v222-figma-ui .v222-pn-node { background:var(--vmaps-surface) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui .v222-pn-node>summary {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  grid-template-areas:"title count" "actions actions" !important;
  gap:8px !important;
  padding:10px !important;
  align-items:start !important;
  background:var(--vmaps-surface) !important;
}
html.v222-figma-ui .v222-pn-node>summary>.v22711-pn-jump { grid-area:title !important; min-width:0 !important; }
html.v222-figma-ui .v222-pn-node>summary>.v224-pn-tools {
  grid-area:actions !important;
  width:100% !important;
  margin:0 !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:6px !important;
}
html.v222-figma-ui .v222-pn-node>summary>em { grid-area:count !important; white-space:nowrap !important; align-self:start !important; }
html.v222-figma-ui .v224-pn-tools button,
html.v222-figma-ui .v227-candidate-tools button {
  min-width:0 !important;
  width:100% !important;
  min-height:34px !important;
  padding:6px 7px !important;
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
}

/* GESTÃO OPERACIONAL */
html.v222-figma-ui :is(.v217-workflow-shell,.v217-workflow-header,.v217-workflow-filters,.v217-bulkbar,.v217-workflow-meta,.v217-table-wrap,.v217-workflow-footer) {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
}
html.v222-figma-ui .v217-workflow-filters :is(input,select),
html.v222-figma-ui .v217-table select,
html.v222-figma-ui #v217-workflow-refresh {
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui .v217-table thead,
html.v222-figma-ui .v217-table th { background:var(--vmaps-surface-3) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui .v217-table td { background:var(--vmaps-surface) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui .v217-table tbody tr:nth-child(even) td { background:var(--vmaps-surface-2) !important; }
html.v222-figma-ui .v217-table-wrap { margin:0 18px 14px !important; }
html.v222-figma-ui .v217-table { min-width:1260px !important; table-layout:auto !important; }
html.v222-figma-ui .v217-table th:last-child,
html.v222-figma-ui .v217-table td:last-child { min-width:190px !important; width:190px !important; }
html.v222-figma-ui .v217-table td:last-child { white-space:nowrap !important; }
html.v222-figma-ui .v217-table td:last-child button { margin:2px !important; min-height:34px !important; }
html.v222-figma-ui .v217-workflow-footer { padding-right:18px !important; }

/* DASHBOARD / CENTRAL OPERACIONAL */
html.v222-figma-ui :is(
 .v214-dashboard-backdrop,.v214-dashboard-shell,.v214-dashboard-header,.v214-dashboard-body,.v214-dashboard-footer,
 .v214-panel,.v214-kpi,.v214-local-sync,.v215-filterbar,.v215-reportbar,.v223-analytics,.v223-dashboard-more,
 .v217-pipeline-row,.v214-project-row,.v214-mini-row,.v214-visit-row
) {
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
}
html.v222-figma-ui .v214-dashboard-backdrop { background:color-mix(in srgb,var(--vmaps-deep) 55%,transparent) !important; }
html.v222-figma-ui :is(.v214-dashboard-shell,.v214-dashboard-header,.v214-dashboard-footer,.v214-panel,.v214-kpi,.v214-local-sync,.v215-filterbar,.v215-reportbar,.v223-analytics,.v223-dashboard-more) {
  background:var(--vmaps-surface) !important;
  box-shadow:none !important;
}
html.v222-figma-ui .v214-dashboard-body { background:var(--vmaps-base) !important; }
html.v222-figma-ui .v214-dashboard-body :is(input,select) { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui .v214-dashboard-footer button:not(.primary),
html.v222-figma-ui .v214-dashboard-header button,
html.v222-figma-ui .v223-group-actions button { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui .v214-dashboard-footer .primary { background:var(--vmaps-action) !important; color:var(--vmaps-action-text) !important; border-color:var(--vmaps-line) !important; }

/* BUSCAR COORDENADA: paleta + respiro entre Buscar e X. */
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-open .v218-coordinate-content,
html.v222-figma-ui #v218-coordinate-search .v218-coordinate-bar,
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map.is-collapsed {
  background:var(--vmaps-surface) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui #v218-coordinate-search.v222-coordinate-map .v218-coordinate-bar {
  grid-template-columns:28px minmax(0,1fr) 86px 36px !important;
  gap:8px !important;
  padding:3px 5px !important;
  min-height:44px !important;
}
html.v222-figma-ui #v218-coordinate-input { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; padding:0 10px !important; }
html.v222-figma-ui #v218-coordinate-go,
html.v222-figma-ui #v218-coordinate-search .v22712-coordinate-close {
  background:var(--vmaps-action) !important;
  color:var(--vmaps-action-text) !important;
  border:1px solid var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui #v218-coordinate-search .v22712-coordinate-close { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; }

/* MAPA: controles circundados seguem a paleta. */
html.v222-figma-ui :is(#v242-map-tools>button,.maplibregl-ctrl-group,.maplibregl-ctrl-group button,.webgis-basemap-switch,#webgis-basemap-switch,.status-bar) {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui :is(.webgis-basemap-switch,#webgis-basemap-switch) button { color:var(--vmaps-text) !important; background:transparent !important; }
html.v222-figma-ui :is(.webgis-basemap-switch,#webgis-basemap-switch) button.active { background:var(--vmaps-surface-3) !important; color:var(--vmaps-text) !important; }
html.v222-figma-ui .maplibregl-ctrl-attrib { background:var(--vmaps-surface) !important; color:var(--vmaps-text) !important; border-radius:10px !important; }
html.v222-figma-ui .maplibregl-ctrl-attrib a { color:var(--vmaps-text) !important; }

/* POPUPS / RESUMOS / FICHA CANDIDATE / REFERÊNCIA */
html.v222-figma-ui :is(.maplibregl-popup-content,.webgis-info-window,.webgis-summary-window,#webgis-candidate-info-window,#webgis-candidate-edit-window) {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:0 18px 48px color-mix(in srgb,var(--vmaps-deep) 30%,transparent) !important;
}
html.v222-figma-ui :is(.maplibregl-popup-content,.webgis-info-window,.webgis-summary-window,#webgis-candidate-info-window) :is(
  .popup-desc,.project-meta,.v246-info-grid>div,.v246-selected-point,.v246-points,.v250-reference-card,
  .v2-reference-related,.v2-reference-candidate,.candidate-suggestion-card
) {
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
}
html.v222-figma-ui #webgis-candidate-info-window .v246-info-grid {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
}
html.v222-figma-ui #webgis-candidate-info-window .v246-info-grid>div { min-height:64px !important; padding:10px 12px !important; }
html.v222-figma-ui #webgis-candidate-info-window .v246-info-grid>div:last-child:nth-child(odd) { grid-column:1/-1 !important; }
html.v222-figma-ui .webgis-summary-window :is(.summary-card,.summary-section,.summary-stat,.summary-block,[class*="summary-"]) { border-color:var(--vmaps-line) !important; }

/* Editor de sugestão: paleta + ações + cancelar funcional visualmente. */
html.v222-figma-ui #webgis-candidate-edit-window .candidate-location-editor,
html.v222-figma-ui .maplibregl-popup-content .candidate-location-editor {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
}
html.v222-figma-ui #webgis-candidate-edit-window :is(
  .candidate-point-selector,.candidate-suggestion-point-btn,.candidate-editor-summary,.candidate-auto-area-hint,
  .candidate-coordinate-editor,.candidate-use-gps-location-btn,.candidate-points-toggle,.candidate-location-observation-label textarea
) {
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui #webgis-candidate-edit-window .candidate-suggestion-point-btn.active,
html.v222-figma-ui #webgis-candidate-edit-window .candidate-suggestion-point-btn.changed {
  background:var(--vmaps-surface-3) !important;
  border-color:var(--vmaps-deep) !important;
  color:var(--vmaps-text) !important;
}
html.v222-figma-ui #webgis-candidate-edit-window .candidate-location-actions {
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:10px !important;
  background:var(--vmaps-surface) !important;
  padding:10px 0 0 !important;
}
html.v222-figma-ui #webgis-candidate-edit-window .candidate-location-actions button {
  min-height:44px !important;
  margin:0 !important;
  border:1px solid var(--vmaps-line) !important;
  border-radius:10px !important;
  box-shadow:none !important;
}
html.v222-figma-ui #webgis-candidate-edit-window .candidate-cancel-location-btn {
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
}
html.v222-figma-ui #webgis-candidate-edit-window .candidate-save-location-btn {
  background:var(--vmaps-action) !important;
  color:var(--vmaps-action-text) !important;
}

/* Popups de referência: título/metadata em grade e sem desalinhamento. */
html.v222-figma-ui .maplibregl-popup-content .popup-title { margin:0 0 8px !important; }
html.v222-figma-ui .maplibregl-popup-content .popup-desc { padding:10px 12px !important; line-height:1.45 !important; }

@media(max-width:920px){
  html.v224-ui .v2161-topbar-brand { width:84px !important; min-width:84px !important; max-width:84px !important; height:64px !important; }
  html.v224-ui .v2161-topbar-brand img { width:72px !important; height:62px !important; max-width:72px !important; max-height:62px !important; }
  html.v222-figma-ui #webgis-candidate-info-window .v246-info-grid { grid-template-columns:1fr !important; }
  html.v222-figma-ui #webgis-candidate-info-window .v246-info-grid>div:last-child:nth-child(odd) { grid-column:auto !important; }
  html.v222-figma-ui #webgis-candidate-edit-window .candidate-location-actions { grid-template-columns:1fr !important; }
}

/* V2.27.18 — botão real de abertura do novo usuário. */
html.v222-figma-ui #openNewUser {
  background:var(--vmaps-action) !important;
  color:var(--vmaps-action-text) !important;
  border:1px solid var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui #openNewUser:hover { background:var(--vmaps-action-hover) !important; }
\n\n/* =====================================================================
   VMAPS V2.27.19 — PALETA TOTAL + LOGO LIMPA
   Elimina vazamentos de cores legadas e preenche todo o shell com a
   paleta oficial. Dark #3a415a | Light #cbdad5.
   ===================================================================== */
html.v222-figma-ui[data-theme="light"] {
  --vmaps-base:#cbdad5 !important;
  --vmaps-surface:#d7e3df !important;
  --vmaps-surface-2:#e5eeeb !important;
  --vmaps-surface-3:#b6c8c2 !important;
  --vmaps-deep:#9eb4ad !important;
  --vmaps-line:#8fa79f !important;
  --vmaps-text:#17231f !important;
  --vmaps-muted:#50635d !important;
  --vmaps-accent:#5c7169 !important;
  --vmaps-action:#b3c7c0 !important;
  --vmaps-action-hover:#a5bbb3 !important;
  --vmaps-action-text:#17231f !important;
  --bg:var(--vmaps-base) !important;
  --surface:var(--vmaps-base) !important;
  --panel:var(--vmaps-surface) !important;
  --panel-2:var(--vmaps-surface-2) !important;
  --panel-3:var(--vmaps-surface-3) !important;
  --soft:var(--vmaps-surface-2) !important;
  --input:var(--vmaps-surface-2) !important;
  --line:var(--vmaps-line) !important;
  --border:var(--vmaps-line) !important;
  --text:var(--vmaps-text) !important;
  --ink:var(--vmaps-text) !important;
  --text-soft:var(--vmaps-muted) !important;
  --muted:var(--vmaps-muted) !important;
  --brand:var(--vmaps-accent) !important;
  --brand-dark:var(--vmaps-accent) !important;
  --brand-soft:var(--vmaps-surface-2) !important;
  --shadow:none !important;
}
html.v222-figma-ui[data-theme="dark"] {
  --vmaps-base:#3a415a !important;
  --vmaps-surface:#454d69 !important;
  --vmaps-surface-2:#505975 !important;
  --vmaps-surface-3:#30364a !important;
  --vmaps-deep:#272d3f !important;
  --vmaps-line:#6a7593 !important;
  --vmaps-text:#f7f8ff !important;
  --vmaps-muted:#cbd0df !important;
  --vmaps-accent:#aeb7d2 !important;
  --vmaps-action:#59627f !important;
  --vmaps-action-hover:#687391 !important;
  --vmaps-action-text:#ffffff !important;
  --bg:var(--vmaps-base) !important;
  --surface:var(--vmaps-base) !important;
  --panel:var(--vmaps-surface) !important;
  --panel-2:var(--vmaps-surface-2) !important;
  --panel-3:var(--vmaps-surface-3) !important;
  --soft:var(--vmaps-surface-2) !important;
  --input:var(--vmaps-surface-2) !important;
  --line:var(--vmaps-line) !important;
  --border:var(--vmaps-line) !important;
  --text:var(--vmaps-text) !important;
  --ink:var(--vmaps-text) !important;
  --text-soft:var(--vmaps-muted) !important;
  --muted:var(--vmaps-muted) !important;
  --brand:var(--vmaps-accent) !important;
  --brand-dark:var(--vmaps-accent) !important;
  --brand-soft:var(--vmaps-surface-2) !important;
  --shadow:none !important;
}

/* Shell inteiro: nenhuma faixa antiga entre topbar/sidebar/cards. */
html.v222-figma-ui[data-theme] body,
html.v222-figma-ui[data-theme] #appScreen.app-screen,
html.v222-figma-ui[data-theme] #appScreen .workspace,
html.v222-figma-ui[data-theme] #appScreen .topbar,
html.v222-figma-ui[data-theme] #appScreen .topbar-left,
html.v222-figma-ui[data-theme] #appScreen .topbar-right,
html.v222-figma-ui[data-theme] #appScreen #sidebar.sidebar,
html.v222-figma-ui[data-theme] #appScreen #sidebar .sidebar-header,
html.v222-figma-ui[data-theme] #appScreen #sidebar .v283-project-content,
html.v222-figma-ui[data-theme] #appScreen #sidebar #projectList,
html.v222-figma-ui[data-theme] #appScreen #sidebar .projects-list,
html.v222-figma-ui[data-theme] #appScreen #sidebar #v283-secondary-tools,
html.v222-figma-ui[data-theme] #appScreen #sidebar .v222-sidebar-footer {
  background:var(--vmaps-base) !important;
  background-image:none !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] #appScreen .workspace { column-gap:0 !important; }
html.v222-figma-ui[data-theme] #appScreen #sidebar.sidebar { scrollbar-color:var(--vmaps-line) transparent !important; }

/* Contornos: qualquer borda já existente dentro da interface segue a paleta. */
html.v222-figma-ui[data-theme] :is(
  #loginScreen,#appScreen .topbar,#appScreen .sidebar,#appScreen .sidebar-header,
  #appScreen .v222-primary-nav,#appScreen .topbar-right,
  #appScreen .modal,#appScreen .field-modal,#appScreen .v217-workflow-modal,
  #appScreen .v214-dashboard-backdrop,#usersPanel,#v290-register-modal,
  #webgis-candidate-info-window,#webgis-candidate-edit-window
) :where(*):not(svg):not(path) { border-color:var(--vmaps-line) !important; }

/* Logo da topbar: ocupa o retângulo visual, sem placa, sombra ou fundo branco. */
html.v222-figma-ui { --v222-topbar:92px !important; }
html.v222-figma-ui #appScreen .topbar { min-height:92px !important; height:92px !important; padding:0 14px !important; }
html.v222-figma-ui #appScreen .topbar-left { min-width:150px !important; width:auto !important; gap:6px !important; }
html.v224-ui #appScreen .v2161-topbar-brand,
html.v224-ui[data-theme="light"] #appScreen .v2161-topbar-brand,
html.v224-ui[data-theme="dark"] #appScreen .v2161-topbar-brand {
  width:128px !important;
  min-width:128px !important;
  max-width:128px !important;
  height:88px !important;
  margin:0 4px 0 0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
}
html.v224-ui #appScreen .v2161-topbar-brand::before,
html.v224-ui #appScreen .v2161-topbar-brand::after { display:none !important; content:none !important; }
html.v224-ui #appScreen .v2161-topbar-brand img,
html.v224-ui[data-theme="light"] #appScreen .v2161-topbar-brand img,
html.v224-ui[data-theme="dark"] #appScreen .v2161-topbar-brand img {
  display:block !important;
  width:118px !important;
  height:84px !important;
  max-width:118px !important;
  max-height:84px !important;
  object-fit:contain !important;
  object-position:center !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  filter:none !important;
}

/* Navegação/topbar: superfícies derivadas da paleta, sem azul legado. */
html.v222-figma-ui[data-theme] #appScreen .v222-primary-nav { background:transparent !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui[data-theme] #appScreen .v222-primary-nav button,
html.v222-figma-ui[data-theme] #appScreen :is(.theme-toggle,.v222-user-panel,.v222-logout-button) {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] #appScreen .v222-primary-nav button:is(:hover,.active),
html.v222-figma-ui[data-theme] #appScreen :is(.theme-toggle,.v222-user-panel,.v222-logout-button):hover {
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
}
html.v222-figma-ui[data-theme] #appScreen .v222-primary-nav button.active::after { background:var(--vmaps-accent) !important; }
html.v222-figma-ui[data-theme] #appScreen .v222-user-avatar { background:var(--vmaps-surface-3) !important; color:var(--vmaps-text) !important; }

/* Login e solicitar acesso: alta especificidade para vencer regras antigas. */
html.v222-figma-ui[data-theme] body #loginScreen.login-screen {
  background:var(--vmaps-base) !important;
  background-image:none !important;
}
html.v222-figma-ui[data-theme] body #loginScreen.login-screen .login-card.v222-login-card {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border:1px solid var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] body #loginScreen .v222-login-brand {
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
  margin:0 auto 20px !important;
  justify-content:center !important;
}
html.v222-figma-ui[data-theme] body #loginScreen .v222-login-brand img {
  width:190px !important;
  height:190px !important;
  max-width:190px !important;
  max-height:190px !important;
  object-fit:contain !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] body #loginScreen :is(input,select,textarea) {
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] body #loginScreen :is(label,p) { color:var(--vmaps-muted) !important; }
html.v222-figma-ui[data-theme] body #loginScreen .primary,
html.v222-figma-ui[data-theme] body #loginScreen .v290-register-link {
  background:var(--vmaps-action) !important;
  color:var(--vmaps-action-text) !important;
  border:1px solid var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] body #v290-register-modal.v290-register-modal {
  background:color-mix(in srgb,var(--vmaps-base) 78%,transparent) !important;
  backdrop-filter:blur(8px) !important;
}
html.v222-figma-ui[data-theme] body #v290-register-modal .v290-register-card {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] body #v290-register-modal :is(input,select,textarea,.v290-login-preview,.v290-role-choice span,#v290-register-close) {
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] body #v290-register-modal .v290-role-choice input:checked + span { background:var(--vmaps-surface-3) !important; }
html.v222-figma-ui[data-theme] body #v290-register-modal .primary { background:var(--vmaps-action) !important; color:var(--vmaps-action-text) !important; border-color:var(--vmaps-line) !important; box-shadow:none !important; }

/* Sidebar: cabeçalho, busca, projeto, exportações, fotos, gestão, usuários e lixeira. */
html.v222-figma-ui[data-theme] #sidebar :is(
  .v222-dashboard-button,.v222-quick-action,.v2-project-search-wrap,.project-group-summary,.project-reference-row,
  .v219-source-folder,.v220-tree-category,.v219-tree-section,.v222-pn-node,.v222-candidate-node,
  .v2-sidebar-tool,.v2-sidebar-tool-card,.v2-sidebar-export-card,.v2-sidebar-photo-card,
  .v214-dashboard-launch,.v217-workflow-launch,#v22713-users-launch,#v227-manage-projects,.v218-trash-launch,
  #usersPanel,#usersPanelContent,.color-panel,.new-user-form
) {
  background:var(--vmaps-surface) !important;
  background-image:none !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] #sidebar :is(input,select,textarea) { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui[data-theme] #sidebar :is(.project-meta,small,.v2-sidebar-tool-title small,.v22713-users-copy small) { color:var(--vmaps-muted) !important; }
html.v222-figma-ui[data-theme] #sidebar :is(
  .v222-quick-action,.v2-sidebar-tool button,.v2-sidebar-tool-card button,.v2-general-export-actions button,#v2-photo-root-button,
  .v227-visibility-actions button,.v220-folder-actions button,.v220-tree-tools button,.v224-pn-tools button,.v227-candidate-tools button,
  #openNewUser,#usersPanel button:not(.danger):not(.success)
) {
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] #sidebar :is(.v241-generate-kmz,#openNewUser,#usersPanel button.primary) {
  background:var(--vmaps-action) !important;
  color:var(--vmaps-action-text) !important;
}
html.v222-figma-ui[data-theme] #usersList .v290-user-card,
html.v222-figma-ui[data-theme] #usersList .v290-new-user-form,
html.v222-figma-ui[data-theme] #usersList .v290-pending-card,
html.v222-figma-ui[data-theme] #usersList .v290-rejected-row {
  background:var(--vmaps-surface-2) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] #usersList .v290-user-avatar { background:var(--vmaps-surface-3) !important; color:var(--vmaps-text) !important; }

/* Gestão Operacional / PN-Candidates: tudo na mesma família de superfície. */
html.v222-figma-ui[data-theme] :is(.v217-workflow-modal,.v217-audit-modal) { background:color-mix(in srgb,var(--vmaps-base) 72%,transparent) !important; }
html.v222-figma-ui[data-theme] :is(
  .v217-workflow-shell,.v217-workflow-header,.v217-workflow-filters,.v217-bulkbar,.v217-workflow-meta,
  .v217-table-wrap,.v217-workflow-footer,.v217-audit-shell,.v217-audit-row
) { background:var(--vmaps-surface) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; box-shadow:none !important; }
html.v222-figma-ui[data-theme] .v217-table thead,
html.v222-figma-ui[data-theme] .v217-table th { background:var(--vmaps-surface-3) !important; color:var(--vmaps-text) !important; }
html.v222-figma-ui[data-theme] .v217-table td { background:var(--vmaps-surface) !important; color:var(--vmaps-text) !important; }
html.v222-figma-ui[data-theme] .v217-table tbody tr:nth-child(even) td { background:var(--vmaps-surface-2) !important; }
html.v222-figma-ui[data-theme] .v217-workflow-filters :is(input,select),
html.v222-figma-ui[data-theme] .v217-table select,
html.v222-figma-ui[data-theme] #v217-workflow-refresh { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; box-shadow:none !important; }

/* Central Operacional / Dashboard. */
html.v222-figma-ui[data-theme] .v214-dashboard-backdrop { background:color-mix(in srgb,var(--vmaps-base) 72%,transparent) !important; backdrop-filter:blur(7px) !important; }
html.v222-figma-ui[data-theme] :is(
 .v214-dashboard-shell,.v214-dashboard-header,.v214-dashboard-footer,.v214-panel,.v214-kpi,.v214-local-sync,
 .v215-filterbar,.v215-reportbar,.v223-analytics,.v223-dashboard-more,.v217-pipeline-row,.v214-project-row,.v214-mini-row,.v214-visit-row
) { background:var(--vmaps-surface) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; box-shadow:none !important; }
html.v222-figma-ui[data-theme] .v214-dashboard-body { background:var(--vmaps-base) !important; }
html.v222-figma-ui[data-theme] .v214-dashboard-body :is(input,select) { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui[data-theme] .v214-dashboard-footer :is(button,.primary),
html.v222-figma-ui[data-theme] .v214-dashboard-header button { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; box-shadow:none !important; }
html.v222-figma-ui[data-theme] .v214-dashboard-footer .primary { background:var(--vmaps-action) !important; color:var(--vmaps-action-text) !important; }

/* Busca por coordenada. */
html.v222-figma-ui[data-theme] #v218-coordinate-search,
html.v222-figma-ui[data-theme] #v218-coordinate-search .v218-coordinate-content,
html.v222-figma-ui[data-theme] #v218-coordinate-search .v218-coordinate-bar {
  background:var(--vmaps-surface) !important;
  color:var(--vmaps-text) !important;
  border-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] #v218-coordinate-search .v218-coordinate-bar { grid-template-columns:28px minmax(0,1fr) 86px 38px !important; gap:10px !important; padding:4px 6px !important; }
html.v222-figma-ui[data-theme] #v218-coordinate-input { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui[data-theme] #v218-coordinate-go { background:var(--vmaps-action) !important; color:var(--vmaps-action-text) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui[data-theme] #v218-coordinate-search .v22712-coordinate-close { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }

/* Controles do mapa e status/atribuição circundados. */
html.v222-figma-ui[data-theme] :is(
 #v242-map-tools>button,.maplibregl-ctrl-group,.maplibregl-ctrl-group button,.webgis-basemap-switch,#webgis-basemap-switch,
 .status-bar,.maplibregl-ctrl-attrib,.refresh-map-button,#fitAllButton
) { background:var(--vmaps-surface) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; box-shadow:none !important; }
html.v222-figma-ui[data-theme] :is(.webgis-basemap-switch,#webgis-basemap-switch) button { color:var(--vmaps-text) !important; background:transparent !important; }
html.v222-figma-ui[data-theme] :is(.webgis-basemap-switch,#webgis-basemap-switch) button.active { background:var(--vmaps-surface-3) !important; color:var(--vmaps-text) !important; }
html.v222-figma-ui[data-theme] .maplibregl-ctrl-attrib a { color:var(--vmaps-text) !important; }

/* Popups, referência, ficha, resumo e sugestão. */
html.v222-figma-ui[data-theme] :is(
 .maplibregl-popup-content,.webgis-info-window,.webgis-summary-window,#webgis-candidate-info-window,#webgis-candidate-edit-window,
 .field-modal-card,.field-history-modal-card,.modal-card,.v227-pm-shell,.v218-trash-card
) { background:var(--vmaps-surface) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; box-shadow:none !important; }
html.v222-figma-ui[data-theme] :is(.maplibregl-popup-content,.webgis-info-window,.webgis-summary-window,#webgis-candidate-info-window,#webgis-candidate-edit-window) :is(
 .popup-desc,.project-meta,.v246-info-grid>div,.v246-selected-point,.v246-points,.v250-reference-card,
 .v2-reference-related,.v2-reference-candidate,.candidate-suggestion-card,.candidate-editor-summary,.candidate-auto-area-hint,
 .candidate-coordinate-editor,.candidate-points-toggle,.candidate-use-gps-location-btn,.candidate-suggestion-point-btn
) { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; box-shadow:none !important; }
html.v222-figma-ui[data-theme] #webgis-candidate-info-window .v246-info-grid { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:12px !important; align-items:stretch !important; }
html.v222-figma-ui[data-theme] #webgis-candidate-info-window .v246-info-grid>div { min-height:68px !important; padding:11px 13px !important; display:flex !important; flex-direction:column !important; justify-content:center !important; }
html.v222-figma-ui[data-theme] #webgis-candidate-edit-window .candidate-location-actions { background:var(--vmaps-surface) !important; }
html.v222-figma-ui[data-theme] #webgis-candidate-edit-window .candidate-cancel-location-btn { background:var(--vmaps-surface-2) !important; color:var(--vmaps-text) !important; border-color:var(--vmaps-line) !important; }
html.v222-figma-ui[data-theme] #webgis-candidate-edit-window .candidate-save-location-btn { background:var(--vmaps-action) !important; color:var(--vmaps-action-text) !important; border-color:var(--vmaps-line) !important; }

/* Evita sombras/placas antigas no tema inteiro, exceto marcadores do mapa. */
html.v222-figma-ui[data-theme] :is(
 .login-card,.v290-register-card,.project-group-summary,.project-reference-row,.v219-source-folder,.v220-tree-category,.v222-pn-node,
 .v2-sidebar-tool,.v2-sidebar-tool-card,.v214-dashboard-shell,.v214-panel,.v214-kpi,.v217-workflow-shell,
 .maplibregl-popup-content,.webgis-info-window,.webgis-summary-window,#usersPanel,.v290-user-card
) { box-shadow:none !important; }

@media(max-width:920px){
  html.v222-figma-ui { --v222-topbar:72px !important; }
  html.v222-figma-ui #appScreen .topbar { min-height:72px !important; height:72px !important; }
  html.v224-ui #appScreen .v2161-topbar-brand { width:92px !important; min-width:92px !important; max-width:92px !important; height:70px !important; }
  html.v224-ui #appScreen .v2161-topbar-brand img { width:84px !important; height:68px !important; max-width:84px !important; max-height:68px !important; }
  html.v222-figma-ui[data-theme] #webgis-candidate-info-window .v246-info-grid { grid-template-columns:1fr !important; }
}


/* =========================================================
   V2.27.20 — árvore de projetos 100% integrada à paleta.
   Remove contorno branco/legado visto no light e dark.
   ========================================================= */
html.v222-figma-ui[data-theme] #sidebar :is(
  #projectList,.projects-list,.project-group,.project-group-summary,
  .project-reference-row,.v219-reference-tree,.v219-reference-tree-body,
  .v219-tree-section,.v219-source-folder,.v220-tree-category,
  .v222-pn-node,.v222-candidate-node,details,summary
) {
  border-color:var(--vmaps-line) !important;
  outline-color:var(--vmaps-line) !important;
  box-shadow:none !important;
}
html.v222-figma-ui[data-theme] #sidebar :is(
  .v219-reference-tree-body,.v219-tree-section,.project-group,.projects-list,#projectList
) {
  background:var(--vmaps-base) !important;
}
html.v222-figma-ui[data-theme] #sidebar :is(.project-reference-row,.v219-source-folder,.v220-tree-category,.v222-pn-node,.v222-candidate-node) {
  background:var(--vmaps-surface) !important;
}


/* =========================================================
   V2.27.21 — árvore sem fundo/contorno branco residual.
   O branco vinha do .project-card legado abaixo dos rows.
   ========================================================= */
html.v222-figma-ui[data-theme] #sidebar #projectsList,
html.v222-figma-ui[data-theme] #sidebar .projects-list,
html.v222-figma-ui[data-theme] #sidebar #projectsList .project-card,
html.v222-figma-ui[data-theme] #sidebar #projectsList .project-group-card,
html.v222-figma-ui[data-theme] #sidebar #projectsList .project-reference-list {
  background:var(--vmaps-base) !important;
  background-image:none !important;
  box-shadow:none !important;
  outline:0 !important;
}
html.v222-figma-ui[data-theme] #sidebar #projectsList .project-card,
html.v222-figma-ui[data-theme] #sidebar #projectsList .project-group-card {
  border-color:var(--vmaps-line) !important;
}
html.v222-figma-ui[data-theme] #sidebar #projectsList .project-reference-list {
  border:0 !important;
  padding:0 !important;
  gap:2px !important;
}
html.v222-figma-ui[data-theme] #sidebar #projectsList .project-reference-row {
  background:var(--vmaps-surface) !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  margin:0 !important;
}
html.v222-figma-ui[data-theme] #sidebar #projectsList .project-reference-row + .project-reference-row {
  border-top:1px solid var(--vmaps-line) !important;
}
html.v222-figma-ui[data-theme] #sidebar #projectsList .project-group-summary {
  background:var(--vmaps-surface) !important;
  border-color:var(--vmaps-line) !important;
}

/* =========================================================
   V2.27.22 — OpenStreetMap: painel, marcadores e ações.
   Integrado às paletas VMaps sem cobrir Mapa/Satélite.
   ========================================================= */
.vmaps-osm-panel{
  position:fixed;z-index:1200;right:14px;bottom:126px;
  width:min(390px,calc(100vw - 28px));max-height:min(690px,68dvh);overflow:auto;
  box-sizing:border-box;padding:14px;border:1px solid var(--vmaps-line,#93aaa5);border-radius:14px;
  background:var(--vmaps-surface,#cbdad5);color:var(--vmaps-text,#293048);
  box-shadow:0 12px 35px rgba(0,0,0,.18);font:13px/1.4 system-ui,sans-serif;
}
.vmaps-osm-panel[hidden]{display:none!important}
.vmaps-osm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.vmaps-osm-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.vmaps-osm-head strong{font-size:15px}.vmaps-osm-head small{opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:310px}
.vmaps-osm-close{width:30px;min-width:30px;height:30px;padding:0!important;font-size:20px;line-height:26px}
.vmaps-osm-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:8px 0}
.vmaps-osm-actions-main>button{flex:1 1 150px}
.vmaps-osm-panel button,.vmaps-osm-panel select,#vmaps-osm-launch{
  min-height:34px;padding:7px 10px;border:1px solid var(--vmaps-line,#a4b9b3);border-radius:9px;
  background:var(--vmaps-surface-2,#dce8e4);color:var(--vmaps-text,#293048);cursor:pointer;font:inherit;font-weight:650;
}
.vmaps-osm-panel button:hover,#vmaps-osm-launch:hover{filter:brightness(.98)}
.vmaps-osm-panel button[aria-pressed="true"]{background:#2f766b!important;color:#fff!important;border-color:#2f766b!important}
.vmaps-osm-panel button:focus-visible,#vmaps-osm-launch:focus-visible{outline:2px solid #2b9eae;outline-offset:2px}
.vmaps-osm-radius-label{display:inline-flex;align-items:center;gap:6px;font-weight:650}
.vmaps-osm-categories{border:1px solid var(--vmaps-line,#a8b7b2);border-radius:10px;padding:8px 10px;display:flex;flex-wrap:wrap;gap:7px 12px;margin:9px 0}
.vmaps-osm-categories legend{font-weight:700;padding:0 4px}.vmaps-osm-categories label{white-space:nowrap;display:inline-flex;align-items:center;gap:5px}.vmaps-osm-categories input{accent-color:#3a415a}
#vmaps-osm-status{font-weight:650;margin:10px 0 6px}.vmaps-osm-counter{font-size:12px;font-weight:750;margin-bottom:8px;opacity:.8}
.vmaps-osm-info{display:grid;gap:4px;max-height:230px;overflow:auto;margin:8px 0}.vmaps-osm-info:empty{display:none}
.vmaps-osm-info-row{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px;padding:6px 8px;border-radius:8px;background:var(--vmaps-surface-2,#dce8e4)}
.vmaps-osm-info-row span{opacity:.72}.vmaps-osm-info-row strong{overflow-wrap:anywhere}
.vmaps-osm-footnote{display:block;font-size:11px;line-height:1.35;opacity:.72;margin-top:8px}
.vmaps-osm-inline-action{display:flex;justify-content:flex-end;margin-top:10px;padding-top:10px;border-top:1px solid var(--vmaps-line,#a4b9b3)}
.vmaps-osm-inline-action button{min-height:34px;padding:7px 10px;border:1px solid var(--vmaps-line,#a4b9b3);border-radius:9px;background:var(--vmaps-action,#3a415a);color:var(--vmaps-action-text,#fff);cursor:pointer;font-weight:700}
.vmaps-osm-popup p{margin:5px 0}.vmaps-osm-popup button{margin-top:7px;padding:6px 9px;border-radius:8px;border:1px solid #a4b9b3;cursor:pointer}
#vmaps-osm-launch{position:fixed;z-index:1150;right:14px;bottom:74px;background:#3a415a;color:#fff;border-color:#59627d;box-shadow:0 5px 15px rgba(0,0,0,.2)}
html[data-theme="dark"] .vmaps-osm-panel,html.v222-figma-ui[data-theme="dark"] .vmaps-osm-panel{background:var(--vmaps-surface,#3a415a);color:var(--vmaps-text,#fff)}
html[data-theme="dark"] .vmaps-osm-panel button,html[data-theme="dark"] .vmaps-osm-panel select{background:var(--vmaps-surface-2,#4b5570);color:var(--vmaps-text,#fff)}
html[data-theme="dark"] .vmaps-osm-info-row{background:var(--vmaps-surface-2,#4b5570)}
@media(max-width:600px){
  #vmaps-osm-launch{right:12px;bottom:76px}.vmaps-osm-panel{right:10px;bottom:130px;width:calc(100vw - 20px);max-height:58dvh;padding:12px}
  .vmaps-osm-actions>button{flex:1 1 135px}.vmaps-osm-info-row{grid-template-columns:82px minmax(0,1fr)}
}

/* =====================================================================
   VMAPS V2.27.23 — OSM EARTH MODE
   Satélite + nomes/POIs OSM, com consulta avançada somente sob demanda.
   ===================================================================== */
html.v224-ui #webgis-basemap-switch,
html.v224-ui .webgis-basemap-switch{
  display:flex!important;
  align-items:center!important;
  gap:3px!important;
  width:auto!important;
  max-width:calc(100vw - 86px)!important;
}
#webgis-basemap-switch [data-osm-earth-toggle],
.webgis-basemap-switch [data-osm-earth-toggle]{
  min-width:54px!important;
  position:relative;
}
#webgis-basemap-switch [data-osm-earth-toggle].active::before,
.webgis-basemap-switch [data-osm-earth-toggle].active::before{
  content:"";
  width:5px;height:5px;border-radius:50%;
  background:currentColor;
  display:inline-block;
  margin-right:5px;
  vertical-align:1px;
}
#webgis-basemap-switch [data-osm-earth-toggle]:disabled,
.webgis-basemap-switch [data-osm-earth-toggle]:disabled{
  opacity:.42!important;
  cursor:default!important;
}

/* A antiga janela grande vira apenas painel avançado para consultas explícitas. */
.vmaps-osm-panel.vmaps-osm-panel-advanced{
  width:min(390px,calc(100vw - 24px));
  max-height:min(520px,68dvh);
  right:14px;
  bottom:72px;
  border-radius:14px;
  box-shadow:0 14px 38px rgba(17,29,43,.24);
}
#vmaps-osm-launch{display:none!important}

/* Popup estilo Earth: simples, informativo e sem disputar atenção com PN/Candidate. */
.maplibregl-popup.vmaps-osm-earth-map-popup .maplibregl-popup-content{
  padding:0!important;
  border-radius:14px!important;
  overflow:hidden!important;
  background:var(--vmaps-surface,#fff)!important;
  color:var(--vmaps-text,#263446)!important;
  box-shadow:0 16px 44px rgba(13,24,36,.28)!important;
  border:1px solid color-mix(in srgb,var(--vmaps-line,#aab8b4) 70%,transparent)!important;
}
.maplibregl-popup.vmaps-osm-earth-map-popup .maplibregl-popup-close-button{
  z-index:3;width:30px;height:30px;line-height:28px;
  margin:7px;border-radius:50%;font-size:18px;
  color:#fff;background:rgba(20,28,40,.68);
}
.vmaps-osm-earth-card{min-width:270px;max-width:340px}
.vmaps-osm-earth-photo{height:142px;overflow:hidden;background:#d7dfdc}
.vmaps-osm-earth-photo[hidden]{display:none!important}
.vmaps-osm-earth-photo img{display:block;width:100%;height:100%;object-fit:cover}
.vmaps-osm-earth-card-title{
  padding:14px 15px 2px;font-size:16px;font-weight:800;line-height:1.25;
}
.vmaps-osm-earth-card-category{
  padding:0 15px 9px;font-size:12px;font-weight:700;opacity:.68;
}
.vmaps-osm-earth-address{
  margin:0 15px;padding:9px 0;border-top:1px solid var(--vmaps-line,#c7d1ce);
  font-size:12.5px;line-height:1.4;
}
.vmaps-osm-earth-coords{padding:0 15px 10px;font:600 11px/1.25 ui-monospace,SFMono-Regular,Consolas,monospace;opacity:.62}
.vmaps-osm-earth-actions{display:flex;gap:7px;padding:0 15px 12px}
.vmaps-osm-earth-actions button{
  flex:1;min-height:34px;border:1px solid var(--vmaps-line,#aab8b4);border-radius:9px;
  background:var(--vmaps-surface-2,#eef3f1);color:var(--vmaps-text,#263446);
  font-weight:750;cursor:pointer;
}
.vmaps-osm-earth-actions button:hover{filter:brightness(.98)}
.vmaps-osm-earth-source{display:block;padding:0 15px 12px;font-size:10.5px;opacity:.55}

html[data-theme="dark"] .maplibregl-popup.vmaps-osm-earth-map-popup .maplibregl-popup-content,
html.v222-figma-ui[data-theme="dark"] .maplibregl-popup.vmaps-osm-earth-map-popup .maplibregl-popup-content{
  background:var(--vmaps-surface,#3a415a)!important;
  color:var(--vmaps-text,#fff)!important;
}
html[data-theme="dark"] .vmaps-osm-earth-actions button{
  background:var(--vmaps-surface-2,#4b5570);color:var(--vmaps-text,#fff);border-color:#68738f;
}
html[data-theme="dark"] .vmaps-osm-earth-address{border-color:#68738f}

@media (max-width:768px){
  html.v224-ui #webgis-basemap-switch,
  html.v224-ui .webgis-basemap-switch{right:60px!important;max-width:calc(100vw - 76px)!important}
  #webgis-basemap-switch button,.webgis-basemap-switch button{padding-left:9px!important;padding-right:9px!important}
  #webgis-basemap-switch [data-osm-earth-toggle],.webgis-basemap-switch [data-osm-earth-toggle]{min-width:48px!important}
  .vmaps-osm-panel.vmaps-osm-panel-advanced{right:10px;bottom:64px;width:calc(100vw - 20px);max-height:60dvh}
  .vmaps-osm-earth-card{min-width:240px;max-width:310px}
}

/* =====================================================================
   VMAPS V2.27.24 — INTERFACE COMPACTA / MAIS ÁREA DE MAPA
   Ajuste solicitado em 13/10/2026.
   - reduz a altura da topbar no desktop;
   - reduz o logo e controles superiores sem perder legibilidade;
   - reposiciona controles inferiores para a linha visual marcada;
   - não altera mapa, dados, banco ou regras operacionais.
   ===================================================================== */

@media (min-width: 921px) {
  html.v222-figma-ui {
    --v222-topbar: 60px !important;
  }

  html.v222-figma-ui #appScreen .topbar {
    height: 60px !important;
    min-height: 60px !important;
    padding: 0 12px !important;
  }

  html.v222-figma-ui #appScreen .topbar-left {
    min-width: 104px !important;
    width: auto !important;
    gap: 4px !important;
  }

  html.v224-ui #appScreen .v2161-topbar-brand,
  html.v224-ui[data-theme="light"] #appScreen .v2161-topbar-brand,
  html.v224-ui[data-theme="dark"] #appScreen .v2161-topbar-brand {
    width: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
    height: 58px !important;
    margin: 0 4px 0 0 !important;
    padding: 0 !important;
  }

  html.v224-ui #appScreen .v2161-topbar-brand img,
  html.v224-ui[data-theme="light"] #appScreen .v2161-topbar-brand img,
  html.v224-ui[data-theme="dark"] #appScreen .v2161-topbar-brand img {
    width: 88px !important;
    height: 56px !important;
    max-width: 88px !important;
    max-height: 56px !important;
    object-fit: contain !important;
  }

  html.v222-figma-ui #appScreen .v222-primary-nav {
    align-self: stretch !important;
    min-height: 60px !important;
  }

  html.v222-figma-ui #appScreen .v222-primary-nav button {
    min-height: 60px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  html.v222-figma-ui #appScreen .topbar-right {
    gap: 8px !important;
  }

  html.v222-figma-ui #appScreen .theme-toggle,
  html.v222-figma-ui #appScreen .v222-logout-button {
    height: 36px !important;
    min-height: 36px !important;
  }

  html.v222-figma-ui #appScreen .v222-user-avatar {
    width: 34px !important;
    height: 34px !important;
  }

  /* Controles inferiores: borda inferior aproximadamente na linha marcada. */
  html.v224-ui #webgis-basemap-switch,
  html.v224-ui .webgis-basemap-switch {
    bottom: 8px !important;
    right: 72px !important;
  }

  html.v222-figma-ui .refresh-map-button,
  html.v224-ui #refreshMapButton,
  html.v224-ui .refresh-map-button {
    bottom: 8px !important;
    right: 14px !important;
  }

  html.v222-figma-ui .status-bar {
    bottom: 8px !important;
    left: 16px !important;
  }

  /* Painel avançado OSM abre acima dos controles reposicionados. */
  .vmaps-osm-panel.vmaps-osm-panel-advanced {
    bottom: 76px !important;
  }
}


/* =====================================================================
   VMAPS V2.27.25 — CONTROLES INFERIORES MAIS BAIXOS
   Ajuste solicitado em 13/10/2026.
   Mantém os controles praticamente junto à borda inferior do mapa.
   ===================================================================== */
@media (min-width: 921px) {
  html.v224-ui #webgis-basemap-switch,
  html.v224-ui .webgis-basemap-switch {
    bottom: 8px !important;
  }

  html.v222-figma-ui .refresh-map-button,
  html.v224-ui #refreshMapButton,
  html.v224-ui .refresh-map-button {
    bottom: 8px !important;
  }

  html.v222-figma-ui .status-bar {
    bottom: 8px !important;
  }

  .vmaps-osm-panel.vmaps-osm-panel-advanced {
    bottom: 76px !important;
  }
}


/* =====================================================================
   VMAPS V2.27.29 — CORREÇÃO GERAL MOBILE
   Somente <= 760 px. Último bloco do CSS para neutralizar regras antigas.
   ===================================================================== */
@media (max-width: 760px) {
  html.v222-figma-ui { --v222-topbar: 62px !important; --topbar: 62px !important; }
  html.v222-figma-ui, html.v222-figma-ui body { overflow-x: hidden !important; max-width: 100vw !important; }

  /* Topo compacto: logo central, sem sobreposição. */
  html.v222-figma-ui #appScreen .topbar {
    position: relative !important;
    height: 62px !important; min-height: 62px !important;
    padding: 4px 10px !important;
    display: flex !important; align-items: center !important;
    overflow: visible !important; z-index: 22000 !important;
  }
  html.v222-figma-ui #appScreen .topbar-left { display:flex !important; align-items:center !important; min-width:0 !important; }
  html.v222-figma-ui #appScreen #menuButton { position:relative !important; z-index:3 !important; width:46px !important; height:46px !important; }
  html.v224-ui #appScreen .v2161-topbar-brand,
  html.v224-ui[data-theme="light"] #appScreen .v2161-topbar-brand,
  html.v224-ui[data-theme="dark"] #appScreen .v2161-topbar-brand {
    position:absolute !important; left:50% !important; top:50% !important;
    transform:translate(-50%,-50%) !important;
    width:66px !important; min-width:66px !important; max-width:66px !important;
    height:54px !important; margin:0 !important; padding:0 !important;
    border:0 !important; border-radius:0 !important; background:transparent !important;
    box-shadow:none !important; overflow:hidden !important; z-index:2 !important;
  }
  html.v224-ui #appScreen .v2161-topbar-brand::before,
  html.v224-ui #appScreen .v2161-topbar-brand::after { display:none !important; content:none !important; }
  html.v224-ui #appScreen .v2161-topbar-brand img,
  html.v224-ui[data-theme="light"] #appScreen .v2161-topbar-brand img,
  html.v224-ui[data-theme="dark"] #appScreen .v2161-topbar-brand img {
    display:block !important; width:62px !important; height:48px !important;
    max-width:62px !important; max-height:48px !important;
    object-fit:contain !important; object-position:center !important;
    margin:auto !important; transform:none !important;
  }
  html.v222-figma-ui #appScreen .topbar-right { margin-left:auto !important; gap:4px !important; position:relative !important; z-index:3 !important; }
  html.v222-figma-ui #appScreen .v222-user-panel,
  html.v222-figma-ui #appScreen .v222-logout-button { display:none !important; }
  html.v222-figma-ui #appScreen .topbar-right > button,
  html.v222-figma-ui #appScreen .topbar-right > .v212-connectivity-pill,
  html.v222-figma-ui #appScreen .topbar-right > .v281-presence-pill { max-width:52px !important; }

  /* Sidebar: painel inteiramente dentro da tela, sem cards cortados. */
  html.v222-figma-ui #sidebar.sidebar {
    position:fixed !important; top:62px !important; bottom:0 !important; left:0 !important;
    width:min(90vw, 390px) !important; min-width:0 !important; max-width:90vw !important;
    height:calc(100dvh - 62px) !important; margin:0 !important;
    padding:0 12px max(18px, env(safe-area-inset-bottom, 0px)) !important;
    overflow-y:auto !important; overflow-x:hidden !important;
    box-sizing:border-box !important; z-index:26000 !important;
    transform:translateX(-105%) !important;
  }
  html.v222-figma-ui #sidebar.sidebar.open,
  html.v222-figma-ui #sidebar.sidebar.sidebar-open { transform:translateX(0) !important; }
  html.v222-figma-ui #sidebar *, html.v222-figma-ui #sidebar *::before, html.v222-figma-ui #sidebar *::after { box-sizing:border-box !important; }
  html.v222-figma-ui #sidebar :is(.project-card,.project-group,.project-reference-row,.v214-dashboard-launch,.v217-workflow-launch,.v219-reference-tree,.v222-pn-node,.v222-candidate-node,input,select,textarea,button) {
    max-width:100% !important; min-width:0 !important;
  }
  html.v222-figma-ui #sidebar :is(.project-card,.project-group,.v219-reference-tree) { width:100% !important; }

  .v229-mobile-logout {
    display:flex !important; align-items:center !important; gap:10px !important;
    width:100% !important; min-height:50px !important; margin:8px 0 12px !important; padding:8px 12px !important;
    border:1px solid var(--vmaps-line,var(--line)) !important; border-radius:13px !important;
    background:var(--vmaps-surface,var(--panel)) !important; color:var(--vmaps-text,var(--text)) !important; text-align:left !important;
  }
  .v229-mobile-logout > span:first-child { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:var(--vmaps-surface-2,var(--bg)); font-size:18px; }
  .v229-mobile-logout > span:last-child { display:grid; gap:2px; }
  .v229-mobile-logout strong { font-size:13px; } .v229-mobile-logout small { color:var(--muted); font-size:10px; }

  /* Camadas abertas sempre ficam acima da anterior. */
  .v229-mobile-front { z-index:var(--v229-z, 32000) !important; }

  /* Modais clássicos: viewport real, conteúdo centralizado e rolável. */
  :is(.modal,.field-modal,.v217-workflow-modal,.v217-audit-modal,.v218-trash-modal,.v290-register-modal,.v2137-sync-modal,.v21371-conflict-modal):not(.hidden) {
    position:fixed !important; inset:0 !important; width:100vw !important; height:100dvh !important;
    margin:0 !important; padding:max(8px, env(safe-area-inset-top,0px)) 8px max(8px,env(safe-area-inset-bottom,0px)) !important;
    display:flex !important; align-items:center !important; justify-content:center !important;
    overflow:hidden !important; transform:none !important; box-sizing:border-box !important;
  }
  :is(.modal-card,.field-modal-card,.field-history-modal-card,.v217-workflow-shell,.v217-audit-shell,.v218-trash-card,.v290-register-card,.v2137-sync-sheet,.v21371-conflict-sheet) {
    position:relative !important; inset:auto !important; left:auto !important; right:auto !important; top:auto !important; bottom:auto !important;
    width:calc(100vw - 16px) !important; max-width:calc(100vw - 16px) !important;
    max-height:calc(100dvh - 16px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)) !important;
    margin:auto !important; transform:none !important; overflow:auto !important; box-sizing:border-box !important;
  }
  #fieldHistoryModal:not(.hidden) { z-index:37000 !important; }
  #fieldHistoryModal .field-history-modal-card { width:calc(100vw - 16px) !important; max-width:calc(100vw - 16px) !important; }

  /* Campo / Histórico / seletores: bottom sheet consistente e centrado. */
  #v2-field-sheet.v2-field-sheet,
  #v2-picker.v2-picker {
    position:fixed !important; left:0 !important; right:0 !important; bottom:0 !important; top:auto !important;
    width:100vw !important; min-width:0 !important; max-width:100vw !important;
    margin:0 !important; transform:none !important; box-sizing:border-box !important;
    border-radius:20px 20px 0 0 !important; border-left:0 !important; border-right:0 !important; border-bottom:0 !important;
    overflow:hidden !important; padding-bottom:env(safe-area-inset-bottom,0px) !important;
    z-index:33000 !important;
  }
  #v2-field-sheet.v2-field-sheet { max-height:94dvh !important; }
  #v2-picker.v2-picker { max-height:90dvh !important; z-index:35000 !important; }
  #v2-visit-body, #v2-picker-body { width:100% !important; min-width:0 !important; max-width:100% !important; overflow-x:hidden !important; overflow-y:auto !important; box-sizing:border-box !important; }
  .v210-mobile-flowbar { position:sticky !important; top:0 !important; z-index:5 !important; width:100% !important; box-sizing:border-box !important; }

  /* Resumo / informação / edição de Candidate seguem o mesmo padrão. */
  .webgis-summary-window:not(.hidden), #candidateConsolidatedModal:not(.hidden) {
    position:fixed !important; inset:0 !important; width:100vw !important; height:100dvh !important;
    display:flex !important; align-items:flex-end !important; justify-content:center !important;
    padding:0 !important; margin:0 !important; transform:none !important; z-index:32000 !important;
  }
  .webgis-summary-card {
    position:relative !important; width:100vw !important; max-width:100vw !important; max-height:90dvh !important;
    margin:0 !important; border-radius:20px 20px 0 0 !important; overflow:auto !important; transform:none !important; box-sizing:border-box !important;
  }
  #webgis-candidate-info-window.webgis-info-window,
  #webgis-candidate-edit-window.webgis-edit-window {
    position:fixed !important; left:0 !important; right:0 !important; bottom:0 !important; top:auto !important; inset:auto 0 0 0 !important;
    width:100vw !important; min-width:0 !important; max-width:100vw !important; max-height:88dvh !important;
    margin:0 !important; transform:none !important; border-radius:20px 20px 0 0 !important;
    overflow:auto !important; box-sizing:border-box !important; z-index:32500 !important;
  }
  #webgis-candidate-edit-window .webgis-edit-body { max-height:88dvh !important; overflow:auto !important; }
  #webgis-candidate-edit-window .candidate-location-editor { width:100% !important; min-width:0 !important; max-width:100% !important; }

  /* Popups do mapa viram card inferior: nunca cortam nas laterais ou no topo. */
  .maplibregl-popup {
    position:fixed !important; left:8px !important; right:8px !important; bottom:calc(12px + env(safe-area-inset-bottom,0px)) !important; top:auto !important;
    width:auto !important; max-width:none !important; margin:0 !important; transform:none !important; z-index:29000 !important;
  }
  .maplibregl-popup-tip { display:none !important; }
  .maplibregl-popup-content { width:100% !important; max-width:none !important; max-height:72dvh !important; overflow:auto !important; box-sizing:border-box !important; border-radius:16px !important; }

  /* Dashboard e telas operacionais não extrapolam a largura. */
  .v214-dashboard-shell { position:fixed !important; inset:0 !important; width:100vw !important; max-width:100vw !important; height:100dvh !important; max-height:100dvh !important; margin:0 !important; border:0 !important; border-radius:0 !important; box-sizing:border-box !important; }
  .v214-dashboard-body,.v217-workflow-body,.v217-table-wrap { min-width:0 !important; max-width:100vw !important; overflow:auto !important; }
  .v214-dashboard-grid,.v214-kpi-grid,.v214-visit-list { grid-template-columns:1fr !important; }
  .v214-project-row { grid-template-columns:minmax(0,1fr) !important; }

  /* MapTiler e o modo visual Earth foram removidos. */
  #webgis-basemap-switch,.webgis-basemap-switch,[data-osm-earth-toggle] { display:none !important; }
}


/* =====================================================================
   VMAPS V2.27.31 — MOBILE OPERACIONAL
   Navegação principal, ferramentas do mapa, workflow Candidate/PN em cards,
   editor Sugerir localização centralizado e remoção de Locais próximos OSM.
   Somente celular.
   ===================================================================== */
#v231-mobile-nav { display:none; }
[data-vmaps-osm-candidate-explore],
[data-vmaps-osm-pn-explore],
[data-vmaps-osm-info-explore],
.vmaps-osm-inline-action,
#vmaps-osm-panel { display:none !important; }

@media (max-width:760px) {
  /* Navegação que antes só existia no desktop. */
  #v231-mobile-nav.v231-mobile-nav {
    display:block !important;
    width:100% !important;
    margin:6px 0 12px !important;
    padding:10px !important;
    border:1px solid var(--vmaps-line,var(--line)) !important;
    border-radius:14px !important;
    background:var(--vmaps-surface,var(--panel)) !important;
    box-sizing:border-box !important;
  }
  .v231-mobile-nav-title {
    margin:0 0 7px !important;
    color:var(--vmaps-muted,var(--muted)) !important;
    font-size:10px !important;
    font-weight:900 !important;
    letter-spacing:.09em !important;
    text-transform:uppercase !important;
  }
  .v231-mobile-nav-title.v231-map-title { margin-top:12px !important; }
  .v231-mobile-nav-grid,
  .v231-mobile-map-actions {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
  }
  #v231-mobile-nav button {
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:8px !important;
    width:100% !important;
    min-width:0 !important;
    min-height:48px !important;
    margin:0 !important;
    padding:9px 10px !important;
    border:1px solid var(--vmaps-line,var(--line)) !important;
    border-radius:11px !important;
    background:var(--vmaps-surface-2,var(--panel-2)) !important;
    color:var(--vmaps-text,var(--text)) !important;
    font-size:12px !important;
    font-weight:850 !important;
    text-align:left !important;
    box-shadow:none !important;
  }
  #v231-mobile-nav button svg { flex:0 0 auto !important; }
  #v231-mobile-nav button span { min-width:0 !important; overflow-wrap:anywhere !important; }

  /* Gestão Candidates / PN: não usar tabela desktop espremida. */
  #v217WorkflowModal.v217-workflow-modal {
    padding:0 !important;
    align-items:stretch !important;
    justify-content:center !important;
  }
  #v217WorkflowModal .v217-workflow-shell {
    width:100vw !important;
    max-width:100vw !important;
    height:100dvh !important;
    max-height:100dvh !important;
    border-radius:0 !important;
    overflow:hidden !important;
  }
  #v217WorkflowModal .v217-workflow-header {
    flex:0 0 auto !important;
    padding:calc(12px + env(safe-area-inset-top,0px)) 14px 12px !important;
    align-items:flex-start !important;
    gap:10px !important;
  }
  #v217WorkflowModal .v217-workflow-header h2 { font-size:20px !important; line-height:1.15 !important; }
  #v217WorkflowModal .v217-workflow-header p { font-size:11px !important; line-height:1.35 !important; max-width:calc(100vw - 82px) !important; }
  #v217WorkflowModal .v217-workflow-close { flex:0 0 44px !important; width:44px !important; height:44px !important; }

  #v217WorkflowModal .v217-workflow-filters {
    flex:0 0 auto !important;
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    padding:10px 12px !important;
  }
  #v217WorkflowModal .v217-workflow-filters .v217-search,
  #v217WorkflowModal .v217-workflow-filters #v217-workflow-refresh {
    grid-column:1/-1 !important;
  }
  #v217WorkflowModal .v217-workflow-filters select,
  #v217WorkflowModal .v217-workflow-filters input,
  #v217WorkflowModal .v217-workflow-filters button {
    width:100% !important;
    min-width:0 !important;
    min-height:44px !important;
    height:44px !important;
    font-size:16px !important;
  }

  #v217WorkflowModal .v217-bulkbar {
    flex:0 0 auto !important;
    display:grid !important;
    grid-template-columns:1fr auto !important;
    gap:8px !important;
    align-items:center !important;
    padding:9px 12px !important;
  }
  #v217WorkflowModal .v217-bulkbar label { min-height:40px !important; }
  #v217WorkflowModal .v217-bulk-actions {
    grid-column:1/-1 !important;
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    width:100% !important;
    gap:8px !important;
  }
  #v217WorkflowModal .v217-bulk-actions button { min-height:44px !important; font-size:11px !important; }
  #v217WorkflowModal .v217-workflow-meta {
    flex:0 0 auto !important;
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:wrap !important;
    gap:4px 10px !important;
    padding:8px 12px !important;
    font-size:10px !important;
  }

  #v217WorkflowModal .v217-table-wrap {
    flex:1 1 auto !important;
    min-height:0 !important;
    width:100% !important;
    max-width:100% !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding:0 !important;
    -webkit-overflow-scrolling:touch !important;
  }
  #v217WorkflowModal .v217-table {
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    border:0 !important;
  }
  #v217WorkflowModal .v217-table thead { display:none !important; }
  #v217WorkflowModal .v217-table tbody {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    width:100% !important;
    padding:10px 10px calc(20px + env(safe-area-inset-bottom,0px)) !important;
    box-sizing:border-box !important;
  }
  #v217WorkflowModal .v217-table tbody tr {
    position:relative !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:0 !important;
    width:100% !important;
    min-width:0 !important;
    padding:8px 10px !important;
    border:1px solid var(--vmaps-line,var(--line)) !important;
    border-radius:14px !important;
    background:var(--vmaps-surface,var(--panel)) !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }
  #v217WorkflowModal .v217-table tbody tr:hover td { background:transparent !important; }
  #v217WorkflowModal .v217-table td {
    display:grid !important;
    grid-template-columns:104px minmax(0,1fr) !important;
    align-items:center !important;
    gap:8px !important;
    width:100% !important;
    min-width:0 !important;
    padding:8px 0 !important;
    border:0 !important;
    border-bottom:1px solid color-mix(in srgb,var(--vmaps-line,var(--line)) 50%,transparent) !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }
  #v217WorkflowModal .v217-table td:last-child { border-bottom:0 !important; }
  #v217WorkflowModal .v217-table td:not(.v217-check-col)::before {
    content:attr(data-label) !important;
    color:var(--vmaps-muted,var(--muted)) !important;
    font-size:9px !important;
    font-weight:900 !important;
    letter-spacing:.055em !important;
    text-transform:uppercase !important;
    align-self:center !important;
  }
  #v217WorkflowModal .v217-table td > :is(strong,span,small,select,.v217-badge) {
    min-width:0 !important;
    max-width:100% !important;
    overflow-wrap:anywhere !important;
  }
  #v217WorkflowModal .v217-table td select {
    width:100% !important;
    min-width:0 !important;
    min-height:42px !important;
    height:42px !important;
    font-size:14px !important;
  }
  #v217WorkflowModal .v217-check-col {
    position:absolute !important;
    right:10px !important;
    top:10px !important;
    width:32px !important;
    min-width:32px !important;
    padding:0 !important;
    border:0 !important;
    display:block !important;
    z-index:2 !important;
  }
  #v217WorkflowModal .v217-check-col::before { display:none !important; }
  #v217WorkflowModal .v217-check-col input { width:22px !important; height:22px !important; }
  #v217WorkflowModal .v217-table td[data-label="Candidate"] { padding-right:42px !important; }
  #v217WorkflowModal .v217-actions-col {
    grid-template-columns:1fr !important;
    align-items:stretch !important;
  }
  #v217WorkflowModal .v217-actions-col::before { margin-bottom:2px !important; }
  #v217WorkflowModal .v224-workflow-actions {
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:7px !important;
  }
  #v217WorkflowModal .v224-workflow-actions::before { grid-column:1/-1 !important; }
  #v217WorkflowModal .v224-workflow-actions button {
    min-width:0 !important;
    min-height:42px !important;
    padding:7px 5px !important;
    font-size:10px !important;
    white-space:normal !important;
  }
  #v217WorkflowModal .v217-workflow-footer {
    flex:0 0 auto !important;
    padding:7px 10px calc(7px + env(safe-area-inset-bottom,0px)) !important;
  }

  /* Sugerir localização: janela flutuante realmente centralizada. */
  html.v224-ui #webgis-candidate-edit-window.webgis-edit-window,
  #webgis-candidate-edit-window.webgis-edit-window {
    position:fixed !important;
    inset:auto !important;
    left:50% !important;
    top:50% !important;
    right:auto !important;
    bottom:auto !important;
    transform:translate(-50%,-50%) !important;
    width:calc(100vw - 18px) !important;
    max-width:430px !important;
    max-height:calc(100dvh - 24px) !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:18px !important;
    overflow:hidden !important;
    z-index:39000 !important;
    box-sizing:border-box !important;
    box-shadow:0 24px 70px rgba(10,18,30,.38) !important;
  }
  #webgis-candidate-edit-window .webgis-edit-body {
    width:100% !important;
    max-width:100% !important;
    max-height:calc(100dvh - 24px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding:52px 14px calc(16px + env(safe-area-inset-bottom,0px)) !important;
    box-sizing:border-box !important;
  }
  #webgis-candidate-edit-window .candidate-location-editor {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }
  #webgis-candidate-edit-window .webgis-edit-close,
  #webgis-candidate-edit-window .candidate-location-close {
    position:absolute !important;
    top:10px !important;
    right:10px !important;
    z-index:4 !important;
  }
}

@media (max-width:430px) {
  #v217WorkflowModal .v217-workflow-filters { grid-template-columns:1fr !important; }
  #v217WorkflowModal .v217-workflow-filters > * { grid-column:1 !important; }
  #v217WorkflowModal .v217-bulk-actions { grid-template-columns:1fr !important; }
  #v217WorkflowModal .v224-workflow-actions { grid-template-columns:1fr 1fr 1fr !important; }
  #v217WorkflowModal .v217-table td { grid-template-columns:92px minmax(0,1fr) !important; }
}

/* =====================================================================
   VMAPS V2.27.32 — SUGESTÃO DE LOCALIZAÇÃO MOBILE
   SOMENTE CELULAR: bottom-sheet compacto + modo mapa livre para arraste.
   Desktop permanece inalterado.
   ===================================================================== */
@media (max-width:760px) {
  /* Estado inicial: seletor compacto ancorado na parte inferior. */
  html.v224-ui #webgis-candidate-edit-window.webgis-edit-window,
  #webgis-candidate-edit-window.webgis-edit-window {
    position:fixed !important;
    inset:auto 8px calc(8px + env(safe-area-inset-bottom,0px)) 8px !important;
    left:8px !important;
    right:8px !important;
    top:auto !important;
    bottom:calc(8px + env(safe-area-inset-bottom,0px)) !important;
    transform:none !important;
    width:auto !important;
    max-width:none !important;
    max-height:42dvh !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:20px !important;
    overflow:hidden !important;
    z-index:39000 !important;
    box-sizing:border-box !important;
    box-shadow:0 -8px 34px rgba(10,18,30,.22) !important;
  }

  #webgis-candidate-edit-window .webgis-edit-body {
    width:100% !important;
    max-width:100% !important;
    max-height:42dvh !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px)) !important;
    box-sizing:border-box !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;
  }

  #webgis-candidate-edit-window .candidate-location-editor {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
  }

  /* No seletor não precisamos de dois comandos de fechar competindo por espaço. */
  #webgis-candidate-edit-window.v232-mobile-picker .webgis-edit-close {
    top:8px !important;
    right:8px !important;
    width:38px !important;
    height:38px !important;
    border-radius:11px !important;
  }
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-location-mobile-back {
    display:none !important;
  }
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-location-editor-title {
    padding-right:48px !important;
    font-size:18px !important;
    line-height:1.15 !important;
  }
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-location-editor-subtitle {
    margin-bottom:9px !important;
  }
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-point-selector {
    margin:7px 0 !important;
  }
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-point-selector-grid,
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-point-selector-grid-v212 {
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:7px !important;
  }
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-suggestion-point-btn {
    min-width:0 !important;
    min-height:52px !important;
    padding:7px 4px !important;
    border-radius:12px !important;
    touch-action:manipulation !important;
  }

  /* O ajuste manual fica disponível, mas não domina a tela ao abrir. */
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-coordinate-editor,
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-location-observation-label,
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-use-gps-location-btn,
  #webgis-candidate-edit-window.v232-mobile-picker .candidate-gps-used-info {
    margin-top:7px !important;
  }

  /* MODO MOVIMENTO: só uma barra pequena fica sobre o mapa. */
  html.v224-ui #webgis-candidate-edit-window.v232-mobile-moving,
  #webgis-candidate-edit-window.v232-mobile-moving {
    left:8px !important;
    right:8px !important;
    bottom:calc(8px + env(safe-area-inset-bottom,0px)) !important;
    top:auto !important;
    width:auto !important;
    max-width:none !important;
    max-height:none !important;
    height:auto !important;
    transform:none !important;
    border-radius:18px !important;
    overflow:hidden !important;
    box-shadow:0 -6px 28px rgba(10,18,30,.22) !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .webgis-edit-close {
    display:none !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .webgis-edit-body {
    max-height:none !important;
    height:auto !important;
    overflow:visible !important;
    padding:9px 10px calc(9px + env(safe-area-inset-bottom,0px)) !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .candidate-location-editor-mobile-move {
    display:grid !important;
    gap:7px !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-head {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    gap:8px !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-head > div {
    display:grid !important;
    min-width:0 !important;
    gap:1px !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-head small {
    color:var(--vmaps-muted,var(--muted)) !important;
    font-size:8px !important;
    font-weight:900 !important;
    letter-spacing:.08em !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-head strong {
    color:var(--vmaps-text,var(--text)) !important;
    font-size:15px !important;
    line-height:1.1 !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-head span:not(.candidate-active-change) {
    color:var(--vmaps-muted,var(--muted)) !important;
    font-size:10px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .candidate-active-change {
    justify-self:end !important;
    font-size:9px !important;
    padding:5px 8px !important;
    border-radius:999px !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-coords {
    display:flex !important;
    gap:12px !important;
    min-width:0 !important;
    color:var(--vmaps-muted,var(--muted)) !important;
    font-size:9px !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-coords b {
    color:var(--vmaps-text,var(--text)) !important;
    font-weight:800 !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-actions {
    display:grid !important;
    grid-template-columns:1fr 1fr 1.15fr !important;
    gap:7px !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-actions button {
    width:100% !important;
    min-width:0 !important;
    min-height:42px !important;
    margin:0 !important;
    padding:7px 5px !important;
    border-radius:11px !important;
    font-size:11px !important;
    font-weight:850 !important;
    white-space:normal !important;
    touch-action:manipulation !important;
  }
  #webgis-candidate-edit-window.v232-mobile-moving .candidate-save-location-btn {
    background:var(--vmaps-accent,#2f6fed) !important;
    color:#fff !important;
  }

  /* Marcador maior e com gesto reservado ao arraste no celular. */
  .webgis-candidate-drag-marker {
    width:46px !important;
    height:46px !important;
    border-width:4px !important;
    cursor:grab !important;
    touch-action:none !important;
    -webkit-user-select:none !important;
    user-select:none !important;
  }
  .webgis-candidate-drag-marker::after {
    width:10px !important;
    height:10px !important;
    left:14px !important;
    top:14px !important;
  }

  /* A mensagem do mapa não pode cobrir a barra de edição compacta. */
  body:has(#webgis-candidate-edit-window.v232-mobile-moving) .status-bar,
  body:has(#webgis-candidate-edit-window.v232-mobile-moving) #status,
  body:has(#webgis-candidate-edit-window.v232-mobile-moving) .map-status {
    bottom:calc(142px + env(safe-area-inset-bottom,0px)) !important;
  }
}
\n\n/* =====================================================================\n   VMAPS V2.27.33 — SUGESTÃO MOBILE: DOCK GRANDE E MAPA LIVRE\n   EXCLUSIVO CELULAR. Corrige botões pequenos/cortados durante o arraste.\n   ===================================================================== */\n@media (max-width:760px) {\n  /* Durante o movimento o container não deve bloquear o mapa fora do dock. */\n  html.v224-ui #webgis-candidate-edit-window.v232-mobile-moving,\n  #webgis-candidate-edit-window.v232-mobile-moving {\n    position:fixed !important;\n    left:10px !important;\n    right:10px !important;\n    bottom:calc(10px + env(safe-area-inset-bottom,0px)) !important;\n    top:auto !important;\n    width:auto !important;\n    height:auto !important;\n    max-height:none !important;\n    min-height:0 !important;\n    padding:0 !important;\n    margin:0 !important;\n    overflow:visible !important;\n    border:0 !important;\n    background:transparent !important;\n    box-shadow:none !important;\n    pointer-events:none !important;\n    z-index:50000 !important;\n  }\n\n  #webgis-candidate-edit-window.v232-mobile-moving .webgis-edit-body {\n    width:100% !important;\n    height:auto !important;\n    max-height:none !important;\n    min-height:0 !important;\n    padding:0 !important;\n    margin:0 !important;\n    overflow:visible !important;\n    background:transparent !important;\n    pointer-events:none !important;\n  }\n\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-action-dock {\n    display:grid !important;\n    grid-template-rows:auto auto auto !important;\n    gap:8px !important;\n    width:100% !important;\n    min-width:0 !important;\n    max-width:none !important;\n    min-height:0 !important;\n    margin:0 !important;\n    padding:11px !important;\n    box-sizing:border-box !important;\n    border:1px solid var(--vmaps-line,rgba(120,140,150,.4)) !important;\n    border-radius:18px !important;\n    background:color-mix(in srgb,var(--vmaps-surface,#cbdad5) 96%,transparent) !important;\n    box-shadow:0 -8px 30px rgba(10,18,30,.25) !important;\n    backdrop-filter:blur(14px) !important;\n    -webkit-backdrop-filter:blur(14px) !important;\n    pointer-events:auto !important;\n    touch-action:manipulation !important;\n  }\n\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-top {\n    display:grid !important;\n    grid-template-columns:minmax(0,1fr) auto !important;\n    gap:10px !important;\n    align-items:center !important;\n  }\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-copy {\n    display:grid !important;\n    gap:1px !important;\n    min-width:0 !important;\n  }\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-copy small {\n    font-size:9px !important;\n    font-weight:900 !important;\n    letter-spacing:.08em !important;\n    color:var(--vmaps-muted,var(--muted)) !important;\n  }\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-copy strong {\n    font-size:15px !important;\n    line-height:1.15 !important;\n    color:var(--vmaps-text,var(--text)) !important;\n    overflow:hidden !important;\n    text-overflow:ellipsis !important;\n    white-space:nowrap !important;\n  }\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-copy span {\n    font-size:11px !important;\n    color:var(--vmaps-muted,var(--muted)) !important;\n  }\n\n  /* Trocar ponto é secundário, mas continua com alvo de toque confortável. */\n  #webgis-candidate-edit-window.v232-mobile-moving .candidate-mobile-change-point-btn {\n    min-width:104px !important;\n    min-height:44px !important;\n    padding:8px 12px !important;\n    margin:0 !important;\n    border-radius:12px !important;\n    font-size:12px !important;\n    font-weight:850 !important;\n    touch-action:manipulation !important;\n  }\n\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-coords {\n    display:grid !important;\n    grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto !important;\n    gap:7px !important;\n    align-items:center !important;\n    min-width:0 !important;\n    font-size:10px !important;\n    color:var(--vmaps-muted,var(--muted)) !important;\n  }\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-coords > span:not(.candidate-active-change) {\n    overflow:hidden !important;\n    text-overflow:ellipsis !important;\n    white-space:nowrap !important;\n  }\n\n  /* Ações principais: grandes, duas colunas, sempre totalmente clicáveis. */\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-actions {\n    display:grid !important;\n    grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) !important;\n    gap:9px !important;\n    width:100% !important;\n    min-width:0 !important;\n    position:relative !important;\n    z-index:2 !important;\n  }\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-actions button {\n    display:flex !important;\n    align-items:center !important;\n    justify-content:center !important;\n    width:100% !important;\n    min-width:0 !important;\n    min-height:58px !important;\n    height:58px !important;\n    padding:0 14px !important;\n    margin:0 !important;\n    border-radius:14px !important;\n    font-size:16px !important;\n    line-height:1 !important;\n    font-weight:900 !important;\n    white-space:nowrap !important;\n    cursor:pointer !important;\n    pointer-events:auto !important;\n    touch-action:manipulation !important;\n    -webkit-tap-highlight-color:transparent !important;\n  }\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-actions .candidate-cancel-location-btn {\n    background:var(--vmaps-surface-2,#e7efec) !important;\n    color:var(--vmaps-text,#1f2937) !important;\n    border:1px solid var(--vmaps-line,rgba(100,120,130,.35)) !important;\n  }\n  #webgis-candidate-edit-window.v232-mobile-moving .v233-mobile-dock-actions .candidate-save-location-btn {\n    background:var(--vmaps-action,#2f6fed) !important;\n    color:var(--vmaps-action-text,#fff) !important;\n    border:1px solid transparent !important;\n    box-shadow:0 4px 14px color-mix(in srgb,var(--vmaps-action,#2f6fed) 32%,transparent) !important;\n  }\n\n  /* As regras antigas de três botões deixam de interferir neste modo. */\n  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-actions,\n  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-head,\n  #webgis-candidate-edit-window.v232-mobile-moving .v232-mobile-move-coords {\n    display:none !important;\n  }\n\n  /* Enquanto move, toast/status inferior some: nada pode cobrir Salvar/Cancelar. */\n  body:has(#webgis-candidate-edit-window.v232-mobile-moving) .status-bar,\n  body:has(#webgis-candidate-edit-window.v232-mobile-moving) #status,\n  body:has(#webgis-candidate-edit-window.v232-mobile-moving) .map-status {\n    display:none !important;\n  }\n\n  /* Marcador com alvo de toque ainda maior. */\n  .webgis-candidate-drag-marker {\n    width:52px !important;\n    height:52px !important;\n    border-width:4px !important;\n    touch-action:none !important;\n  }\n  .webgis-candidate-drag-marker::after {\n    width:12px !important;\n    height:12px !important;\n    left:16px !important;\n    top:16px !important;\n  }\n}\n