*{box-sizing:border-box}body{margin:0;font:14px Arial,sans-serif;color:#364651}header{height:80px;background:#028dcf;display:flex;align-items:center;justify-content:space-between;padding:0 28px;color:white}header small{display:block;font-size:10px;letter-spacing:2px;margin-bottom:5px}header strong{font-size:24px}nav{display:flex;gap:10px;align-items:center}a{color:inherit}button,.btn{font:inherit;cursor:pointer;display:inline-block;border:1px solid #ccd6db;background:white;padding:10px 13px;border-radius:5px;color:#36586a;text-decoration:none}button:hover,.btn:hover{filter:brightness(.96)}.primary{background:#008fc5;color:white;border-color:#008fc5}main{position:relative;height:calc(100dvh - 80px)}#map{height:100%;background:#edf1ed}aside{position:absolute;z-index:800;right:55px;top:30px;bottom:55px;width:355px;overflow:auto;background:#fffffff5;border-radius:5px;padding:22px;box-shadow:0 2px 18px #0003}h2{font-size:19px;color:#308eaf;margin:0 0 16px}p{line-height:1.6;color:#627782}aside>.btn,aside>button{width:100%;margin:4px 0;text-align:center}.layer{padding:13px 10px;background:#f4f7f8;border:1px solid #d9e1e5;border-radius:5px;margin:10px 0}.layer .row{display:flex;align-items:center;gap:8px}.layer span{flex:1;overflow-wrap:anywhere}.layer button{padding:4px 7px;font-size:12px}.layer input[type=range]{width:100%;margin-top:12px}.note{font-size:12px;background:#eef6fa;padding:12px;margin-top:20px;line-height:1.6}details{margin-top:22px;font-size:13px}summary{cursor:pointer}#coords,#status{position:absolute;bottom:12px;z-index:800;background:#ffffffe8;padding:7px 12px;border-radius:4px;font-size:12px}#coords{left:12px}#status{right:12px;max-width:65%}dialog{border:0;border-radius:8px;width:min(480px,95vw);padding:28px;box-shadow:0 10px 80px #0004}dialog::backdrop{background:#1238}dialog label{display:block;margin:14px 0 6px}dialog input,dialog select{width:100%;padding:10px;border:1px solid #bacbd3;border-radius:4px}footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}#error{color:#b3261e}.leaflet-popup-content{max-height:240px;overflow:auto}.leaflet-popup-content td{padding:5px;border-bottom:1px solid #ddd;overflow-wrap:anywhere} @media(max-width:760px){header{height:110px;padding:12px;display:block}header strong{font-size:19px}nav{margin-top:10px;gap:6px}nav button,nav .btn,nav a{font-size:11px;padding:6px}main{height:calc(100dvh - 110px)}aside{right:10px;top:65px;width:265px;max-height:50%;padding:15px}#status{bottom:32px;max-width:90%}}
.city-flag{width:80px;height:52px;object-fit:contain;margin-right:16px}header>div{margin-right:auto}.geo-toolbar{position:absolute;z-index:900;right:12px;top:90px;background:#3c505f;border-radius:20px;padding:7px 3px;display:flex;flex-direction:column;gap:1px}.geo-toolbar button{border:0;background:transparent;color:white;width:31px;height:30px;padding:5px;border-radius:8px;display:grid;place-items:center}.geo-toolbar button.active{color:#24ce76;background:#ffffff14}.geo-toolbar svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2}.geo-toolbar.collapsed button:not(:first-child){display:none}.compass{position:absolute;z-index:800;right:9px;top:10px;width:53px;text-align:center;color:#58666d;pointer-events:none}.compass b{display:block;font-size:44px;font-weight:normal;line-height:42px}.geo-panel{position:absolute;z-index:850;right:55px;top:90px;width:355px;max-height:calc(100% - 140px);overflow:auto;background:white;padding:22px;border-radius:5px;box-shadow:0 2px 18px #0003}.geo-panel[hidden],aside[hidden]{display:none}.panel-close{position:absolute;right:9px;top:9px;border:0;background:none;padding:4px;font-size:24px;color:#888}.geo-panel h2{padding-right:20px}.geo-panel input:not([type=checkbox]),.geo-panel select{padding:8px;border:1px solid #bcc8cf;border-radius:4px;max-width:100%}.geo-panel .coord-row{display:flex;gap:6px;margin:7px 0 18px}.coord-row input{width:40%;min-width:0}.coord-row button{padding:6px;font-size:12px}.geo-panel label{line-height:1.8}.tool-actions{display:flex;gap:6px;margin:12px 0;flex-wrap:wrap}.legend-swatch{display:inline-block;width:20px;height:12px;margin-right:9px;border:2px solid #008dc6;background:#008dc630}.legend-item{margin:14px 0}.legend-item img{max-width:100%;display:block;margin-top:8px}.search-box{position:absolute;z-index:850;left:60px;top:9px;width:340px;max-width:calc(100% - 125px)}.search-form{display:flex;gap:4px}.search-form input{min-width:0;flex:1;border:1px solid #abb9c0;border-radius:4px;padding:10px;background:white}.search-form button{background:#318dcc;color:white;border:0}.search-results{background:white;max-height:270px;overflow:auto;box-shadow:0 4px 14px #0002}.search-results button{display:block;border:0;border-bottom:1px solid #eee;border-radius:0;width:100%;text-align:left}.layer-tabs{display:flex;margin:12px 0}.layer-tabs button.selected{background:#318dcc;color:white}.category{margin:4px 0}.category>summary{background:#318dcc;color:white;padding:10px;border-radius:4px;list-style:none}.category>summary::before{content:'⌄ ';}.category-empty{font-size:12px;padding:10px;color:#6a7880}.category select{max-width:100%;margin-top:8px;padding:5px}.grid-label{background:#ffffffe0;border:0;font-size:10px;color:#667}.measure-label{background:white;padding:4px;border:1px solid #aaa;border-radius:4px;white-space:nowrap}.map-tool-active{cursor:crosshair!important}@media(max-width:760px){header .city-flag{position:absolute;right:10px;top:12px;width:50px;height:30px}header{padding-right:12px}.geo-panel{width:calc(100% - 76px);right:53px;top:65px;max-height:calc(100% - 115px)}aside{right:53px;width:calc(100% - 76px);top:65px;max-height:calc(100% - 115px)}.geo-toolbar{right:7px;top:70px}.compass{right:3px;top:6px}.search-box{left:48px;width:calc(100% - 110px)}nav a{display:none}}
.compass{width:80px;height:80px;right:3px;top:3px}.compass svg{width:100%;height:100%;filter:drop-shadow(0 0 2px white)}.distance-label{width:max-content!important;height:auto!important;background:#818181;color:white;font:11px Arial;padding:2px 4px;white-space:nowrap;transform:translate(-50%,-50%);border:0}.distance-total{background:#555;font-size:15px;padding:4px 7px}.drawing-tip{background:#318dcc;color:white;border:0;border-radius:0;box-shadow:none;font:12px Arial}.drawing-tip::before{display:none}@media(max-width:760px){.compass{width:60px;height:60px;right:0;top:5px}}
.graticule-edge{background:none;border:0;color:#171717;font:10px Arial,sans-serif;white-space:nowrap;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff,0 0 3px white;pointer-events:none}.graticule-lat{text-align:right}.graticule-lon{text-align:center}.leaflet-control-scale{margin-bottom:23px!important}#coords{bottom:35px}#status{bottom:35px}
.basemap-control{background:white;padding:7px 9px;border-radius:4px;box-shadow:0 1px 5px #0004;margin-top:12px!important}.basemap-control label{font:12px Arial;color:#405564}.basemap-control select{border:0;background:white;color:#36586a;font:13px Arial;padding:3px;max-width:135px}
/* Usar o ponteiro padrão do sistema no mapa e nas feições. */
#map,#map.map-tool-active,#map.leaflet-grab,#map.leaflet-dragging,#map .leaflet-interactive,#map .leaflet-marker-icon{cursor:default!important}#map .leaflet-control button,#map .leaflet-control a,#map .leaflet-control select{cursor:pointer!important}
/* Painéis compactos, com foco no mapa. */
aside,.geo-panel{width:300px;padding:20px;right:55px;top:90px;border-radius:5px;box-shadow:0 2px 14px #0002;bottom:auto;max-height:calc(100% - 125px)}aside h2,.geo-panel h2{font-size:19px;font-weight:500;margin:0 0 20px;color:#318dcc}.geo-panel p,aside>p{font-size:14px;line-height:1.55;margin:10px 0 18px}.geo-panel .panel-close,aside .panel-close{font-size:27px;right:12px;top:12px;font-weight:300}.geo-panel:has(#measure-result) p:not(#measure-result):not(:first-of-type){display:none}.geo-panel:has(#measure-result)>select{background:#318dcc;color:white;border:0;min-width:125px;padding:9px 12px;border-radius:4px;margin:8px 0 15px}.geo-panel:has(#measure-result) .tool-actions{margin:12px 0 28px}.geo-panel:has(#measure-result) .tool-actions button{padding:6px 9px;font-size:12px;border-color:#dce2e6}.geo-panel:has(#measure-result)>label{display:flex;align-items:center;gap:5px;font-size:13px;white-space:nowrap}.geo-panel:has(#measure-result)>label input{order:2}.geo-panel #measure-result{font-size:16px;color:#425462;margin:4px 0}.geo-panel .coord-row{gap:4px;margin-bottom:10px}.geo-panel .coord-row input{font-size:11px;padding:7px 4px}.geo-panel .coord-row button{font-size:11px;padding:5px}.geo-panel:has(.coord-row)>p:last-child{display:none}.geo-panel:has(.coord-row)>div>p{font-size:12px;margin:12px 0 6px}.layer-tabs{margin-bottom:4px}.category{margin:2px 0}.category>summary{padding:8px 10px;font-size:13px}.category-empty{font-size:11px}.layer{padding:9px;margin:6px 0}.layer select{font-size:11px;width:100%}aside>.note{display:none}aside>p{font-size:12px;margin-top:-8px;margin-bottom:12px}aside>.btn,aside>button{padding:8px;font-size:12px}aside details:not(.category){font-size:12px}.area-total{font:16px Arial;background:#555;color:white;padding:4px 7px;white-space:nowrap;width:max-content!important;border:0}.geo-panel .legend-item{margin:10px 0}.geo-panel .legend-item p{font-size:12px;margin:8px 0}@media(max-width:760px){aside,.geo-panel{width:calc(100% - 75px);max-width:300px;top:70px;max-height:calc(100% - 110px);padding:17px}}
.search-box{width:420px;max-width:calc(100% - 135px)}.search-form button{padding:9px 10px}.search-form button:disabled{opacity:.6;cursor:wait}.search-results>p{font-size:12px;padding:8px 12px;margin:0;color:#667}.search-attribution{display:block;padding:8px 12px;font-size:10px;color:#667}
.ecw-import{width:calc(100% - 16px);margin:8px;padding:9px;color:#318dcc;border:1px dashed #83b8db;background:#f5fbff}.ecw-note{font-size:12px;line-height:1.5;color:#627782}
.ecw-browse{margin-top:8px;background:#318dcc;color:white;border:0;width:100%}.ecw-browse:disabled{opacity:.65}#ecw-path{font-size:12px;background:#f5f7f8;color:#53646d}
#map .measurement-handle{background:white;border:3px solid #318dcc;border-radius:50%;box-shadow:0 1px 4px #0005;cursor:move!important;pointer-events:auto}#map .measurement-editable{cursor:pointer!important}
#map .measurement-handle-selected{background:#ffb347;border-color:#e06b00;box-shadow:0 0 0 4px #ffb34766,0 1px 4px #0005;z-index:2000!important}
.street-name-label{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;color:#26343b;font:12px Arial;pointer-events:none}.street-name-label::before{display:none}.street-name-text{display:inline-block;white-space:nowrap;transform-origin:center;text-shadow:-1px -1px 0 white,1px -1px 0 white,-1px 1px 0 white,1px 1px 0 white,0 0 3px white}.geo-panel #street-name{width:100%;margin-top:6px}#street-count{font-size:12px}
.geo-toolbar button[hidden]{display:none!important}#admin-access{font-size:12px}
[hidden]{display:none!important}
.view-menu{position:absolute;z-index:950;right:55px;top:180px;width:230px;padding:18px;background:white;border-radius:5px;box-shadow:0 2px 16px #0003}.view-menu h2{font-size:17px;font-weight:500;margin:0 24px 18px 0;color:#318dcc}.view-menu .panel-close{top:8px;right:8px}.view-choice{display:block;width:100%;padding:12px;text-align:left;margin-top:8px;border:1px solid #dce3e7;background:white}.view-choice strong{display:block;font-weight:500}.view-choice small{display:block;font-size:11px;color:#788891;margin-top:4px}.view-choice.selected{border-color:#318dcc;background:#edf7fe;color:#1b80b7}.view-choice.selected strong::after{content:' ✓';float:right}@media(max-width:760px){.view-menu{right:50px;top:135px;width:220px}}
.street-view-open{width:100%;text-align:center;margin:8px 0 15px}.street-view-note{font-size:11px;color:#71818b;line-height:1.5;display:block}#street-view-location{font-size:12px}
.feature-color-row{display:flex!important;align-items:center;gap:9px;font-size:12px;margin:13px 0}.feature-color-row input[type=color]{padding:2px!important;width:38px;height:28px;margin-left:auto;cursor:pointer}.color-line-symbol{font-size:23px}.water-unit-marker{background:none;border:0}.water-unit-marker svg{width:100%;height:100%;filter:drop-shadow(0 1px 2px #0004)}.municipal-name-label{font-weight:500}.labels-distant .distance-label,.labels-distant .area-total,.labels-distant .measure-label{display:none!important}.distance-label{font-size:calc(11px * var(--map-label-scale,1))}.distance-total,.area-total{font-size:calc(16px * var(--map-label-scale,1))}.municipal-input{width:100%;margin:6px 0 12px}.municipal-tools{display:flex;gap:6px;flex-wrap:wrap}.municipal-hint{font-size:11px!important;color:#71818b}
.equipment-marker{background:none;border:0}.equipment-marker svg{width:100%;height:100%;filter:drop-shadow(0 1px 2px #0005)}.equipment-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:8px 0 12px}.equipment-picker button{padding:5px;border:1px solid #dce4e9;border-radius:5px;background:#f8fafb}.equipment-picker button svg{width:30px;height:30px;display:block;margin:auto}.equipment-picker button[aria-pressed=true]{border:2px solid #318dcc;padding:4px;background:#e5f3ff}
.feature-edit-action{display:block;margin-top:10px;padding:7px 12px}.feature-delete-confirm{margin-top:14px;padding:10px;border:1px solid #c66;border-radius:4px}.feature-delete-confirm button{margin:5px}.geo-panel>button:not(.panel-close){margin:5px 4px 5px 0;padding:8px}.geo-panel .municipal-input{max-width:100%}
.admin-recover-link{display:block;margin-top:12px;border:0;background:none;color:#1679aa;text-decoration:underline;cursor:pointer}#account-recovery-code{font-family:monospace;font-size:14px}
/* Nomes acompanham o traçado e se repetem ao longo das ruas visíveis. */
.road-name-overlay{position:absolute;left:0;top:0;z-index:550;pointer-events:none;overflow:hidden}.road-name-text{font-family:Arial,sans-serif;fill:#26343b;stroke:white;stroke-width:3px;stroke-linejoin:round;paint-order:stroke fill;pointer-events:none}
