/* Styles are scoped to the independent Geo entry. */
.geo-login,.geo-portal {
  --geo-ink:#17343e;
  --geo-accent:#087e83;
  --geo-line:#e0e8e9;
  --geo-muted:#687d86;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  color:var(--geo-ink)
}
.geo-login *,.geo-portal .geo-topbar *,.geo-portal .geo-rail *,.geo-portal .geo-dock * {
  box-sizing:border-box
}
.geo-login {
  margin:0;
  background:#f8faf9
}
.geo-login-layout {
  display:grid;
  grid-template-columns:1.08fr 1fr;
  min-height:100vh
}
.geo-login-intro {
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  padding:52px 64px;
  color:#fff;
  background:#123c43
}
.geo-login-intro:before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.16;
  background-image:linear-gradient(30deg,transparent 48%,#8bc8bd 49%,#8bc8bd 50%,transparent 51%),linear-gradient(120deg,transparent 48%,#8bc8bd 49%,#8bc8bd 50%,transparent 51%);
  background-size:150px 180px;
  transform:scale(1.4) rotate(-12deg)
}
.geo-login-intro>* {
  position:relative
}
.geo-wordmark {
  display:flex;
  align-items:center;
  gap:4px;
  text-decoration:none;
  font-weight:800;
  font-size:21px;
  letter-spacing:-.7px;
  color:inherit
}
.geo-wordmark img {
  width:31px;
  height:31px;
  object-fit:contain;
  margin-right:7px
}
.geo-wordmark span {
  font-weight:400
}
.geo-eyebrow {
  display:block;
  font-size:10px;
  font-weight:700;
  letter-spacing:1.8px;
  color:var(--geo-accent)
}
.geo-login-intro .geo-eyebrow {
  color:#9bdbcd
}
.geo-login-copy {
  padding:70px 0
}
.geo-login-copy h1 {
  font-size:clamp(32px,3.5vw,53px);
  line-height:1.15;
  letter-spacing:-1.7px;
  font-weight:500;
  margin:22px 0
}
.geo-login-copy p {
  color:#c4dcd9;
  line-height:1.8;
  font-size:16px
}
.geo-municipality {
  display:flex;
  align-items:center;
  gap:15px
}
.geo-municipality img {
  width:49px;
  height:58px;
  object-fit:contain
}
.geo-municipality strong,.geo-municipality span {
  display:block
}
.geo-municipality strong {
  font-size:17px
}
.geo-municipality span {
  font-size:12px;
  color:#c4dcd9;
  margin-top:5px
}
.geo-login-form-wrap {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:48px 32px
}
.geo-login-form {
  width:100%;
  max-width:365px
}
.geo-login-form h2 {
  font-size:30px;
  letter-spacing:-.8px;
  margin:18px 0 12px
}
.geo-login-form p {
  font-size:14px;
  color:var(--geo-muted);
  margin-bottom:33px
}
.geo-login-form label {
  display:block;
  font-size:13px;
  font-weight:600;
  margin:22px 0 9px
}
.geo-login-form input:not([type=hidden]) {
  width:100%;
  height:49px;
  border:1px solid #d4dfe1;
  border-radius:7px;
  padding:0 14px;
  font:inherit;
  font-size:14px;
  background:#fff;
  color:var(--geo-ink)
}
.geo-login input:focus,.geo-portal input:focus {
  outline:2px solid #087e8340;
  outline-offset:1px
}
.geo-login-form button {
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  height:49px;
  margin:27px 0 20px;
  padding:0 17px;
  border:0;
  border-radius:7px;
  background:#087e83;
  color:white;
  font:inherit;
  font-size:14px;
  font-weight:600;
  cursor:pointer
}
.geo-login-form small {
  display:block;
  font-size:12px;
  line-height:1.7;
  color:var(--geo-muted)
}
.geo-login-form-wrap footer {
  margin-top:65px;
  font-size:10px;
  color:#819298
}
.geo-error {
  padding:14px;
  border:1px solid #e8b4ad;
  border-radius:6px;
  background:#fff3f0;
  color:#94392e;
  font-size:13px;
  line-height:1.6
}
.geo-portal [hidden] {
  display:none!important
}
.geo-portal .ajuste-map-shell {
  position:fixed;
  inset:0;
  display:block;
  height:100vh;
  height:100dvh
}
.geo-portal #ajuste-map-window {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  background:#e5eddf
}
.geo-portal .ajuste-map-resizer,.geo-portal .ajuste-map-panel {
  display:none
}
.geo-topbar {
  position:fixed;
  inset:0 0 auto;
  height:64px;
  display:flex;
  align-items:center;
  gap:25px;
  padding:0 20px;
  background:#fff;
  border-bottom:1px solid var(--geo-line);
  z-index:1500
}
.geo-topbar .geo-wordmark {
  color:var(--geo-ink);
  font-size:19px
}
.geo-topbar-city {
  border-left:1px solid var(--geo-line);
  padding-left:24px
}
.geo-topbar-city strong,.geo-topbar-city span {
  display:block
}
.geo-topbar-city strong {
  font-size:13px;
  color:var(--geo-ink)
}
.geo-topbar-city span {
  font-size:10px;
  color:var(--geo-muted);
  margin-top:2px
}
.geo-account {
  display:flex;
  align-items:center;
  gap:15px;
  margin-left:auto;
  font-size:12px
}
.geo-profile {
  border-radius:4px;
  padding:5px 8px;
  color:#086d6e;
  background:#eaf5f1;
  font-size:10px
}
.geo-account form {
  margin:0
}
.geo-account button {
  border:0;
  background:#f1f5f5;
  border-radius:5px;
  width:32px;
  height:32px;
  color:var(--geo-ink);
  cursor:pointer
}
.geo-rail {
  position:fixed;
  inset:64px auto 0 0;
  width:72px;
  background:#fff;
  border-right:1px solid var(--geo-line);
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:15px 6px;
  gap:7px;
  z-index:1400
}
.geo-rail button {
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--geo-muted);
  width:59px;
  min-height:57px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  cursor:pointer
}
.geo-rail button i {
  font-size:18px
}
.geo-rail button span {
  font-size:9px;
  font-weight:600
}
.geo-rail button:hover,.geo-rail button[aria-expanded=true] {
  background:#e8f3f0;
  color:#087e83
}
.geo-rail button:last-child {
  margin-top:auto
}
.geo-dock {
  position:fixed;
  top:79px;
  bottom:20px;
  display:flex;
  flex-direction:column;
  width:370px;
  background:#fff;
  border:1px solid var(--geo-line);
  border-radius:10px;
  box-shadow:0 8px 28px #17343e20;
  z-index:1200;
  overflow:hidden
}
.geo-search-dock {
  left:87px
}
.geo-info-dock {
  right:16px;
  width:400px
}
.geo-dock-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-shrink:0;
  border-bottom:1px solid var(--geo-line);
  padding:20px
}
.geo-dock-heading h2 {
  font-size:17px;
  letter-spacing:-.3px;
  margin:5px 0 0;
  font-weight:600;
  color:var(--geo-ink)
}
.geo-dock-heading button {
  border:0;
  background:#f3f6f6;
  width:29px;
  height:29px;
  border-radius:5px;
  color:var(--geo-muted);
  font-size:22px;
  line-height:1;
  cursor:pointer
}
.geo-dock-body {
  padding:19px;
  overflow:auto;
  overscroll-behavior:contain;
  min-height:0;
  flex:1
}
.geo-dock label {
  font-size:11px;
  font-weight:600;
  color:var(--geo-ink);
  margin-bottom:8px
}
.geo-search-row {
  display:flex;
  gap:8px
}
.geo-search-row input {
  width:100%;
  min-width:0;
  border:1px solid #d4dfe1;
  border-radius:6px;
  height:40px;
  padding:0 12px;
  font-size:13px
}
.geo-search-row button {
  border:0;
  border-radius:6px;
  min-width:40px;
  color:white;
  background:var(--geo-accent)
}
.geo-hint {
  font-size:11px;
  color:var(--geo-muted);
  line-height:1.7;
  margin:15px 0
}
.geo-map-hint {
  position:fixed;
  left:calc(50% + 36px);
  bottom:24px;
  transform:translateX(-50%);
  background:#fff;
  box-shadow:0 3px 14px #17343e18;
  border:1px solid var(--geo-line);
  border-radius:7px;
  padding:10px 16px;
  z-index:900;
  font-size:11px;
  color:var(--geo-muted);
  pointer-events:none;
  white-space:nowrap
}
.geo-map-hint i {
  margin-right:7px;
  color:var(--geo-accent)
}
.geo-portal #ajuste-map-window .leaflet-top {
  top:79px
}
.geo-portal #ajuste-map-window .leaflet-left {
  left:82px
}
.geo-portal.geo-search-open #ajuste-map-window .leaflet-top.leaflet-left {
  left:457px
}
.geo-portal.geo-info-open #ajuste-map-window .leaflet-top.leaflet-right {
  right:420px
}
.geo-portal .leaflet-bottom.leaflet-left {
  bottom:12px
}
.geo-portal .geo-dock .btn {
  font-size:10px;
  letter-spacing:0;
  text-transform:none;
  box-shadow:none;
  padding:9px 10px
}
.geo-portal .geo-dock .text-sm {
  font-size:12px!important
}
.geo-portal .geo-dock .form-control,.geo-portal .geo-dock .form-select {
  font-size:12px;
  border-radius:5px
}
.geo-portal .geo-dock .ajuste-map-lote-editor {
  margin:0;
  padding:0;
  border:0;
  background:none;
  display:flex;
  flex-direction:column;
  gap:13px
}
.geo-portal .geo-dock .ajuste-map-lote-editor-grid {
  grid-template-columns:1fr 1fr
}
.geo-portal .geo-dock .ajuste-map-lote-search {
  grid-column:1/-1
}
.geo-portal .geo-dock .ajuste-map-lote-editor-table {
  max-height:none;
  overflow:auto
}
.geo-portal .geo-dock .ajuste-map-lote-editor-table table {
  min-width:620px
}
.geo-portal .geo-dock .ajuste-map-report-card,.geo-portal .geo-dock .ajuste-map-sh3-card {
  margin:0 0 20px;
  padding:13px;
  border:1px solid var(--geo-line);
  background:#fbfcfc
}
.geo-portal .geo-dock .ajuste-map-photo-actions {
  display:flex;
  gap:5px;
  flex-wrap:wrap
}
.geo-selected-card {
  border:1px solid var(--geo-line);
  border-radius:7px;
  background:#f7faf9;
  padding:14px;
  margin:0 0 17px;
  font-size:12px
}
.geo-selected-card strong {
  display:block;
  font-size:15px;
  margin-bottom:10px
}
.geo-selected-card dl {
  margin:0;
  display:grid;
  grid-template-columns:85px 1fr;
  gap:7px
}
.geo-selected-card dt {
  font-weight:400;
  color:var(--geo-muted)
}
.geo-selected-card dd {
  margin:0;
  overflow-wrap:anywhere
}
.geo-portal .geo-dock .leaflet-control-layers {
  float:none;
  box-shadow:none;
  border:0;
  width:100%!important;
  background:transparent
}
.geo-portal .geo-dock .leaflet-control-layers-list {
  display:block
}
.geo-portal .geo-dock .leaflet-control-layers-toggle {
  display:none
}
.geo-portal .geo-dock .leaflet-control-layers-overlays label {
  padding:8px;
  border-bottom:1px solid #edf1f2
}
.geo-portal .geo-dock .leaflet-control-layers-overlays span {
  display:inline;
  font-size:12px
}
.geo-layer-bases {
  display:flex;
  gap:7px;
  margin:15px 0
}
.geo-layer-bases button {
  border:1px solid var(--geo-line);
  background:#f5f8f8;
  border-radius:5px;
  padding:9px;
  font-size:11px;
  color:var(--geo-ink);
  cursor:pointer
}
.geo-edit-actions {
  display:flex;
  flex-direction:column;
  gap:10px
}
.geo-edit-actions button {
  border:1px solid var(--geo-line);
  background:#f3f8f7;
  border-radius:6px;
  padding:13px;
  text-align:left;
  color:var(--geo-ink);
  font-size:12px;
  cursor:pointer
}
.geo-portal #ajuste-map-boletim-modal {
  left:auto;
  right:16px;
  top:79px;
  bottom:20px;
  width:min(600px,calc(100vw - 103px));
  height:auto;
  overflow:auto;
  pointer-events:none
}
.geo-portal #ajuste-map-boletim-modal .modal-dialog {
  margin:0;
  width:100%;
  max-width:none;
  min-height:0;
  height:100%
}
.geo-portal #ajuste-map-boletim-modal .modal-content {
  height:100%;
  pointer-events:auto;
  border:1px solid var(--geo-line);
  border-radius:10px;
  box-shadow:0 8px 28px #17343e20
}
.geo-portal #ajuste-map-boletim-modal .modal-body {
  overflow:auto
}
.geo-portal #ajuste-map-boletim-modal .modal-title {
  font-size:16px
}
.geo-portal .ajuste-street-view-panel {
  position:fixed;
  left:87px;
  right:auto;
  top:79px;
  bottom:20px;
  width:min(520px,calc(100vw - 103px));
  height:auto;
  z-index:1300
}
.geo-portal.geo-readonly #map-photo-unlink,.geo-portal.geo-readonly #map-photo-associate,.geo-portal.geo-readonly #map-lote-associate,.geo-portal.geo-readonly #ajuste-map-lote-editor-toggle,.geo-portal.geo-readonly .map-popup-associate,.geo-portal.geo-readonly .map-popup-desassociate,.geo-portal.geo-readonly .map-popup-sh3-refresh,.geo-portal.geo-readonly .map-popup-validation-edit,.geo-portal.geo-readonly .map-amostra-editar,.geo-portal.geo-readonly .map-popup-pavimento-save,.geo-portal.geo-readonly .ajuste-geo-editor-control,.geo-portal.geo-readonly .ajuste-geo-editor-tools,.geo-portal.geo-readonly #ajuste-map-boletim-save,.geo-portal.geo-readonly .ajuste-map-edificacao-review-actions {
  display:none!important
}
@media(max-width:1000px) {
  .geo-dock {
    width:335px
  }
  .geo-info-dock {
    right:12px
  }
  .geo-topbar {
    gap:15px
  }
  .geo-account {
    gap:9px
  }
  .geo-user-name {
    max-width:150px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
  }
  .geo-portal.geo-search-open #ajuste-map-window .leaflet-top.leaflet-left {
    left:422px
  }
  .geo-portal.geo-info-open #ajuste-map-window .leaflet-top.leaflet-right {
    right:355px
  }
}
@media(max-width:700px) {
  .geo-login-layout {
    grid-template-columns:1fr
  }
  .geo-login-intro {
    padding:26px
  }
  .geo-login-copy {
    padding:28px 0 10px
  }
  .geo-login-copy h1 {
    font-size:31px
  }
  .geo-login-copy p {
    font-size:13px
  }
  .geo-municipality {
    display:none
  }
  .geo-login-form-wrap {
    padding:40px 26px
  }
  .geo-login-form-wrap footer {
    margin-top:35px
  }
  .geo-topbar {
    height:58px;
    padding:0 12px;
    gap:12px
  }
  .geo-topbar .geo-wordmark {
    font-size:14px
  }
  .geo-topbar .geo-wordmark img {
    width:24px;
    height:24px;
    margin-right:3px
  }
  .geo-topbar-city {
    padding-left:10px
  }
  .geo-topbar-city strong {
    font-size:11px
  }
  .geo-topbar-city span,.geo-profile,.geo-user-name {
    display:none
  }
  .geo-rail {
    top:auto;
    bottom:0;
    left:0;
    right:0;
    width:100%;
    height:65px;
    flex-direction:row;
    justify-content:space-around;
    padding:3px;
    gap:0;
    border-right:0;
    border-top:1px solid var(--geo-line)
  }
  .geo-rail button {
    width:44px;
    min-height:52px;
    gap:6px
  }
  .geo-rail button i {
    font-size:16px
  }
  .geo-rail button span {
    font-size:8px
  }
  .geo-rail button:last-child {
    margin-top:0
  }
  .geo-dock,.geo-info-dock {
    top:70px;
    bottom:77px;
    left:12px;
    right:12px;
    width:auto;
    max-width:none
  }
  .geo-dock-heading {
    padding:15px
  }
  .geo-dock-body {
    padding:15px
  }
  .geo-portal #ajuste-map-window .leaflet-top {
    top:68px
  }
  .geo-portal #ajuste-map-window .leaflet-left,.geo-portal.geo-search-open #ajuste-map-window .leaflet-top.leaflet-left {
    left:0
  }
  .geo-portal.geo-info-open #ajuste-map-window .leaflet-top.leaflet-right {
    right:0
  }
  .geo-portal #ajuste-map-window .leaflet-bottom {
    bottom:68px
  }
  .geo-map-hint {
    bottom:83px;
    left:50%;
    font-size:9px;
    max-width:95vw;
    white-space:normal;
    width:max-content;
    padding:8px 10px
  }
  .geo-portal #ajuste-map-boletim-modal {
    left:12px;
    right:12px;
    top:70px;
    bottom:77px;
    width:auto
  }
  .geo-portal .ajuste-street-view-panel {
    left:12px;
    right:12px;
    top:70px;
    bottom:77px;
    width:auto
  }
}
@media print {
  .geo-topbar,.geo-rail,.geo-dock,.geo-map-hint {
    display:none!important
  }
}

/* ===== Passada de UX: tokens, tipografia e componentes dos painéis ===== */
.geo-login,.geo-portal{--geo-accent-strong:#066a6e;--geo-surface:#f7faf9;--geo-line-strong:#cfdcde;--geo-muted:#5a717a;--geo-radius:8px}
.geo-portal :focus-visible,.geo-login :focus-visible{outline:2px solid var(--geo-accent);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.geo-portal *,.geo-login *{transition:none!important;animation:none!important}}
.geo-profile{font-size:11px;font-weight:600}
.geo-rail button span{font-size:10.5px}
.geo-topbar-city span{font-size:11px}
.geo-hint{font-size:12px}
.geo-map-hint{font-size:12px}
.geo-sec-title{font-size:11px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:var(--geo-muted);margin:20px 0 10px}
.geo-dock-body>section>.geo-sec-title:first-child,.geo-dock-body>.geo-sec-title:first-child{margin-top:0}
.geo-field-label{display:block;font-size:12px!important;font-weight:600;color:var(--geo-ink);margin:10px 0 5px!important}

/* botões e selos herdados do sistema antigo, unificados na paleta do Geo */
.geo-portal .geo-dock .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 12px;font-size:12.5px;font-weight:600;border-radius:var(--geo-radius);border:1px solid var(--geo-line-strong);background:#fff;color:var(--geo-ink);text-transform:none;letter-spacing:0;box-shadow:none;transition:background .15s,border-color .15s}
.geo-portal .geo-dock .btn:hover{background:#eef6f4;border-color:var(--geo-accent);color:var(--geo-accent-strong)}
.geo-portal .geo-dock .btn.bg-gradient-success,.geo-portal .geo-dock .btn.bg-gradient-primary,.geo-portal .geo-dock .btn.bg-gradient-info,.geo-portal .geo-dock .btn.geo-primary,.geo-search-row button{background:var(--geo-accent)!important;background-image:none!important;border-color:var(--geo-accent);color:#fff}
.geo-portal .geo-dock .btn.bg-gradient-success:hover,.geo-portal .geo-dock .btn.bg-gradient-primary:hover,.geo-portal .geo-dock .btn.bg-gradient-info:hover,.geo-portal .geo-dock .btn.geo-primary:hover{background:var(--geo-accent-strong)!important;color:#fff}
.geo-portal .geo-dock .btn-outline-danger{color:#a13a2e;border-color:#e4b9b3}
.geo-portal .geo-dock .btn-outline-danger:hover{background:#fdf1ef;border-color:#a13a2e;color:#a13a2e}
.geo-portal .geo-dock .badge{background:#edf3f3!important;background-image:none!important;color:var(--geo-muted)!important;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0;padding:4px 9px;border-radius:20px}
.geo-portal .geo-dock .form-control,.geo-portal .geo-dock .form-select{height:38px;font-size:13px;border:1px solid var(--geo-line-strong);border-radius:var(--geo-radius);color:var(--geo-ink)}
.geo-portal .geo-dock .form-control:focus,.geo-portal .geo-dock .form-select:focus{border-color:var(--geo-accent);box-shadow:0 0 0 3px #087e8326}
.geo-portal .geo-dock .form-control::placeholder{color:#8a9ca3}
.geo-portal .geo-dock .text-sm,.geo-portal .geo-dock .text-muted{font-size:12.5px!important}

/* cartões de relatório / SH3 */
.geo-portal .geo-dock .ajuste-map-report-card,.geo-portal .geo-dock .ajuste-map-sh3-card{border-radius:10px;padding:16px;background:#fff}
.geo-portal .geo-dock .ajuste-map-report-card>div:first-child strong,.geo-portal .geo-dock .ajuste-map-sh3-card>div:first-child strong{font-size:14px}
.geo-portal .geo-dock .ajuste-map-report-form,.geo-portal .geo-dock .ajuste-map-sh3-form{display:flex;flex-direction:column;gap:0}
.geo-portal .geo-dock .ajuste-map-report-form .btn,.geo-portal .geo-dock .ajuste-map-sh3-form .btn{margin-top:12px;width:100%}
.geo-portal .geo-dock .ajuste-map-report-result,.geo-portal .geo-dock .ajuste-map-sh3-result{margin-top:14px;padding-top:12px;border-top:1px dashed var(--geo-line)}

/* estado vazio / ficha do lote */
.geo-selected-card.is-empty{text-align:center;padding:30px 20px;background:var(--geo-surface);border-style:dashed}
.geo-selected-card.is-empty i{font-size:26px;color:var(--geo-accent);margin-bottom:10px;display:block}
.geo-selected-card.is-empty strong{font-size:14px;margin-bottom:6px}
.geo-selected-card.is-empty p{font-size:12.5px;color:var(--geo-muted);line-height:1.6;margin:0}
.geo-selected-card{font-size:13px}
.geo-selected-card dl{grid-template-columns:92px 1fr}
.geo-portal #ajuste-map-meta{display:none}
.geo-portal .geo-summary:empty{display:none}
.geo-portal .geo-summary{font-size:13px}
.geo-portal .geo-dock .ajuste-map-lote-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 16px}
.geo-portal .geo-dock .ajuste-map-lote-stat{border:1px solid var(--geo-line);border-radius:var(--geo-radius);background:#fff;padding:10px 12px}
.geo-portal .geo-dock .ajuste-map-lote-stat span{font-size:11.5px;color:var(--geo-muted)}
.geo-portal .geo-dock .ajuste-map-lote-stat strong{font-size:20px;color:var(--geo-ink);letter-spacing:-.4px}
.geo-portal .geo-dock #map-plantas-loteamento-open{width:100%;margin-bottom:10px}
.geo-portal .geo-dock .ajuste-map-iptu-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}

/* recolhível de vínculo + legenda compacta */
.geo-fold{border:1px solid var(--geo-line);border-radius:var(--geo-radius);background:var(--geo-surface);margin:2px 0 6px}
.geo-fold>summary{cursor:pointer;padding:12px 14px;font-size:13px;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center}
.geo-fold>summary::-webkit-details-marker{display:none}
.geo-fold>summary:after{content:"\f107";font-family:FontAwesome;color:var(--geo-muted);transition:transform .15s}
.geo-fold[open]>summary:after{transform:rotate(180deg)}
.geo-fold-body{padding:0 14px 14px;display:flex;flex-direction:column;gap:10px}
.geo-fold .ajuste-map-lote-legend{display:flex;flex-wrap:wrap;gap:6px 14px}
.geo-fold .ajuste-map-lote-legend-item{font-size:11.5px}
.geo-portal .geo-dock .ajuste-map-address{font-size:12.5px;color:var(--geo-muted)}
.geo-portal .geo-dock .ajuste-map-lote-editor-table table{font-size:12px}
.geo-portal .geo-dock .ajuste-map-lote-editor-table th{font-size:11px;text-transform:none;letter-spacing:0;color:var(--geo-muted)}

/* ações de edição e bases */
.geo-edit-actions button{background:#fff;font-size:13px;font-weight:600;padding:14px;border-radius:var(--geo-radius);transition:border-color .15s,background .15s}
.geo-edit-actions button:hover{background:#eef6f4;border-color:var(--geo-accent)}
.geo-layer-bases{display:grid;grid-template-columns:repeat(3,1fr)}
.geo-layer-bases button{font-size:12.5px;font-weight:600;padding:10px}
.geo-layer-bases button:hover{border-color:var(--geo-accent);background:#eef6f4}

/* ofertas de mercado */
.geo-market-row{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid #edf1f2;font-size:13px}
.geo-market-row i{width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0003;flex-shrink:0}
.geo-market-row span{flex:1}
.geo-market-row b{font-weight:700;color:var(--geo-ink)}
.geo-ghost{width:100%;margin-top:6px;padding:10px;border:1px solid var(--geo-line-strong);background:#fff;border-radius:var(--geo-radius);font:inherit;font-size:12.5px;font-weight:600;color:var(--geo-ink);cursor:pointer}
.geo-ghost:hover{border-color:var(--geo-accent);background:#eef6f4}

/* popup das ofertas */
.geo-portal .leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 10px 30px #17343e33}
.geo-pop{min-width:210px;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--geo-ink)}
.geo-pop-tipo{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--geo-muted)}
.geo-pop-tipo:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--c)}
.geo-pop h6{font-size:14px;line-height:1.35;margin:6px 0 10px;font-weight:600}
.geo-pop-price{display:flex;align-items:baseline;gap:6px;margin-bottom:10px}
.geo-pop-price strong{font-size:22px;letter-spacing:-.6px;color:var(--geo-accent-strong)}
.geo-pop-price span{font-size:12px;color:var(--geo-muted)}
.geo-pop dl{display:grid;grid-template-columns:60px 1fr;gap:5px;margin:0;font-size:12.5px}
.geo-pop dt{font-weight:400;color:var(--geo-muted)}
.geo-pop dd{margin:0;font-weight:600}
.geo-pop-warn{font-size:12px;color:#8a5a00;margin:10px 0 0}
.geo-pop-actions{display:flex;gap:8px;margin-top:14px}
.geo-pop-link,.geo-pop-edit{flex:1;text-align:center;padding:9px 10px;border-radius:6px;font-size:12.5px;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid var(--geo-line-strong);background:#fff;color:var(--geo-ink)}
.geo-pop-link{background:var(--geo-accent);border-color:var(--geo-accent);color:#fff}

/* login */
.geo-login-form .geo-pass{position:relative}
.geo-login-form .geo-pass input{padding-right:48px!important}
.geo-login-form .geo-pass button{position:absolute;right:4px;top:4px;width:41px;height:41px;margin:0;padding:0;justify-content:center;background:transparent;color:var(--geo-muted);border-radius:6px}
.geo-login-form button[type=submit][disabled]{opacity:.7;cursor:progress}
@media(max-width:700px){.geo-rail button span{font-size:9.5px;letter-spacing:-.2px}.geo-rail button{width:48px}}
.geo-portal .leaflet-container .geo-pop h6{color:var(--geo-ink)!important;font-size:14px;margin:6px 0 10px}
.geo-portal .leaflet-container .geo-pop a.geo-pop-link,.geo-portal .leaflet-container .geo-pop a.geo-pop-link:hover{color:#fff!important;text-decoration:none}
.geo-portal .leaflet-container .geo-pop .geo-pop-edit{color:var(--geo-ink)}

/* Selection-first workspace: compact map popup, contextual right dock. */
.geo-portal .geo-quick-search {
  position: fixed;
  top: 79px;
  left: 87px;
  width: 288px;
  height: 44px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0 14px;
  background: #fff;
  border: 1px solid var(--geo-line);
  border-radius: 8px;
  box-shadow: 0 4px 18px #17343e15;
  color: var(--geo-muted);
  font-size: 12px;
  z-index: 1100;
  cursor: pointer;
}
.geo-quick-search i {color: var(--geo-accent)}
.geo-quick-search kbd {margin-left: auto; background: #f1f5f4; color: #819298; font-size: 10px; border-radius: 3px; padding: 1px 5px}
.geo-search-open .geo-quick-search {visibility: hidden}
.geo-portal #ajuste-map-window .leaflet-top.leaflet-left {top: 132px}
.geo-portal.geo-search-open #ajuste-map-window .leaflet-top.leaflet-left {top: 79px}
.geo-portal:not(.geo-edit-mode) #ajuste-map-window .leaflet-top.leaflet-left .easy-button-container,
.geo-portal:not(.geo-edit-mode) #ajuste-map-window .ajuste-map-users-button,
.geo-portal:not(.geo-edit-mode) #ajuste-map-window .ajuste-map-heat-button:not(.ajuste-geo-editor-toggle) {display: none !important}
.geo-portal.geo-select-mode #ajuste-map-window .leaflet-interactive {cursor: pointer}
.geo-rail button[aria-pressed=true] {background: #e8f3f0; color: #087e83}
.geo-search-dock {width: 370px}
.geo-info-dock {width: 420px}
.geo-portal.geo-info-open #ajuste-map-window .leaflet-top.leaflet-right {right: 440px}
.geo-dock-heading {padding: 17px 18px}
#geo-panel-lot {display: block; margin-top: 7px; font-size: 11px; font-weight: 500; color: var(--geo-muted)}
.geo-record-tabs {display: flex; gap: 4px; padding: 9px 12px; background: #f7faf9; border-bottom: 1px solid var(--geo-line); flex-shrink: 0}
.geo-record-tabs button {flex: 1; border: 0; border-radius: 5px; padding: 9px 6px; color: var(--geo-muted); background: transparent; font-size: 11px; font-weight: 600; cursor: pointer}
.geo-record-tabs button[aria-pressed=true] {background: #fff; color: var(--geo-accent); box-shadow: 0 1px 5px #17343e12}
.geo-portal button:focus-visible,.geo-portal summary:focus-visible {outline: 2px solid var(--geo-accent); outline-offset: 3px}
.geo-portal button:disabled {cursor: default; opacity: .55}
#geo-search-type {width: 100%; height: 39px; border: 1px solid #d4dfe1; border-radius: 6px; color: var(--geo-ink); background: #fff; padding: 0 10px; font-size: 12px; margin-bottom: 11px}
.geo-search-status {font-size: 11px; line-height: 1.65; color: var(--geo-muted); margin: 15px 0}
.geo-search-result {padding: 14px; margin: 0 0 11px; border: 1px solid var(--geo-line); border-radius: 7px; background: #fff}
.geo-search-result strong {display: block; margin-top: 7px; color: var(--geo-ink); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere}
.geo-search-result p {font-size: 11px; line-height: 1.6; color: var(--geo-muted); margin: 6px 0}
.geo-search-result small {display: block; color: var(--geo-muted); font-size: 10px}
.geo-search-result button {margin-top: 12px; padding: 0; border: 0; background: none; color: var(--geo-accent); font-size: 11px; font-weight: 600; cursor: pointer}
.geo-empty-state {padding: 22px 5px; text-align: center; color: var(--geo-muted)}
.geo-empty-state > i {display: block; font-size: 24px; color: var(--geo-accent); margin: 8px 0 16px}
.geo-empty-state strong {font-size: 15px; color: var(--geo-ink)}
.geo-empty-state p {font-size: 12px; line-height: 1.8; margin: 9px 0 0}
.geo-selected-card {background: #f7faf9; margin-bottom: 14px; padding: 16px}
.geo-selected-card > strong {font-size: 16px; margin: 10px 0 14px; line-height: 1.55}
.geo-selected-card dl {grid-template-columns: 94px minmax(0, 1fr); font-size: 11px; gap: 9px}
.geo-record-actions {display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0 22px}
.geo-record-actions button,.geo-secondary-button {border: 1px solid var(--geo-line); background: #fff; color: var(--geo-accent); border-radius: 6px; font-size: 11px; font-weight: 600; padding: 11px; cursor: pointer}
.geo-record-actions button:first-child {background: var(--geo-accent); border-color: var(--geo-accent); color: #fff}
.geo-section {border-top: 1px solid var(--geo-line); padding: 14px 0}
.geo-section > summary {list-style-position: inside; font-size: 12px; font-weight: 600; color: var(--geo-ink); cursor: pointer}
.geo-section[open] > summary {margin-bottom: 15px}
.geo-section-title {font-size: 12px; margin: 23px 0 12px; color: var(--geo-ink)}
.geo-dock .ajuste-lote-ops-popup {width: 100%; min-width: 0; max-width: none; padding: 0; border: 0; background: transparent}
.geo-record-view .ajuste-popup-association-section,
.geo-record-view .map-popup-desassociate,
.geo-portal.geo-readonly .ajuste-popup-association-section {display: none !important}
.geo-dock .ajuste-map-lote-popup .ajuste-memorial-popup-actions {display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0}
.geo-dock .ajuste-popup-associated-row {min-width: 0}
.geo-dock .ajuste-map-lote-popup .ajuste-popup-search-row {display: flex; flex-wrap: wrap; gap: 6px}
.geo-dock .ajuste-map-lote-popup .ajuste-popup-search-row input {flex: 1 1 100%; width: 100%}
.geo-dock .ajuste-map-lote-popup .ajuste-popup-secondary-action span {display: inline}
.geo-dock .ajuste-map-lote-popup .ajuste-popup-secondary-action {width: auto; min-width: 0}
.geo-dock .ajuste-popup-validation-head {flex-wrap: wrap}
.geo-dock .ajuste-popup-validation-body {grid-template-columns: 1fr}
.geo-dock .ajuste-popup-stat-chips {flex-wrap: wrap}
.geo-portal #ajuste-map-window .geo-compact-popup .leaflet-popup-content-wrapper {border: 1px solid #e1e9e8; border-radius: 9px; box-shadow: 0 6px 24px #17343e26}
.geo-portal #ajuste-map-window .geo-compact-popup .leaflet-popup-content {width: 246px !important; max-width: calc(100vw - 65px); margin: 16px; font-family: inherit}
.geo-parcel-popup .geo-popup-kicker {display: block; font-size: 9px; letter-spacing: 1.5px; font-weight: 700; color: var(--geo-muted)}
.geo-parcel-popup > strong {display: block; margin: 7px 0 9px; font-size: 17px; letter-spacing: -.3px; color: var(--geo-ink)}
.geo-popup-status {display: inline-block; background: #f6f0e3; color: #8d671c; padding: 4px 6px; font-size: 10px; border-radius: 4px}
.geo-popup-status.is-associated {background: #edf5ed; color: #417b48}
.geo-parcel-popup p {font-size: 11px; line-height: 1.6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 10px 0; color: var(--geo-muted)}
.geo-popup-actions {display: flex; gap: 8px; margin-top: 14px}
.geo-popup-actions button {flex: 1; padding: 9px 7px; border: 1px solid var(--geo-line); border-radius: 5px; background: #fff; color: var(--geo-accent); font-family: inherit; font-size: 11px; font-weight: 600; cursor: pointer}
.geo-popup-actions button:first-child {background: var(--geo-accent); border-color: var(--geo-accent); color: #fff}
.geo-parcel-popup button:focus-visible {outline: 2px solid var(--geo-accent); outline-offset: 2px}
.geo-map-hint {display: flex; align-items: center; gap: 10px}
.geo-map-hint strong {font-size: 11px; color: var(--geo-accent)}
.geo-map-hint span {font-size: 11px}
.geo-selection-announcement {position: fixed; z-index: 1600; bottom: 25px; left: 90px; max-width: 420px; padding: 12px 15px; border: 1px solid #ead4a0; background: #fffbef; color: #765720; border-radius: 7px; font-size: 12px; box-shadow: 0 3px 14px #17343e12}
.geo-dock [data-geo-section=boletim] .col-md-2,.geo-dock [data-geo-section=boletim] .col-md-3,.geo-dock [data-geo-section=boletim] .col-md-4 {width: 50%}
.geo-dock [data-geo-section=boletim] .col-md-6 {width: 100%}
.geo-dock #ajuste-map-boletim-info {display: block; font-size: 11px; line-height: 1.6; margin-bottom: 17px}
.geo-dock #ajuste-map-boletim-body .form-label {font-size: 10px !important}
.geo-dock #ajuste-map-boletim-validacao {font-size: 11px; line-height: 1.7}
#geo-boletim-message {font-size: 11px; color: var(--geo-accent); margin: 12px 0; line-height: 1.7}
.geo-boletim-footer {display: flex; gap: 9px; justify-content: flex-end; position: sticky; bottom: -19px; padding: 14px 0; margin-top: 14px; background: #fff; border-top: 1px solid var(--geo-line); z-index: 1}
.geo-boletim-footer > button {border: 1px solid var(--geo-line); border-radius: 6px; padding: 10px; font-size: 11px; background: #fff; color: var(--geo-muted); cursor: pointer; margin: 0}
.geo-boletim-footer #ajuste-map-boletim-save {color: #fff; background: var(--geo-accent); border-color: var(--geo-accent)}
.geo-dock .map-boletim-calc-table-wrap {overflow: auto}
.geo-dock .map-boletim-calc-table {min-width: 480px}
.geo-dock .map-boletim-calc-head {display: block}
.geo-dock .map-boletim-calc-params {display: flex; flex-wrap: wrap; gap: 8px}
.geo-dock .ajuste-map-iptu-actions {display: flex; gap: 6px; flex-wrap: wrap; margin-top: 14px}
@media (max-width: 1000px) {
  .geo-info-dock {width: 355px}
  .geo-portal.geo-info-open #ajuste-map-window .leaflet-top.leaflet-right {right: 375px}
}
@media (max-width: 700px) {
  .geo-portal .geo-quick-search {left: 12px; top: 70px; height: 40px; width: min(280px, calc(100vw - 65px)); font-size: 11px}
  .geo-portal #ajuste-map-window .leaflet-top.leaflet-left,.geo-portal.geo-search-open #ajuste-map-window .leaflet-top.leaflet-left {top: 118px; left: 0}
  .geo-portal.geo-info-open #ajuste-map-window .leaflet-top.leaflet-right {right: 0}
  .geo-info-dock,.geo-search-dock {width: auto; left: 12px; right: 12px}
  .geo-rail button {width: 39px; min-width: 0}
  .geo-rail button span {font-size: 7px}
  .geo-map-hint {max-width: calc(100vw - 24px); gap: 6px; padding: 8px}
  .geo-map-hint strong,.geo-map-hint span {font-size: 9px}
  .geo-selection-announcement {left: 12px; right: 12px; bottom: 80px; max-width: none}
  .geo-boletim-footer {bottom: -15px}
}
.geo-portal:not(.geo-edit-mode) #ajuste-map-window .ajuste-geo-editor-control,
.geo-portal:not(.geo-edit-mode) #ajuste-map-window .ajuste-geo-editor-tools {display: none !important}
@media (max-width: 700px) {
  .geo-rail button {width: 42px}
  .geo-rail button span {font-size: 8.5px}
}
.geo-dock .ajuste-popup-prefeitura-info-card {position: static; inset: auto; width: 100%; max-width: none; margin: 10px 0; box-shadow: none}
.geo-dock .ajuste-popup-prefeitura-info-card.is-open {display: block}

/* GIS controls live in the same right-hand editing workspace. */
.geo-geometry-workspace {padding-bottom: 8px}
.geo-editor-heading {display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px}
.geo-editor-heading h3 {font-size: 15px; line-height: 1.5; font-weight: 600; margin: 0; color: var(--geo-ink)}
#geo-editor-state {flex-shrink: 0; padding: 4px 7px; border-radius: 4px; background: #f1f5f4; font-size: 9px; color: var(--geo-muted); margin-top: 3px}
#geo-editor-state.is-active {background: #e5f3ec; color: #21714e}
#geo-editor-start button {width: 100%; background: var(--geo-accent); border: 1px solid var(--geo-accent); border-radius: 6px; padding: 12px; color: #fff; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer}
#geo-geometry-workspace .ajuste-geo-editor-control,
#geo-geometry-workspace .ajuste-geo-editor-tools,
#geo-geometry-workspace .ajuste-geo-editor-info,
#geo-geometry-workspace .ajuste-geo-editor-measure {position: static; float: none; width: 100%; max-width: none; height: auto; margin: 0 !important; box-shadow: none; background: transparent; border-radius: 0; padding: 0; color: var(--geo-ink)}
#geo-geometry-workspace .ajuste-geo-editor-header {margin-bottom: 12px}
#geo-geometry-workspace .ajuste-geo-editor-title {font-size: 11px; font-weight: 600; color: var(--geo-muted)}
#geo-geometry-workspace .ajuste-geo-editor-toggle {width: auto !important; min-width: 0; min-height: 32px; height: auto; padding: 7px 9px !important; border: 1px solid var(--geo-line); border-radius: 5px; background: #fff !important; color: var(--geo-muted) !important; display: flex; gap: 7px; font-size: 10px; cursor: pointer}
#geo-geometry-workspace .ajuste-geo-editor-radios {display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 6px; margin-bottom: 14px}
#geo-geometry-workspace .ajuste-geo-editor-radios label {gap: 5px; min-height: 37px; padding: 6px 4px; background: #fff; border-color: var(--geo-line); color: var(--geo-muted); font-size: 11px; font-weight: 600}
#geo-geometry-workspace .ajuste-geo-editor-radios label:has(input:checked) {background: #e9f5f1; color: var(--geo-accent); border-color: #a4d1c6}
#geo-geometry-workspace .ajuste-geo-editor-radios input {accent-color: var(--geo-accent)}
.geo-editor-selection {padding: 12px; border: 1px solid var(--geo-line); border-radius: 6px; background: #f7faf9; margin: 4px 0 10px}
.geo-editor-selection > span {display: block; font-size: 9px; letter-spacing: .8px; text-transform: uppercase; color: var(--geo-muted); margin-bottom: 6px}
.geo-editor-selection > strong {font-size: 12px; line-height: 1.6; font-weight: 600; color: var(--geo-ink); overflow-wrap: anywhere}
#geo-geometry-workspace .ajuste-geo-editor-info {font-size: 11px; line-height: 1.7; color: var(--geo-muted); margin: 0 0 16px !important}
#geo-geometry-workspace .ajuste-geo-editor-info > strong {display: none}
#geo-geometry-workspace .ajuste-geo-editor-tools {display: flex; flex-direction: column; gap: 17px}
.geo-editor-group {border: 0; padding: 0; margin: 0; min-width: 0}
.geo-editor-group > legend {float: none; width: auto; padding: 0; margin-bottom: 9px; font-size: 11px; font-weight: 600; color: var(--geo-ink)}
.geo-editor-button-grid {display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px}
#geo-geometry-workspace .ajuste-geo-editor-tools button {width: 100% !important; min-width: 0; height: auto; min-height: 39px; padding: 9px 8px; border: 1px solid var(--geo-line); border-radius: 5px; background: #fff; color: var(--geo-ink); font-size: 10.5px; line-height: 1.5; font-weight: 500; box-shadow: none; display: flex; justify-content: flex-start; align-items: center; gap: 7px; text-align: left; cursor: pointer}
#geo-geometry-workspace .ajuste-geo-editor-tools button i {width: 14px; flex-shrink: 0; text-align: center; font-size: 12px; color: var(--geo-accent)}
#geo-geometry-workspace .ajuste-geo-editor-tools button:hover:enabled {background: #f1f8f5; border-color: #a4d1c6}
#geo-geometry-workspace .ajuste-geo-editor-tools button.is-active {background: #e7f4ee; border-color: #a4d1c6; color: #136a57; font-weight: 600}
#geo-geometry-workspace .ajuste-geo-editor-tools button:disabled {opacity: .4; cursor: default}
#geo-geometry-workspace .geo-editor-save-actions {position: sticky; bottom: -19px; padding: 12px 0; background: #fff; border-top: 1px solid var(--geo-line); margin-top: 3px; z-index: 2}
#geo-geometry-workspace .geo-editor-save-actions > legend {display: none}
#geo-geometry-workspace [data-geo-editor-action=save] {background: var(--geo-accent); border-color: var(--geo-accent); color: #fff; justify-content: center; font-weight: 600}
#geo-geometry-workspace [data-geo-editor-action=save] i {color: #fff}
#geo-geometry-workspace [data-geo-editor-action=delete] {color: #a3483a; justify-content: center; border-color: #e7c9c3}
#geo-geometry-workspace [data-geo-editor-action=delete] i {color: #a3483a}
#geo-geometry-workspace .ajuste-geo-editor-measure.is-open {display: block; background: #f1f8f5; padding: 14px; margin: 8px 0 16px !important; border: 1px solid #a4d1c6; border-radius: 6px}
#geo-geometry-workspace .ajuste-geo-editor-measure label {display: block; margin-top: 12px}
#geo-geometry-workspace .ajuste-geo-editor-measure input {margin: 0 0 5px; font-size: 13px; background: #fff}
#geo-geometry-workspace .ajuste-geo-editor-measure small {display: block; font-size: 10px; color: var(--geo-muted)}
#geo-geometry-workspace .geo-editor-measure-error {color: #a3483a; font-size: 11px; margin-top: 8px; margin-bottom: 0}
#geo-geometry-workspace .ajuste-geo-editor-measure-actions button {font-size: 11px; cursor: pointer}
.geo-other-editor-tools .geo-edit-actions {margin-top: 13px}
.geo-has-active-editor {position: relative}
.geo-has-active-editor:after {position: absolute; content: ''; width: 6px; height: 6px; top: 6px; right: 9px; border-radius: 50%; background: #168456}
.geo-portal.geo-geometry-editing #ajuste-map-window .leaflet-top .easy-button-container,
.geo-portal.geo-geometry-editing #ajuste-map-window .ajuste-map-heat-button {display: none !important}
@media (max-width: 700px) {
  #geo-geometry-workspace .geo-editor-save-actions {bottom: -15px}
  .geo-editor-heading h3 {font-size: 14px}
  #geo-editor-state {font-size: 8px}
}
@media (max-width: 700px) {
  .geo-portal.geo-geometry-editing .geo-info-dock:has([data-geo-section=edit]:not([hidden])) {top: auto; max-height: min(52dvh, 440px)}
  .geo-portal.geo-geometry-editing #geo-info-dock .geo-dock-heading {padding: 11px 14px}
  .geo-portal.geo-geometry-editing #geo-info-dock .geo-record-tabs {padding: 5px 9px}
}
.geo-portal.geo-geometry-editing #geo-map-hint {display: none !important}
#geo-geometry-workspace .ajuste-geo-editor-tools {display: contents}
#geo-geometry-workspace .geo-editor-group {margin: 17px 0}
#geo-geometry-workspace .geo-editor-save-actions {margin: 3px 0 0}
