main{max-width:1560px}.workspace{grid-template-columns:290px minmax(0,1fr)}.batch-launch{padding-top:18px;margin-top:20px;border-top:1px solid var(--line)}.batch-launch h3{font-size:15px;margin:0 0 8px}.batch-launch button{width:100%;margin-top:10px}.batch-bar{background:white;border:1px solid var(--line);border-radius:10px;margin-bottom:22px;padding:20px}.batch-bar h2{font-size:18px;margin:0 0 8px}.batch-bar .controls{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.progress{height:9px;background:#dfe8e5;border-radius:10px;overflow:hidden;margin:13px 0}.progress span{display:block;height:100%;background:var(--green);transition:width .3s}.status-line{display:flex;justify-content:space-between;gap:20px;font-size:13px}.batch-log{font-size:12px;max-height:250px;overflow:auto;margin-top:12px}.batch-log p{padding:7px;margin:0;border-bottom:1px solid var(--line)}.batch-log b{margin-right:8px}.filter-panel{background:white;border:1px solid var(--line);border-radius:10px;padding:17px;margin-bottom:16px}.filter-panel>summary{font-size:15px;color:var(--ink)}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 13px}.filter-grid label{margin-top:13px}.filter-grid .wide{grid-column:span 2}.filter-grid input,.filter-grid select{min-width:0;width:100%}.filter-grid select[multiple]{height:116px}.check-options{display:flex;gap:15px;flex-wrap:wrap;margin-top:15px}.check-options label{display:flex;align-items:center;gap:7px;margin:0;font-size:12px;font-weight:500}.check-options input{accent-color:var(--green);width:16px;height:16px}.filter-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:15px 0}.metric{background:var(--light);border-radius:8px;padding:13px}.metric small{display:block;font-size:11px;color:var(--muted)}.metric strong{display:block;font-size:21px;font-variant-numeric:tabular-nums}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:8px;max-height:650px}table.data-table{border-collapse:collapse;min-width:100%;font-size:12px}table.data-table th{position:sticky;top:0;z-index:1;background:#eaf0f3;color:var(--ink);font-weight:650;text-align:left;padding:11px 12px;white-space:nowrap;border-bottom:1px solid #bfcdd5}table.data-table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top;min-width:100px;max-width:280px;overflow-wrap:anywhere}table.data-table td.number{text-align:right;white-space:nowrap;min-width:85px;font-variant-numeric:tabular-nums}table.data-table td.description{min-width:230px}table.data-table tr:hover td{background:#f7faf9}table.data-table td strong{color:var(--green);font-size:14px}.table-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;font-size:12px;color:var(--muted)}.pager{display:flex;gap:8px;align-items:center}.pager button{min-width:32px}.column-options{display:flex;gap:10px 15px;flex-wrap:wrap;padding-top:14px}.column-options label{margin:0;display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500}.good{color:#126052}.bad{color:#9b3434}.pill{background:var(--light);color:var(--green);padding:3px 7px;border-radius:12px;display:inline-block;font-size:11px}.pill.error{color:#9b3434;background:#fbeeee}dialog.import-dialog{border:1px solid var(--line);border-radius:14px;color:var(--ink);width:min(1420px,calc(100vw - 32px));max-height:92vh;padding:0;box-shadow:0 20px 70px #1b344733}dialog::backdrop{background:#142e3a66}.modal-head{padding:22px 26px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:start;gap:20px}.modal-head h2{font-size:23px;margin:0;letter-spacing:-.5px}.modal-head p{font-size:13px;margin:5px 0 0;color:var(--muted)}.modal-body{padding:20px 26px}.modal-close{font-size:23px;border:0;background:transparent;color:var(--muted);padding:0 5px}.mapping{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 14px}.mapping label{margin-top:12px}.review-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:22px 0 12px;flex-wrap:wrap}.review-toolbar h3{font-size:17px;margin:0}.review-toolbar input{max-width:320px}.review-table{max-height:330px}.review-table input:not([type=checkbox]),.review-table select{width:100%;min-width:110px;border:1px solid #c6d2d8;border-radius:4px;font:12px/1.5 inherit;padding:6px;color:var(--ink)}.review-table input.description-input{min-width:260px}.review-table td{padding:6px!important}.review-table td.row-index{min-width:45px!important}.modal-footer{padding:17px 26px;background:#f5f8fa;border-top:1px solid var(--line);position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:3}.modal-footer label{margin:0;font-size:13px;font-weight:500;display:flex;gap:10px;align-items:start}.modal-footer .primary{margin:0;width:auto;white-space:nowrap}.review-warnings{color:#805b10;background:#fff5d7;padding:10px 13px;border-radius:6px;font-size:12px;margin-top:13px}.review-settings{background:var(--light);padding:15px;margin-top:16px;border-radius:8px}.review-settings .row{grid-template-columns:1fr 1fr 1fr;gap:15px}.review-settings p{margin:8px 0 0}.review-empty{padding:25px;text-align:center;color:var(--muted)}.negative{color:#9b3434}.positive{color:#126052}.status-line .secondary{margin:0}.inline-buttons{display:flex;gap:7px;flex-wrap:wrap}.visually-hidden{position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:1150px){.filter-grid,.mapping{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace{grid-template-columns:270px minmax(0,1fr)}}@media(max-width:850px){.workspace{grid-template-columns:1fr}.filter-grid,.mapping{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-footer{display:block}.modal-footer .primary{margin-top:12px;width:100%}.modal-body,.modal-head{padding:16px}.review-settings .row{grid-template-columns:1fr}.table-meta{flex-wrap:wrap}}@media(max-width:480px){.filter-grid,.mapping{grid-template-columns:1fr}.filter-grid .wide{grid-column:auto}.check-options{display:grid}.modal-head h2{font-size:20px}}
.mode-tabs{display:flex;gap:4px;background:#eaf0f3;padding:4px;border-radius:9px;margin-bottom:18px}.mode-tabs button{flex:1;border:0;border-radius:6px;padding:10px 8px;background:transparent;color:var(--ink);font-weight:650;font-size:13px}.mode-tabs button.active{background:var(--green);color:white}.location-card{border:1px solid #cde0da;background:#f3f8f6;border-radius:9px;padding:13px;margin-bottom:16px}.location-card h3{font-size:13px;margin:0 0 7px}.location-card .hint{margin:5px 0}.location-card .secondary{margin-top:8px!important}.location-card .small-link{font-size:12px;text-align:left}.common-radius{margin:0 0 16px}.common-radius label{margin-top:0}#batch-pane{border:1px dashed #9ebeb3;border-radius:9px;padding:17px;background:#f5faf8}#batch-pane h3{font-size:16px;margin:0 0 8px}#batch-pane.dragging{background:#dcefe7}#batch-pane .primary{margin-top:16px}.mobile-toggle{display:none}.map-dialog{width:min(980px,calc(100vw - 24px))!important}.city-fields{display:grid;grid-template-columns:1fr 2fr auto;gap:12px;align-items:end}.city-fields label{margin-top:0}#location-map{height:420px;border-radius:8px;background:#e4ece9;margin-top:14px;isolation:isolate}.map-pin{background:transparent;border:0}.map-pin span{display:block;width:27px;height:27px;background:#14695f;border:3px solid white;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 6px #0005}.map-pin span:after{content:'';display:block;width:7px;height:7px;background:white;border-radius:50%;margin:7px}.results-top{flex-wrap:wrap}.actions{flex-wrap:wrap}dialog button:disabled{cursor:not-allowed}.leaflet-container{font-family:inherit}.import-dialog .notice{margin-top:0}@media(max-width:850px){main{padding:20px 14px}.intro{margin-bottom:20px}.intro h1{font-size:30px}.intro .small-link{font-size:12px}.panel{padding:16px}.panel h2{font-size:17px;margin-bottom:14px}.mode-tabs{margin-bottom:13px}.location-card .secondary{width:auto!important;min-height:42px;padding:8px 12px}.location-card .small-link{display:inline-block;margin-left:8px}.location-card .hint{font-size:12px}.mobile-toggle{display:block;width:100%;margin-top:12px;background:#eaf0f3;border:0;min-height:44px}.mobile-collapsed #search-form,.mobile-collapsed #batch-pane,.mobile-collapsed .location-card,.mobile-collapsed .common-radius{display:none!important}.mobile-collapsed .mode-tabs{margin-bottom:0}.filter-panel{padding:14px}.filter-panel>summary{padding:5px 0}.filter-grid select[multiple]{height:120px}.results-top h2{font-size:19px}.actions{gap:6px}.actions .field,.actions .secondary{min-height:42px}.modal-footer{position:static}.review-table{max-height:45vh}.modal-head h2{font-size:21px}.city-fields{grid-template-columns:1fr 1fr}.city-fields button{grid-column:span 2;min-height:43px}#location-map{height:350px}#pin-label{display:block;font-size:12px}.table-meta .pager{width:100%;justify-content:space-between}button,select{touch-action:manipulation}.job-controls .secondary{min-height:44px}}@media(prefers-reduced-motion:reduce){.progress span{transition:none}}
@media(max-width:680px){header{padding:12px 14px;min-height:52px}.brand{font-size:16px;gap:8px}.mark{height:28px;width:28px;font-size:17px}.brand>span:last-child{display:none}.local{font-size:10px}main{padding:14px 10px}.intro{margin-bottom:14px}.intro h1{font-size:25px;letter-spacing:-.8px;margin-bottom:5px}.intro p{font-size:12px;line-height:1.4}.intro .small-link{margin-top:4px;font-size:11px;padding:4px 0}.workspace{gap:15px}.panel{padding:12px;border-radius:9px}.panel>h2{display:none}.mode-tabs{margin-bottom:10px}.mode-tabs button{padding:8px;min-height:40px;font-size:12px}.location-card{padding:9px 10px;margin-bottom:10px;display:flex;align-items:center;gap:5px 8px;flex-wrap:wrap}.location-card h3{display:none}.location-card #location-hint{flex:1 0 100%;font-size:12px;font-weight:650;margin:0}.location-card #geolocate{width:auto!important;padding:7px 9px;font-size:11px;margin-top:3px!important;min-height:36px}.location-card #choose-place{font-size:11px;margin-left:0;padding:6px 0;min-height:36px}.location-card #geo-status{font-size:10px;line-height:1.3;flex:1 0 100%;margin:1px 0}.common-radius{margin-bottom:10px;gap:10px}.common-radius label{font-size:11px;margin-bottom:4px}.field{padding:9px 10px;min-height:42px;font-size:13px}.common-radius .field{min-height:40px}#search-form{display:grid;grid-template-columns:110px minmax(0,1fr);gap:5px 10px}#search-form>label[for=type]{grid-column:1;grid-row:1;margin:0;font-size:11px}#type{grid-column:1;grid-row:2;width:100%;padding-left:7px;font-size:11px}#text-search,#fuel-search{grid-column:2;grid-row:1/span 2;min-width:0}#text-search label,#fuel-search label{margin:0 0 5px;font-size:11px}#term-hint{display:none}#search-form>.hint{grid-column:1/-1;margin:3px 0;font-size:10px}#search-form>.filters{grid-column:1/-1;margin-top:4px;padding-top:9px}#search-form>.filters>summary{font-size:11px}#submit{grid-column:1/-1;margin-top:6px;padding:10px;min-height:43px;font-size:13px}.mobile-toggle{min-height:36px;font-size:11px;margin-top:9px;padding:7px}.results-top{gap:8px;margin-bottom:9px}.results-top h2{font-size:17px}.actions{width:100%;display:grid;grid-template-columns:1fr auto;gap:7px}.actions .list-filter{max-width:none;font-size:12px;min-height:38px}.actions .secondary{font-size:11px;padding:7px 10px;min-height:38px}.filter-panel{padding:10px 12px;margin-bottom:10px}.filter-panel>summary{font-size:12px;padding:3px 0}.filter-grid{gap:0 9px;grid-template-columns:1fr 1fr}.filter-grid .wide{grid-column:1/-1}.filter-grid label{font-size:11px;margin:10px 0 5px}.filter-grid .field{font-size:12px;min-height:38px}.filter-grid select[multiple]{height:100px}.check-options{gap:9px}.check-options label{font-size:11px}.notice{padding:9px 11px;font-size:11px;margin-bottom:10px}.metrics{gap:7px;margin:8px 0}.metric{padding:9px 11px}.metric small{font-size:10px}.metric strong{font-size:18px}.table-meta{font-size:10px;gap:7px;margin:9px 0}.table-meta .pager{gap:5px}.table-meta .pager button{padding:6px 10px;font-size:10px;min-height:34px}.table-wrap{max-height:65vh;border-radius:6px}table.data-table{font-size:11px}table.data-table th{padding:9px 10px;font-size:10px}table.data-table td{padding:10px;max-width:200px;min-width:110px}table.data-table td.description{min-width:175px;max-width:200px}table.data-table td.number{min-width:85px}table.data-table td strong{font-size:13px}.results>.hint,#results>.hint{font-size:10px;line-height:1.5}.batch-bar{padding:13px;margin-bottom:12px}.batch-bar h2{font-size:15px}.status-line{font-size:11px;gap:7px}.batch-bar .controls{gap:6px}.batch-bar .secondary{font-size:11px;padding:8px 9px}.raw{padding:11px 13px;margin-top:14px}.raw summary{font-size:11px}footer{margin-top:18px;padding-top:12px;font-size:10px}.empty{min-height:210px;padding:24px}.empty-icon{width:44px;height:44px;margin-bottom:13px}.empty h3{font-size:18px}.empty p{font-size:12px}.modal-head h2{font-size:19px}.modal-head p{font-size:11px}.mapping{grid-template-columns:1fr 1fr;gap:0 9px}.mapping label{font-size:11px}.mapping .field{font-size:11px}.modal-body,.modal-head{padding:12px}.modal-footer{padding:12px}.modal-footer label{font-size:11px}.modal-footer .primary{font-size:12px;min-height:44px}.review-toolbar h3{font-size:15px}.review-toolbar input{font-size:11px}.review-table input:not([type=checkbox]),.review-table select{font-size:11px;padding:6px}.review-settings{padding:11px}.review-settings .row{grid-template-columns:1fr}.review-settings label{margin-top:9px;font-size:11px}.review-settings .hint{font-size:10px}.city-fields{gap:9px}.city-fields label{font-size:11px}#location-map{height:310px}.map-dialog .modal-footer .primary{margin-top:10px}.column-options{gap:9px}.column-options label{font-size:11px}}
.quick-search{display:flex;gap:9px;align-items:center;margin-bottom:12px}.quick-search input{flex:1;min-width:0;font:inherit;font-size:14px;padding:11px 14px;border:1px solid #b9cdc6;border-radius:8px;background:white;color:var(--ink)}.quick-search button{min-height:44px}.result-controls{background:var(--bg)}.filter-panel{scroll-margin-top:155px}@media(max-width:680px){header{position:sticky;top:0;z-index:50;box-shadow:0 2px 8px #1b344712}.result-controls{position:sticky;top:51px;z-index:35;background:var(--bg);padding:8px 0 1px;box-shadow:0 6px 12px #1b34470d}.result-controls .results-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:center;margin-bottom:7px}.result-controls .results-top h2{font-size:12px;white-space:nowrap}.result-controls .actions{display:flex;width:auto;justify-content:flex-end;min-width:0}.result-controls #sort{min-width:0;max-width:165px;min-height:34px;font-size:10px;padding:5px}.result-controls #download{font-size:0;min-height:34px;padding:6px 8px}.result-controls #download:after{content:'JSON';font-size:10px}.quick-search{gap:7px;margin-bottom:8px}.quick-search input{padding:10px;font-size:12px;min-height:41px}.quick-search button{font-size:11px;padding:8px 10px;min-height:41px}.table-wrap{max-height:65vh}.filter-panel{scroll-margin-top:151px}.result-controls+.filter-panel{margin-top:0}.result-controls #results-heading{max-width:135px;white-space:normal}.mobile-collapsed .mode-tabs{display:none}.mobile-collapsed .mobile-toggle{margin:0}}

/* Janela de importação: uma única rolagem vertical, sem prender o gesto na tabela. */
body:has(dialog[open]){overflow:hidden}
dialog.import-dialog[open]{display:flex;flex-direction:column;overflow:hidden;height:min(900px,calc(100dvh - 24px));max-height:calc(100dvh - 24px)}
dialog.import-dialog>.modal-head{flex:0 0 auto;position:relative}
dialog.import-dialog>.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
dialog.import-dialog>.modal-footer{flex:0 0 auto;position:relative;bottom:auto;z-index:3}
@media(max-width:680px){
 dialog.import-dialog[open]{inset:0;margin:0;width:100%!important;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:0}
 dialog.import-dialog>.modal-head{padding:12px 14px}
 dialog.import-dialog>.modal-body{padding:12px 14px 22px;overflow-y:auto;overflow-x:hidden}
 dialog.import-dialog>.modal-footer{padding:10px 14px max(10px,env(safe-area-inset-bottom));box-shadow:0 -3px 12px #1b344712;background:#f5f8fa}
 dialog.import-dialog>.modal-footer label{font-size:11px;line-height:1.4}
 dialog.import-dialog>.modal-footer .primary{margin-top:9px;padding:10px;min-height:42px}
 dialog.import-dialog .review-table{max-height:none!important;overflow-x:auto}
 dialog.import-dialog .table-wrap{max-height:none}
 dialog.import-dialog .review-table td.description{min-width:200px}
 dialog.import-dialog .review-toolbar{margin-top:15px;gap:9px}
 dialog.import-dialog .modal-body .review-settings{margin-bottom:8px}
 .modal-close{min-width:40px;min-height:40px}
}

/* Área segura para a barra de gestos e os recortes dos celulares. */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-bottom:calc(24px + var(--safe-bottom))}
main{padding-bottom:calc(28px + var(--safe-bottom))}
@media(max-width:680px){
 header{padding-top:calc(12px + var(--safe-top));min-height:calc(52px + var(--safe-top))}
 .result-controls{top:calc(51px + var(--safe-top))}
 dialog.import-dialog>.modal-head{padding-top:calc(12px + var(--safe-top))}
 dialog.import-dialog>.modal-footer{padding-bottom:calc(16px + var(--safe-bottom));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
 dialog.import-dialog>.modal-body{scroll-padding-bottom:24px}
 footer{padding-bottom:12px}
}

.auth-dialog{width:min(390px,calc(100vw - 28px));border:1px solid #dce5e9;border-radius:14px;padding:28px;color:var(--ink);background:white;max-height:calc(100dvh - 24px);overflow:auto}.auth-dialog h2{font-size:23px;margin:14px 0 7px;letter-spacing:-.5px}.auth-dialog p{font-size:13px;color:var(--muted)}.auth-dialog label{display:block;margin:16px 0 6px}.auth-mark{background:var(--green);color:white;width:38px;height:38px;display:grid;place-items:center;border-radius:9px;font-size:22px}.auth-dialog #auth-error{color:#9b3434}.logout-button{border:1px solid #ffffff88;border-radius:6px;padding:5px 12px;background:transparent;color:white;font:inherit;font-size:12px;cursor:pointer}@media(max-width:680px){.auth-dialog{padding:22px 20px calc(22px + env(safe-area-inset-bottom,0px))}.logout-button{font-size:11px;padding:5px 9px}}
