/* MapaLeads 2.1 — correções de navegação e tratamento de estados vazios.
   Mantém o layout desktop do tema principal e aprimora o uso com toque. */
:root{color-scheme:light}
.mobile-map-header{display:none}
.search-this-area{
  position:absolute;left:50%;top:22px;transform:translateX(-50%);
  z-index:470;display:flex;align-items:center;justify-content:center;gap:9px;
  background:#2563eb;color:#fff;border:1px solid #175ad4;border-radius:24px;
  box-shadow:0 6px 22px #1b4eb944;font-size:12px;font-weight:750;
  padding:11px 18px;white-space:nowrap;max-width:calc(100% - 40px);
}
.search-this-area svg{width:17px;height:17px}
.search-this-area:hover{background:#1d4ed8}
.error-actions{display:flex;gap:7px;align-items:center;margin-top:10px;flex-wrap:wrap}
.error-actions button{background:#fff;border:1px solid #f0c7c3;color:#9b3834;
  padding:9px 12px;border-radius:8px;font-size:12px;font-weight:750}
.error-actions button:last-child{border-color:#bbd4fc;color:#1d57bc;background:#eff6ff}
.search-status.show{background:#f2f7ff;border:1px solid #dceafa;border-radius:9px;
  padding:10px 12px;font-size:11.5px;line-height:1.55;overflow-wrap:anywhere;color:#445a73}
.search-status.show.error{background:#fff5f4;border-color:#f3d5d2;color:#a13a35}
.search-panel.compact-search .search-status{max-height:none;overflow:visible}
.section-heading{margin-bottom:15px}
.section-heading h1{font-size:17px}
.small-tag{font-size:10px}
.sidebar .sidebar-scroll{overscroll-behavior:contain}
.place-card{cursor:pointer;min-height:93px}
.place-card:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}
.map-headline{font-size:11px}
/* Corrige botão flutuante de busca em telas mais estreitas */
@media (min-width:721px) and (max-width:1220px){
  .search-this-area{top:auto;bottom:28px}
  .map-bottom-hint{display:none}
}
@media(max-width:720px){
  html,body{height:100%;overflow:hidden}
  .app-shell{height:calc(100dvh - 66px - env(safe-area-inset-bottom,0px));min-height:0}
  .mobile-tabs{height:calc(66px + env(safe-area-inset-bottom,0px));
    padding:5px 9px env(safe-area-inset-bottom,0px);align-items:stretch;gap:7px}
  .mobile-tab{flex-direction:row;gap:8px;font-size:12px;border-radius:12px;
    background:#fff;color:#64748b;line-height:1.2}
  .mobile-tab.active{color:#1d5ed2;background:#edf4ff}
  .mobile-tab svg{height:19px;width:19px;flex:0 0 auto}
  .map-headline{display:none}
  .map-topbar{display:none}
  .mobile-map-header{position:absolute;display:flex;align-items:center;gap:10px;
    left:12px;right:12px;top:calc(12px + env(safe-area-inset-top,0px));z-index:480}
  .mobile-search-trigger{display:flex;align-items:center;gap:10px;min-width:0;flex:1;
    border:1px solid #e5ebf3;background:#fff;color:#475569;padding:0 15px;
    border-radius:14px;min-height:48px;box-shadow:0 5px 23px #17294327;
    font-size:13px;font-weight:650;text-align:left}
  .mobile-search-trigger span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
  .mobile-search-trigger svg{height:20px;width:20px;color:#2563eb;flex:0 0 auto}
  .mobile-map-header .map-tool{width:48px;height:48px;border-radius:14px;flex:0 0 auto}
  .map-tools{top:calc(78px + env(safe-area-inset-top,0px));right:12px;gap:8px}
  .map-tools .map-tool{width:42px;height:42px;border-radius:12px}
  .map-bottom-hint{display:none}
  .search-this-area{top:auto;bottom:101px;transform:translateX(-50%);
    font-size:13px;padding:12px 20px;min-height:45px;border-radius:28px}
  .mobile-map-list{bottom:18px;transform:translateX(-50%);
    background:#fff;color:#1d4ed8;border:1px solid #dbeafe;
    font-size:12px;border-radius:28px;box-shadow:0 5px 20px #17294335;
    padding:12px 19px}
  .mobile-map-list span{background:#e9f1fe;color:#1d4ed8}
  .leaflet-control-attribution{max-width:78%;font-size:8px!important}
  .leaflet-bottom{bottom:0}
  .mobile-list .sidebar{display:flex;position:absolute;inset:0;width:100%;height:100%;
    min-width:0;flex:1;border:0;box-shadow:none;z-index:850}
  .mobile-list .sidebar-scroll{height:auto;flex:1;overflow-y:auto;overscroll-behavior:contain}
  .mobile-list .brandbar{min-height:61px;padding:9px 17px;gap:10px;flex:0 0 auto}
  .brand-mark{width:35px;height:35px;border-radius:11px}
  .brand-mark svg{width:20px;height:20px}
  .brand-copy strong{font-size:19px}
  .brand-copy small{font-size:10px}
  .mobile-list .search-panel{padding:16px 17px 17px}
  .section-heading{margin-bottom:14px}
  .section-heading h1{font-size:17px}
  .field-label{font-size:12px;margin-bottom:7px}
  .input-line{min-height:46px;height:46px}
  .input-line input{font-size:14px}
  .select{height:44px;font-size:13px}
  .source-choice{margin-top:14px}
  .source-options label{font-size:12px}
  .search-panel .primary-button{min-height:47px;margin-top:16px;font-size:14px}
  .mobile-list .search-panel.compact-search{padding:13px 17px}
  .search-panel.compact-search .section-heading{display:none}
  .collapsed-summary{padding-top:0;gap:8px;line-height:1.4}
  .collapsed-summary span{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .collapsed-summary button{padding:10px 12px;flex:0 0 auto;font-size:12px}
  .search-status.show{font-size:12px;padding:11px 12px;margin-top:10px}
  .mobile-list .results-toolbar{padding:17px 17px 13px}
  .results-toolbar h2{font-size:19px}
  .toolbar-actions{gap:6px}
  .small-icon-button{width:39px;height:39px}
  .mobile-list .result-tabs{padding:0 12px;gap:0;justify-content:space-between}
  .result-tabs .tab{flex:0 1 auto;font-size:11.5px;padding:13px 9px;white-space:nowrap}
  .mobile-list .result-controls{padding:14px 16px 9px}
  .input-line.compact{height:43px}
  .input-line.compact input{font-size:13px}
  .filters-row select{height:42px;font-size:12px;padding:0 8px}
  .list-feedback{padding:8px 17px 12px;font-size:11px}
  .place-card{padding:16px 17px;gap:12px;min-height:100px}
  .place-title{font-size:14px}
  .place-type,.place-address{font-size:12px}
  .place-avatar{height:42px;width:42px;flex-basis:42px;font-size:16px}
  .mini-pill{font-size:10px;padding:4px 6px}
  .empty-list{padding:38px 24px}
  .empty-list strong{font-size:15px}
  .empty-list p{font-size:13px}
  .sidebar-footer{display:none}
  .details.open{position:absolute;inset:0;width:100%;height:100%;z-index:1450}
  .details-inner{width:100%;max-width:100%;padding-bottom:10px}
  .detail-title{font-size:22px}
  .detail-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-dialog{max-height:calc(100dvh - 28px);border-radius:16px}
  .settings-dialog form{max-height:calc(100dvh - 28px)}
  .toast{bottom:calc(80px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:360px){
  .mobile-tab{font-size:11px;gap:5px}
  .mobile-tab svg{width:17px}
  .result-tabs .tab{font-size:10.5px;padding:12px 6px}
  .mobile-search-trigger{font-size:12px}
}
