/* ═══════════════════════════════════════════════════════════════════
   FILTROS V9 — localização unificada e camadas por finalidade.

   Esta camada é deliberadamente aditiva: mantém todos os IDs, inputs e
   contratos de eventos do painel anterior, alterando apenas hierarquia e
   apresentação. Carregada depois de themes-v8.css para que os três temas
   continuem usando os mesmos tokens sem regras específicas por tema.
   ═══════════════════════════════════════════════════════════════════ */

.sidebar#sidebar {
  left: 16px !important;
  top: calc(var(--top-bar-height) + 18px) !important;
  width: min(396px, calc(100vw - 32px)) !important;
  max-height: calc(100dvh - var(--top-bar-height) - 36px) !important;
  padding: 0 !important;
  border: 1px solid var(--map-glass-border) !important;
  border-radius: 16px !important;
  background: var(--map-glass-bg-strong) !important;
  box-shadow: 0 20px 48px rgba(2, 19, 26, 0.28) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

.sidebar#sidebar .section {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/* Cabeçalho em duas linhas quando existe algo a limpar. */
.sidebar#sidebar .section-header {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 46px !important;
  grid-template-rows: 55px 38px !important;
  gap: 0 !important;
  min-height: 55px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid var(--map-glass-border) !important;
}

.sidebar#sidebar .section-header:not(:has(#clearAllFilters:not([hidden]))) {
  grid-template-rows: 55px 0 !important;
}

.sidebar#sidebar .filter-panel-heading {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  justify-self: stretch !important;
  min-width: 0 !important;
  padding-left: 18px !important;
  text-align: left !important;
}

.sidebar#sidebar .filter-panel-heading strong {
  color: var(--map-glass-text) !important;
  font-size: 17px !important;
  font-weight: 780 !important;
  line-height: 1 !important;
  letter-spacing: -0.015em !important;
}

.sidebar#sidebar .section-close-btn {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: center !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: transparent !important;
  color: var(--map-glass-text) !important;
  font-size: 17px !important;
}

.sidebar#sidebar .section-close-btn i {
  font-size: 18px !important;
  font-weight: 500 !important;
}

.sidebar#sidebar .section-action-btn {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  align-self: stretch !important;
  justify-self: stretch !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 17px !important;
  border: 0 !important;
  border-top: 1px solid var(--map-glass-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--map-glass-accent) !important;
  font-size: 12px !important;
  font-weight: 720 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.sidebar#sidebar .section-action-btn[hidden] {
  display: none !important;
}

.sidebar#sidebar .section-action-btn i {
  font-size: 14px !important;
}

.sidebar#sidebar .section-action-btn:hover,
.sidebar#sidebar .section-action-btn:focus-visible,
.sidebar#sidebar .section-close-btn:hover,
.sidebar#sidebar .section-close-btn:focus-visible {
  background: var(--map-glass-accent-soft) !important;
  color: var(--map-glass-accent) !important;
}

.sidebar#sidebar .section-content,
.sidebar#sidebar .layer-stack {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.sidebar#sidebar .layer-stack {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

/* Três grupos operacionais: localização, cadastros e contexto. */
.sidebar#sidebar .fx-panel-section {
  display: block !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--map-glass-border) !important;
  background: transparent !important;
}

.sidebar#sidebar .fx-panel-section-title {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  min-height: 22px !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  color: var(--map-glass-accent) !important;
  font-size: 11px !important;
  font-weight: 820 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
}

.sidebar#sidebar .fx-panel-section-title i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 18px !important;
  color: currentColor !important;
  font-size: 14px !important;
}

/* Cadastros e contexto usam revelação progressiva; Localização permanece aberta. */
.sidebar#sidebar .fx-disclosure-section,
.sidebar#sidebar .fx-disclosure-section.fx-cadastros-section,
.sidebar#sidebar .fx-disclosure-section.fx-context-section {
  padding: 0 !important;
  overflow: hidden !important;
}

.sidebar#sidebar .fx-disclosure-section > summary.fx-panel-section-title {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto 18px !important;
  gap: 9px !important;
  min-height: 50px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  cursor: pointer !important;
  list-style: none !important;
}

.sidebar#sidebar .fx-disclosure-section > summary::-webkit-details-marker {
  display: none !important;
}

.sidebar#sidebar .fx-panel-section-label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 9px !important;
  min-width: 0 !important;
}

.sidebar#sidebar .fx-panel-section-meta {
  overflow: hidden !important;
  color: var(--map-glass-muted) !important;
  font-size: 9.5px !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
  text-overflow: ellipsis !important;
  text-transform: none !important;
  white-space: nowrap !important;
}

.sidebar#sidebar .fx-disclosure-section > summary .fx-caret-svg {
  width: 18px !important;
  height: 18px !important;
  transition: transform 0.18s ease !important;
}

.sidebar#sidebar .fx-disclosure-section[open] > summary .fx-caret-svg {
  transform: rotate(180deg) !important;
}

.sidebar#sidebar .fx-disclosure-section[open] > summary {
  border-bottom: 1px solid var(--map-glass-border) !important;
}

.sidebar#sidebar .fx-disclosure-section > .fx-panel-section-body {
  padding: 0 16px 14px !important;
}

/* Localização: Estado e Município pertencem ao mesmo bloco. */
.sidebar#sidebar .fx-location-section {
  padding-top: 15px !important;
  padding-bottom: 17px !important;
}

.sidebar#sidebar .fx-location-section .fx-group,
.sidebar#sidebar .fx-location-section .layer-card.fx-group,
.sidebar#sidebar .fx-location-section .layer-card.fx-group[data-layer-card] {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

.sidebar#sidebar .fx-location-section .fx-group + .fx-group {
  margin-top: 13px !important;
  padding-top: 0 !important;
}

.sidebar#sidebar .fx-location-section .fx-group-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.sidebar#sidebar .fx-location-section .fx-group-label {
  display: flex !important;
  align-items: center !important;
  min-width: 0 !important;
  color: var(--map-glass-text) !important;
  font-size: 12px !important;
  font-weight: 740 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  opacity: 1 !important;
}

.sidebar#sidebar .fx-location-section .fx-group-label::before,
.sidebar#sidebar .fx-location-section .fx-step-number,
.sidebar#sidebar .fx-location-section .fx-group-copy small {
  display: none !important;
  content: none !important;
}

.sidebar#sidebar .fx-location-section .fx-group-copy strong {
  color: var(--map-glass-text) !important;
  font-size: 12px !important;
  font-weight: 740 !important;
}

.sidebar#sidebar .fx-location-section .fx-vis {
  display: none !important;
}

.sidebar#sidebar .fx-location-section .layer-filter-panel {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.sidebar#sidebar .fx-location-section .layer-filter-panel:has(#estadoActiveChips:not([hidden])) .estado-active-chip-list {
  position: absolute !important;
  top: 8px !important;
  left: 9px !important;
  z-index: 4 !important;
  flex-wrap: nowrap !important;
  max-width: calc(100% - 56px) !important;
  margin: 0 !important;
  overflow-x: auto !important;
  scrollbar-width: none !important;
}

.sidebar#sidebar .fx-location-section .layer-filter-panel:has(#estadoActiveChips:not([hidden])) .estado-active-chip-list::-webkit-scrollbar {
  display: none !important;
}

.sidebar#sidebar .fx-location-section .layer-filter-panel:has(#estadoActiveChips:not([hidden])) .estado-filter-search::placeholder {
  color: transparent !important;
}

.sidebar#sidebar .fx-location-section .layer-filter-panel:has(#estadoActiveChips:not([hidden])) .fx-combo-icon {
  display: none !important;
}

.sidebar#sidebar .fx-location-section .fx-combo,
.sidebar#sidebar .fx-location-section .fx-select {
  position: relative !important;
  width: 100% !important;
}

.sidebar#sidebar .estado-filter-search,
.sidebar#sidebar .fx-select .filter-select {
  width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  border: 1px solid var(--map-glass-border-strong) !important;
  border-radius: 9px !important;
  background: var(--filter-field-bg, rgba(255, 255, 255, 0.06)) !important;
  color: var(--map-glass-text) !important;
  box-shadow: none !important;
  font-size: 13px !important;
  font-weight: 560 !important;
}

.sidebar#sidebar .estado-filter-search {
  padding: 0 48px 0 37px !important;
}

.sidebar#sidebar .fx-select .filter-select {
  padding: 0 46px 0 13px !important;
  appearance: none !important;
}

.sidebar#sidebar #municipiosFilterPanel:has(#clearMunicipioFilters:not(:disabled)) .filter-select {
  padding-right: 88px !important;
}

.sidebar#sidebar .fx-combo-icon {
  position: absolute !important;
  top: 50% !important;
  left: 13px !important;
  z-index: 2 !important;
  transform: translateY(-50%) !important;
  color: var(--map-glass-muted) !important;
  font-size: 12px !important;
  pointer-events: none !important;
}

.sidebar#sidebar .estado-filter-trigger.fx-combo-caret {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  z-index: 3 !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 9px !important;
  background: transparent !important;
  color: var(--map-glass-muted) !important;
}

.sidebar#sidebar .fx-select-caret {
  position: absolute !important;
  top: 50% !important;
  right: 14px !important;
  width: 15px !important;
  height: 15px !important;
  transform: translateY(-50%) !important;
  color: var(--map-glass-muted) !important;
  pointer-events: none !important;
}

.sidebar#sidebar .estado-active-chip-list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 5px !important;
  margin: 0 0 1px !important;
  padding: 0 !important;
}

.sidebar#sidebar .estado-active-chip-list[hidden] {
  display: none !important;
}

.sidebar#sidebar .estado-active-chip {
  min-height: 27px !important;
  height: 27px !important;
  padding: 0 8px !important;
  border: 1px solid color-mix(in srgb, var(--map-glass-accent) 38%, transparent) !important;
  border-radius: 999px !important;
  background: var(--map-glass-accent-soft) !important;
  color: var(--map-glass-text) !important;
  font-size: 11px !important;
}

.sidebar#sidebar .fx-locked-copy {
  min-height: 0 !important;
  margin: 0 !important;
  padding: 7px 9px !important;
  border: 0 !important;
  border-left: 2px solid var(--map-glass-border-strong) !important;
  border-radius: 0 7px 7px 0 !important;
  background: transparent !important;
  color: var(--map-glass-muted) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}

.sidebar#sidebar .fx-location-section .fx-group:not(.is-locked) .fx-locked-copy {
  display: none !important;
}

.sidebar#sidebar .fx-location-section :is(#estadoScopeHint, #municipioScopeHint, .filter-inline-actions) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

.sidebar#sidebar .fx-location-section #municipiosFilterPanel .filter-inline-actions {
  position: absolute !important;
  top: 0 !important;
  right: 44px !important;
  z-index: 3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
}

.sidebar#sidebar .fx-location-section #municipiosFilterPanel .filter-inline-actions:has(#clearMunicipioFilters:disabled) {
  display: none !important;
}

.sidebar#sidebar #clearMunicipioFilters {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: var(--map-glass-muted) !important;
}

.sidebar#sidebar #clearMunicipioFilters:hover,
.sidebar#sidebar #clearMunicipioFilters:focus-visible {
  background: var(--map-glass-accent-soft) !important;
  color: var(--map-glass-text) !important;
}

.sidebar#sidebar #estadoFilterUf.filter-chip-group {
  top: calc(100% + 5px) !important;
  right: 0 !important;
  left: 0 !important;
  z-index: 1010 !important;
  width: 100% !important;
  max-height: min(330px, calc(100dvh - 230px)) !important;
}

/* Cadastros: uma linha por fonte e estado visível no próprio controle. */
.sidebar#sidebar .fx-cadastros-section {
  padding: 13px 16px 12px !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-fazendas-visibility,
.sidebar#sidebar .fx-cadastros-section .fx-group-public,
.sidebar#sidebar .fx-cadastros-section .fx-pill.layer-card {
  width: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-pill.layer-card::before,
.sidebar#sidebar .fx-cadastros-section .fx-pill.layer-card::after {
  display: none !important;
  content: none !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-fazendas-visibility {
  display: grid !important;
  grid-template-columns: 24px minmax(0, 1fr) 44px !important;
  align-items: center !important;
  gap: 9px !important;
  min-height: 52px !important;
  padding: 5px 0 !important;
  border-bottom: 1px solid var(--map-glass-border) !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-fazendas-visibility:has(input:checked) {
  background: transparent !important;
  box-shadow: none !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-layer-swatch {
  position: relative !important;
  grid-column: 1 !important;
  align-self: center !important;
  width: 16px !important;
  height: 10px !important;
  margin-left: 2px !important;
  transform: none !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-fazendas-visibility-copy {
  display: grid !important;
  grid-column: 2 !important;
  gap: 3px !important;
  min-width: 0 !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-fazendas-visibility-copy strong,
.sidebar#sidebar .fx-cadastros-section .fx-pill-name {
  color: var(--map-glass-text) !important;
  font-size: 12.5px !important;
  font-weight: 740 !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  opacity: 1 !important;
}

.sidebar#sidebar .fx-cadastros-section :is(.fx-fazendas-visibility-copy small, .fx-pill-meta) {
  display: block !important;
  overflow: hidden !important;
  color: var(--map-glass-muted) !important;
  font-size: 10.5px !important;
  font-weight: 560 !important;
  line-height: 1.15 !important;
  text-align: left !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  opacity: 1 !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-group-public {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 0 !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-group-public > .fx-group-head {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-pills {
  order: 1 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-pill.layer-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 24px minmax(0, 1fr) 44px !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  column-gap: 9px !important;
  min-height: 52px !important;
  padding: 7px 0 !important;
  border-bottom: 1px solid var(--map-glass-border) !important;
  overflow: visible !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-pill[hidden] {
  display: none !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-pill .fx-layer-swatch {
  grid-column: 1 !important;
  grid-row: 1 / -1 !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-pill-name {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: end !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-pill-meta {
  grid-column: 2 !important;
  grid-row: 2 !important;
  align-self: start !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-pill-meta:empty::after {
  color: var(--map-glass-muted) !important;
  content: "Aguardando recorte" !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-pill-meta:empty {
  display: block !important;
}

/* Switches são os próprios checkboxes; sem controle visual duplicado. */
.sidebar#sidebar .fx-cadastros-section :is(.fx-vis input, .fx-pill input),
.sidebar#sidebar .fx-context-section .fx-pill input {
  position: relative !important;
  inset: auto !important;
  display: block !important;
  width: 40px !important;
  height: 23px !important;
  margin: 0 !important;
  padding: 0 !important;
  appearance: none !important;
  border: 1px solid var(--map-glass-border-strong) !important;
  border-radius: 999px !important;
  background-color: color-mix(in srgb, var(--map-glass-muted) 42%, transparent) !important;
  opacity: 1 !important;
  cursor: pointer !important;
}

.sidebar#sidebar .fx-cadastros-section :is(.fx-vis input, .fx-pill input)::after,
.sidebar#sidebar .fx-context-section .fx-pill input::after {
  display: block !important;
  width: 17px !important;
  height: 17px !important;
  margin: 2px !important;
  border-radius: 50% !important;
  background-color: var(--map-glass-text) !important;
  box-shadow: 0 1px 3px rgba(2, 19, 26, 0.24) !important;
  content: "" !important;
  transition: transform 0.16s ease !important;
}

.sidebar#sidebar .fx-cadastros-section :is(.fx-vis input, .fx-pill input):checked,
.sidebar#sidebar .fx-context-section .fx-pill input:checked {
  border-color: color-mix(in srgb, var(--map-glass-accent) 72%, transparent) !important;
  background-color: var(--map-glass-accent) !important;
}

.sidebar#sidebar .fx-cadastros-section :is(.fx-vis input, .fx-pill input):checked::after,
.sidebar#sidebar .fx-context-section .fx-pill input:checked::after {
  transform: translateX(17px) !important;
}

.sidebar#sidebar .fx-cadastros-section :is(.fx-vis input, .fx-pill input):disabled,
.sidebar#sidebar .fx-context-section .fx-pill input:disabled {
  cursor: not-allowed !important;
  opacity: 0.46 !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-vis {
  position: static !important;
  grid-column: 3 !important;
  display: block !important;
  width: 40px !important;
  min-width: 40px !important;
  height: 23px !important;
  min-height: 23px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  opacity: 1 !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-vis-svg,
.sidebar#sidebar .fx-cadastros-section .fx-vis-label {
  display: none !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-pill input {
  grid-column: 3 !important;
  grid-row: 1 / -1 !important;
}

.sidebar#sidebar .fx-cadastros-section .public-viewport-filter-toggle {
  order: 3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 9px !important;
  width: 100% !important;
  min-height: 41px !important;
  margin: 8px 0 0 !important;
  padding: 0 12px !important;
  border: 1px solid var(--map-glass-border-strong) !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: var(--map-glass-text) !important;
  font-size: 11.5px !important;
  font-weight: 690 !important;
}

.sidebar#sidebar .fx-cadastros-section .public-viewport-filter-toggle[aria-pressed="true"] {
  border-color: var(--map-glass-accent) !important;
  background: var(--map-glass-accent-soft) !important;
  color: var(--map-glass-accent) !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-hint-public {
  order: 4 !important;
  margin: 7px 0 0 !important;
  padding: 0 2px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--map-glass-muted) !important;
  font-size: 10px !important;
  line-height: 1.3 !important;
}

.sidebar#sidebar .fx-cadastros-section .fx-group-public.is-current .fx-hint-public {
  display: none !important;
}

.sidebar#sidebar .fx-cadastros-section .vector-style-key,
.sidebar#sidebar .fx-cadastros-section .layer-filter-panel[hidden] {
  display: none !important;
}

/* Contexto: duas fontes principais e três complementares. */
.sidebar#sidebar .fx-context-section {
  padding: 13px 16px 14px !important;
}

.sidebar#sidebar .fx-context-section .fx-group-environment {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.sidebar#sidebar .fx-context-section .fx-group-environment > .fx-group-head {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
}

.sidebar#sidebar .fx-context-section .fx-pills-environment {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 7px !important;
}

.sidebar#sidebar .fx-context-section .fx-pills-environment .fx-pill {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr) auto !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  gap: 2px 8px !important;
  grid-column: span 3 !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 7px 8px 7px 10px !important;
  border: 1px solid var(--map-glass-border) !important;
  border-radius: 9px !important;
  background: var(--filter-field-bg, rgba(255, 255, 255, 0.05)) !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

.sidebar#sidebar .fx-context-section .fx-pills-environment .fx-pill-environment-wide {
  grid-column: span 3 !important;
  min-height: 54px !important;
}

.sidebar#sidebar .fx-context-section .fx-pills-environment .fx-pill[hidden] {
  display: none !important;
}

.sidebar#sidebar .fx-context-section .fx-pill input {
  grid-column: 3 !important;
  grid-row: 1 / -1 !important;
  width: 34px !important;
  height: 20px !important;
}

.sidebar#sidebar .fx-context-section .fx-pill input::after {
  width: 14px !important;
  height: 14px !important;
  margin: 2px !important;
}

.sidebar#sidebar .fx-context-section .fx-pill input:checked::after {
  transform: translateX(14px) !important;
}

.sidebar#sidebar .fx-context-section .fx-pill-name {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: end !important;
  color: var(--map-glass-text) !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  opacity: 1 !important;
}

.sidebar#sidebar .fx-context-section .fx-context-icon {
  grid-column: 1 !important;
  grid-row: 1 / -1 !important;
  align-self: center !important;
  justify-self: center !important;
  width: 16px !important;
  min-width: 16px !important;
  color: var(--map-glass-muted) !important;
  font-size: 12px !important;
}

.sidebar#sidebar .fx-context-section .fx-environment-meta {
  grid-column: 2 !important;
  grid-row: 2 !important;
  overflow: hidden !important;
  color: var(--map-glass-muted) !important;
  font-size: 9px !important;
  font-weight: 560 !important;
  line-height: 1.15 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sidebar#sidebar .fx-context-section .fx-pill:has(input:checked) {
  border-color: color-mix(in srgb, var(--map-glass-accent) 55%, var(--map-glass-border)) !important;
  background: var(--map-glass-accent-soft) !important;
}

.sidebar#sidebar .fx-context-section .fx-pill:has(input:disabled) {
  opacity: 0.48 !important;
}

.sidebar#sidebar .soilgrids-settings {
  margin: 10px 0 0 !important;
  border: 1px solid var(--map-glass-border) !important;
  border-radius: 9px !important;
  background: var(--filter-field-bg, var(--theme-filter-field)) !important;
  overflow: hidden !important;
}

.sidebar#sidebar .soilgrids-settings[hidden] {
  display: none !important;
}

.sidebar#sidebar .soilgrids-settings > summary {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 44px !important;
  padding: 0 11px !important;
  color: var(--map-glass-text) !important;
  cursor: pointer !important;
  list-style: none !important;
}

.sidebar#sidebar .soilgrids-settings > summary::-webkit-details-marker {
  display: none !important;
}

.sidebar#sidebar .soilgrids-settings > summary > span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.sidebar#sidebar .soilgrids-settings > summary strong {
  font-size: 11px !important;
  font-weight: 720 !important;
}

.sidebar#sidebar .soilgrids-settings > summary .fx-caret-svg {
  width: 17px !important;
  height: 17px !important;
  transition: transform 0.18s ease !important;
}

.sidebar#sidebar .soilgrids-settings[open] > summary .fx-caret-svg {
  transform: rotate(180deg) !important;
}

.sidebar#sidebar .soilgrids-config {
  margin: 0 !important;
  padding: 10px !important;
  border: 0 !important;
  border-top: 1px solid var(--map-glass-border) !important;
  border-radius: 0 !important;
  background: var(--map-glass-bg-strong) !important;
  color: var(--map-glass-text) !important;
}

.sidebar#sidebar .soilgrids-config :is(.soilgrids-config-head strong, label > span) {
  color: var(--map-glass-text) !important;
}

.sidebar#sidebar .soilgrids-config :is(.soilgrids-config-head small, p) {
  color: var(--map-glass-muted) !important;
}

.sidebar#sidebar .soilgrids-config select {
  min-height: 36px !important;
  border-color: var(--map-glass-border-strong) !important;
  background: var(--map-glass-bg-strong) !important;
  color: var(--map-glass-text) !important;
  font-size: 11px !important;
}

/* Aparência continua recolhida, mas agora encerra o painel como no mock. */
.sidebar#sidebar .fx-opacity-panel {
  margin: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--map-glass-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  overflow: hidden !important;
}

.sidebar#sidebar .fx-opacity-panel > summary {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 50px !important;
  padding: 0 17px !important;
  color: var(--map-glass-accent) !important;
  cursor: pointer !important;
  list-style: none !important;
}

.sidebar#sidebar .fx-opacity-panel > summary::-webkit-details-marker {
  display: none !important;
}

.sidebar#sidebar .fx-opacity-panel > summary > span {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
}

.sidebar#sidebar .fx-opacity-panel > summary strong {
  font-size: 11px !important;
  font-weight: 820 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.085em !important;
  text-transform: uppercase !important;
}

.sidebar#sidebar .fx-opacity-panel > summary .fx-caret-svg {
  width: 18px !important;
  height: 18px !important;
  transition: transform 0.18s ease !important;
}

.sidebar#sidebar .fx-opacity-panel[open] > summary .fx-caret-svg {
  transform: rotate(180deg) !important;
}

.sidebar#sidebar .fx-opacity-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 9px 12px !important;
  padding: 2px 16px 14px !important;
  border-top: 1px solid var(--map-glass-border) !important;
}

.sidebar#sidebar .fx-layer-visibility-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  padding: 12px 16px !important;
  border-top: 1px solid var(--map-glass-border) !important;
}

.sidebar#sidebar .fx-appearance-subtitle {
  grid-column: 1 / -1 !important;
  color: var(--map-glass-muted) !important;
  font-size: 9.5px !important;
  font-weight: 760 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

.sidebar#sidebar .fx-layer-visibility-control {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  min-height: 44px !important;
  padding: 0 9px !important;
  border: 1px solid var(--map-glass-border) !important;
  border-radius: 8px !important;
  color: var(--map-glass-text) !important;
  font-size: 10.5px !important;
  font-weight: 680 !important;
}

.sidebar#sidebar .fx-layer-visibility-control input {
  position: relative !important;
  display: block !important;
  width: 40px !important;
  min-width: 40px !important;
  height: 23px !important;
  margin: 0 !important;
  appearance: none !important;
  border: 1px solid var(--map-glass-border-strong) !important;
  border-radius: 999px !important;
  background: color-mix(in srgb, var(--map-glass-muted) 42%, transparent) !important;
  cursor: pointer !important;
}

.sidebar#sidebar .fx-layer-visibility-control input::after {
  display: block !important;
  width: 17px !important;
  height: 17px !important;
  margin: 2px !important;
  border-radius: 50% !important;
  background: var(--map-glass-text) !important;
  box-shadow: 0 1px 3px rgba(2, 19, 26, 0.24) !important;
  content: "" !important;
  transition: transform 0.16s ease !important;
}

.sidebar#sidebar .fx-layer-visibility-control input:checked {
  border-color: color-mix(in srgb, var(--map-glass-accent) 72%, transparent) !important;
  background: var(--map-glass-accent) !important;
}

.sidebar#sidebar .fx-layer-visibility-control input:checked::after {
  transform: translateX(17px) !important;
}

.sidebar#sidebar .fx-layer-visibility-control input:disabled {
  cursor: not-allowed !important;
  opacity: 0.46 !important;
}

.sidebar#sidebar .fx-opacity-control {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 4px 6px !important;
  min-width: 0 !important;
  padding-top: 9px !important;
  color: var(--map-glass-text) !important;
  font-size: 10px !important;
  font-weight: 680 !important;
}

.sidebar#sidebar .fx-opacity-control[hidden] {
  display: none !important;
}

.sidebar#sidebar .fx-opacity-control input[type="range"] {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  accent-color: var(--map-glass-accent) !important;
}

.sidebar#sidebar .sidebar-attribution {
  margin: 0 !important;
  padding: 10px 16px 12px !important;
  border: 0 !important;
  color: var(--map-glass-muted) !important;
  font-size: 8px !important;
  line-height: 1.35 !important;
  text-align: left !important;
  opacity: 0.58 !important;
}

@media (max-width: 640px) {
  .sidebar#sidebar {
    left: 10px !important;
    top: calc(var(--top-bar-height) + 10px) !important;
    width: min(372px, calc(100vw - 20px)) !important;
    max-height: calc(100dvh - var(--top-bar-height) - 20px) !important;
    border-radius: 15px !important;
  }

  .sidebar#sidebar .fx-panel-section {
    padding-right: 14px !important;
    padding-left: 14px !important;
  }

  .sidebar#sidebar .fx-context-section .fx-pills-environment {
    gap: 6px !important;
  }
}

@media (max-width: 360px) {
  .sidebar#sidebar .fx-context-section .fx-pills-environment .fx-pill,
  .sidebar#sidebar .fx-context-section .fx-pills-environment .fx-pill-environment-wide {
    grid-column: 1 / -1 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sidebar#sidebar .fx-cadastros-section :is(.fx-vis input, .fx-pill input)::after,
  .sidebar#sidebar .fx-context-section .fx-pill input::after,
  .sidebar#sidebar .fx-opacity-panel > summary .fx-caret-svg {
    transition: none !important;
  }
}
