/* Painel lateral Firmaris Classify (reusa os tokens --map-ui-* e o cabecalho dos paineis existentes). */
.map-classify-panel{position:absolute;top:0;right:0;bottom:0;z-index:1203;width:min(470px,100%);display:flex;flex-direction:column;gap:.5rem;padding:.65rem;
  border-left:1px solid var(--map-ui-border);background:var(--map-ui-bg);backdrop-filter:blur(12px);box-shadow:-18px 0 50px rgba(0,0,0,.25);overflow:hidden}
.map-classify-panel[hidden]{display:none!important}
.map-classify-body{display:flex;flex-direction:column;gap:.55rem;overflow-y:auto;padding-right:.2rem;min-height:0;flex:1}
.map-classify-addr,.map-classify-note,.map-classify-meta{margin:0;font-size:.78rem;opacity:.85}
.map-classify-error{margin:0;color:#c9372c;font-size:.85rem}
.map-classify-status{margin:0;font-size:.82rem;padding:.4rem .55rem;border-radius:.5rem;background:rgba(127,127,127,.14)}
.map-classify-status.is-error{background:rgba(201,55,44,.16);color:#c9372c}
.map-classify-status.is-queued,.map-classify-status.is-running{background:rgba(224,138,0,.16)}
.map-classify-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.map-classify-primary,.map-classify-secondary{border:1px solid var(--map-ui-border);border-radius:.55rem;padding:.42rem .8rem;font:inherit;font-size:.82rem;cursor:pointer;background:rgba(127,127,127,.12);color:inherit}
.map-classify-primary{background:#0d6b63;border-color:#0d6b63;color:#fff;font-weight:600}
.map-classify-primary:disabled,.map-classify-secondary:disabled{opacity:.45;cursor:not-allowed}
.map-classify-images{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.map-classify-images figure{margin:0;min-width:0}.map-classify-images img{width:100%;height:auto;display:block;border-radius:.4rem;border:1px solid var(--map-ui-border)}
.map-classify-images figcaption{font-size:.7rem;opacity:.75;margin-top:.15rem}
.map-classify-legend{display:flex;gap:.8rem;flex-wrap:wrap;font-size:.74rem}
.map-classify-dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.1rem;background:#c9372c;flex:none}
.map-classify-dot.is-verde,.is-verde>.map-classify-field-title .map-classify-dot{background:#1d9a5a}
.map-classify-dot.is-laranja,.is-laranja>.map-classify-field-title .map-classify-dot{background:#e08a00}
.map-classify-dot.is-vermelho,.is-vermelho>.map-classify-field-title .map-classify-dot{background:#c9372c}
.is-corrigido>.map-classify-field-title .map-classify-dot{background:#0b6bff}
.map-classify-h{margin:.5rem 0 0;font-size:.9rem}
.map-classify-group{border:1px solid var(--map-ui-border);border-radius:.55rem;padding:.3rem .5rem}
.map-classify-group>summary{cursor:pointer;font-size:.8rem;font-weight:600}.map-classify-group small{font-weight:400;opacity:.7}
.map-classify-fields{display:grid;gap:.35rem;margin-top:.4rem}
.map-classify-field{display:grid;gap:.18rem;padding:.3rem .45rem;border-left:4px solid #c9372c;border-radius:.3rem;background:rgba(127,127,127,.08)}
.map-classify-field.is-verde{border-left-color:#1d9a5a}.map-classify-field.is-laranja{border-left-color:#e08a00}
.map-classify-field.is-vermelho{border-left-color:#c9372c}.map-classify-field.is-corrigido{border-left-color:#0b6bff}
.map-classify-field-title{display:flex;align-items:center;gap:.3rem;font-size:.76rem;font-weight:600;flex-wrap:wrap}
/* Campos: mesmo padrao dos selects escuros do View (color-scheme escuro, fundo --map-ui-bg-strong, texto --text-light). Restrito ao painel Classify. */
.map-classify-panel select,.map-classify-panel input[type="text"],.map-classify-panel input[type="number"]{width:100%;box-sizing:border-box;font:inherit;font-size:.82rem;min-height:1.9rem;padding:.3rem .5rem;
  border:1px solid var(--map-ui-border);border-radius:.4rem;color-scheme:dark;background-color:var(--map-ui-bg-strong,#274057);color:var(--text-light,#f6f8fa)}
.map-classify-panel select{-webkit-appearance:none;appearance:none;padding-right:1.7rem;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1.5l5 5 5-5' fill='none' stroke='%23f6f8fa' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;background-position:right .55rem center}
.map-classify-panel select option{background-color:#274057;color:#f6f8fa}
.map-classify-panel select option:checked{background-color:#0b6bff;background-image:linear-gradient(#0b6bff,#0b6bff);color:#fff}
.map-classify-panel select option:disabled{background-color:#1d3041;color:#8fa3b3}
.map-classify-panel select:focus,.map-classify-panel input:focus{outline:2px solid #0b6bff;outline-offset:1px}
.map-classify-panel select:disabled,.map-classify-panel input:disabled{opacity:.6;cursor:not-allowed}
.map-classify-chip{display:inline-block;padding:0 .45rem;border-radius:999px;font-size:.68rem;font-weight:500;background:rgba(127,127,127,.2)}
.map-classify-chip.is-divergencia{background:rgba(201,55,44,.2);color:#c9372c}.map-classify-chip.is-indicio{background:rgba(224,138,0,.2);color:#b87000}
.map-classify-chip.is-validado{background:rgba(29,154,90,.2);color:#1d9a5a}.map-classify-chip.is-rascunho{background:rgba(224,138,0,.2);color:#b87000}
.map-classify-geo-toggles{display:grid;gap:.15rem;font-size:.78rem}
.map-classify-chips{display:flex;flex-wrap:wrap;gap:.35rem}
.map-classify-ref{border:2px solid #c9372c;border-radius:.45rem;padding:.2rem .55rem;font:inherit;font-size:.78rem;cursor:pointer;background:transparent;color:inherit}
.map-classify-ref.is-verde{border-color:#1d9a5a}.map-classify-ref.is-laranja{border-color:#e08a00}.map-classify-ref.is-sem-geo{border-style:dashed;border-color:#8a949a}
.map-classify-ref.is-selected{background:rgba(11,107,255,.2);font-weight:700}
.map-classify-edif{display:flex;flex-direction:column;gap:.45rem}
.map-classify-footer{position:sticky;bottom:0;padding:.35rem 0;background:var(--map-ui-bg)}
@media (max-width:640px){.map-classify-panel{width:100%}.map-classify-images{grid-template-columns:1fr}}
.map-classify-tabs{display:flex;gap:.15rem;border-bottom:1px solid var(--map-ui-border);margin-top:.15rem}
.map-classify-tabs button{flex:1;border:0;border-bottom:3px solid transparent;background:transparent;color:inherit;font:inherit;font-size:.8rem;padding:.4rem .3rem;cursor:pointer;opacity:.75}
.map-classify-tabs button.is-active{border-bottom-color:#0d6b63;opacity:1;font-weight:700}
.map-classify-tabpanel{display:flex;flex-direction:column;gap:.55rem;padding-top:.45rem}

/* Layout: a largura do quadro vem de map-viewport.js (le --map-reserved-right, definido por map-classify-panel.js); aqui so a posicao do painel */
.map-frame.has-classify-split{overflow:visible;transition:width .22s ease}
.map-frame.has-classify-split>.map-classify-panel{right:auto;left:calc(100% + 1px);width:470px;box-shadow:none}
.content-area.is-map-active .map-frame.has-classify-split>.map-classify-panel{left:100%}
@media (prefers-reduced-motion:reduce){.map-frame.has-classify-split{transition:none}}

/* Geometry: selecao de modelo e comparacao de propostas */
.map-classify-geo{display:grid;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--line,rgba(127,127,127,.25))}
.map-classify-subtitle{margin:0;font-size:.8rem;font-weight:700}
.map-classify-geo-run{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:end}
.map-classify-geo-toggles .map-classify-dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin:0 .2rem 0 .1rem}
.map-classify-geo-model{display:grid;gap:.25rem;font-size:.7rem}
.map-classify-geo-model select{width:100%}
.map-classify-geo-toggles label{display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:400;letter-spacing:0;text-transform:none}
.map-classify-geo-toggles input[type="checkbox"]{width:1rem;height:1rem;min-height:0;margin:0;padding:0;flex:none}

/* Classify Operador: lista de imoveis, pendencias do Salvar OK */
.map-classify-field.is-pendente{outline:2px solid #c9372c;outline-offset:1px;background:rgba(201,55,44,.12)}
.map-classify-chip.is-pendente{background:rgba(201,55,44,.22);color:#c9372c;font-weight:700}
.map-classify-pendentes{border:1px solid #c9372c;border-radius:.55rem;padding:.4rem .6rem;font-size:.78rem;background:rgba(201,55,44,.08)}
.map-classify-pendentes ul{margin:.25rem 0 0;padding-left:1.1rem}
.map-classify-link{border:0;background:transparent;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.map-classify-list{display:flex;flex-direction:column;gap:.35rem}
.map-classify-item{display:grid;grid-template-columns:1fr auto;gap:.4rem;align-items:center;padding:.4rem .5rem;border:1px solid var(--map-ui-border);border-left:4px solid #e08a00;border-radius:.45rem;background:rgba(127,127,127,.08)}
.map-classify-item.is-disponivel{border-left-color:#0b6bff}.map-classify-item.is-concluido{border-left-color:#1d9a5a}
.map-classify-item-main{display:flex;flex-direction:column;gap:.1rem;min-width:0}.map-classify-item-main small{opacity:.75;font-size:.72rem}
.map-classify-item-actions{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:flex-end}
.map-classify-item-actions button{padding:.3rem .55rem;font-size:.76rem}

/* Classify Admin: tela de Producao */
.map-classify-tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:.3rem}
.map-classify-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.45rem .2rem;border-radius:.5rem;border:1px solid var(--map-ui-border);background:rgba(127,127,127,.1);text-align:center}
.map-classify-tile strong{font-size:1.15rem;line-height:1.1}.map-classify-tile span{font-size:.58rem;letter-spacing:.02em;opacity:.8}
.map-classify-tile.is-gerar{border-top:3px solid #8a949a}.map-classify-tile.is-gerando{border-top:3px solid #e08a00}.map-classify-tile.is-disp{border-top:3px solid #0b6bff}
.map-classify-tile.is-and{border-top:3px solid #8a3ffc}.map-classify-tile.is-concl{border-top:3px solid #1d9a5a}
.map-classify-quadra{display:flex;flex-direction:column;gap:.25rem}
.map-classify-sublist{margin-left:.6rem;padding-left:.4rem;border-left:2px solid var(--map-ui-border)}
@media (max-width:420px){.map-classify-tiles{grid-template-columns:repeat(3,1fr)}}

/* Formulario MUB (Classificacao Cadastral): sequencia oficial; sugestao da IA separada do valor selecionado */
.map-classify-mub{gap:.45rem}
.map-classify-sug{display:block;font-size:.7rem;opacity:.85;line-height:1.35}
.map-classify-orig{font-weight:600}
.map-classify-orig.is-ia{color:#b87000}.map-classify-orig.is-der{color:#8a6d00}.map-classify-orig.is-operador{color:#0b6bff}.map-classify-orig.is-vazio{color:#c9372c}
.map-classify-mub-field.is-foco{outline:2px solid #0b6bff;outline-offset:1px;transition:outline-color 1.5s ease}

/* Mobile (iPhone): o Classify ocupa toda a area util, acima do mapa. Cabecalho fixo com X, corpo com rolagem propria, rodape acessivel na area segura. Desktop inalterado. */
@media (max-width:820px){
  html.ct-classify-fs,html.ct-classify-fs body{overflow:hidden!important;overscroll-behavior:none}
  /* popups (LOTE/QUADRA/EDIFICACAO), controles, botoes flutuantes e barras do mapa ficam ocultos (nao fechados) enquanto o Classify esta aberto */
  html.ct-classify-fs .leaflet-popup-pane,html.ct-classify-fs .leaflet-tooltip-pane,html.ct-classify-fs .leaflet-control-container,
  html.ct-classify-fs .map-map-controls,html.ct-classify-fs .map-mobile-group-toggle,html.ct-classify-fs .map-status-banner,
  html.ct-classify-fs .map-edit-active-indicator,html.ct-classify-fs .map-users-presence-panel{visibility:hidden!important;pointer-events:none!important}
  .map-classify-panel.is-mobile-fs{position:fixed;top:0;left:0;right:0;bottom:auto;width:100%;max-width:none;height:100vh;height:100dvh;z-index:100000;box-sizing:border-box;
    border:0;border-radius:0;box-shadow:none;gap:.4rem;overflow:hidden;background:#1a2c3b;backdrop-filter:none;-webkit-backdrop-filter:none;
    padding:calc(.5rem + env(safe-area-inset-top)) calc(.65rem + env(safe-area-inset-right)) 0 calc(.65rem + env(safe-area-inset-left))}
  .map-classify-panel.is-mobile-fs .map-photo-panel-header{flex:none}
  .map-classify-panel.is-mobile-fs .map-photo-panel-close{min-width:44px;min-height:44px;font-size:1.7rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex:none}
  .map-classify-panel.is-mobile-fs .map-classify-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-right:0}
  .map-classify-panel.is-mobile-fs .map-classify-footer{padding-bottom:calc(.55rem + env(safe-area-inset-bottom));margin-bottom:0;background:#1a2c3b;border-top:1px solid var(--map-ui-border)}
  /* 16 px evita o zoom automatico do iOS ao focar campos */
  .map-classify-panel.is-mobile-fs select,.map-classify-panel.is-mobile-fs input[type="text"],.map-classify-panel.is-mobile-fs input[type="number"]{font-size:16px;min-height:2.4rem}
  .map-classify-panel.is-mobile-fs .map-classify-primary,.map-classify-panel.is-mobile-fs .map-classify-secondary{min-height:2.5rem}
  .map-classify-panel.is-mobile-fs .map-classify-tabs button{min-height:2.6rem}
  .map-classify-panel.is-mobile-fs .map-classify-images{grid-template-columns:1fr}
  .map-classify-panel.is-mobile-fs .map-classify-tiles{grid-template-columns:repeat(3,1fr)}
}

/* Mobile: "Localizar" esconde o painel para mostrar o mapa (sem perder filtros nem rolagem); a pilula devolve a lista ou fecha o Classify */
.map-classify-panel.is-away{visibility:hidden!important;pointer-events:none!important}
.map-classify-away{display:none}
@media (max-width:820px){
  .map-classify-away:not([hidden]){display:flex;position:fixed;left:50%;transform:translateX(-50%);bottom:calc(14px + env(safe-area-inset-bottom));z-index:100001;gap:.4rem;align-items:center;
    padding:.35rem;border-radius:999px;background:#1a2c3b;border:1px solid var(--map-ui-border);box-shadow:0 10px 30px rgba(0,0,0,.45)}
  .map-classify-away button{min-height:44px;border:0;border-radius:999px;font:inherit;font-size:.95rem;cursor:pointer;color:#fff}
  .map-classify-away-back{padding:0 1.1rem;background:#0d6b63;font-weight:700}
  .map-classify-away-close{min-width:44px;background:rgba(255,255,255,.14);font-size:1.5rem;line-height:1}
}

/* presenca: indicador RESERVADOS (6 colunas; 3 no mobile) */
.map-classify-tile.is-res{border-top:3px solid #d4a017}
.map-classify-tile span{overflow-wrap:anywhere}

/* Combo de selecao com pesquisa (campos MUB de dominio), valor fixo e conferencia geometrica */
.map-classify-combo{position:relative}
.map-classify-combo-list{position:absolute;left:0;right:0;top:100%;z-index:30;margin:.15rem 0 0;padding:.2rem 0;list-style:none;max-height:min(16rem,40vh);overflow-y:auto;
  background:#1d3041;border:1px solid var(--map-ui-border);border-radius:.4rem;box-shadow:0 8px 20px rgba(0,0,0,.35);-webkit-overflow-scrolling:touch}
.map-classify-combo-list[hidden]{display:none}
.map-classify-combo-list li{padding:.35rem .55rem;font-size:.82rem;cursor:pointer;color:#f6f8fa}
.map-classify-combo-list li.is-ativo{background:#0b6bff;color:#fff}
.map-classify-combo-list li.is-vazio{cursor:default;color:#8fa3b3}
.map-classify-field.is-fixo{border-left-color:#6b8aa3}
.is-fixo>.map-classify-field-title .map-classify-dot{background:#6b8aa3}
.map-classify-chip.is-fixo{background:rgba(107,138,163,.28);font-weight:600}
.map-classify-geoconf{margin:.4rem 0}
.map-classify-iaul{margin:.3rem 0;padding-left:1.1rem}
.map-classify-iaul li{margin:.25rem 0}
.map-classify-loc{margin-left:.35rem;padding:.15rem .55rem;min-height:1.6rem}
.map-classify-ok{color:#1d9a5a}
@media (max-width:820px){
  .map-classify-panel.is-mobile-fs .map-classify-combo-list li{font-size:16px;padding:.65rem .75rem}
  .map-classify-panel.is-mobile-fs .map-classify-loc{min-height:2.4rem;padding:.3rem .8rem}
}

/* Producao (Admin): card do worker Vision, progresso e custos da quadra */
.map-classify-card{margin:.45rem 0;padding:.5rem .6rem;border-left:4px solid #6b8aa3;border-radius:.35rem;background:rgba(127,127,127,.1);display:grid;gap:.25rem}
.map-classify-card.is-run{border-left-color:#e08a00}.map-classify-card.is-idle{border-left-color:#1d9a5a}.map-classify-card.is-off{border-left-color:#c9372c;background:rgba(201,55,44,.1)}
.map-classify-card-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem;flex-wrap:wrap}
.map-classify-card p{margin:.1rem 0}
.map-classify-bar{height:.55rem;border-radius:999px;background:rgba(127,127,127,.28);overflow:hidden}
.map-classify-bar>i{display:block;height:100%;background:#1d9a5a;transition:width .4s ease}
.map-classify-resumo{margin:.2rem 0;padding-left:1.05rem;font-size:.8rem}.map-classify-resumo li{margin:.18rem 0}

/* Aba Edificacoes: secoes por edificacao (campos MUB) e bloco complementar depois dos campos */
.map-classify-edif{margin:.5rem 0;padding:.1rem .1rem .3rem;border-left:3px solid transparent;border-radius:.25rem}
.map-classify-edif.is-selected{border-left-color:#0b6bff}
.map-classify-edif-titulo{margin:.35rem 0 .2rem;font-size:.82rem;font-weight:700}
.map-classify-compl{margin-top:.7rem;padding-top:.5rem;border-top:1px dashed rgba(127,127,127,.5)}
.map-classify-ia-item{margin:.3rem 0}.map-classify-ia-item p{margin:.1rem 0}
/* SweetAlert2 do Classify acima do painel em tela cheia no mobile (z-index 100000); so as instancias do Classify usam esta classe */
.swal2-container.map-classify-swal{z-index:100050}

/* Seletor da camada de pesquisa (View de Sumare): mesmo aspecto dos selects escuros do painel */
.map-search-layer{width:100%;box-sizing:border-box;margin:.25rem 0;font:inherit;font-size:.82rem;min-height:2rem;padding:.3rem 1.7rem .3rem .5rem;border:1px solid var(--map-ui-border);border-radius:.4rem;color-scheme:dark;
  background-color:var(--map-ui-bg-strong,#274057);color:var(--text-light,#f6f8fa);-webkit-appearance:none;appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1.5l5 5 5-5' fill='none' stroke='%23f6f8fa' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;background-position:right .55rem center}
.map-search-layer[hidden]{display:none}
@media (max-width:820px){.map-search-layer{font-size:16px;min-height:2.4rem}}

/* Sumare: popup de QUADRA no mesmo painel fixo e compacto do LOTE (reaproveita .map-popup-shell-lote; espelha as regras de .is-lote.is-minimal) */
.map-popup-shell-lote .map-popup.is-quadra.is-minimal{width:min(290px,calc(100vw - 2rem));gap:.32rem;padding:.5rem .6rem .55rem}
.map-popup-shell-lote .map-popup.is-quadra.is-minimal .map-popup-header{gap:.35rem;min-height:0}
.map-popup-shell-lote .map-popup.is-quadra.is-minimal .map-popup-drag-handle{width:1.4rem;height:1.4rem;min-width:1.4rem;min-height:1.4rem;border-radius:.45rem;font-size:.6rem}
.map-popup-shell-lote .map-popup.is-quadra.is-minimal .map-popup-kicker{font-size:.58rem;letter-spacing:.1em}
.map-popup-shell-lote .map-popup.is-quadra.is-minimal .map-popup-grid.is-quadra-minimal{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:.3rem .4rem;align-items:end}
.map-popup-shell-lote .map-popup.is-quadra.is-minimal .map-popup-grid.is-quadra-minimal .map-popup-field.is-full{grid-column:1 / -1}
.map-popup-shell-lote .map-popup.is-quadra.is-minimal .map-popup-field{gap:.1rem;min-width:0}
.map-popup-shell-lote .map-popup.is-quadra.is-minimal .map-popup-field>span{font-size:.54rem;letter-spacing:.08em;line-height:1.1}
.map-popup-shell-lote .map-popup.is-quadra.is-minimal .map-popup-field input{min-height:1.75rem;height:1.75rem;padding:0 .5rem;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.map-popup-shell-lote .map-popup.is-quadra.is-minimal .map-popup-field.is-code input{font-size:.8rem;font-weight:700}

/* Base territorial (Admin): etapas da sincronizacao */
.map-classify-etapas{list-style:none;margin:.4rem 0;padding:0;display:grid;gap:.25rem}
.map-classify-etapas li{display:flex;gap:.45rem;align-items:flex-start;font-size:.8rem}
.map-classify-etapa-ico{width:1.2rem;text-align:center;flex:none;font-weight:700}
.map-classify-etapas li.is-em_andamento .map-classify-etapa-ico{color:#e08a00}.map-classify-etapas li.is-ok .map-classify-etapa-ico{color:#1d9a5a}
.map-classify-etapas li.is-falha .map-classify-etapa-ico{color:#c9372c}.map-classify-etapas li.is-aviso .map-classify-etapa-ico{color:#e08a00}
.map-classify-etapas li.is-pendente,.map-classify-etapas li.is-pulada{opacity:.75}
.map-classify-etapa-det{display:block;opacity:.85;font-size:.72rem;line-height:1.25}
.map-classify-log{margin:.3rem 0;padding:.4rem;max-height:14rem;overflow:auto;font-size:.68rem;line-height:1.3;white-space:pre-wrap;background:rgba(0,0,0,.25);border-radius:.3rem}

/* Distribuicao por quadra: rodape de indicadores, sugestoes e barras */
.map-classify-rodape{flex:none;display:grid;gap:.25rem;padding:.5rem .6rem;border-top:1px solid var(--map-ui-border);background:rgba(127,127,127,.12);border-radius:.4rem;font-size:.8rem}
.map-classify-rodape[hidden]{display:none}
.map-classify-rodape small{opacity:.9}
.map-classify-rodape-hist summary{cursor:pointer;font-size:.75rem;opacity:.85}.map-classify-rodape-hist ul{margin:.25rem 0 0;padding-left:1.1rem;font-size:.75rem}
.map-classify-item .map-classify-bar{height:.35rem;margin:.2rem 0}
.map-classify-sug-box{padding:.45rem;border:1px dashed var(--map-ui-border);border-radius:.5rem;display:grid;gap:.35rem}

/* Modal de confirmacao da sincronizacao territorial: isola o SweetAlert2 dos estilos globais do View (label{display:grid;uppercase}, input{width:100%;min-height:3.25rem;...}).
   So esta instancia usa a classe; os demais SweetAlerts nao mudam. */
.swal2-popup.map-classify-swal-sync{box-sizing:border-box;width:min(36rem,calc(100vw - 1.5rem));max-width:100%;max-height:calc(100dvh - 1.5rem);overflow-y:auto;padding:1.1rem 1.1rem 1rem}
.swal2-popup.map-classify-swal-sync .swal2-html-container{margin:.6rem 0 0;padding:0;font-size:.92rem;line-height:1.45;overflow-wrap:anywhere}
.swal2-popup.map-classify-swal-sync .swal2-checkbox{display:flex;align-items:flex-start;justify-content:flex-start;gap:.65rem;box-sizing:border-box;width:100%;margin:.9rem 0 0;padding:.65rem .75rem;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.22);border-radius:.4rem;color:#f6f8fa;text-align:left}
.swal2-popup.map-classify-swal-sync .swal2-checkbox input[type=checkbox]{flex:0 0 auto;width:1.2rem;min-width:1.2rem;height:1.2rem;min-height:0;margin:.12rem 0 0;padding:0;background:transparent;accent-color:#d9534f}
.swal2-popup.map-classify-swal-sync .swal2-checkbox .swal2-label{display:block;flex:1 1 auto;min-width:0;margin:0;padding:0;color:#f6f8fa;font-size:.9rem;font-weight:600;letter-spacing:0;text-transform:none;line-height:1.35;text-align:left;overflow-wrap:anywhere}
.swal2-popup.map-classify-swal-sync .swal2-validation-message{margin:.6rem 0 0;box-sizing:border-box;width:100%;justify-content:flex-start;background:rgba(255,120,120,.14);color:#ffd2d2}
.swal2-popup.map-classify-swal-sync .swal2-actions{margin:1rem 0 0;gap:.6rem;flex-wrap:wrap;justify-content:center}
.swal2-popup.map-classify-swal-sync .swal2-actions button{min-width:7rem}

/* Legibilidade dos badges de situacao do Classify: texto claro sobre fundo discreto (antes: laranja/verde/vermelho escuro sobre fundo escuro).
   Escopo: somente .map-classify-chip, dentro do painel do Classify. */
.map-classify-chip{border:1px solid rgba(255,255,255,.16);padding:.05rem .5rem;font-weight:600;line-height:1.35}
.map-classify-chip.is-st-and,.map-classify-chip.is-rascunho,.map-classify-chip.is-indicio{background:rgba(224,138,0,.30);border-color:rgba(255,176,56,.55);color:#ffe9c7}
.map-classify-chip.is-st-minha{background:rgba(11,107,255,.32);border-color:rgba(120,170,255,.6);color:#e3eeff}
.map-classify-chip.is-st-disp{background:rgba(20,150,170,.28);border-color:rgba(90,205,222,.55);color:#d9f6fa}
.map-classify-chip.is-st-concl,.map-classify-chip.is-validado{background:rgba(29,154,90,.32);border-color:rgba(100,215,150,.55);color:#dcf8e8}
.map-classify-chip.is-st-revog,.map-classify-chip.is-pendente,.map-classify-chip.is-divergencia{background:rgba(201,55,44,.34);border-color:rgba(255,130,120,.6);color:#ffe0dc}
.map-classify-item.is-minha{border-left-color:#0b6bff}.map-classify-item.is-concluida,.map-classify-item.is-concluida_livre{border-left-color:#1d9a5a}
.map-classify-item-main>.map-classify-chip{align-self:flex-start;justify-self:start;width:fit-content;max-width:100%}

/* Tematico Vision (Admin): controle e legenda discretos. Escopo: so dentro do painel do Classify (o label/input globais do View nao interferem). */
.map-classify-tema{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin:.1rem 0 .55rem;font-size:.78rem}
.map-classify-tema .map-classify-tema-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;letter-spacing:0;text-transform:none;cursor:pointer}
.map-classify-tema .map-classify-tema-toggle input[type="checkbox"]{width:1rem;height:1rem;min-height:0;margin:0;padding:0;flex:none}
.map-classify-tema .map-classify-tema-leg{display:inline-flex;gap:.8rem;opacity:.9}
.map-classify-tema .map-classify-tema-leg[hidden]{display:none}

/* Foco do campo (Lote, Edificacoes e IA; desktop e mobile): borda azul 2 px (1 px da borda + 1 px inset, sem mudar o tamanho), fundo azulado, halo discreto e
   destaque do conjunto rotulo+campo via :focus-within. So cor/sombra: nada desloca o formulario. Pendencias (vermelho) e sugestoes da Prefeitura seguem como estao. */
.map-classify-panel .map-classify-field input:focus,.map-classify-panel .map-classify-field select:focus{
  outline:none;border-color:#2196F3;background-color:#1f4f7a;box-shadow:0 0 0 1px #2196F3 inset,0 0 0 3px rgba(33,150,243,.28)}
.map-classify-panel .map-classify-field:not(.is-pendente):focus-within{background:rgba(33,150,243,.14)}
.map-classify-panel .map-classify-field:focus-within .map-classify-field-title{color:#90caf9}
.map-classify-panel .map-classify-field:focus-within input::placeholder{color:rgba(255,255,255,.65)}
.map-classify-mub-field.is-foco{outline:none} /* o realce do campo ativo passa a ser o :focus-within acima (um unico destaque) */

/* ---- Refinamento de UX (foco azul aprovado permanece como esta) ---- */
/* Autocomplete: "Limpar selecao" e acao secundaria, discreta e separada no fim da lista (nunca vem destacada ao abrir) */
.map-classify-combo-list li.is-limpar{margin-top:.2rem;padding-top:.4rem;border-top:1px solid var(--map-ui-border);font-size:.74rem;color:#9fb3c2;font-style:italic}
.map-classify-combo-list li.is-limpar.is-ativo{background:rgba(255,255,255,.12);color:#f6f8fa}
/* Origem do dado (uma linha curta; o valor ja aparece no campo) */
.map-classify-orig.is-pref{color:#90caf9}
.map-classify-orig.is-opcional{color:#9fb3c2;font-weight:500}
/* Campo OPCIONAL vazio: neutro, sem vermelho de pendencia (o vermelho fica para obrigatorios pendentes/erros) */
.map-classify-field.is-opcional{border-left-color:#6b7f8f}
.map-classify-field.is-opcional>.map-classify-field-title .map-classify-dot{background:#6b7f8f}
/* Rolagem: a area util termina acima do rodape fixo (scrollIntoView/foco respeitam), com respiro apos o ultimo campo */
.map-classify-body{scroll-padding-top:.5rem;scroll-padding-bottom:4.2rem;padding-bottom:.25rem}
.map-classify-panel.is-mobile-fs .map-classify-body{scroll-padding-bottom:calc(4.6rem + env(safe-area-inset-bottom))}
/* Cabecalho mais compacto (mesma organizacao e legibilidade) */
.map-classify-panel{gap:.3rem;padding:.5rem .65rem}
.map-classify-panel .map-photo-panel-header{gap:.35rem}
.map-classify-body{gap:.4rem}
.map-classify-tabs{margin-top:0}
.map-classify-tabs button{padding:.3rem .3rem}
.map-classify-addr{line-height:1.25}

/* Visualizador de imagens do Classify: estilos adaptados do visualizador de arquivos do Consorcio Taubateano (documentos.consorciotaubateano.com.br).
   Acima do painel (inclusive tela cheia no mobile, z-index 100000) e abaixo dos dialogos SweetAlert2 do Classify (100050). */
.map-classify-imgbtn{display:block;width:100%;padding:0;margin:0;border:0;background:none;cursor:zoom-in;color:inherit;font:inherit}
.map-classify-imgbtn:focus-visible{outline:2px solid #85dcff;outline-offset:2px;border-radius:.4rem}
.map-classify-vis-fundo{position:fixed;inset:0;z-index:100020;display:flex;align-items:center;justify-content:center;padding:2vmin;background:rgba(3,15,24,.78);box-sizing:border-box}
.map-classify-vis{position:relative;display:grid;grid-template-rows:auto 1fr;width:min(1100px,100%);height:min(860px,100%);min-width:0;min-height:0;border:1px solid rgba(146,202,235,.22);border-radius:14px;overflow:hidden;background:rgba(3,15,24,.96);color:#f4f8fb;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.map-classify-vis-head{position:relative;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:10px 14px;border-bottom:1px solid rgba(146,202,235,.22);background:rgba(18,43,60,.92)}
.map-classify-vis-head strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.map-classify-vis-head span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#aab8c4;font-size:12px}
.map-classify-vis-head nav{display:flex;gap:8px}
.map-classify-vis button{display:inline-grid;place-items:center;min-width:38px;height:34px;padding:0 10px;border:1px solid rgba(146,202,235,.28);border-radius:12px;background:rgba(28,59,80,.9);color:#f4f8fb;font:inherit;font-size:16px;font-weight:900;line-height:1;cursor:pointer}
.map-classify-vis button:disabled{opacity:.4;cursor:default}
.map-classify-vis button:focus-visible{outline:2px solid #85dcff;outline-offset:1px}
.map-classify-vis-tools{position:absolute;top:80px;right:14px;z-index:4;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:calc(100% - 28px);padding:8px;border:1px solid rgba(146,202,235,.24);border-radius:18px;background:rgba(18,43,60,.86);backdrop-filter:blur(14px);box-shadow:0 16px 44px rgba(0,0,0,.26)}
.map-classify-vis-wrap{width:100%;height:100%;min-height:0;overflow:auto;cursor:grab;user-select:none;touch-action:none;scrollbar-color:rgba(133,220,255,.55) rgba(18,43,60,.58);scrollbar-width:thin}
.map-classify-vis-wrap.is-panning{cursor:grabbing}
.map-classify-vis-surf{width:100%;height:100%;min-width:100%;min-height:100%;overflow:visible}
.map-classify-vis-surf img{display:block;max-width:none!important;max-height:none!important;transform-origin:0 0;pointer-events:none;user-select:none;border:0;border-radius:0}
.map-classify-vis-carga{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);padding:.5rem .9rem;border-radius:10px;background:rgba(18,43,60,.9);color:#aab8c4;font-size:.85rem}
.map-classify-vis-carga[hidden]{display:none}
@media (max-width:640px){
  .map-classify-vis-fundo{padding:0}
  .map-classify-vis{width:100%;height:100%;border-radius:0;border:0}
  .map-classify-vis-tools{top:90px;left:10px;right:10px;justify-content:center}
}
