/* ==========================================================================
   SIG Projetos — página do mapa (editor e visualizador)
   Layout: barra superior, painel lateral (Camadas / Ferramentas / Sobre),
   mapa em tela cheia e legenda flutuante. As classes usadas pelo JavaScript
   (legenda, 🎨, 📝, comparador, impressão...) seguem as do SIGGARR.
   ========================================================================== */
:root {
    --sig-primaria: #0d8a72;
    --sig-primaria-escura: #08604f;
    --sig-primaria-clara: #e6f6f2;
    --sig-acento: #14b8a6;
    --sig-texto: #0f172a;
    --sig-suave: #64748b;
    --sig-borda: #e2e8f0;
    --sig-fundo: #eef2f5;
    --sig-vidro: rgba(255, 255, 255, .94);
    --sig-sombra: 0 1px 2px rgba(15, 23, 42, .08), 0 8px 28px rgba(15, 23, 42, .14);
    --sig-raio: 14px;
    --sig-topo: 56px;
    --sig-lateral: 340px;
    --bs-primary: var(--sig-primaria);
    --bs-primary-rgb: 13, 138, 114;
    --bs-link-color: var(--sig-primaria);
    --bs-link-color-rgb: 13, 138, 114;
    --bs-body-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --bs-body-color: var(--sig-texto);
}

html, body.sig-mapa { height: 100%; overflow: hidden; }
body { font-family: var(--bs-body-font-family); color: var(--sig-texto); -webkit-font-smoothing: antialiased; font-size: 14px; }
body.sig-mapa { background: var(--sig-fundo); }
a { text-decoration: none; }

.btn { font-weight: 600; border-radius: 10px; }
.btn-primary { --bs-btn-bg: var(--sig-primaria); --bs-btn-border-color: var(--sig-primaria); --bs-btn-hover-bg: var(--sig-primaria-escura); --bs-btn-hover-border-color: var(--sig-primaria-escura);
    --bs-btn-active-bg: var(--sig-primaria-escura); --bs-btn-active-border-color: var(--sig-primaria-escura); --bs-btn-disabled-bg: var(--sig-primaria); --bs-btn-disabled-border-color: var(--sig-primaria); }
.btn-light { --bs-btn-bg: #fff; --bs-btn-border-color: var(--sig-borda); --bs-btn-hover-bg: #f1f5f9; --bs-btn-hover-border-color: #cbd5e1; }
.btn-link { color: var(--sig-primaria); }
.form-control, .form-select { border-radius: 9px; border-color: #d7dee7; }
.form-control:focus, .form-select:focus { border-color: var(--sig-acento); box-shadow: 0 0 0 .2rem rgba(20, 184, 166, .18); }
.form-check-input:checked { background-color: var(--sig-primaria); border-color: var(--sig-primaria); }
.form-label { font-weight: 600; font-size: .86rem; margin-bottom: .3rem; }

/* ---------------------------------------------------------------- barra superior */
.sig-topo { position: fixed; inset: 0 0 auto 0; height: var(--sig-topo); z-index: 1000002; display: flex; align-items: center; gap: 10px; padding: 0 12px;
    background: rgba(255, 255, 255, .92); backdrop-filter: saturate(160%) blur(12px); border-bottom: 1px solid rgba(226, 232, 240, .9); }
.sig-topo-marca { display: inline-flex; flex: none; }
.sig-topo-titulo { min-width: 0; display: flex; flex-direction: column; line-height: 1.15; }
.sig-topo-nome { font-weight: 700; font-size: 1rem; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 46vw; }
.sig-topo-sub { font-size: .76rem; color: var(--sig-suave); display: flex; gap: 6px; align-items: center; min-width: 0; white-space: nowrap; }
.sig-topo-acoes { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.sig-topo-btn { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 10px; border: none; border-radius: 10px; background: transparent; color: #334155; font-weight: 600; font-size: .86rem; }
.sig-topo-btn:hover { background: #eef2f6; color: var(--sig-texto); }
.sig-topo-btn i { font-size: 1.08rem; }
.sig-topo-publicar { height: 36px; display: inline-flex; align-items: center; gap: 4px; margin-left: 4px; }
.sig-topo-usuario { margin-left: 6px; }
.sig-vis { display: inline-flex; align-items: center; gap: 3px; font-weight: 600; }
.sig-vis-publico { color: #047857; } .sig-vis-link { color: #1d4ed8; } .sig-vis-privado { color: #475569; }
@media (max-width: 1100px) { .sig-topo-texto span { display: none; } }
@media (max-width: 576px) { .sig-topo-usuario .sig-avatar-nome, .sig-topo-usuario .bi-chevron-down { display: none; } .sig-topo-nome { max-width: 40vw; } }

/* Menu do usuário (mesmo visual do site) */
.sig-avatar { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(135deg, var(--sig-acento), var(--sig-primaria-escura)); color: #fff; font-weight: 700; font-size: .76rem; }
.sig-avatar-btn { display: inline-flex; align-items: center; gap: .45rem; border: 1px solid var(--sig-borda); background: #fff; padding: 2px 9px 2px 2px; border-radius: 999px; font-weight: 600; font-size: .86rem; color: var(--sig-texto); }
.sig-dropdown { border: 1px solid var(--sig-borda); border-radius: 12px; box-shadow: var(--sig-sombra); padding: .35rem; font-size: .9rem; }
.sig-dropdown .dropdown-item { border-radius: 8px; padding: .45rem .7rem; display: flex; gap: .55rem; align-items: center; }
.sig-dropdown .dropdown-item:active { background: var(--sig-primaria); }
.sig-btn-fantasma { border: 1px solid var(--sig-borda); background: #fff; }

/* ---------------------------------------------------------------- mapa */
.sig-area-mapa { position: fixed; top: var(--sig-topo); right: 0; bottom: 0; left: var(--sig-lateral); transition: left .25s ease; }
#map { position: absolute; inset: 0; background: #dfe7ee; }
body.toggle-sidebar .sig-area-mapa { left: 0; }
.sig-embed .sig-area-mapa { left: var(--sig-lateral); }

/* ---------------------------------------------------------------- menu lateral */
.sidebar { position: fixed; top: var(--sig-topo); bottom: 0; left: 0; width: var(--sig-lateral); z-index: 1000001; background: #fff; border-right: 1px solid var(--sig-borda);
    display: flex; flex-direction: column; transition: transform .25s ease; }
body.toggle-sidebar .sidebar { transform: translateX(-100%); }
.sig-abas { display: flex; gap: 2px; padding: 10px 10px 0; border-bottom: 1px solid var(--sig-borda); flex: none; flex-wrap: nowrap; }
.sig-abas .nav-item { flex: 1; }
.sig-abas .nav-link { width: 100%; border: none; background: transparent; color: var(--sig-suave); font-weight: 600; font-size: .8rem; padding: 9px 4px 10px;
    border-bottom: 2px solid transparent; border-radius: 0; display: flex; gap: 5px; align-items: center; justify-content: center; white-space: nowrap; }
.sig-abas .nav-link:hover { color: var(--sig-texto); }
.sig-abas .nav-link.active { color: var(--sig-primaria); border-bottom-color: var(--sig-primaria); }
.sig-abas-conteudo { flex: 1; overflow-y: auto; padding: 10px 10px 24px; scrollbar-width: thin; }
.sig-dica { font-size: .78rem; color: var(--sig-suave); margin: 2px 4px 10px; }

.sig-editor-barra { display: flex; gap: 6px; align-items: center; margin-bottom: 8px; }
.sig-editor-barra .btn { font-size: .8rem; padding: 4px 10px; }
.girando i { display: inline-block; animation: sig-girar .8s linear infinite; }
@keyframes sig-girar { to { transform: rotate(360deg); } }

.sig-filtro-camadas { position: relative; margin-bottom: 8px; }
.sig-filtro-camadas i { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--sig-suave); font-size: .8rem; }
.sig-filtro-camadas .form-control { padding-left: 28px; border-radius: 999px; background: #f8fafc; }

.sidebar-nav { list-style: none; margin: 0; padding: 0; }
.sidebar-nav ul { list-style: none; margin: 0; padding: 0; }
.sidebar-nav .nav-item { margin-bottom: 2px; }
.sidebar-nav .nav-link { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px; color: var(--sig-texto); font-weight: 600; font-size: .88rem; background: transparent; }
.sidebar-nav .nav-link:hover { background: #f1f5f9; }
.sidebar-nav .nav-link > i:first-child, .sig-tema-icone { color: var(--sig-primaria); font-size: 1rem; flex: none; }
.sidebar-nav .nav-link > span { min-width: 0; overflow-wrap: anywhere; }
.sidebar-nav .nav-link .bi-chevron-down, .sig-seta { flex: none; font-size: .75rem; color: var(--sig-suave); transition: transform .2s; }
.sidebar-nav .nav-link.collapsed .bi-chevron-down { transform: rotate(-90deg); }
.sidebar-nav .nav-link:not(.collapsed) { background: var(--sig-primaria-clara); }

/* temas e subtemas */
.sig-tema-cab { position: relative; display: flex; align-items: center; }
.sig-tema-cab > .nav-link { flex: 1; min-width: 0; padding-right: 10px; }
.modo-editor .sig-tema-cab > .nav-link { padding-right: 62px; }
.sig-tema-nome { flex: 1 1 auto; }
.sig-contador { font-size: .7rem; font-weight: 700; color: var(--sig-suave); background: #eef2f6; border-radius: 999px; padding: 1px 7px; flex: none; }
.sig-contador:empty { display: none; }
.sig-contador.ativo { background: var(--sig-primaria); color: #fff; }
.sig-tema .nav-content { padding: 2px 0 6px 12px; margin-left: 9px; border-left: 2px solid #edf1f5; }
.sig-tema .sig-tema .nav-link { font-size: .85rem; padding: 6px 8px; }
.sig-tema .sig-tema .nav-link:not(.collapsed) { background: #f3f7f9; }
.sig-tema-vazio, .sig-menu-vazio { color: var(--sig-suave); font-size: .8rem; padding: 6px 8px; font-style: italic; }
.sig-menu-vazio { text-align: center; font-style: normal; padding: 24px 12px; }
.sig-menu-vazio > i { font-size: 2rem; color: var(--sig-acento); display: block; margin-bottom: 6px; }

/* ações do editor (aparecem ao passar o mouse) */
.sig-acoes { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); display: inline-flex; gap: 0; opacity: 0; transition: opacity .15s; }
.sig-tema-cab:hover > .sig-acoes, .sig-camada-linha:hover > .sig-acoes, .sig-acoes:focus-within, .sig-acoes:has(.show) { opacity: 1; }
.sig-acao { border: none; background: transparent; color: var(--sig-suave); width: 26px; height: 26px; border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; font-size: .92rem; }
.sig-acao:hover { background: #e2e8f0; color: var(--sig-texto); }
@media (hover: none) { .sig-acoes { opacity: 1; } }

/* camadas */
.sig-camada-linha { position: relative; display: flex; align-items: center; gap: 4px; padding: 4px 6px; border-radius: 9px; }
.sig-camada-linha:hover { background: #f6f8fa; }
.sig-camada-linha .form-switch { padding-left: 2.1em; min-height: 0; flex: none; }
.sig-camada-linha .form-switch .form-check-input { margin-left: -2.1em; margin-top: 0; cursor: pointer; }
.sig-camada-rotulo { flex: 1; min-width: 0; display: flex; align-items: center; gap: 7px; cursor: pointer; margin: 0; font-size: .84rem; }
.sig-camada-simbolo { width: 26px; flex: none; display: inline-flex; align-items: center; justify-content: center; }
.sig-camada-simbolo > * { margin: 0 !important; transform: scale(.85); }
.sig-camada-nome { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-camada-total { font-size: .68rem; color: var(--sig-suave); flex: none; }
.modo-editor .sig-camada-linha:hover .sig-camada-total { visibility: hidden; }
.sig-simbolo-classes { display: inline-grid; grid-template-columns: 1fr 1fr; gap: 1px; width: 18px; height: 16px; border-radius: 4px; overflow: hidden; }
.sig-simbolo-classes i { display: block; }
.sig-ligar-todas { display: flex; align-items: center; gap: 4px; padding: 3px 6px 5px; font-size: .78rem; color: var(--sig-suave); }
.sig-ligar-todas .form-switch { padding-left: 2.1em; min-height: 0; }
.sig-ligar-todas .form-switch .form-check-input { margin-left: -2.1em; margin-top: 0; }
.sig-ligar-todas label { cursor: pointer; }
.oculto-filtro { display: none !important; }

/* mapas base */
.sig-grupo-rotulo { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; color: var(--sig-suave); font-weight: 700; padding: 6px 6px 2px; }
.sig-item-base { display: flex; align-items: center; gap: 8px; padding: 4px 6px; border-radius: 8px; cursor: pointer; font-size: .84rem; margin: 0; }
.sig-item-base:hover { background: #f6f8fa; }
.sig-item-base input { accent-color: var(--sig-primaria); }

/* consultas */
.sig-consulta { padding: 8px 4px 10px; }
.sig-rotulo-consulta { font-size: .76rem; font-weight: 600; color: #334155; margin: 6px 0 3px; display: block; }
.sig-dms { display: grid; grid-template-columns: 1fr 1fr 1.2fr 64px; gap: 4px; }
.sig-botoes-consulta { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 10px; }
.sig-botoes-consulta .btn { font-size: .76rem; padding: 5px 6px; }
.sig-soltar { display: flex; gap: 12px; align-items: center; border: 2px dashed #cbd5e1; border-radius: 12px; padding: 14px; cursor: pointer; background: #f8fafc; margin: 0; transition: border-color .15s, background .15s; }
.sig-soltar:hover, .sig-soltar.soltando { border-color: var(--sig-acento); background: var(--sig-primaria-clara); }
.sig-soltar > i { font-size: 1.8rem; color: var(--sig-primaria); }
.sig-soltar span { display: flex; flex-direction: column; font-size: .82rem; }
.sig-soltar small { color: var(--sig-suave); }
.sig-soltar input[type=file] { display: none; }
#map.soltando::after { content: 'Solte os arquivos para abrir no mapa'; position: absolute; inset: 12px; z-index: 1001; border: 3px dashed var(--sig-acento); border-radius: 16px;
    background: rgba(230, 246, 242, .75); display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--sig-primaria-escura); font-size: 1.1rem; }

/* informações */
.sig-info { padding: 4px 4px 0; }
.sig-info-titulo { font-size: 1.1rem; font-weight: 800; letter-spacing: -.02em; margin: 2px 0 6px; }
.sig-info-descricao { color: #334155; font-size: .86rem; line-height: 1.5; overflow-wrap: anywhere; }
.sig-info-lista { margin: 14px 0; display: grid; gap: 0; border: 1px solid var(--sig-borda); border-radius: 12px; overflow: hidden; }
.sig-info-lista > div { display: flex; justify-content: space-between; gap: 10px; padding: 7px 10px; font-size: .82rem; border-bottom: 1px solid var(--sig-borda); }
.sig-info-lista > div:last-child { border-bottom: none; }
.sig-info-lista dt { font-weight: 600; color: var(--sig-suave); }
.sig-info-lista dd { margin: 0; text-align: right; }
.sig-info-sub { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--sig-suave); font-weight: 700; margin: 16px 0 8px; }
.sig-ajuda { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; font-size: .82rem; color: #334155; }
.sig-ajuda li { display: flex; gap: 8px; }
.sig-ajuda li > i, .sig-ajuda li > span:first-child { color: var(--sig-primaria); width: 18px; flex: none; text-align: center; }
.sig-info-rodape { display: flex; gap: 8px; align-items: center; margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--sig-borda); font-size: .78rem; color: var(--sig-suave); }

/* ---------------------------------------------------------------- controles do Leaflet */
.leaflet-container { font-family: var(--bs-body-font-family); }
.leaflet-bar, .leaflet-touch .leaflet-bar { border: none !important; border-radius: 12px !important; box-shadow: var(--sig-sombra) !important; overflow: hidden; }
.leaflet-bar a, .leaflet-touch .leaflet-bar a { width: 36px !important; height: 36px !important; line-height: 36px !important; color: #334155 !important; border-bottom-color: #eef2f6 !important; }
.leaflet-bar a:hover { background: #f1f5f9 !important; color: var(--sig-primaria) !important; }
.leaflet-top.leaflet-right .leaflet-control { margin-top: 8px; margin-right: 10px; }
.leaflet-control-attribution { border-radius: 8px 0 0 0; font-size: 10px; }
.leaflet-bar a.zoom-area-ativo { background-color: #cfe8ff !important; box-shadow: inset 0 0 0 2px #0d6efd; }
.crosshair-cursor-enabled { cursor: crosshair !important; }
.leaflet-draw-tooltip-single { display: none !important; }
.pm-textarea { background-color: transparent !important; }
.leaflet-popup-content-wrapper { border-radius: 12px; }
.cmp-controle .cmp-botao, .imp-controle .imp-botao { display: flex !important; align-items: center; justify-content: center; font-size: 16px; }
.cmp-controle .cmp-botao.ativo { background: var(--sig-primaria) !important; color: #fff !important; }


/* rótulos */
.leaflet-tooltip.sig-rotulo { background: transparent; border: none; box-shadow: none; padding: 0; font-weight: 700; white-space: nowrap;
    text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff, 0 0 3px #fff; }
.leaflet-tooltip.sig-rotulo::before { display: none; }
.sig-rotulo-utm { color: #be123c; font-weight: 800; font-size: 12px; text-align: center; text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff; pointer-events: none; }

/* ---------------------------------------------------------------- legenda flutuante */
.draggable { position: fixed; top: auto; bottom: 70px; left: calc(var(--sig-lateral) + 12px); width: 330px; max-width: calc(100vw - var(--sig-lateral) - 90px);
    height: 230px; min-height: 90px; background: var(--sig-vidro); backdrop-filter: blur(10px); border-radius: var(--sig-raio); box-shadow: var(--sig-sombra);
    border: 1px solid rgba(226, 232, 240, .9); z-index: 1000000; display: block; overflow: hidden; }
body.toggle-sidebar .draggable { left: 12px; }
.draggable-header { position: relative; display: flex; align-items: center; padding: 8px 12px; cursor: move; user-select: none; border-bottom: 1px solid var(--sig-borda); background: rgba(248, 250, 252, .8); }
.sig-legenda-titulo { font-weight: 700; font-size: .84rem; display: inline-flex; gap: 6px; align-items: center; color: var(--sig-texto); }
.sig-legenda-titulo i { color: var(--sig-primaria); }
.resize-handle { width: 14px; height: 14px; position: absolute; bottom: 0; right: 0; cursor: nwse-resize; background: linear-gradient(135deg, transparent 50%, #cbd5e1 50%); border-bottom-right-radius: var(--sig-raio); }
#texto { padding: 8px 10px; overflow: auto; height: calc(100% - 38px); box-sizing: border-box; font-size: 13px; }
#texto:empty::before { content: 'Ligue camadas na aba Camadas ou use as ferramentas de desenho e de localização.'; display: block; color: var(--sig-suave); font-size: .8rem; padding: 6px 2px; }
.legenda-cab-acoes { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); display: inline-flex; gap: 2px; }
.legenda-cab-btn { border: none; background: transparent; color: #475569; border-radius: 7px; width: 28px; height: 26px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; font-size: 14px; }
.legenda-cab-btn:hover { background: #e2e8f0; color: var(--sig-primaria); }

.flex-container { display: flex; align-items: center; padding: 3px 0; margin-left: 5px; margin-bottom: 4px; }
#texto .flex-container { flex-wrap: wrap; }
.color-box { box-sizing: border-box; }
.line-with-text { font-size: 12.5px; }
.legenda-detalhada { margin-left: 5px; }
.legenda-total { color: var(--sig-suave); font-size: 12px; }
.sig-legenda-wms { display: block; max-width: 100%; margin: 4px 0 2px 40px; }
.sig-camada-projeto input[type=text] { color: var(--sig-primaria-escura); }

/* grupos e subpastas */
.grupo-legenda { border-bottom: 1px solid var(--sig-borda); padding: 5px 0; }
.grupo-header { font-size: 13.5px; cursor: pointer; user-select: none; margin-bottom: 5px; }
.subpasta-legenda { border-left: 2px dashed #cbd5e1; padding-left: 8px; margin-bottom: 8px; }
.subpasta-header { user-select: none; padding: 2px 0; }
.subpasta-header:hover { color: var(--sig-primaria) !important; }

/* condições (classes) */
.line-with-text .legenda-categoria { margin: 0; flex: 0 0 auto; cursor: pointer; }
.line-with-text.categoria-oculta { opacity: .45; }
.line-with-text.categoria-vazia .text { color: #9aa0a6; }
.line-with-text .categoria-total { color: var(--sig-suave); }
.legenda-recolher { border: none; background: transparent; cursor: pointer; padding: 0 4px 0 0; margin-left: 4px; font-size: 13px; line-height: 1; color: #555; width: 16px; flex: none; }
.legenda-recolher:hover { color: var(--sig-primaria); }
.line-with-text.condicao-recolhida { display: none !important; }
.line-with-text .categoria-estilo { border: none; background: transparent; cursor: pointer; font-size: 12px; padding: 0 4px; margin-left: 2px; opacity: .55; display: none; }
.opcoes-abertas .line-with-text .categoria-estilo { display: inline-block; }
.categoria-editavel .color-box, .categoria-editavel .line, .categoria-editavel img, .categoria-editavel .siggarr-amostra { cursor: pointer; }

/* ⚙️ opções da entrada */
.legenda-config { opacity: .7; flex: none; display: inline-flex; align-items: center; justify-content: center; height: 22px; padding: 0 3px; }
.legenda-config:hover, .legenda-config.ativo { opacity: 1; }
.legenda-config.ativo { background: var(--sig-primaria-clara) !important; border-radius: 6px; }
.legenda-acoes { display: inline-flex; flex-wrap: nowrap; align-items: center; max-width: 0; overflow: hidden; opacity: 0; visibility: hidden; white-space: nowrap; vertical-align: middle; flex: none;
    transition: max-width .3s ease, opacity .2s ease, visibility 0s linear .3s; }
.legenda-acoes.aberta { max-width: 460px; opacity: 1; visibility: visible; transition-delay: 0s; }
.legenda-acoes > button, .legenda-acoes > input[type=range] { flex: none; }
.legenda-acoes .form-switch { margin-left: 8px; min-height: 0; margin-bottom: 0; flex: none; }
.legenda-visivel { margin: 0 0 0 6px; width: 14px; height: 14px; flex: none; accent-color: var(--sig-primaria); }
.legenda-remover { display: inline-flex; align-items: center; height: 22px; padding: 0 4px !important; flex: none; }
.oculto-camada-salva { display: none !important; }

/* coluna do símbolo */
.legenda-simbolo { display: inline-flex; align-items: center; justify-content: center; width: 32px; min-width: 32px; height: 22px; margin-right: 8px; flex: none; vertical-align: middle; }
.legenda-simbolo > * { margin: 0 !important; }
.legenda-simbolo > img { max-width: 30px !important; max-height: 22px !important; }
.legenda-simbolo > .color-box:not(.redondo) { min-width: 24px !important; width: 24px; }
.legenda-simbolo:empty { width: 4px; min-width: 4px; margin-right: 0; }

/* ordem (⠿) */
.legenda-item-movel { position: relative; padding-left: 16px; }
.legenda-alca { position: absolute; left: 0; top: 2px; width: 14px; text-align: center; cursor: grab; touch-action: none; user-select: none; color: #a0aec0; font-size: 14px; line-height: 1.3; }
.legenda-alca:hover { color: var(--sig-primaria); }
.legenda-arrastando { opacity: .8; background: var(--sig-primaria-clara); outline: 1px dashed var(--sig-primaria); border-radius: 6px; }

/* textos */
.texto-legenda { align-items: center; flex-wrap: wrap; gap: 2px; margin-bottom: 6px; }
.texto-legenda .texto-legenda-nome { flex: 1 1 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-weight: 600; font-size: 13px; white-space: nowrap; }
.texto-legenda > button { padding: 0 3px; }
.texto-legenda .texto-amostra { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 20px; border: 1px solid #bbb; border-radius: 4px; font-size: 13px; margin-right: 4px; flex: none; }
.texto-legenda > button, .texto-legenda > input[type=checkbox] { flex: none; }
.texto-legenda .texto-legenda-campo { flex: 1 1 100%; width: 100%; margin-left: 22px; max-width: calc(100% - 22px); min-height: 26px; resize: vertical; font-size: 13px; padding: 2px 6px; border: 1px solid #ccc; border-radius: 6px; }

/* ---------------------------------------------------------------- 🎨 estilo */
.siggarr-icone { background: transparent; border: none; }
.siggarr-icone svg { display: block; filter: drop-shadow(0 1px 1px rgba(0,0,0,.4)); }
.siggarr-ponto { display: inline-block; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px #333; box-sizing: border-box; }
.siggarr-simbolo { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,.5); box-sizing: border-box; }
.siggarr-amostra { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; margin-right: 10px; }
.siggarr-painel-estilo { position: fixed; z-index: 1000006; width: 310px; max-width: calc(100vw - 16px); max-height: 75vh; overflow-y: auto; background: #fff; border: 1px solid var(--sig-borda); border-radius: 14px; box-shadow: var(--sig-sombra); padding: 10px 12px; font-size: 13px; }
.siggarr-painel-estilo .pe-cabecalho { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; gap: 6px; }
.siggarr-painel-estilo .pe-cabecalho b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.siggarr-painel-estilo .pe-fechar { border: none; background: transparent; font-size: 20px; line-height: 1; cursor: pointer; }
.siggarr-painel-estilo .pe-linha { margin-bottom: 8px; }
.siggarr-painel-estilo label { display: block; font-weight: 600; margin-bottom: 2px; }
.siggarr-painel-estilo input[type=range] { width: calc(100% - 45px); vertical-align: middle; accent-color: var(--sig-primaria); }
.siggarr-painel-estilo .pe-cor { width: 40px; height: 28px; padding: 0; border: 1px solid #ccc; vertical-align: middle; }
.siggarr-painel-estilo .pe-cores { display: inline-flex; flex-wrap: wrap; gap: 3px; vertical-align: middle; width: calc(100% - 48px); }
.siggarr-painel-estilo .pe-cor-rapida { width: 18px; height: 18px; border: 1px solid #999; border-radius: 4px; padding: 0; cursor: pointer; }
.siggarr-painel-estilo .pe-grade { display: grid; grid-template-columns: repeat(8, 1fr); gap: 3px; }
.siggarr-painel-estilo .pe-simbolo { height: 30px; border: 1px solid #ddd; border-radius: 6px; background: #fafafa; cursor: pointer; padding: 0; display: flex; align-items: center; justify-content: center; font-size: 15px; }
.siggarr-painel-estilo .pe-simbolo[data-tipo=original] { grid-column: span 2; font-size: 11px; }
.siggarr-painel-estilo .pe-simbolo img { max-width: 22px; max-height: 22px; }
.siggarr-painel-estilo .pe-simbolo.ativo { border-color: var(--sig-primaria); background: var(--sig-primaria-clara); box-shadow: 0 0 0 1px var(--sig-primaria); }
.siggarr-painel-estilo .pe-acoes { text-align: right; }
.siggarr-painel-estilo .pe-enviar { border: 1px dashed #6c757d; background: #f8f9fa; border-radius: 6px; font-size: 12px; padding: 2px 8px; cursor: pointer; white-space: nowrap; }
.siggarr-painel-estilo .pe-enviado { position: relative; display: inline-flex; }
.siggarr-painel-estilo .pe-excluir-icone { position: absolute; top: -5px; right: -5px; width: 15px; height: 15px; padding: 0; border: none; border-radius: 50%; background: #dc3545; color: #fff; font-size: 11px; line-height: 15px; text-align: center; cursor: pointer; opacity: 0; }
.siggarr-painel-estilo .pe-enviado:hover .pe-excluir-icone { opacity: 1; }
.siggarr-painel-estilo .pe-limpar-icones { font-size: 12px; color: #dc3545; text-decoration: none; }

/* ---------------------------------------------------------------- 📝 editor de atributos */
.editor-atributos { position: fixed; left: 0; right: 0; bottom: 0; height: 38vh; min-height: 160px; z-index: 1000003; background: #fff; border-top: 2px solid var(--sig-primaria); box-shadow: 0 -4px 16px rgba(0,0,0,.18); display: none; flex-direction: column; font-size: 13px; }
.editor-atributos.aberto { display: flex; }
.ea-redimensionar { height: 6px; cursor: ns-resize; background: linear-gradient(#e9ecef, #fff); flex: none; touch-action: none; }
.ea-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 4px 10px 6px; flex: none; }
.ea-topo .ea-titulo { margin-right: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 45%; }
.ea-topo .ea-busca { width: 180px; }
.ea-fechar { border: none; background: transparent; font-size: 22px; line-height: 1; padding: 0 6px; cursor: pointer; }
.ea-form { display: none; flex-wrap: wrap; align-items: center; gap: 6px; padding: 4px 10px 6px; background: #f5f8ff; border-top: 1px solid #e3e8f2; flex: none; }
.ea-form.aberto { display: flex; }
.ea-form .form-control, .ea-form .form-select { width: auto; min-width: 150px; }
.ea-corpo { flex: 1; overflow: auto; border-top: 1px solid #dee2e6; }
.ea-tabela { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; }
.ea-tabela th { position: sticky; top: 0; z-index: 1; background: #f1f3f5; font-weight: 600; padding: 4px 6px; border-bottom: 1px solid #ced4da; border-right: 1px solid #e9ecef; white-space: nowrap; }
.ea-tabela td { padding: 0; border-bottom: 1px solid #f1f3f5; border-right: 1px solid #f1f3f5; }
.ea-tabela td.ea-num { padding: 0 6px; color: #6c757d; text-align: right; }
.ea-tabela tr.ea-foco td { background: #fff7cc; }
.ea-celula { border: none; background: transparent; padding: 3px 6px; width: 100%; min-width: 110px; font-size: 13px; }
.ea-celula:focus { outline: 2px solid var(--sig-primaria); background: #fff; }
.ea-ir { border: none; background: transparent; cursor: pointer; padding: 0 4px; }
.ea-remover-campo { border: none; background: transparent; color: #dc3545; cursor: pointer; padding: 0 2px; font-weight: bold; }
.ea-rodape { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 4px 10px; border-top: 1px solid #dee2e6; flex: none; }
.ea-tabela td.ea-alterada, .ea-tabela td.ea-alterada .ea-celula { background: #fff3cd; }
.ea-tabela th.ea-alterada { background: #ffe8a1; }
.ea-pendentes { color: #b26a00; white-space: nowrap; }
.ea-pendentes.ea-salvo { color: #198754; }
.ea-tabela .ea-nome-coluna { cursor: text; border-bottom: 1px dashed transparent; }
.ea-tabela .ea-nome-coluna:hover { border-bottom-color: var(--sig-primaria); color: var(--sig-primaria); }
.ea-tabela .ea-renomear { display: inline-block; height: 24px; padding: 1px 6px; font-weight: 600; vertical-align: middle; }
.feicao-destaque { filter: drop-shadow(0 0 6px #ffea00) drop-shadow(0 0 3px #ffea00); }

/* ---------------------------------------------------------------- baixar / unir / recortar */
.bc-lista { max-height: 50vh; overflow-y: auto; border: 1px solid var(--sig-borda); border-radius: 10px; padding: 4px 8px; }
.bc-item { display: flex; align-items: center; gap: 6px; padding: 4px 0; cursor: pointer; font-size: 13.5px; }
.bc-item .form-check-input { margin: 0; flex: none; }
.bc-raster { color: #8a8f98; cursor: default; }
.geo-tipos { display: flex; gap: 14px; flex-wrap: wrap; }
.geo-tipo { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.geo-aviso { position: absolute; left: 50%; top: 12px; transform: translateX(-50%); z-index: 1001; background: rgba(15,23,42,.9); color: #fff; padding: 7px 14px; border-radius: 10px; font-size: 13px; max-width: calc(100% - 140px); text-align: center; box-shadow: var(--sig-sombra); }
.geo-aviso-fixo { background: rgba(220,53,69,.92); }

/* ---------------------------------------------------------------- comparar imagens */
.cmp-painel { position: absolute; top: 10px; right: 60px; z-index: 1000; display: flex; flex-direction: column; gap: 5px; background: var(--sig-vidro); border-radius: 12px; box-shadow: var(--sig-sombra); padding: 8px 34px 8px 12px; max-width: calc(100% - 120px); }
.cmp-lado { display: flex; align-items: center; gap: 6px; }
.cmp-lado .cmp-titulo { font-weight: 600; font-size: 12.5px; white-space: nowrap; width: 72px; }
.cmp-lado select { width: auto; max-width: 230px; }
.cmp-fechar { position: absolute; right: 8px; top: 4px; border: none; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; color: #555; }
.cmp-barra { position: absolute; top: 0; bottom: 0; width: 4px; margin-left: -2px; z-index: 999; background: #fff; box-shadow: 0 0 4px rgba(0,0,0,.5); cursor: ew-resize; touch-action: none; }
.cmp-alca { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 38px; height: 38px; border-radius: 50%; background: #fff; box-shadow: 0 1px 6px rgba(0,0,0,.45); display: flex; align-items: center; justify-content: center; font-size: 18px; user-select: none; }
.cmp-rotulo { position: absolute; top: calc(50% + 28px); white-space: nowrap; background: rgba(15,23,42,.7); color: #fff; font-size: 12px; padding: 2px 8px; border-radius: 6px; pointer-events: none; }
.cmp-rotulo-esquerda { right: 10px; } .cmp-rotulo-direita { left: 10px; }

/* ---------------------------------------------------------------- modal e informações */
.modal { z-index: 1000004 !important; }
.modal-backdrop { z-index: 1000003 !important; }
.modal-content { border: none; border-radius: 18px; box-shadow: 0 20px 60px rgba(15, 23, 42, .25); }
.modal-header { border-color: var(--sig-borda); }
.modal-title { font-weight: 700; letter-spacing: -.01em; }
.sig-tabela-props { width: 100%; border-collapse: collapse; font-size: 13px; }
.sig-tabela-props th { width: 38%; font-weight: 600; color: var(--sig-suave); padding: 5px 10px 5px 0; vertical-align: top; overflow-wrap: anywhere; }
.sig-tabela-props td { padding: 5px 0; overflow-wrap: anywhere; }
.sig-tabela-props tr + tr th, .sig-tabela-props tr + tr td { border-top: 1px solid #f1f5f9; }
.sig-tabela-props img { max-width: 100%; height: auto; border-radius: 8px; }
.sig-feicao + .sig-feicao { margin-top: 12px; padding-top: 12px; border-top: 2px solid var(--sig-borda); }
.sig-feicao-n { font-size: .72rem; font-weight: 700; color: var(--sig-primaria); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.sig-medida { margin-top: 8px; font-size: .82rem; color: #334155; background: #f8fafc; border-radius: 8px; padding: 5px 9px; }
.siggarr-baixar-feicao { margin-top: 10px; display: flex; align-items: center; gap: 10px; }
.siggarr-baixar-feicao label { margin: 0; }
.siggarr-baixar-feicao button { border: none; background: transparent; cursor: pointer; font-size: 14px; }
.sig-pre { white-space: pre-wrap; font-size: 12px; background: #f8fafc; padding: 8px; border-radius: 8px; }
.siggarr-acordeao .accordion-body { max-height: 0; overflow: hidden; padding: 0 10px; }
.siggarr-acordeao .accordion-body.show { max-height: 1000px; padding: 10px; }

/* formulários do editor */
.sig-form-editor .sig-form-rodape { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--sig-borda); }
.sig-grade-icones { display: grid; grid-template-columns: repeat(10, 1fr); gap: 4px; }
.sig-grade-icones label { cursor: pointer; margin: 0; }
.sig-grade-icones input { display: none; }
.sig-grade-icones i { display: flex; align-items: center; justify-content: center; height: 34px; border: 1px solid var(--sig-borda); border-radius: 8px; font-size: 1.05rem; color: #334155; }
.sig-grade-icones input:checked + i { border-color: var(--sig-primaria); background: var(--sig-primaria-clara); color: var(--sig-primaria); box-shadow: 0 0 0 1px var(--sig-primaria); }
.sig-fontes { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-bottom: 14px; }
.sig-fontes-2 { grid-template-columns: 1fr 1fr; }
.sig-fontes label { margin: 0; cursor: pointer; }
.sig-fontes input { display: none; }
.sig-fontes label > i { display: block; text-align: center; font-size: 1.3rem; color: var(--sig-primaria); }
.sig-fontes label { border: 1px solid var(--sig-borda); border-radius: 12px; padding: 10px 6px; text-align: center; font-size: .8rem; font-weight: 600; display: flex; flex-direction: column; gap: 4px; transition: border-color .15s, background .15s; }
.sig-fontes label:has(input:checked) { border-color: var(--sig-primaria); background: var(--sig-primaria-clara); box-shadow: 0 0 0 1px var(--sig-primaria); }
.sig-fontes label:has(input:disabled) { opacity: .45; cursor: not-allowed; }
.sig-tipos-desenho { display: flex; gap: 8px; flex-wrap: wrap; }
.sig-tipos-desenho label { border: 1px solid var(--sig-borda); border-radius: 10px; padding: 8px 12px; cursor: pointer; display: flex; gap: 6px; align-items: center; margin: 0; }
.sig-tipos-desenho label:has(input:checked) { border-color: var(--sig-primaria); background: var(--sig-primaria-clara); }
.sig-tipos-desenho input { display: none; }
.sig-arquivos-escolhidos { margin-top: 6px; }
.sig-abas-config { gap: 4px; }
.sig-abas-config .nav-link { border-radius: 999px; font-weight: 600; font-size: .84rem; color: var(--sig-suave); padding: 6px 14px; }
.sig-abas-config .nav-link.active { background: var(--sig-primaria); color: #fff; }
.sig-chaves { display: grid; gap: 6px; }
.sig-resumo-camada { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; background: #f8fafc; border: 1px solid var(--sig-borda); border-radius: 10px; padding: 8px 10px; font-size: .82rem; color: #334155; }
.sig-cores-rapidas { display: flex; flex-wrap: wrap; gap: 3px; }
.sig-cores-rapidas button { width: 20px; height: 20px; border: 1px solid rgba(0,0,0,.2); border-radius: 5px; padding: 0; }
.sig-simbolos { display: grid; grid-template-columns: repeat(10, 1fr); gap: 4px; }
.sig-simbolos label { margin: 0; cursor: pointer; }
.sig-simbolos input { display: none; }
.sig-simbolos label > i, .sig-simbolos label > span { display: flex; align-items: center; justify-content: center; height: 32px; border: 1px solid var(--sig-borda); border-radius: 8px; font-size: 1rem; }
.sig-simbolos label > span { width: auto; margin: 0; border-radius: 8px; box-shadow: none; background: transparent !important; }
.sig-simbolos label > span::after { content: ''; width: 14px; height: 14px; border-radius: 50%; background: #475569; }
.sig-simbolos input:checked + i, .sig-simbolos input:checked + span { border-color: var(--sig-primaria); background: var(--sig-primaria-clara) !important; color: var(--sig-primaria); box-shadow: 0 0 0 1px var(--sig-primaria); }
.sig-classes { display: grid; gap: 5px; max-height: 300px; overflow-y: auto; }
.sig-classe { display: grid; grid-template-columns: 44px 1fr 30% 22px; gap: 8px; align-items: center; }
.sig-classe .form-control-color { width: 44px; height: 32px; padding: 3px; }
.sig-classe-valor { font-size: .76rem; color: var(--sig-suave); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-lista-campos { display: grid; gap: 4px; max-height: 340px; overflow-y: auto; border: 1px solid var(--sig-borda); border-radius: 10px; padding: 6px; }
.sig-campo { display: grid; grid-template-columns: 20px 34% 1fr 20px 20px; gap: 6px; align-items: center; }
.sig-campo-nome { font-size: .82rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-opcao-radio { display: flex; align-items: flex-start; gap: .7rem; padding: .6rem .8rem; border: 1px solid var(--sig-borda); border-radius: 12px; margin-bottom: .45rem; cursor: pointer; }
.sig-opcao-radio:has(input:checked) { border-color: var(--sig-primaria); background: var(--sig-primaria-clara); }
.sig-opcao-radio input { margin-top: .3rem; accent-color: var(--sig-primaria); }
.sig-opcao-radio > i { font-size: 1.15rem; color: var(--sig-primaria); }
.sig-opcao-radio span { display: flex; flex-direction: column; line-height: 1.25; }
.sig-opcao-radio small { color: var(--sig-suave); }
.sig-compartilhar-link.desativado { opacity: .55; }
.sig-sobre-camada p { white-space: normal; }

/* ---------------------------------------------------------------- avisos (toasts) e carregamento */
.sig-avisos { position: fixed; right: 16px; bottom: 16px; z-index: 1000010; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; pointer-events: none; }
.sig-aviso { pointer-events: auto; display: flex; align-items: flex-start; gap: 9px; max-width: 380px; background: #0f172a; color: #fff; padding: 10px 12px; border-radius: 12px; box-shadow: var(--sig-sombra);
    font-size: .86rem; opacity: 0; transform: translateY(10px); transition: opacity .2s, transform .2s; }
.sig-aviso.visivel { opacity: 1; transform: none; }
.sig-aviso > i { margin-top: 1px; }
.sig-aviso-ok > i { color: #34d399; } .sig-aviso-aviso > i { color: #fbbf24; } .sig-aviso-erro > i { color: #f87171; } .sig-aviso-info > i { color: #5eead4; }
.sig-aviso-fechar { border: none; background: transparent; color: #94a3b8; font-size: 18px; line-height: 1; padding: 0 0 0 4px; margin-left: auto; }
.spinner-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, .25); display: flex; justify-content: center; align-items: center; z-index: 1000009; pointer-events: none; }
.sig-carregando { background: #fff; border-radius: 16px; box-shadow: var(--sig-sombra); padding: 16px 22px; display: flex; flex-direction: column; align-items: center; gap: 6px; font-weight: 600; font-size: .86rem; color: #334155; }
@keyframes fadeInOut { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.pulsar { animation: fadeInOut 1.6s infinite; }

/* ---------------------------------------------------------------- janela da tabela de atributos */
.janela-tabela { padding: 16px; font-size: 12.5px; background: var(--sig-fundo); }
.janela-tabela .table-container { background: #fff; border-radius: 14px; padding: 16px; box-shadow: var(--sig-sombra); }
.janela-tabela .table td, .janela-tabela .table th { font-size: 12px; white-space: nowrap; }
.janela-tabela tr.selected td { background-color: #d1fae5 !important; }
.janela-tabela .search-box { max-width: 250px; }

/* ---------------------------------------------------------------- celular e tablet */
@media (max-width: 768px) {
    :root { --sig-lateral: min(88vw, 360px); }
    .sig-area-mapa, .sig-embed .sig-area-mapa { left: 0 !important; }
    .sidebar { transform: translateX(-100%); box-shadow: var(--sig-sombra); }
    body.toggle-sidebar .sidebar { transform: none; }
    body.toggle-sidebar::after { content: ''; position: fixed; inset: var(--sig-topo) 0 0 0; background: rgba(15, 23, 42, .35); z-index: 1000000; }
    .sidebar .form-control, .sidebar .form-select { font-size: 16px; }
    #movableDiv.draggable { left: 0 !important; right: 0; top: auto !important; bottom: 0; width: 100% !important; max-width: none !important; height: auto !important;
        max-height: 45vh; border-radius: 16px 16px 0 0; z-index: 999999; }
    #movableDiv .draggable-header { cursor: pointer; }
    #movableDiv .sig-legenda-titulo::after { content: ' ▾'; }
    #movableDiv.legenda-recolhida .sig-legenda-titulo::after { content: ' ▴'; }
    #movableDiv #texto { max-height: calc(45vh - 40px); height: auto; }
    #movableDiv.legenda-recolhida #texto { display: none; }
    #movableDiv .resize-handle, #mapCoordDIV { display: none !important; }
    .legenda-cab-acoes { right: 36px; }
    .leaflet-bottom.leaflet-left { bottom: 44px; }
    .modal-dialog { margin: 8px; }
    .sig-fontes { grid-template-columns: repeat(3, 1fr); }
    .sig-grade-icones, .sig-simbolos { grid-template-columns: repeat(6, 1fr); }
    .editor-atributos { height: 50vh; }
    .cmp-painel { top: 6px; right: 52px; max-width: calc(100% - 60px); padding: 4px 28px 4px 6px; }
    .cmp-lado select { max-width: 150px; }
    .sig-avisos { left: 12px; right: 12px; bottom: 60px; align-items: stretch; }
}
@media (max-width: 576px) {
    .sig-topo { gap: 6px; padding: 0 8px; }
    .sig-topo-usuario .btn-primary { display: none; }
    .sig-topo-usuario .btn { padding: 4px 10px; font-size: .8rem; }
    #movableDiv.draggable { min-height: 0; }
}
/* arrastando/redimensionando a legenda: sem desfoque de fundo (redesenho pesado) */
.draggable.movendo { backdrop-filter: none; background: #fff; will-change: left, top, width, height; }

/* controles deslizantes na cor do sistema */
.form-range { accent-color: var(--sig-primaria); }
.form-range::-webkit-slider-thumb { background: var(--sig-primaria); }
.form-range::-moz-range-thumb { background: var(--sig-primaria); }

/* ---------------------------------------------------------------- aba Atributos (tabela editável) */
.sig-atrib { display: flex; flex-direction: column; gap: 8px; }
.sig-atrib-barra { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sig-atrib-busca { position: relative; flex: 1 1 240px; max-width: 360px; }
.sig-atrib-busca i { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--sig-suave); font-size: .8rem; }
.sig-atrib-busca .form-control { padding-left: 28px; border-radius: 999px; }
.sig-atrib-resumo { margin-left: auto; font-size: .8rem; color: var(--sig-suave); }
.sig-atrib-tabela { max-height: 52vh; overflow: auto; border: 1px solid var(--sig-borda); border-radius: 12px; background: #fff; }
.sig-atrib-t { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; font-size: 13px; }
.sig-atrib-t th { position: sticky; top: 0; z-index: 2; background: #f8fafc; border-bottom: 1px solid var(--sig-borda); border-right: 1px solid #eef2f6; padding: 0; white-space: nowrap; }
.sig-atrib-th { display: flex; align-items: center; }
.sig-atrib-ordenar { flex: 1; border: none; background: transparent; text-align: left; font-weight: 600; color: #334155; padding: 7px 4px 7px 10px; font-size: 12.5px; }
.sig-atrib-ordenar:hover { color: var(--sig-primaria); }
.sig-atrib-menu { border: none; background: transparent; color: var(--sig-suave); padding: 4px 6px; border-radius: 6px; }
.sig-atrib-menu:hover { background: #e2e8f0; }
.sig-atrib-t td { padding: 0; border-bottom: 1px solid #f1f5f9; border-right: 1px solid #f1f5f9; }
.sig-atrib-t tr:hover td { background: #fafcfd; }
.sig-atrib-t .sig-atrib-n { position: sticky; left: 0; z-index: 1; background: #f8fafc; color: var(--sig-suave); font-size: 11.5px; text-align: right; padding: 0 8px; min-width: 52px; font-variant-numeric: tabular-nums; }
.sig-atrib-t th.sig-atrib-n { z-index: 3; padding: 7px 8px; }
.sig-atrib-celula { width: 100%; min-width: 130px; border: none; background: transparent; padding: 6px 10px; font-size: 13px; color: var(--sig-texto); }
.sig-atrib-celula:focus { outline: 2px solid var(--sig-primaria); outline-offset: -2px; background: #fff; border-radius: 2px; }
.sig-atrib-t td.alterada, .sig-atrib-t td.alterada .sig-atrib-celula { background: #fff7d6; }
.sig-atrib-rodape { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .8rem; flex-wrap: wrap; }
.sig-atrib.com-alteracoes [data-alteracoes] { color: #92400e; font-weight: 600; }

/* menu ⋮ de tema/camada aberto: fica por cima das linhas de baixo (a caixa de ações usa transform) */
.sig-acoes { z-index: 5; }
.sig-tema-cab:has(.dropdown-menu.show), .sig-camada-linha:has(.dropdown-menu.show) { position: relative; z-index: 30; }
.sig-acoes:has(.dropdown-menu.show) { z-index: 31; }
.sidebar .dropdown-menu { z-index: 1060; background-color: #fff; }

/* mapas base incluídos pelo autor */
.sig-base-linha { padding: 0; }
.sig-base-linha .sig-item-base { flex: 1; min-width: 0; }
.sig-base-proprio { color: var(--sig-primaria); font-size: .8rem; }
.sig-base-incluir { padding: 8px 6px 4px; }
.sig-declaracao { border: 1px solid #f59e0b; background: #fffbeb; border-radius: 12px; padding: 12px 14px; font-size: .86rem; }
.sig-declaracao .form-check-label { font-weight: 600; }
.sig-declaracao ul { margin: 6px 0 8px 18px; padding: 0; }
.sig-camada-interna { color: var(--sig-suave); font-size: .8rem; flex: none; }

/* ==========================================================================
   Painel lateral — visual próprio (abas em segmentos, mapa de fundo, lista limpa)
   ========================================================================== */
.sig-abas { margin: 10px 10px 4px; padding: 3px; gap: 2px; background: #f1f5f9; border-radius: 12px; border-bottom: none; }
.sig-abas .nav-link { border: none; border-radius: 9px; padding: 7px 4px; font-size: .8rem; color: #475569; }
.sig-abas .nav-link:hover { color: var(--sig-texto); background: rgba(255,255,255,.6); }
.sig-abas .nav-link.active { background: #fff; color: var(--sig-primaria-escura); box-shadow: 0 1px 3px rgba(15,23,42,.12); border-bottom: none; }
.sig-abas-conteudo { padding-top: 8px; }

/* mapa de fundo */
.sig-fundo { margin: 0 2px 12px; padding: 10px; border: 1px solid var(--sig-borda); border-radius: 12px; background: linear-gradient(180deg, #f8fafc, #fff); }
.sig-fundo-rotulo { display: flex; align-items: center; gap: 6px; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--sig-suave); margin-bottom: 6px; }
.sig-fundo-rotulo i { color: var(--sig-primaria); font-size: .85rem; }
.sig-fundo-linha { display: flex; align-items: center; gap: 4px; }
.sig-fundo-linha .form-select { flex: 1; min-width: 0; font-size: .82rem; border-radius: 9px; }
.sig-fundo-acoes { display: inline-flex; gap: 0; flex: none; }

/* busca */
.sig-filtro-camadas { margin: 0 2px 10px; }
.sig-filtro-camadas .form-control { background: #fff; }

/* temas e subtemas */
.sidebar-nav .sig-tema { margin-bottom: 4px; }
.sidebar-nav .sig-tema-cab > .nav-link { padding: 8px 8px 8px 6px; border-radius: 10px; background: transparent; font-size: .86rem; letter-spacing: -.005em; }
.sidebar-nav .sig-tema-cab > .nav-link:hover { background: #f1f5f9; }
.sidebar-nav .sig-tema-cab > .nav-link:not(.collapsed) { background: transparent; }
.sidebar-nav .sig-tema-cab > .nav-link .sig-seta { order: -1; margin-left: 0 !important; margin-right: 2px; transform: rotate(-90deg); }
.sidebar-nav .sig-tema-cab > .nav-link:not(.collapsed) .sig-seta { transform: rotate(0); }
.sig-tema-icone { font-size: .95rem; }
.sig-tema .nav-content { margin-left: 14px; padding: 2px 0 4px 6px; border-left: 1px solid #e8edf2; }
.sig-contador { margin-left: auto; }
.sig-tema-cab > .nav-link .sig-contador + .sig-seta { margin-left: 0 !important; }

/* camadas: nome à esquerda, interruptor à direita */
.sig-camada-linha { gap: 6px; padding: 6px 8px; min-height: 36px; }
.sig-camada-rotulo { order: 0; font-size: .84rem; color: #334155; gap: 6px; }
.sig-camada-total { order: 1; font-size: .7rem; color: #94a3b8; font-variant-numeric: tabular-nums; }
.sig-camada-tipo { font-weight: 700; letter-spacing: .03em; }
.sig-camada-linha > .sig-acoes { position: static; transform: none; order: 2; }
.sig-camada-chave { order: 3; padding-left: 0 !important; margin-left: 2px !important; }
.sig-camada-chave .form-check-input { margin: 0 !important; width: 2.1em; cursor: pointer; }
.sig-camada.ligada .sig-camada-nome { color: var(--sig-texto); font-weight: 600; }
.sig-camada.ligada > .sig-camada-linha { background: var(--sig-primaria-clara); }
.modo-editor .sig-camada-linha:hover .sig-camada-total { visibility: visible; }
.sig-camada-linha .sig-acoes { opacity: 0; }
.sig-camada-linha:hover .sig-acoes, .sig-camada-linha .sig-acoes:focus-within, .sig-camada-linha .sig-acoes:has(.show) { opacity: 1; }
.sig-ligar-todas { justify-content: flex-end; gap: 8px; padding: 2px 8px 4px; font-size: .74rem; }
.sig-ligar-todas .sig-camada-chave .form-check-input { width: 1.9em; }

/* Mapas base: mantém o visual original (não usa o estilo novo da lista de camadas) */
.sidebar-nav .sig-tema-base .sig-tema-cab > .nav-link { padding: 8px 10px; font-size: .88rem; }
.sidebar-nav .sig-tema-base .sig-tema-cab > .nav-link:not(.collapsed) { background: var(--sig-primaria-clara); }
.sidebar-nav .sig-tema-base .sig-tema-cab > .nav-link .sig-seta { order: 0; margin-left: auto !important; margin-right: 0; transform: none; }
.sidebar-nav .sig-tema-base .sig-tema-cab > .nav-link.collapsed .sig-seta { transform: rotate(-90deg); }
.sig-tema-base .nav-content { margin-left: 9px; padding: 2px 0 6px 12px; border-left: 2px solid #edf1f5; }
.sig-tema-base .sig-camada-linha.sig-base-linha { padding: 0; min-height: 0; gap: 4px; }
.sig-tema-base .sig-base-linha .sig-item-base { padding: 4px 6px; }

/* editor: botões do tema (⊕ ⋮) ao lado do cabeçalho, sem sobrepor a contagem */
.sidebar-nav .sig-tema-cab { gap: 2px; }
.sidebar-nav .sig-tema-cab > .sig-acoes { position: static; transform: none; flex: none; display: inline-flex; align-items: center; }
.modo-editor .sidebar-nav .sig-tema-cab > .nav-link { padding-right: 8px; min-width: 0; }
.sidebar-nav .sig-tema-cab > .nav-link .sig-contador { margin-left: auto; flex: none; }
.sidebar-nav .sig-tema-nome { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-ligar-todas label { white-space: nowrap; }

/* seta de abrir/fechar dos temas à direita, como no "Mapas base" */
.sidebar-nav .sig-tema-cab > .nav-link .sig-seta { order: 0; margin-left: 6px !important; margin-right: 0; transform: none; }
.sidebar-nav .sig-tema-cab > .nav-link.collapsed .sig-seta { transform: rotate(-90deg); }
.sidebar-nav .sig-tema-base .sig-tema-cab > .nav-link .sig-seta { margin-left: auto !important; }

/* seta dos temas na mesma coluna da seta do "Mapas base" (depois dos botões do editor) */
.sig-seta-link { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 32px; margin-right: 2px; color: var(--sig-suave); border-radius: 8px; }
.sig-seta-link:hover { background: #f1f5f9; color: var(--sig-texto); }
.sig-seta-link .sig-seta { font-size: .75rem; transition: transform .2s; }
.sig-seta-link.collapsed .sig-seta { transform: rotate(-90deg); }

/* ==========================================================================
   Gráficos (aba Gráficos, ampliar, painel e formulário do editor)
   ========================================================================== */
/* com 4 abas: ícone acima do nome */
.sig-abas-4 .nav-link { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 5px 2px; font-size: .7rem; line-height: 1.2; }
.sig-abas-4 .nav-link i { font-size: .95rem; }

.sig-graficos-topo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 2px 8px; }
.sig-graficos-area { font-size: .78rem; color: var(--sig-suave); display: flex; align-items: center; gap: 6px; padding-left: 2.3em; }
.sig-graficos-area .form-check-label { white-space: nowrap; }
.sig-graficos-vazio { text-align: center; padding: 28px 16px; border: 1px dashed #cbd5e1; border-radius: 14px; color: var(--sig-suave); margin: 4px 2px; }
.sig-graficos-vazio > i { font-size: 2rem; color: var(--sig-primaria); display: block; margin-bottom: 6px; }
.sig-graficos-vazio b { color: var(--sig-texto); display: block; margin-bottom: 4px; }
.sig-graficos-vazio p { font-size: .8rem; margin-bottom: 12px; }

.sig-grafico { background: #fff; border: 1px solid var(--sig-borda); border-radius: 14px; padding: 10px 10px 8px; margin: 0 2px 10px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.sig-grafico-cab { display: flex; align-items: flex-start; gap: 6px; margin-bottom: 6px; }
.sig-grafico-titulo { flex: 1; min-width: 0; }
.sig-grafico-titulo h3 { font-size: .86rem; font-weight: 700; margin: 2px 0 0; line-height: 1.3; overflow-wrap: anywhere; }
.sig-grafico-titulo p { font-size: .74rem; color: var(--sig-suave); margin: 2px 0 0; }
.sig-grafico-acoes { display: inline-flex; flex: none; }
.sig-grafico-acoes .sig-acao { opacity: 1; }
.sig-grafico-canvas { position: relative; width: 100%; }
.sig-grafico-rodape { font-size: .72rem; color: var(--sig-suave); margin-top: 6px; padding-top: 6px; border-top: 1px solid #f1f5f9; overflow-wrap: anywhere; }
.sig-grafico-rodape:empty { display: none; }
.sig-grafico-carregando, .sig-grafico-vazio { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 120px; font-size: .8rem; color: var(--sig-suave); text-align: center; padding: 10px; }

.sig-indicador { text-align: center; padding: 14px 6px 10px; }
.sig-indicador-valor { font-size: 2rem; font-weight: 800; letter-spacing: -.02em; color: var(--sig-primaria-escura); line-height: 1.1; }
.sig-indicador-valor span { font-size: .95rem; font-weight: 600; color: var(--sig-suave); margin-left: 5px; }
.sig-indicador-rotulo { font-size: .76rem; color: var(--sig-suave); margin-top: 4px; }
.sig-indicador.grande .sig-indicador-valor { font-size: 3.2rem; }
.sig-indicador.grande { padding: 40px 10px; }

.sig-grafico-ampliado .sig-grafico-info { margin-top: 14px; }
.sig-grafico-info-cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: .82rem; color: var(--sig-suave); margin-bottom: 8px; }
.sig-grafico-tabela { max-height: 280px; overflow-y: auto; border: 1px solid var(--sig-borda); border-radius: 10px; }
.sig-grafico-tabela table { font-size: .82rem; }
.sig-grafico-tabela thead th { position: sticky; top: 0; background: #f8fafc; font-weight: 600; }

.sig-graficos-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.sig-graficos-grade .sig-grafico { margin: 0; padding: 14px; }
.sig-graficos-grade .sig-grafico-titulo h3 { font-size: .95rem; }
.sig-graficos-grade .sig-grafico-largo { grid-column: 1 / -1; }
@media (max-width: 900px) { .sig-graficos-grade { grid-template-columns: 1fr; } }

/* formulário do editor */
.sig-form-grafico .form-label { font-size: .82rem; font-weight: 600; margin-bottom: 4px; }
.sig-grafico-camadas { max-height: 150px; overflow-y: auto; border: 1px solid var(--sig-borda); border-radius: 10px; padding: 6px 10px; }
.sig-grafico-camadas .form-check { margin: 3px 0; }
.sig-grafico-camadas small { color: var(--sig-suave); margin-left: 4px; }
.sig-grafico-tipos { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.sig-grafico-tipo { margin: 0; cursor: pointer; }
.sig-grafico-tipo input { position: absolute; opacity: 0; pointer-events: none; }
.sig-grafico-tipo span { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 8px 2px; border: 1px solid var(--sig-borda); border-radius: 10px; font-size: .7rem; font-weight: 600; color: #475569; transition: border-color .15s, background .15s; }
.sig-grafico-tipo span i { font-size: 1.15rem; color: var(--sig-suave); }
.sig-grafico-tipo:hover span { border-color: #cbd5e1; background: #f8fafc; }
.sig-grafico-tipo input:checked + span { border-color: var(--sig-primaria); background: var(--sig-primaria-clara); color: var(--sig-primaria-escura); }
.sig-grafico-tipo input:checked + span i { color: var(--sig-primaria); }
.sig-grafico-tipo input:focus-visible + span { outline: 2px solid var(--sig-primaria); outline-offset: 1px; }
.sig-grafico-previa { position: sticky; top: 0; border: 1px solid var(--sig-borda); border-radius: 14px; padding: 14px 16px; background: linear-gradient(180deg, #f8fafc, #fff 120px); min-height: 360px; }
.sig-grafico-previa-rotulo { font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sig-suave); margin-bottom: 6px; }
.sig-grafico-previa h3 { font-size: 1rem; font-weight: 700; margin-bottom: 10px; }
.sig-grafico-previa-info { font-size: .78rem; color: var(--sig-suave); margin-top: 10px; }
@media (max-width: 575px) { .sig-grafico-tipos { grid-template-columns: repeat(3, 1fr); } }

/* lista compacta de gráficos (um aberto por vez) */
.sig-graficos-lista { display: flex; flex-direction: column; gap: 6px; margin: 0 2px; }
.sig-graficos-lista .sig-grafico { margin: 0; padding: 0; border-radius: 12px; box-shadow: none; transition: border-color .15s, box-shadow .15s; }
.sig-graficos-lista .sig-grafico:hover { border-color: #cbd5e1; }
.sig-graficos-lista .sig-grafico.aberto { border-color: color-mix(in srgb, var(--sig-primaria) 35%, #fff); box-shadow: 0 2px 10px rgba(15,23,42,.07); }
.sig-graficos-lista .sig-grafico-cab { align-items: center; gap: 10px; margin: 0; padding: 8px 6px 8px 8px; cursor: pointer; border-radius: 12px; user-select: none; }
.sig-graficos-lista .sig-grafico-cab:focus-visible { outline: 2px solid var(--sig-primaria); outline-offset: -2px; }
.sig-grafico-icone { flex: none; width: 32px; height: 32px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; background: #f1f5f9; color: var(--sig-suave); font-size: .95rem; transition: background .15s, color .15s; }
.sig-grafico.aberto .sig-grafico-icone { background: var(--sig-primaria-clara); color: var(--sig-primaria); }
.sig-graficos-lista .sig-grafico-titulo h3 { margin: 0; font-size: .84rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sig-graficos-lista .sig-grafico-titulo h3 i { color: var(--sig-suave); font-size: .78rem; }
.sig-graficos-lista .sig-grafico-titulo p { margin: 1px 0 0; font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sig-grafico-valor { flex: none; font-weight: 800; font-size: .92rem; color: var(--sig-primaria-escura); white-space: nowrap; }
.sig-grafico-seta { flex: none; font-size: .75rem; color: var(--sig-suave); transform: rotate(-90deg); transition: transform .2s; margin: 0 4px 0 -2px; }
.sig-grafico.aberto .sig-grafico-seta { transform: none; }
.sig-graficos-lista .sig-grafico-acoes .sig-acao { opacity: 0; }
.sig-graficos-lista .sig-grafico:hover .sig-grafico-acoes .sig-acao, .sig-graficos-lista .sig-grafico-acoes .sig-acao[aria-expanded="true"], .sig-graficos-lista .sig-grafico-acoes .sig-acao:focus-visible { opacity: 1; }
@media (hover: none) { .sig-graficos-lista .sig-grafico-acoes .sig-acao { opacity: 1; } }
.sig-grafico-aberto { display: none; padding: 0 10px 10px; }
.sig-grafico.aberto .sig-grafico-aberto { display: block; }
.sig-grafico-nota { font-size: .74rem; color: var(--sig-suave); margin: 0 0 6px; }
.sig-grafico-mais { margin-top: 8px; }
.sig-grafico-mais .btn { width: 100%; font-size: .78rem; }
.sig-graficos-lista .sig-grafico[hidden] { display: none; }

/* modal maximizável e troca de formato do gráfico ampliado */
.sig-modal-maximizar { border: none; background: transparent; color: var(--sig-suave); width: 32px; height: 32px; border-radius: 8px; margin-left: auto; margin-right: 4px; display: inline-flex; align-items: center; justify-content: center; }
.sig-modal-maximizar:hover { background: #f1f5f9; color: var(--sig-texto); }
.sig-modal-maximizar + .btn-close { margin-left: 0 !important; }
.modal-fullscreen .modal-content { border-radius: 0; }
.sig-grafico-formatos { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.sig-grafico-formatos .btn-group .btn { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .8rem; border-color: var(--sig-borda); }
.sig-grafico-formatos .btn-group .btn-light { background: #fff; color: #475569; }
.sig-grafico-formatos .btn-group .btn-light:hover { background: #f1f5f9; }
.sig-grafico-formatos [data-salvar-formato] { margin-left: auto; }
@media (max-width: 575px) { .sig-grafico-formatos .btn-group .btn span { display: none; } }
/* maximizado: o gráfico usa a altura da tela */
.modal-fullscreen .sig-grafico-grande .sig-grafico-canvas { height: calc(100vh - 330px) !important; min-height: 320px; }
.modal-fullscreen .sig-graficos-grade .sig-grafico-canvas { height: calc(50vh - 120px) !important; min-height: 260px; }

/* legenda começa à direita da barra de desenho (vertical, no canto superior esquerdo do mapa) */
.draggable { left: calc(var(--sig-lateral) + 86px); max-width: calc(100vw - var(--sig-lateral) - 160px); }
body.toggle-sidebar .draggable { left: 86px; }
body.sig-sem-desenho .draggable { left: calc(var(--sig-lateral) + 12px); }
body.sig-sem-desenho.toggle-sidebar .draggable { left: 12px; }

/* ==========================================================================
   Painel "Neste ponto" (informações de todas as camadas no ponto clicado)
   ========================================================================== */
.sig-identificar { position: fixed; top: calc(var(--sig-topo) + 12px); right: 70px; width: 360px; max-width: calc(100vw - var(--sig-lateral) - 100px);
    max-height: calc(100vh - var(--sig-topo) - 110px); display: flex; flex-direction: column; background: #fff; border: 1px solid var(--sig-borda);
    border-radius: var(--sig-raio); box-shadow: var(--sig-sombra); z-index: 1000002; opacity: 0; transform: translateX(12px); pointer-events: none;
    transition: opacity .18s, transform .18s; }
.sig-identificar.aberto { opacity: 1; transform: none; pointer-events: auto; }
.sig-identificar-cab { display: flex; align-items: flex-start; gap: 10px; padding: 12px 10px 10px 14px; border-bottom: 1px solid var(--sig-borda); flex: none; }
.sig-identificar-icone { flex: none; width: 32px; height: 32px; border-radius: 9px; background: var(--sig-primaria-clara); color: var(--sig-primaria); display: inline-flex; align-items: center; justify-content: center; }
.sig-identificar-titulo { flex: 1; min-width: 0; }
.sig-identificar-titulo h2 { font-size: .95rem; font-weight: 700; margin: 1px 0 2px; }
.sig-identificar-titulo p { font-size: .74rem; color: var(--sig-suave); margin: 0; line-height: 1.45; font-variant-numeric: tabular-nums; }
.sig-identificar-datum { font-size: .66rem; font-weight: 700; background: #f1f5f9; border-radius: 5px; padding: 0 5px; margin-left: 3px; }
.sig-identificar-cab .sig-acao { opacity: 1; flex: none; }
.sig-identificar-corpo { overflow-y: auto; padding: 6px; scrollbar-width: thin; }

.sig-identificar-camada { border-radius: 11px; }
.sig-identificar-camada + .sig-identificar-camada { margin-top: 2px; }
.sig-identificar-camada-cab { width: 100%; display: flex; align-items: center; gap: 9px; border: none; background: transparent; padding: 9px 8px; border-radius: 10px; text-align: left; color: var(--sig-texto); }
.sig-identificar-camada-cab:hover { background: #f8fafc; }
.sig-identificar-camada.aberta > .sig-identificar-camada-cab { background: var(--sig-primaria-clara); }
.sig-identificar-geo { flex: none; color: var(--sig-primaria); font-size: .95rem; }
.sig-identificar-nome { flex: 1; min-width: 0; font-size: .85rem; overflow-wrap: anywhere; }
.sig-identificar-nome small { display: block; font-size: .72rem; color: var(--sig-suave); }
.sig-identificar-qtd { flex: none; min-width: 22px; height: 20px; padding: 0 6px; border-radius: 999px; background: #fff; border: 1px solid var(--sig-borda); font-size: .7rem; font-weight: 700; color: #475569; display: inline-flex; align-items: center; justify-content: center; }
.sig-identificar-qtd:empty { display: none; }
.sig-identificar-seta { flex: none; font-size: .72rem; color: var(--sig-suave); transform: rotate(-90deg); transition: transform .2s; }
.sig-identificar-camada.aberta .sig-identificar-seta { transform: none; }
.sig-identificar-conteudo { display: none; padding: 6px 8px 10px; }
.sig-identificar-camada.aberta .sig-identificar-conteudo { display: block; }
.sig-identificar-nav { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: .76rem; font-weight: 600; color: var(--sig-suave); margin-bottom: 6px; }
.sig-identificar-nav .sig-acao { opacity: 1; width: 26px; height: 26px; }
.sig-identificar-feicao .sig-tabela-props { font-size: .8rem; }
.sig-identificar-feicao .sig-tabela-props th { width: 42%; }
.sig-identificar-acoes { display: flex; gap: 6px; margin-top: 10px; }
.sig-identificar-acoes .btn { flex: 1; font-size: .78rem; display: inline-flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--sig-borda); }
.sig-identificar .siggarr-baixar-feicao { margin-top: 8px; }

@media (max-width: 767.98px) {
    .sig-identificar { top: auto; bottom: 0; left: 0; right: 0; width: auto; max-width: none; max-height: 58vh; border-radius: 16px 16px 0 0; transform: translateY(16px); }
    .sig-identificar.aberto { transform: none; }
}

/* menu de download (💾): formatos com ícone e para que servem */
.sig-menu-baixar { position: fixed; width: 250px; background: #fff; border: 1px solid var(--sig-borda); border-radius: 12px; box-shadow: var(--sig-sombra); padding: 5px; overflow-y: auto; animation: sig-menu-entrar .12s ease-out; }
@keyframes sig-menu-entrar { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: none; } }
.sig-menu-baixar-cab { display: flex; align-items: center; gap: 6px; padding: 6px 9px 7px; font-size: .74rem; color: var(--sig-suave); border-bottom: 1px solid #f1f5f9; margin-bottom: 3px; }
.sig-menu-baixar-cab span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-menu-baixar-cab b { color: var(--sig-texto); }
.sig-menu-baixar-item { width: 100%; display: flex; align-items: center; gap: 10px; border: none; background: transparent; border-radius: 8px; padding: 7px 9px; text-align: left; color: var(--sig-texto); }
.sig-menu-baixar-item:hover, .sig-menu-baixar-item:focus-visible { background: var(--sig-primaria-clara); outline: none; }
.sig-menu-baixar-item > i { flex: none; width: 30px; height: 30px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; font-size: 1rem; }
.sig-menu-baixar-item span { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.sig-menu-baixar-item b { font-size: .82rem; font-weight: 600; }
.sig-menu-baixar-item small { font-size: .7rem; color: var(--sig-suave); }
.sig-menu-baixar-geojson { background: #eff6ff; color: #2563eb; }
.sig-menu-baixar-kml { background: #ecfdf5; color: #059669; }
.sig-menu-baixar-shp { background: #fff7ed; color: #ea580c; }
.sig-menu-baixar-excel { background: #f0fdf4; color: #16a34a; }

/* ações da entrada da legenda: atalho 🔍 + menu ⋮ (itens com ícone e nome) */
.legenda-acoes { max-width: none; overflow: visible; opacity: 1; visibility: visible; transition: none; display: inline-flex; align-items: center; margin-left: 2px; }
.legenda-atalho, .legenda-config { border: none; background: transparent; color: var(--sig-suave); width: 24px; height: 24px; padding: 0; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; font-size: .85rem; flex: none; opacity: 1; }
.legenda-atalho:hover, .legenda-config:hover { background: #f1f5f9; color: var(--sig-texto); }
.legenda-config.ativo { background: var(--sig-primaria-clara) !important; color: var(--sig-primaria); }
.legenda-menu { position: fixed; z-index: 1000005; min-width: 210px; max-width: 280px; background: #fff; border: 1px solid var(--sig-borda); border-radius: 12px; box-shadow: var(--sig-sombra); padding: 5px; overflow-y: auto; animation: sig-menu-entrar .12s ease-out; }
.legenda-menu-item { width: 100%; display: flex; align-items: center; gap: 10px; border: none; background: transparent; border-radius: 8px; padding: 7px 10px; font-size: .84rem; color: var(--sig-texto); text-align: left; cursor: pointer; }
.legenda-menu-item:hover, .legenda-menu-item:focus-visible { background: var(--sig-primaria-clara); outline: none; }
.legenda-menu-item > i { flex: none; width: 18px; text-align: center; color: var(--sig-suave); font-size: .95rem; }
.legenda-menu-item:hover > i { color: var(--sig-primaria); }
.legenda-menu-divisor { height: 1px; background: #eef2f6; margin: 4px 6px; }
.legenda-menu-ajuste { display: flex; align-items: center; gap: 10px; padding: 7px 10px; font-size: .84rem; margin: 0; cursor: pointer; }
.legenda-menu-ajuste > i { flex: none; width: 18px; text-align: center; color: var(--sig-suave); }
.legenda-menu-ajuste > span { flex: 1; }
.legenda-menu-ajuste input[type=range] { width: 90px; accent-color: var(--sig-primaria); }
.legenda-menu-ajuste input[type=checkbox] { margin: 0; float: none; }
.legenda-menu-ajuste .form-check-input { width: 2em; height: 1em; }
.legenda-menu-ajuste.form-switch { padding-left: 10px; min-height: 0; }
.legenda-menu-ajuste.form-switch .form-check-input { margin-left: 0; }
.legenda-remover { width: 24px; height: 24px; justify-content: center; border-radius: 6px; color: var(--sig-suave) !important; font-size: .78rem !important; }
.legenda-remover:hover { background: #fef2f2 !important; color: #dc2626 !important; }
.sig-menu-baixar-cab span { flex: 1; }
.sig-menu-baixar-fechar { flex: none; margin: -3px -4px -3px 0; width: 24px; height: 24px; border: none; background: transparent; border-radius: 6px; color: var(--sig-suave); font-size: .72rem; display: inline-flex; align-items: center; justify-content: center; }
.sig-menu-baixar-fechar:hover { background: #f1f5f9; color: var(--sig-texto); }

/* Visão inicial do projeto (editor) */
.sig-visao .sig-opcao-radio { margin-bottom: .45rem; }
.sig-visao-fixa { margin-top: 10px; padding: 12px; border: 1px solid var(--sig-borda); border-radius: 12px; background: #f8fafc; transition: opacity .15s; }
.sig-visao-fixa.desativada { opacity: .45; pointer-events: none; }
.sig-visao-previa { height: 260px; border-radius: 10px; overflow: hidden; border: 1px solid var(--sig-borda); background: #e2e8f0; }
.sig-visao-mira { color: #dc2626; font-size: 22px; line-height: 22px; text-align: center; text-shadow: 0 0 3px #fff, 0 0 3px #fff; pointer-events: none; }
.sig-visao-mira i { -webkit-text-stroke: 1px #dc2626; }
.sig-visao .form-range::-webkit-slider-runnable-track { background: #dbe3ea; height: 6px; border-radius: 3px; }
.sig-visao .form-range::-webkit-slider-thumb { margin-top: -5px; background: var(--sig-primaria); }
.sig-visao .form-range::-moz-range-track { background: #dbe3ea; height: 6px; border-radius: 3px; }

/* ==========================================================================
   Laudo de sobreposição (aba Ferramentas)
   ========================================================================== */
.sig-sobreposicao { padding-bottom: 6px; }
.sig-sob-passo { border: 1px solid var(--sig-borda); border-radius: 12px; padding: 10px; margin-bottom: 8px; background: #fff; }
.sig-sob-passo h4 { display: flex; align-items: center; gap: 7px; font-size: .8rem; font-weight: 700; margin: 0 0 8px; color: var(--sig-texto); }
.sig-sob-passo h4 span { width: 20px; height: 20px; border-radius: 50%; background: var(--sig-primaria); color: #fff; font-size: .7rem; display: inline-flex; align-items: center; justify-content: center; }
.sig-sob-area { display: flex; align-items: center; gap: 9px; padding: 8px 10px; border: 1px dashed #cbd5e1; border-radius: 10px; margin-bottom: 7px; color: var(--sig-suave); }
.sig-sob-area > i { font-size: 1.2rem; flex: none; }
.sig-sob-area span { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.sig-sob-area b { font-size: .8rem; overflow-wrap: anywhere; }
.sig-sob-area small { font-size: .7rem; }
.sig-sob-area.escolhida { border-style: solid; border-color: color-mix(in srgb, var(--sig-primaria) 40%, #fff); background: var(--sig-primaria-clara); color: var(--sig-primaria-escura); }
.sig-sob-area.escolhida b { color: var(--sig-texto); }
.sig-sob-botoes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 4px; }
.sig-sob-botoes .btn, .sig-sobreposicao .btn-light { border: 1px solid var(--sig-borda); font-size: .76rem; }
.sig-sob-camadas { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.sig-sob-tag { display: inline-flex; align-items: center; gap: 5px; font-size: .72rem; background: #f1f5f9; border-radius: 999px; padding: 3px 9px 3px 6px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-sob-tag i { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.sig-sob-acoes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: 4px 0 8px; }
.sig-sob-resumo { border: 1px solid var(--sig-borda); border-radius: 12px; overflow: hidden; }
.sig-sob-resumo-cab { padding: 8px 10px; background: #f8fafc; border-bottom: 1px solid var(--sig-borda); display: flex; flex-direction: column; }
.sig-sob-resumo-cab b { font-size: .8rem; }
.sig-sob-resumo-cab small { font-size: .7rem; color: var(--sig-suave); }
.sig-sob-linha { display: flex; align-items: center; gap: 8px; padding: 7px 10px; font-size: .76rem; }
.sig-sob-linha + .sig-sob-linha { border-top: 1px solid #f1f5f9; }
.sig-sob-linha > i { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.sig-sob-linha span { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.sig-sob-linha small { color: var(--sig-suave); font-size: .7rem; }
.sig-sob-linha em { font-style: normal; font-size: .68rem; font-weight: 700; padding: 2px 7px; border-radius: 999px; background: #dcfce7; color: #15803d; flex: none; }
.sig-sob-linha.sim em { background: #fee2e2; color: #b91c1c; }
/* janelas de escolha */
.sig-sob-fonte, .sig-sob-feicao { width: 100%; display: flex; align-items: center; gap: 10px; border: 1px solid var(--sig-borda); background: #fff; border-radius: 10px; padding: 9px 12px; margin-bottom: 6px; text-align: left; color: var(--sig-texto); }
.sig-sob-fonte:hover, .sig-sob-feicao:hover { border-color: var(--sig-primaria); background: var(--sig-primaria-clara); }
.sig-sob-fonte > i:first-child { color: var(--sig-primaria); font-size: 1.1rem; }
.sig-sob-fonte span { flex: 1; display: flex; flex-direction: column; line-height: 1.3; }
.sig-sob-fonte small, .sig-sob-feicao small { color: var(--sig-suave); font-size: .74rem; }
.sig-sob-feicao span { flex: 1; font-size: .84rem; overflow-wrap: anywhere; }
.sig-sob-feicoes { max-height: 55vh; overflow-y: auto; }
.sig-sob-grupo { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--sig-suave); margin: 12px 0 6px; }
.sig-sob-cam { border: 1px solid var(--sig-borda); border-radius: 10px; margin-bottom: 6px; padding: 8px 10px; }
.sig-sob-cam.marcada { border-color: color-mix(in srgb, var(--sig-primaria) 45%, #fff); background: #fbfefd; }
.sig-sob-cam-cab { display: flex; align-items: center; gap: 10px; margin: 0; cursor: pointer; }
.sig-sob-cam-cab > span { flex: 1; display: flex; flex-direction: column; line-height: 1.3; }
.sig-sob-cam-cab small { color: var(--sig-suave); font-size: .74rem; }
.sig-sob-cam-cab .form-check-input { margin: 0; flex: none; }
.sig-sob-cam-cab .form-control-color { width: 34px; height: 28px; padding: 2px; flex: none; }
.sig-sob-campos { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.sig-sob-cam.marcada .sig-sob-campos:not(:empty) { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--sig-borda); }
.sig-sob-tipos { width: 100%; color: var(--sig-primaria-escura); font-weight: 600; font-size: .72rem; }
.sig-sob-chip { margin: 0; cursor: pointer; }
.sig-sob-chip input { position: absolute; opacity: 0; pointer-events: none; }
.sig-sob-chip span { display: inline-block; font-size: .74rem; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--sig-borda); background: #fff; }
.sig-sob-chip input:checked + span { background: var(--sig-primaria); border-color: var(--sig-primaria); color: #fff; }
.sig-sob-chip input:focus-visible + span { outline: 2px solid var(--sig-primaria); outline-offset: 1px; }
/* mapa temporário dos laudos (fora da tela) */
.sig-sob-mapa-temp { position: fixed; left: -12000px; top: 0; width: 900px; height: 600px; background: #fff; }
.sig-escolhendo, .sig-escolhendo .leaflet-interactive { cursor: crosshair !important; }
.sig-sob-acoes { grid-template-columns: 1fr 1fr auto; }
.sig-sob-acoes .btn-light { border: 1px solid var(--sig-borda); }
.sig-sob-acoes .btn { white-space: nowrap; font-size: .76rem; padding: 6px 8px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; }

/* entradas da legenda numa linha só: símbolo, nome (cortado com …), liga/desliga e ações */
#texto .flex-container { flex-wrap: nowrap; gap: 2px; min-width: 0; }
#texto .flex-container > .legenda-nome { flex: 0 1 auto; min-width: 48px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0; }
#texto .flex-container > b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#texto .flex-container > .legenda-total, #texto .flex-container > .legenda-visivel, #texto .flex-container > .legenda-acoes, #texto .flex-container > .legenda-remover, #texto .flex-container > .legenda-simbolo { flex: none; }
/* atalho de zoom sempre visível (invisível ele deixava um espaço vazio na linha) */
#texto .legenda-acoes { margin-left: 4px; gap: 0; }
#texto .flex-container > .legenda-visivel { margin-left: 6px; }
/* arrastar para dentro/fora das pastas: pasta de destino destacada */
#texto .legenda-alvo { outline: 2px dashed color-mix(in srgb, var(--sig-primaria) 55%, #fff); outline-offset: 2px; border-radius: 8px; background: var(--sig-primaria-clara); min-height: 24px; }

/* ==========================================================================
   Legenda alinhada por nível: alça ⠿ | coluna do símbolo (40px) | nome | ações logo após o nome.
   Pastas usam as mesmas colunas (seta + caixa no lugar do símbolo); cada nível recua 16px.
   ========================================================================== */
#texto .flex-container { margin-left: 0; }
#texto .legenda-item-movel { padding-left: 18px; }
#texto .legenda-alca { left: 0; top: 50%; transform: translateY(-50%); line-height: 1; }
#texto .grupo-legenda > .legenda-alca, #texto .subpasta-legenda > .legenda-alca { top: 15px; }

/* pastas */
#texto .grupo-legenda, #texto .subpasta-legenda { border: none; padding-top: 2px; padding-bottom: 2px; margin: 0; }
#texto .grupo-legenda { border-bottom: 1px solid var(--sig-borda); padding-bottom: 4px; margin-bottom: 4px; }
.legenda-pasta-cab { display: flex; align-items: center; min-height: 30px; margin: 0; gap: 0; }
.legenda-pasta-controles { flex: none; width: 32px; margin-right: 8px; display: inline-flex; align-items: center; justify-content: space-between; }
.legenda-pasta-seta { border: none; background: transparent; padding: 0; width: 16px; height: 22px; color: var(--sig-suave); display: inline-flex; align-items: center; justify-content: center; font-size: .72rem; cursor: pointer; }
.legenda-pasta-seta i { transition: transform .15s; }
.legenda-pasta-seta.fechada i { transform: rotate(-90deg); }
.legenda-pasta-mestre { width: 14px; height: 14px; margin: 0; accent-color: var(--sig-primaria); cursor: pointer; flex: none; }
.legenda-pasta-nome { flex: 1 1 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; font-size: 13px; cursor: pointer; color: var(--sig-texto); }
.legenda-pasta-nome > i { color: var(--sig-primaria); margin-right: 3px; }
.subpasta-header .legenda-pasta-nome { font-weight: 600; }
.legenda-pasta-botao { flex: none; width: 24px; height: 24px; border: none; background: transparent; border-radius: 6px; color: var(--sig-suave); display: inline-flex; align-items: center; justify-content: center; font-size: .85rem; padding: 0; }
.legenda-pasta-botao:hover { background: #f1f5f9; color: var(--sig-texto); }
.legenda-pasta-excluir { font-size: .78rem; }
.legenda-pasta-excluir:hover { background: #fef2f2; color: #dc2626; }
/* conteúdo da pasta: um nível abaixo (a alça dos filhos fica sob a seta da pasta) */
#texto .grupo-conteudo, #texto .subpasta-conteudo { margin-left: 0 !important; padding-left: 0; }

/* camadas com cor por condição: alça na linha do nome, nome alinhado às demais, condições sob o nome */
#texto .legenda-detalhada { margin-left: 0; }
#texto .legenda-detalhada > .legenda-alca { top: 15px; }
.legenda-linha-titulo { display: flex; align-items: center; flex-wrap: nowrap; min-height: 30px; gap: 2px; }
.legenda-linha-titulo > span:first-child { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.legenda-linha-titulo > span:first-child b { font-size: 13px; }
.legenda-linha-titulo > .legenda-acoes, .legenda-linha-titulo > .legenda-config, .legenda-linha-titulo > .legenda-recolher { flex: none; }
/* ⋮ de cada condição (cor e estilo, mostrar só ela), logo depois do texto da condição */
#texto .line-with-text .categoria-estilo { display: inline-flex; align-items: center; justify-content: center; margin-left: 2px; width: 24px; height: 22px; padding: 0; border-radius: 6px; opacity: 1; color: var(--sig-suave); font-size: .8rem; flex: none; }
#texto .line-with-text .categoria-estilo:hover, #texto .line-with-text .categoria-estilo.ativo { background: #f1f5f9; color: var(--sig-texto); }
#texto .legenda-detalhada .line-with-text { padding-right: 0; }
.categoria-editavel .color-box, .categoria-editavel .line, .categoria-editavel img, .categoria-editavel .siggarr-amostra { cursor: default; }

/* ==========================================================================
   Coordenadas (aba Ferramentas): formatos, lista de pontos e geração
   ========================================================================== */
.sig-coord-formatos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; padding: 3px; background: #f1f5f9; border-radius: 10px; margin-bottom: 8px; }
.sig-coord-formatos label { margin: 0; cursor: pointer; }
.sig-coord-formatos input { position: absolute; opacity: 0; pointer-events: none; }
.sig-coord-formatos span { display: block; text-align: center; font-size: .78rem; font-weight: 600; color: #475569; padding: 5px 4px; border-radius: 8px; }
.sig-coord-formatos input:checked + span { background: #fff; color: var(--sig-primaria-escura); box-shadow: 0 1px 3px rgba(15,23,42,.12); }
.sig-coord-formatos input:focus-visible + span { outline: 2px solid var(--sig-primaria); }
.sig-coord-hem { padding-right: 1.6rem; }
.sig-coord-acoes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 10px; }
.sig-coord-acoes .btn { font-size: .76rem; padding: 6px; white-space: nowrap; }
.sig-coord-acoes .btn-light { border: 1px solid var(--sig-borda); }
.sig-coord-acoes .btn-light.active { background: #fee2e2; border-color: #fca5a5; color: #b91c1c; }
.sig-coord-lote { margin-top: 8px; font-size: .78rem; }
.sig-coord-lote summary { cursor: pointer; color: var(--sig-primaria-escura); font-weight: 600; padding: 3px 0; }
.sig-coord-lote textarea { font-family: ui-monospace, Consolas, monospace; font-size: .74rem; margin-top: 4px; }
.sig-coord-lote .btn-light { border: 1px solid var(--sig-borda); font-size: .76rem; }
.sig-coord-pontos:not(:empty) { margin-top: 10px; border: 1px solid var(--sig-borda); border-radius: 10px; overflow: hidden; }
.sig-coord-cab { display: flex; align-items: baseline; gap: 6px; padding: 6px 9px; background: #f8fafc; border-bottom: 1px solid var(--sig-borda); font-size: .76rem; }
.sig-coord-cab small { color: var(--sig-suave); }
.sig-coord-ponto { display: flex; align-items: center; gap: 7px; padding: 4px 4px 4px 8px; font-size: .74rem; }
.sig-coord-ponto + .sig-coord-ponto { border-top: 1px solid #f1f5f9; }
.sig-coord-ponto.editando { background: #fff7ed; }
.sig-coord-n { flex: none; min-width: 20px; height: 20px; border-radius: 999px; background: #e11d48; color: #fff; font-size: .66rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; }
.sig-coord-txt { flex: 1; min-width: 0; font-family: ui-monospace, Consolas, monospace; font-size: .7rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sig-coord-ponto .sig-acao { opacity: 1; flex: none; }
.sig-coord-gerar { margin-top: 8px; border: 1px solid var(--sig-borda); border-radius: 10px; padding: 8px 10px; background: #fff; }
.sig-coord-medidas { display: flex; flex-direction: column; gap: 2px; font-size: .74rem; color: #334155; }
.sig-coord-medidas:empty { display: none; }
.sig-coord-tipos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin-top: 8px; }
.sig-coord-tipos .btn { font-size: .74rem; padding: 5px 4px; border: 1px solid var(--sig-borda); white-space: nowrap; }
/* marcador numerado no mapa (arrastável) */
.sig-coord-marcador { background: transparent; border: none; }
.sig-coord-marcador span { display: flex; width: 24px; height: 24px; border-radius: 50%; background: #e11d48; color: #fff; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.45); font: 700 11px/20px Inter, sans-serif; align-items: center; justify-content: center; cursor: grab; }
.sig-coord-marcador.ativo span { background: #f59e0b; }

/* ==========================================================================
   Busca no mapa (topo do mapa)
   ========================================================================== */
.sig-busca { position: absolute; top: 12px; left: 50%; transform: translateX(-50%); width: min(440px, calc(100% - 200px)); z-index: 1000; font-size: 13px; }
.sig-busca-campo { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 12px; box-shadow: var(--sig-sombra); padding: 0 12px; height: 42px; border: 1px solid transparent; }
.sig-busca-campo:focus-within { border-color: color-mix(in srgb, var(--sig-primaria) 50%, #fff); }
.sig-busca-campo > i { color: var(--sig-suave); }
.sig-busca-campo input { flex: 1; border: none; outline: none; background: transparent; font-size: .9rem; min-width: 0; color: var(--sig-texto); }
.sig-busca-carregando { color: var(--sig-primaria); width: 14px; height: 14px; }
.sig-busca-lista { margin-top: 6px; background: #fff; border-radius: 12px; box-shadow: var(--sig-sombra); max-height: min(60vh, 460px); overflow-y: auto; padding: 4px; }
.sig-busca-grupo { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--sig-suave); padding: 8px 10px 3px; }
.sig-busca-grupo small { text-transform: none; letter-spacing: 0; font-weight: 500; }
.sig-busca-item { width: 100%; display: flex; align-items: center; gap: 10px; border: none; background: transparent; border-radius: 8px; padding: 7px 10px; text-align: left; color: var(--sig-texto); }
.sig-busca-item > i { color: var(--sig-primaria); flex: none; }
.sig-busca-item span { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.sig-busca-item b { font-weight: 600; font-size: .84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-busca-item small { color: var(--sig-suave); font-size: .72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-busca-item mark { background: #fef08a; padding: 0; border-radius: 2px; }
.sig-busca-item:hover, .sig-busca-item.ativo { background: var(--sig-primaria-clara); }
.sig-busca-vazio { padding: 14px; color: var(--sig-suave); text-align: center; font-size: .82rem; }
@media (max-width: 767.98px) {
    .sig-busca { top: 10px; left: 64px; right: 64px; transform: none; width: auto; }
}

/* ==========================================================================
   Filtro por atributo (janela e aviso na legenda)
   ========================================================================== */
.sig-filtro-modo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; font-size: .88rem; }
.sig-filtro-modo .form-select { width: auto; }
.sig-filtro-regra { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(130px, 1fr) minmax(180px, 1.6fr) 28px; gap: 6px; align-items: start; padding: 8px; border: 1px solid var(--sig-borda); border-radius: 10px; margin-bottom: 6px; background: #fbfcfd; }
.sig-filtro-regra .sig-acao { opacity: 1; margin-top: 2px; }
.sig-filtro-entre { display: flex; align-items: center; gap: 6px; }
.sig-filtro-entre span { color: var(--sig-suave); font-size: .8rem; }
.sig-filtro-valores { max-height: 170px; overflow-y: auto; border: 1px solid var(--sig-borda); border-radius: 8px; padding: 4px 8px; background: #fff; }
.sig-filtro-valores label { display: flex; align-items: center; gap: 7px; margin: 2px 0; font-size: .8rem; cursor: pointer; }
.sig-filtro-valores label span { flex: 1; overflow-wrap: anywhere; }
.sig-filtro-valores label small { color: var(--sig-suave); }
.sig-filtro-valores .form-check-input { margin: 0; flex: none; }
.sig-filtro-total { margin-top: 10px; padding: 9px 12px; border-radius: 10px; background: var(--sig-primaria-clara); color: var(--sig-primaria-escura); font-size: .86rem; }
.sig-filtro-total.zero { background: #fef2f2; color: #b91c1c; }
@media (max-width: 640px) { .sig-filtro-regra { grid-template-columns: 1fr 1fr 28px; } .sig-filtro-valor { grid-column: 1 / -1; grid-row: 2; } }
/* aviso de filtro ativo na legenda */
.legenda-filtro { display: flex; align-items: center; gap: 2px; margin: 0 0 4px 18px; max-width: calc(100% - 18px); }
.legenda-filtro-abrir { flex: 0 1 auto; min-width: 0; display: inline-flex; align-items: center; gap: 5px; border: 1px solid #fde68a; background: #fffbeb; color: #92400e; border-radius: 999px; padding: 1px 9px; font-size: .72rem; white-space: nowrap; overflow: hidden; }
.legenda-filtro-abrir span { overflow: hidden; text-overflow: ellipsis; color: #b45309; }
.legenda-filtro-abrir:hover { background: #fef3c7; }
.legenda-filtro-remover { flex: none; border: none; background: transparent; color: #b45309; width: 22px; height: 22px; border-radius: 6px; font-size: .7rem; }
.legenda-filtro-remover:hover { background: #fef3c7; }
#texto .flex-container:has(> .legenda-filtro) { flex-wrap: wrap; }
#texto .flex-container > .legenda-filtro { flex-basis: 100%; order: 99; margin-left: 40px; margin-top: 2px; }
#texto .flex-container > .legenda-filtro { flex-basis: calc(100% - 40px); max-width: calc(100% - 40px); min-width: 0; }
.legenda-filtro-abrir { flex: 1 1 auto; }

/* ==========================================================================
   Seleção espacial (aba Ferramentas)
   ========================================================================== */
.sig-sel-camadas { max-height: 190px; overflow-y: auto; margin: -2px -2px 0; padding: 0 2px; }
.sig-sel-grupo { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--sig-suave); margin: 6px 0 3px; }
.sig-sel-camada { display: flex; align-items: center; gap: 7px; margin: 0; padding: 3px 2px; font-size: .8rem; cursor: pointer; }
.sig-sel-camada span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-sel-camada small { color: var(--sig-suave); font-size: .68rem; }
.sig-sel-camada .form-check-input { margin: 0; flex: none; }
.sig-sel-areas { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.sig-sel-areas .btn { font-size: .74rem; padding: 5px 4px; border: 1px solid var(--sig-borda); white-space: nowrap; }
.sig-sel-area-info { margin-top: 7px; font-size: .74rem; color: #c2410c; background: #fff7ed; border-radius: 8px; padding: 5px 8px; }
.sig-sel-linha { padding: 8px 10px; }
.sig-sel-linha + .sig-sel-linha { border-top: 1px solid #f1f5f9; }
.sig-sel-linha.vazia { opacity: .7; }
.sig-sel-linha-cab { display: flex; align-items: center; gap: 8px; font-size: .8rem; }
.sig-sel-linha-cab b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-sel-qtd { flex: none; min-width: 26px; text-align: center; padding: 1px 8px; border-radius: 999px; background: #cffafe; color: #0e7490; font-weight: 700; font-size: .72rem; }
.sig-sel-linha.vazia .sig-sel-qtd { background: #f1f5f9; color: var(--sig-suave); }
.sig-sel-medidas { display: flex; flex-direction: column; font-size: .72rem; color: #334155; margin-top: 2px; }
.sig-sel-botoes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin-top: 6px; }
.sig-sel-botoes .btn { font-size: .72rem; padding: 4px 2px; border: 1px solid var(--sig-borda); white-space: nowrap; }

/* importar planilha com coordenadas */
.sig-planilha .sig-form-rodape, .sig-sob-escolha .sig-form-rodape { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--sig-borda); }
.sig-planilha-modos .sig-opcao-radio { margin-bottom: .35rem; padding: .45rem .7rem; }
.sig-planilha-total { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding: 9px 12px; border-radius: 10px; background: var(--sig-primaria-clara); color: var(--sig-primaria-escura); font-size: .86rem; margin-bottom: 10px; }
.sig-planilha-total small { flex-basis: 100%; color: #b45309; font-size: .76rem; }
.sig-planilha-total.zero { background: #fef2f2; color: #b91c1c; }
.sig-planilha-previa { border: 1px solid var(--sig-borda); border-radius: 10px; overflow: auto; max-height: 340px; }
.sig-planilha-previa table { font-size: .78rem; }
.sig-planilha-previa th { position: sticky; top: 0; background: #f8fafc; font-weight: 600; white-space: nowrap; }
.sig-planilha-previa th.usada { background: var(--sig-primaria-clara); color: var(--sig-primaria-escura); }
.sig-planilha-previa td { white-space: nowrap; max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
.sig-planilha-previa td:nth-child(2) { font-variant-numeric: tabular-nums; color: var(--sig-primaria-escura); font-weight: 600; }
.sig-planilha-previa tr.ruim td { color: #b91c1c; background: #fef2f2; }
/* links dos modelos de planilha */
.sig-modelos { margin-top: 8px; font-size: .74rem; color: var(--sig-suave); line-height: 1.6; }
.sig-modelos-rotulo { display: block; font-weight: 600; color: #334155; }
.sig-modelos-rotulo i { color: #16a34a; }
.sig-modelos .btn-link { font-size: .74rem; vertical-align: baseline; text-decoration: none; }
.sig-modelos .btn-link:hover { text-decoration: underline; }

/* faixas de valores (editor) */
.sig-fontes-3 { grid-template-columns: repeat(3, 1fr); }
.sig-escalas { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.sig-escala { margin: 0; cursor: pointer; }
.sig-escala input { position: absolute; opacity: 0; pointer-events: none; }
.sig-escala span { display: block; height: 22px; border-radius: 6px; border: 2px solid transparent; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.sig-escala input:checked + span { border-color: var(--sig-texto); box-shadow: 0 0 0 2px #fff inset; }
.sig-escala input:focus-visible + span { outline: 2px solid var(--sig-primaria); outline-offset: 1px; }
.sig-faixas { display: flex; flex-direction: column; gap: 5px; max-height: 300px; overflow-y: auto; }
.sig-faixa { display: grid; grid-template-columns: 38px minmax(70px, 1fr) auto minmax(70px, 1fr) minmax(110px, 1.6fr) 42px 22px; gap: 6px; align-items: center; }
.sig-faixa > span { font-size: .78rem; color: var(--sig-suave); }
.sig-faixa .form-control-color { width: 38px; height: 31px; padding: 3px; }
.sig-faixa-qtd { text-align: right; font-variant-numeric: tabular-nums; }
.sig-calor-config { border: 1px solid #fecaca; background: #fff7f7; border-radius: 10px; padding: 10px 12px; }
/* mapa de calor na legenda */
.legenda-calor { display: flex; align-items: center; gap: 6px; margin: 2px 0 4px 40px; font-size: .7rem; color: var(--sig-suave); flex-wrap: wrap; }
.legenda-calor > i { color: #dc2626; }
.legenda-calor-escala { width: 90px; height: 8px; border-radius: 4px; background: linear-gradient(90deg, #2563eb, #06b6d4, #84cc16, #facc15, #dc2626); }
.legenda-calor small { flex-basis: 100%; padding-left: 18px; }
#texto .flex-container:has(> .legenda-calor) { flex-wrap: wrap; }
#texto .flex-container > .legenda-calor { flex-basis: calc(100% - 40px); order: 98; }
.sig-fontes-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 640px) { .sig-fontes-4, .sig-fontes-3 { grid-template-columns: 1fr 1fr; } }
.sig-calor-pontos { font-size: .82rem; color: var(--sig-suave); border-top: 1px dashed var(--sig-borda); padding-top: 10px; margin-bottom: 8px; }
.sig-calor-pontos i { color: var(--sig-primaria); }

/* vistas do autor (aba Camadas) */
.sig-vistas { margin: 0 2px 10px; padding: 8px 10px; border: 1px solid var(--sig-borda); border-radius: 12px; background: linear-gradient(180deg, #f8fafc, #fff); }
.sig-vistas-cab { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 6px; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--sig-suave); }
.sig-vistas-cab i { color: var(--sig-primaria); }
.sig-vistas-cab .btn-link { font-size: .74rem; text-transform: none; letter-spacing: 0; font-weight: 600; text-decoration: none; }
.sig-vistas-lista { display: flex; flex-wrap: wrap; gap: 5px; }
.sig-vista { display: inline-flex; align-items: stretch; max-width: 100%; border: 1px solid var(--sig-borda); border-radius: 999px; background: #fff; overflow: hidden; }
.sig-vista-ir { display: inline-flex; align-items: center; gap: 5px; border: none; background: transparent; padding: 3px 4px 3px 10px; font-size: .78rem; font-weight: 600; color: var(--sig-texto); min-width: 0; }
.sig-vista-ir span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-vista-ir i { color: var(--sig-primaria); }
.sig-vista-mais { border: none; background: transparent; color: var(--sig-suave); padding: 0 6px; font-size: .72rem; }
.sig-vista:hover { border-color: color-mix(in srgb, var(--sig-primaria) 45%, #fff); background: var(--sig-primaria-clara); }
.sig-vista.ativa { background: var(--sig-primaria); border-color: var(--sig-primaria); }
.sig-vista.ativa .sig-vista-ir, .sig-vista.ativa .sig-vista-ir i, .sig-vista.ativa .sig-vista-mais { color: #fff; }

/* equipe do projeto (editor › Equipe) */
.sig-equipe-papeis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.sig-equipe-papeis > div { display: flex; flex-direction: column; gap: 4px; padding: 8px 10px; border: 1px solid var(--sig-borda); border-radius: 10px; background: #f8fafc; }
.sig-equipe-papeis small { color: var(--sig-suave); font-size: .74rem; line-height: 1.3; }
@media (max-width: 576px) { .sig-equipe-papeis { grid-template-columns: 1fr; } }
.sig-equipe-papel { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; padding: 1px 9px; border-radius: 999px; font-size: .74rem; font-weight: 700; white-space: nowrap; }
.sig-papel-dono { background: #fff4d6; color: #8a5a00; }
.sig-papel-editor { background: var(--sig-primaria-clara); color: var(--sig-primaria-escura); }
.sig-papel-leitor { background: #eef2f7; color: #475569; }
.sig-equipe-convite { margin-bottom: 14px; padding: 10px 12px; border: 1px dashed var(--sig-borda); border-radius: 12px; }
.sig-equipe-lista { list-style: none; margin: 0; padding: 0; border: 1px solid var(--sig-borda); border-radius: 12px; overflow: hidden; }
.sig-equipe-membro { display: flex; align-items: center; gap: 10px; padding: 9px 12px; }
.sig-equipe-membro + .sig-equipe-membro { border-top: 1px solid var(--sig-borda); }
.sig-equipe-membro.pendente .sig-avatar { background: #cbd5e1; }
.sig-equipe-membro .sig-avatar { flex: none; width: 34px; height: 34px; }
.sig-equipe-quem { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sig-equipe-quem b, .sig-equipe-quem small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sig-equipe-quem small { color: var(--sig-suave); font-size: .76rem; }
.sig-equipe-pendente { color: #b45309; }
.sig-equipe-acoes { display: flex; align-items: center; gap: 5px; flex: none; }
.sig-equipe-acoes .form-select { width: auto; }
@media (max-width: 576px) { .sig-equipe-membro { flex-wrap: wrap; } .sig-equipe-acoes { width: 100%; justify-content: flex-end; } }

/* histórico das camadas (editor) */
.sig-hist-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 12px; }
.sig-hist-topo .form-select { width: auto; min-width: 220px; max-width: 100%; }
.sig-hist-topo .sig-dica { flex: 1; min-width: 220px; font-size: .78rem; }
.sig-hist-dia { margin: 14px 0 6px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--sig-suave); }
.sig-hist-dia:first-child { margin-top: 0; }
.sig-hist-lista { list-style: none; margin: 0; padding: 0 0 0 4px; }
.sig-hist-item { position: relative; display: flex; gap: 12px; padding: 0 0 14px; }
.sig-hist-item:not(:last-child)::before { content: ''; position: absolute; left: 14px; top: 30px; bottom: 2px; width: 2px; background: var(--sig-borda); }
.sig-hist-icone { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; font-size: .85rem; background: #eef2f7; color: #475569; }
.sig-hist-criou, .sig-hist-restaurou { background: var(--sig-primaria-clara); color: var(--sig-primaria-escura); }
.sig-hist-dados { background: #e0ecff; color: #1d4ed8; }
.sig-hist-excluiu { background: #fde8e8; color: #b91c1c; }
.sig-hist-corpo { flex: 1; min-width: 0; padding-top: 4px; }
.sig-hist-titulo { font-size: .88rem; }
.sig-hist-resumo { margin-top: 2px; font-size: .82rem; color: var(--sig-texto); overflow-wrap: anywhere; }
.sig-hist-meta { margin-top: 2px; font-size: .74rem; color: var(--sig-suave); }
.sig-hist-botoes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.sig-hist-botoes .btn { font-size: .76rem; padding: 2px 9px; }
.sig-hist-atual, .sig-hist-excluida { display: inline-block; margin-left: 4px; padding: 0 7px; border-radius: 999px; font-size: .68rem; font-weight: 700; vertical-align: 1px; }
.sig-hist-atual { background: var(--sig-primaria-clara); color: var(--sig-primaria-escura); }
.sig-hist-excluida { background: #fde8e8; color: #b91c1c; }
.sig-vazio-hist { text-align: center; padding: 28px 12px; color: var(--sig-suave); font-size: .86rem; }
.sig-vazio-hist i { display: block; font-size: 1.8rem; margin-bottom: 6px; color: var(--sig-acento); }

/* guia rápido do editor (50-projeto/17-guia.js) */
.sig-guia { position: fixed; inset: 0; z-index: 1000100; } /* acima da barra do topo (1000002) */
.sig-guia-foco { position: fixed; border-radius: 12px; box-shadow: 0 0 0 9999px rgba(15, 23, 42, .58); outline: 2px solid rgba(255, 255, 255, .9); outline-offset: 0; transition: all .25s ease; pointer-events: none; }
.sig-guia-cartao { position: fixed; width: min(340px, calc(100vw - 24px)); padding: 14px 16px 12px; border-radius: 14px; background: #fff; color: var(--sig-texto); box-shadow: 0 18px 50px rgba(15, 23, 42, .3); transition: left .25s ease, top .25s ease; }
.sig-guia-cab { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.sig-guia-cab .btn-close { font-size: .7rem; }
.sig-guia-passo { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--sig-primaria); }
.sig-guia-cartao h3 { margin: 0 0 6px; font-size: 1.02rem; font-weight: 700; }
.sig-guia-cartao p { margin: 0 0 10px; font-size: .86rem; line-height: 1.45; color: #334155; }
.sig-guia-pontos { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.sig-guia-pontos span { width: 6px; height: 6px; border-radius: 50%; background: #cbd5e1; }
.sig-guia-pontos span.ativo { width: 16px; border-radius: 3px; background: var(--sig-primaria); }
.sig-guia-rodape { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.sig-guia-rodape .btn-link { text-decoration: none; color: var(--sig-suave); padding-left: 0; }
@media (prefers-reduced-motion: reduce) { .sig-guia-foco, .sig-guia-cartao { transition: none; } }

/* ---------------------------------------------------------------- layout de impressão (07-layout.js) */
.lay-raiz { position: fixed; inset: 0; z-index: 1000003; /* acima do topo e do menu lateral; abaixo das janelas (1000004), do "Carregando" e dos avisos */ background: #e9ecef; display: flex; flex-direction: column; font-size: 13px; }
.lay-raiz[hidden] { display: none; }
body.lay-aberto { overflow: hidden; }
/* a janela da legenda tem z-index próprio, alto: some enquanto o layout está aberto (os símbolos continuam sendo lidos dela) */
body.lay-aberto #movableDiv { visibility: hidden !important; }
/* mapa da captura do layout: desenhado normalmente, mas atrás de toda a página (o mapa principal não é mexido) */
.lay-mapa-oculto { position: fixed !important; left: 0; top: 0; z-index: -1; pointer-events: none; background: #fff;
  clip-path: inset(0 100% 100% 0); /* não aparece na tela (nem nos vãos da página); a captura lê os tiles e os vetores direto */ }
.lay-barra { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; padding: 6px 10px; background: #fff; border-bottom: 1px solid #dee2e6; }
.lay-barra .btn { white-space: nowrap; }
.lay-sep { width: 1px; height: 24px; background: #dee2e6; margin: 0 4px; }
.lay-corpo { flex: 1; display: flex; min-height: 0; }
/* escolha da quantidade de mapas ao abrir */
.lay-inicio { position: absolute; inset: 0; z-index: 1000; background: rgba(33,37,41,.45); display: flex; align-items: center; justify-content: center; padding: 16px; }
.lay-inicio[hidden] { display: none; }
.lay-inicio-caixa { background: #fff; border-radius: 8px; box-shadow: 0 8px 30px rgba(0,0,0,.25); padding: 16px 18px; max-width: 760px; width: 100%; max-height: 100%; overflow-y: auto; }
.lay-inicio-opcoes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.lay-inicio-op { border: 1px solid #dee2e6; border-radius: 6px; background: #f8f9fa; padding: 8px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.lay-inicio-op:hover, .lay-inicio-op:focus-visible { border-color: #0d8a72; background: #e6f6f2; }
.lay-inicio-op svg { width: 100%; aspect-ratio: 297 / 210; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
.lay-inicio-op.lay-retrato svg { width: auto; height: 170px; aspect-ratio: 210 / 297; }
.lay-inicio-op span { font-weight: 600; }
@media (max-width: 600px) { .lay-inicio-opcoes { grid-template-columns: repeat(2, 1fr); } }
.lay-area { flex: 1; overflow: auto; display: flex; align-items: center; justify-content: center; padding: 20px; }
.lay-folha { position: relative; flex: none; background-color: #fff; box-shadow: 0 4px 18px rgba(0,0,0,.18);
  background-image: linear-gradient(to right, rgba(0,0,0,.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(0,0,0,.05) 1px, transparent 1px); }
.lay-painel { width: 340px; flex: none; overflow-y: auto; background: #fff; border-left: 1px solid #dee2e6; padding: 8px 10px; }
.lay-secao { border-bottom: 1px solid #f1f3f5; padding: 6px 0 8px; }
.lay-campo { display: block; margin: 2px 0; }
.lay-campo > span { display: block; font-size: 11px; color: #6c757d; }
.lay-grade4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.lay-grade3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; align-items: end; }
.lay-lista { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; }
.lay-item { text-align: left; border: 1px solid #e9ecef; background: #f8f9fa; border-radius: 4px; padding: 3px 6px; font-size: 12px; }
.lay-item:hover { background: #e6f6f2; }
.lay-camadas { max-height: 220px; overflow-y: auto; font-size: 12px; }
.lay-escalas { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 4px; }
.lay-escalas .btn { padding: 1px 6px; font-size: 11px; }
.lay-raiz.lay-movendo .lay-el.lay-mapa { cursor: grab; }
.lay-leg-item { display: grid; grid-template-columns: auto 1fr; gap: 2px 6px; align-items: center; padding: 3px 0; border-bottom: 1px solid #f1f3f5; }
.lay-leg-opcoes { grid-column: 2; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 11px; }
.lay-leg-opcoes label { display: flex; gap: 2px; align-items: center; margin: 0; }
.lay-leg-opcoes select { width: auto; max-width: 140px; padding-top: 0; padding-bottom: 0; font-size: 11px; }
/* cabeçalho e rodapé fixos da folha */
.lay-fixo { position: absolute; z-index: 1; /* sempre abaixo dos elementos (z-index 10+), que continuam clicáveis por cima */ display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: default; box-sizing: border-box; }
.lay-fixo:hover { outline: 1px dashed #adb5bd; }
.lay-cab { border-bottom: 1px solid #0d8a72; padding-bottom: 2px; }
.lay-cab img, .lay-rod img { flex: none; }
.lay-cab-titulo { flex: 1; font-weight: bold; color: #212529; line-height: 1.15; overflow: hidden; }
.lay-rod { color: #555; }
.lay-rod span { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* elementos na folha */
.lay-el { position: absolute; box-sizing: border-box; cursor: move; overflow: hidden; user-select: none; }
.lay-el:hover { outline: 1px dashed #0d8a72; }
.lay-el.lay-sel { outline: 2px solid #0d8a72; overflow: visible; }
.lay-el > img { width: 100%; height: 100%; display: block; pointer-events: none; }
.lay-el.lay-mapa > img { object-fit: fill; }
.lay-vazio { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  background: repeating-linear-gradient(45deg, #f8f9fa, #f8f9fa 6px, #eef2f5 6px, #eef2f5 12px); color: #495057; font-size: 11px; line-height: 1.3; padding: 4px; overflow: hidden; }
.lay-texto { width: 100%; height: 100%; padding: 1px 2px; line-height: 1.2; overflow: hidden; white-space: normal; word-break: break-word; }
.lay-legenda { width: 100%; height: 100%; padding: 1px 2px; overflow: hidden; line-height: 1.25; display: flex; flex-direction: column; }
.lay-leg-titulo { flex: none; font-weight: 700; font-size: 1.2em; margin-bottom: .15em; }
.lay-leg-colunas { flex: 1; min-height: 0; column-fill: auto; column-gap: 6px; }
.lay-legenda .lay-li { display: flex; align-items: center; gap: 3px; break-inside: avoid; }
.lay-legenda .lay-li2 { padding-left: 1em; }
.lay-legenda img { height: 1.3em; width: auto; }
.lay-legenda .lay-det { font-weight: normal; color: #333; }
.lay-tabela { width: 100%; border-collapse: collapse; }
.lay-tabela td, .lay-tabela th { border: 1px solid #adb5bd; padding: 0 2px; }
.lay-tabela th { background: #e9ecef; }
.lay-alca { position: absolute; width: 9px; height: 9px; background: #fff; border: 1.5px solid #0d8a72; z-index: 5; }
.lay-nw { left: -5px; top: -5px; cursor: nwse-resize; } .lay-se { right: -5px; bottom: -5px; cursor: nwse-resize; }
.lay-ne { right: -5px; top: -5px; cursor: nesw-resize; } .lay-sw { left: -5px; bottom: -5px; cursor: nesw-resize; }
.lay-n { left: calc(50% - 5px); top: -5px; cursor: ns-resize; } .lay-s { left: calc(50% - 5px); bottom: -5px; cursor: ns-resize; }
.lay-e { right: -5px; top: calc(50% - 5px); cursor: ew-resize; } .lay-w { left: -5px; top: calc(50% - 5px); cursor: ew-resize; }

/* ---------------------------------------------------------------- tamanho da interface pela tela (00-nucleo/09-escala-tela.js)
   Só no computador (a partir de 1200 px): cabeçalho, menu lateral e legenda acompanham --ui; os botões do mapa e a

.lay-cab-dir { flex: none; max-width: 40%; text-align: right; color: #475569; line-height: 1.2; overflow: hidden; }
.lay-plano { display: flex; gap: 6px; align-items: flex-start; margin: 4px 0; padding: 6px 8px; border-radius: 8px; background: #fff8e6; color: #7c5a00; font-size: 11.5px; }

/* janela "Imprimir mapa" */
.imp-form .imp-layout { display: flex; align-items: center; gap: 10px; width: 100%; margin-bottom: 10px; padding: 10px 12px; text-align: left; border: 1px solid var(--sig-primaria); border-radius: 12px; background: var(--sig-primaria-clara); color: var(--sig-texto); }
.imp-form .imp-layout > .bi:first-child { font-size: 1.4rem; color: var(--sig-primaria); }
.imp-form .imp-layout b { font-size: .92rem; }
.imp-form .imp-layout small { display: block; color: var(--sig-suave); font-size: .76rem; line-height: 1.3; }
.imp-form .imp-layout:hover { box-shadow: 0 4px 14px rgba(13, 138, 114, .18); }
.imp-form .imp-layout.imp-travado { border-color: #f0d48a; background: #fffbef; }
.imp-form .imp-layout.imp-travado > .bi:first-child { color: #b7791f; }
.imp-form .imp-ou { display: flex; align-items: center; gap: 8px; margin: 2px 0 8px; color: var(--sig-suave); font-size: .74rem; }
.imp-form .imp-ou::before, .imp-form .imp-ou::after { content: ''; flex: 1; height: 1px; background: var(--sig-borda); }
.imp-form .imp-aviso-plano { margin-top: 8px; padding: 6px 9px; border-radius: 8px; background: #f8fafc; border: 1px solid var(--sig-borda); color: var(--sig-suave); font-size: .76rem; }

/* recursos dos planos pagos */
.sig-selo-pro { display: inline-flex; align-items: center; gap: 3px; padding: 0 6px; border-radius: 999px; background: linear-gradient(135deg, #f6c453, #e0a526); color: #4a3200; font-size: .62rem; font-weight: 800; letter-spacing: .03em; vertical-align: 1px; white-space: nowrap; }
.sig-oferta { text-align: center; padding: 4px 6px 2px; }
.sig-oferta-icone { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-bottom: 8px; border-radius: 50%; background: linear-gradient(135deg, #f6c453, #e0a526); color: #4a3200; font-size: 1.5rem; }
.sig-oferta h3 { margin: 0 0 6px; font-size: 1.1rem; font-weight: 700; }
.sig-oferta p { color: #334155; font-size: .88rem; }
.sig-oferta ul { list-style: none; margin: 0 auto 12px; padding: 0; max-width: 420px; text-align: left; font-size: .86rem; }
.sig-oferta li { display: flex; gap: 8px; padding: 3px 0; }
.sig-oferta li .bi { color: var(--sig-primaria); }
.sig-oferta-quem { font-size: .8rem !important; color: var(--sig-suave) !important; }
.sig-oferta-botoes { display: flex; justify-content: center; gap: 8px; margin-top: 6px; }

/* configurações › impressão */
.sig-imp-config { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--sig-borda); border-radius: 12px; }
.sig-imp-logo { flex: none; display: flex; align-items: center; justify-content: center; width: 120px; height: 72px; border: 1px dashed var(--sig-borda); border-radius: 8px; background: #f8fafc; color: var(--sig-suave); font-size: .76rem; overflow: hidden; }
.sig-imp-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.sig-imp-travado { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid #f0d48a; border-radius: 12px; background: #fffbef; color: #5b4a1b; font-size: .84rem; }
.sig-imp-travado > .bi { font-size: 1.3rem; color: #b7791f; }
@media (max-width: 576px) { .sig-imp-config { flex-direction: column; } }
.lay-legenda .lay-grupo { break-inside: avoid; }
.lay-el.lay-reduzido::after { content: "A−"; position: absolute; top: 1px; right: 1px; padding: 0 3px; border-radius: 3px; background: rgba(255, 243, 205, .95); color: #7c5a00; font: 600 9px/1.4 Arial, sans-serif; pointer-events: none; }
