/* ============================================================
   InstalaTrack Professional UI 2026
   Camada visual compartilhada. Não altera lógica PHP/JS.
   ============================================================ */
:root{
  --itk-primary:#2563eb;
  --itk-primary-strong:#1d4ed8;
  --itk-primary-soft:#eff6ff;
  --itk-accent:#06b6d4;
  --itk-success:#16a34a;
  --itk-warning:#d97706;
  --itk-danger:#dc2626;
  --itk-ink:#0f172a;
  --itk-text:#334155;
  --itk-muted:#64748b;
  --itk-line:#e2e8f0;
  --itk-line-soft:#edf2f7;
  --itk-bg:#f6f8fc;
  --itk-card:#ffffff;
  --itk-navy:#0b1739;
  --itk-navy-2:#11234c;
  --itk-radius-sm:12px;
  --itk-radius:18px;
  --itk-radius-lg:26px;
  --itk-shadow-sm:0 6px 20px rgba(15,23,42,.06);
  --itk-shadow:0 16px 45px rgba(15,23,42,.09);
  --itk-shadow-lg:0 24px 70px rgba(15,23,42,.14);
}

html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;color:var(--itk-text)}

/* Base */
a{transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}
button,.btn{transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease!important}
button:active,.btn:active{transform:translateY(1px)}
::selection{background:#bfdbfe;color:#0f172a}

/* Bootstrap controls */
.form-control,.form-select{
  border:1px solid #d8e0ec!important;
  border-radius:14px!important;
  min-height:44px;
  color:var(--itk-ink)!important;
  background-color:#fff!important;
  box-shadow:0 1px 2px rgba(15,23,42,.02)!important;
}
.form-control:hover,.form-select:hover{border-color:#c3cede!important}
.form-control:focus,.form-select:focus{
  border-color:#60a5fa!important;
  box-shadow:0 0 0 4px rgba(37,99,235,.11)!important;
}
.form-label{font-weight:750!important;color:#334155!important;letter-spacing:-.01em}
.form-text,.input-hint,.form-hint{color:#718096!important}

.btn{border-radius:12px!important;font-weight:750!important;letter-spacing:-.01em}
.btn-primary{
  background:linear-gradient(135deg,var(--itk-primary),var(--itk-primary-strong))!important;
  border-color:var(--itk-primary)!important;
  box-shadow:0 8px 18px rgba(37,99,235,.18)!important;
}
.btn-primary:hover{box-shadow:0 12px 25px rgba(37,99,235,.24)!important;transform:translateY(-1px)}
.btn-outline-primary{border-color:#bfdbfe!important;color:#1d4ed8!important;background:#fff!important}
.btn-outline-primary:hover{background:#eff6ff!important;border-color:#93c5fd!important;color:#1e40af!important}
.btn-outline-secondary{border-color:#d9e1ec!important;color:#475569!important;background:#fff!important}
.btn-outline-secondary:hover{background:#f8fafc!important;border-color:#cbd5e1!important;color:#0f172a!important}
.btn-danger{background:#dc2626!important;border-color:#dc2626!important}

.alert{border:0!important;border-radius:15px!important;font-weight:650;box-shadow:var(--itk-shadow-sm)}
.alert-danger{background:#fef2f2!important;color:#991b1b!important}
.alert-success{background:#f0fdf4!important;color:#166534!important}
.alert-warning{background:#fffbeb!important;color:#92400e!important}
.alert-info{background:#eff6ff!important;color:#1e40af!important}

/* Modal */
.modal-content{border:1px solid rgba(226,232,240,.8)!important;border-radius:24px!important;box-shadow:var(--itk-shadow-lg)!important;overflow:hidden}
.modal-header{background:linear-gradient(180deg,#fff,#fbfdff);border-bottom:1px solid var(--itk-line-soft)!important}
.modal-title{color:var(--itk-ink)!important;font-weight:850!important;letter-spacing:-.025em}
.modal-footer{border-top:1px solid var(--itk-line-soft)!important;background:#fbfcfe}
.modal-backdrop.show{opacity:.48!important}

/* Global admin chrome */
.topbar-wrap{padding:14px 18px 0!important;background:transparent!important}
.topbar-wrap .topbar,
nav.topbar.navbar,
header.topbar:not(.app-shell .topbar){
  background:linear-gradient(135deg,var(--itk-navy) 0%,var(--itk-navy-2) 70%,#17326a 100%)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  border-radius:20px!important;
  box-shadow:0 14px 35px rgba(11,23,57,.18)!important;
}
.brand-logo,.brand-logo-box{
  background:rgba(255,255,255,.1)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;
}
.brand-title{font-weight:850!important;letter-spacing:-.025em!important}
.brand-subtitle{color:#b8c7e5!important}
.topbar-nav .nav-link,.topbar .nav-link{
  border-radius:11px!important;
  color:#dce7fb!important;
  font-weight:700!important;
}
.topbar-nav .nav-link:hover,.topbar .nav-link:hover{background:rgba(255,255,255,.09)!important;color:#fff!important}
.topbar-nav .nav-link.active,.topbar .nav-link.active{background:#fff!important;color:#17315f!important;box-shadow:0 6px 16px rgba(0,0,0,.12)!important}
.mobile-nav-box{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.09)!important;border-radius:14px!important;padding:8px!important}

.page-shell{max-width:1600px!important;margin:0 auto!important;padding:18px 20px 32px!important}
.hero-card{
  background:linear-gradient(135deg,#ffffff 0%,#fbfdff 60%,#f2f7ff 100%)!important;
  border:1px solid #e3eaf4!important;
  border-radius:24px!important;
  box-shadow:var(--itk-shadow-sm)!important;
  position:relative;
  overflow:hidden;
}
.hero-card:after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;right:-65px;top:-85px;background:radial-gradient(circle,rgba(37,99,235,.12),transparent 68%);pointer-events:none}
.hero-title{font-weight:900!important;letter-spacing:-.035em!important;color:var(--itk-ink)!important}
.hero-subtitle{color:var(--itk-muted)!important;max-width:820px}

.stat-card,.stats-card,.panel-card,.feature-card,.user-card{
  border:1px solid #e4eaf2!important;
  border-radius:20px!important;
  box-shadow:var(--itk-shadow-sm)!important;
  background:#fff!important;
}
.stats-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.stats-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,23,42,.09)!important;border-color:#d7e2f0!important}
.stats-label{color:#718096!important;font-size:.7rem!important;letter-spacing:.1em!important}
.stats-value{color:var(--itk-ink)!important;font-weight:900!important;letter-spacing:-.04em!important}
.stats-icon{border-radius:14px!important;box-shadow:none!important}
.icon-total{background:#eff6ff!important;color:#2563eb!important}
.icon-active{background:#f0fdf4!important;color:#16a34a!important}
.icon-inactive{background:#fef2f2!important;color:#dc2626!important}
.icon-featured{background:#fff7ed!important;color:#ea580c!important}

.filters-bar,.filter-form{
  background:#fff!important;
  border:1px solid #e4eaf2!important;
  border-radius:18px!important;
  box-shadow:0 5px 18px rgba(15,23,42,.04)!important;
  padding:12px!important;
}
.panel-card{overflow:hidden}
.table-header,.panel-header{background:linear-gradient(180deg,#fff,#fcfdff)!important;border-bottom:1px solid #edf1f6!important}
.table-title,.panel-title{font-weight:850!important;color:var(--itk-ink)!important;letter-spacing:-.025em!important}
.table-subtitle,.panel-subtitle{color:#718096!important}
.table{--bs-table-bg:transparent!important}
.table thead th,
.dataTable thead th{
  background:#f8fafc!important;
  border-color:#e8edf4!important;
  color:#64748b!important;
  text-transform:uppercase!important;
  letter-spacing:.075em!important;
  font-size:.69rem!important;
  font-weight:850!important;
}
.table tbody td,.dataTable tbody td{border-color:#edf1f5!important;color:#475569!important}
.table tbody tr{transition:background .15s ease}
.table tbody tr:hover{background:#f8fbff!important}

.badge,.status-badge,.badge-soft{border-radius:999px!important;font-weight:800!important;letter-spacing:.01em}
.dropdown-menu{border:1px solid #e5ebf3!important;border-radius:16px!important;box-shadow:var(--itk-shadow)!important;padding:7px!important}
.dropdown-item{border-radius:10px!important;color:#475569!important;font-weight:650!important}
.dropdown-item:hover{background:#f2f7ff!important;color:#1d4ed8!important}

/* DataTables */
.dataTables_wrapper .dataTables_length select,.dataTables_wrapper .dataTables_filter input{border:1px solid #dce3ed!important;border-radius:10px!important;background:#fff!important}
.dataTables_wrapper .dataTables_paginate .paginate_button{border:0!important;border-radius:10px!important;margin:0 2px!important}
.dataTables_wrapper .dataTables_paginate .paginate_button.current{background:#eff6ff!important;color:#1d4ed8!important;border:1px solid #bfdbfe!important}

/* Public map: more polished floating navigation */
.app-shell .topbar{
  background:linear-gradient(135deg,rgba(8,21,50,.97) 0%,rgba(16,38,80,.97) 75%,rgba(23,55,112,.96) 100%)!important;
  border:1px solid rgba(255,255,255,.1)!important;
  border-radius:22px!important;
  box-shadow:0 18px 48px rgba(8,21,50,.22)!important;
  backdrop-filter:blur(16px);
}
.app-shell .brand-copy h1{font-weight:900!important;letter-spacing:-.035em!important}
.app-shell .brand-copy p{color:#b9c7df!important}
.app-shell .brand-logo-box{border-radius:14px!important;padding:5px!important;background:rgba(255,255,255,.08)!important}
.app-shell .menu-trigger,.app-shell .top-btn{
  border:1px solid rgba(255,255,255,.1)!important;
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
  border-radius:13px!important;
  font-weight:760!important;
  box-shadow:none!important;
}
.app-shell .menu-trigger:hover,.app-shell .top-btn:hover{background:rgba(255,255,255,.14)!important;border-color:rgba(255,255,255,.18)!important;transform:translateY(-1px)}
.app-shell .menu-dropdown{
  border:1px solid #e3e9f2!important;
  border-radius:17px!important;
  box-shadow:0 18px 45px rgba(15,23,42,.16)!important;
  overflow:hidden;
}
.app-shell .menu-dropdown-title{color:#7a879b!important;letter-spacing:.1em!important}
.app-shell .menu-dropdown a,.app-shell .menu-dropdown button{border-radius:10px!important}
.app-shell .legend-box{
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(226,232,240,.85)!important;
  border-radius:16px!important;
  box-shadow:0 12px 30px rgba(15,23,42,.10)!important;
  backdrop-filter:blur(10px);
}
.app-shell .legend-item{font-weight:720!important;color:#334155!important}
.app-shell .toast-status{border-radius:14px!important;box-shadow:0 14px 35px rgba(15,23,42,.17)!important;font-weight:750!important}
.search-panel,.cadastro-panel,.return-route-card,.popup-card-itk,.popup-card-premium{
  border:1px solid #e2e8f0!important;
  box-shadow:0 24px 70px rgba(15,23,42,.16)!important;
}
.search-panel,.cadastro-panel{border-radius:24px!important}
.search-head h2,.cadastro-head h2{font-weight:900!important;letter-spacing:-.035em!important;color:var(--itk-ink)!important}
.eyebrow{color:#2563eb!important;letter-spacing:.13em!important;font-weight:900!important}
.results-list>*{border-color:#e6ebf2!important}

/* Leaflet chrome */
.leaflet-control-zoom{border:0!important;box-shadow:0 10px 24px rgba(15,23,42,.13)!important}
.leaflet-control-zoom a{border:0!important;color:#0f172a!important;font-weight:700!important}
.leaflet-control-zoom-in{border-radius:13px 13px 0 0!important}
.leaflet-control-zoom-out{border-radius:0 0 13px 13px!important}
.leaflet-popup-content-wrapper{border-radius:20px!important;box-shadow:0 18px 48px rgba(15,23,42,.18)!important;border:1px solid #e4eaf2!important}
.leaflet-popup-tip{box-shadow:none!important}

/* Auth / registration pages: common polish */
.card-login,.login-card,.auth-card,.form-panel,.form-card,.main-card{
  border:1px solid #e1e8f2!important;
  border-radius:26px!important;
  box-shadow:0 24px 70px rgba(15,23,42,.12)!important;
}
.login-header,.form-top,.form-header{border-bottom-color:#edf1f6!important}
.login-header h1,.login-header h2,.form-top h1,.form-top h2,.form-header h1,.form-header h2{font-weight:900!important;letter-spacing:-.04em!important}
.login-body,.form-body{background:#fff}

/* Installer pages */
.geo-card{border:1px solid #dce7f4!important;background:linear-gradient(180deg,#fbfdff,#f5f9ff)!important;border-radius:20px!important}
.section-title{color:#5f6f86!important;letter-spacing:.12em!important;font-weight:900!important}
.coord-pill,.info-pill{border-color:#dbe5f1!important;box-shadow:0 2px 7px rgba(15,23,42,.025)!important}

/* Public/login backgrounds when pages use simple body */
body[style*="background:#f4f7fb"], body[style*="background: #f4f7fb"]{background:radial-gradient(circle at 12% 8%,#e8f2ff 0,transparent 32%),radial-gradient(circle at 92% 92%,#ecfeff 0,transparent 30%),#f6f8fc!important}

/* Scrollbars */
*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:#94a3b8;background-clip:padding-box}

/* Responsive */
@media(max-width:991.98px){
  .topbar-wrap{padding:10px 10px 0!important}
  .page-shell{padding:14px 12px 26px!important}
  .topbar-wrap .topbar,nav.topbar.navbar,header.topbar:not(.app-shell .topbar){border-radius:17px!important}
  .hero-card{border-radius:20px!important}
}
@media(max-width:767.98px){
  .page-shell{padding-left:10px!important;padding-right:10px!important}
  .hero-card{padding:17px 15px!important}
  .hero-title{font-size:1.35rem!important}
  .filters-bar,.filter-form{border-radius:16px!important;padding:10px!important}
  .stat-card,.stats-card,.panel-card,.user-card{border-radius:17px!important}
  .modal-content{border-radius:20px!important}
  .app-shell .topbar{border-radius:18px!important}
  .app-shell .menu-dropdown{border-radius:14px!important}
}
@media(max-width:575.98px){
  .btn{min-height:42px}
  .form-control,.form-select{min-height:46px}
  .card-login,.login-card,.auth-card,.form-panel,.form-card,.main-card{border-radius:22px!important}
}

/* ============================================================
   InstalaTrack UI V2 — nova arquitetura visual
   Desktop: navegação lateral / Mobile: header compacto + drawer
   ============================================================ */
@media (min-width: 992px){
  /* MAPA PÚBLICO */
  .app-shell .topbar{
    position:fixed!important;
    left:18px!important;
    top:18px!important;
    right:auto!important;
    bottom:18px!important;
    width:268px!important;
    height:auto!important;
    padding:18px 14px!important;
    border-radius:26px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:20px!important;
    background:linear-gradient(180deg,rgba(8,18,43,.98),rgba(12,28,62,.97))!important;
    box-shadow:0 24px 70px rgba(2,6,23,.28)!important;
    z-index:1200!important;
    overflow:visible!important;
  }
  .app-shell .brand-wrap{
    flex:0 0 auto!important;
    width:100%!important;
    max-width:none!important;
    padding:2px 4px 18px!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
    gap:11px!important;
  }
  .app-shell .brand-logo-box{
    width:52px!important;min-width:52px!important;height:52px!important;
    border-radius:16px!important;
    background:rgba(255,255,255,.10)!important;
  }
  .app-shell .brand-logo-box img{max-height:44px!important;max-width:44px!important}
  .app-shell .brand-copy h1{font-size:1.08rem!important}
  .app-shell .brand-copy p{font-size:.72rem!important;white-space:normal!important;line-height:1.35!important}
  .app-shell .menu-toggle{display:none!important}
  .app-shell .top-menu{
    display:flex!important;
    flex:1 1 auto!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    width:100%!important;
    gap:7px!important;
  }
  .app-shell .menu-group{width:100%!important;position:relative!important}
  .app-shell .menu-trigger,
  .app-shell .top-btn{
    width:100%!important;
    min-height:48px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    padding:0 14px!important;
    border:1px solid transparent!important;
    background:transparent!important;
    border-radius:14px!important;
    text-decoration:none!important;
    font-size:.87rem!important;
    color:#d9e5f7!important;
  }
  .app-shell .menu-trigger:before,
  .app-shell .top-btn:before{
    font-family:"bootstrap-icons"!important;
    width:27px!important;
    font-size:1rem!important;
    color:#8fb7ff!important;
    flex:0 0 27px!important;
  }
  .app-shell .menu-trigger{justify-content:flex-start!important;gap:8px!important}
  .app-shell .menu-trigger .menu-caret{margin-left:auto!important;color:#6f87ab!important}
  .app-shell .top-btn{justify-content:flex-start!important;gap:8px!important}
  .app-shell .menu-trigger:hover,
  .app-shell .top-btn:hover,
  .app-shell .menu-group.open>.menu-trigger{
    background:rgba(59,130,246,.14)!important;
    border-color:rgba(96,165,250,.18)!important;
    color:#fff!important;
  }
  .app-shell .menu-dropdown{
    position:absolute!important;
    left:calc(100% + 13px)!important;
    top:0!important;
    right:auto!important;
    min-width:260px!important;
    border-radius:18px!important;
    padding:9px!important;
    background:rgba(255,255,255,.98)!important;
    backdrop-filter:blur(18px)!important;
    box-shadow:0 22px 60px rgba(2,6,23,.23)!important;
  }
  .app-shell .legend-box{
    position:fixed!important;
    top:20px!important;
    right:18px!important;
    left:auto!important;
    bottom:auto!important;
    display:flex!important;
    gap:7px!important;
    padding:7px!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.90)!important;
    box-shadow:0 14px 34px rgba(15,23,42,.12)!important;
    backdrop-filter:blur(14px)!important;
  }
  .app-shell .legend-item{
    padding:8px 11px!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    font-size:.76rem!important;
  }
  .app-shell .toast-status{
    left:302px!important;
    bottom:20px!important;
    border-radius:16px!important;
    padding:12px 16px!important;
    background:rgba(8,18,43,.94)!important;
    backdrop-filter:blur(12px)!important;
    box-shadow:0 16px 38px rgba(2,6,23,.22)!important;
  }
  .app-shell .leaflet-left{left:286px!important}
  .app-shell .leaflet-top{top:12px!important}

  /* ADMIN — sidebar real */
  body:has(.topbar-wrap) .topbar-wrap{
    position:fixed!important;
    left:16px!important;
    top:16px!important;
    bottom:16px!important;
    width:252px!important;
    padding:0!important;
    z-index:1040!important;
  }
  body:has(.topbar-wrap) .topbar-wrap .topbar{
    height:100%!important;
    min-height:0!important;
    border-radius:24px!important;
    padding:18px 14px!important;
    align-items:flex-start!important;
    background:linear-gradient(180deg,#09162f 0%,#102752 100%)!important;
  }
  body:has(.topbar-wrap) .topbar .container-fluid{
    height:100%!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
  }
  body:has(.topbar-wrap) .brand-box{
    width:100%!important;
    padding:4px 4px 18px!important;
    margin-bottom:12px!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
  }
  body:has(.topbar-wrap) .navbar-collapse{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    flex:1!important;
  }
  body:has(.topbar-wrap) .topbar-nav{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    width:100%!important;
    gap:5px!important;
    margin:0!important;
  }
  body:has(.topbar-wrap) .topbar-nav .nav-link{
    width:100%!important;
    min-height:43px!important;
    display:flex!important;
    align-items:center!important;
    padding:0 12px!important;
    border-radius:12px!important;
    text-align:left!important;
    font-size:.82rem!important;
    color:#cbd9ef!important;
  }
  body:has(.topbar-wrap) .topbar-nav .nav-link.active{
    background:linear-gradient(135deg,#2563eb,#3b82f6)!important;
    color:#fff!important;
    box-shadow:0 10px 24px rgba(37,99,235,.24)!important;
  }
  body:has(.topbar-wrap) .topbar-nav .nav-link:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}
  body:has(.topbar-wrap) .page-shell{
    max-width:none!important;
    margin-left:282px!important;
    padding:20px 20px 34px!important;
  }
  body:has(.topbar-wrap){background:#f3f6fb!important}
  body:has(.topbar-wrap) .hero-card{
    border-radius:22px!important;
    padding:24px 26px!important;
    background:linear-gradient(135deg,#fff 0%,#f8fbff 55%,#edf5ff 100%)!important;
  }
}

/* MAPA — botões/controles contemporâneos */
.app-shell .leaflet-control-zoom a{
  width:42px!important;height:42px!important;line-height:42px!important;
  font-size:20px!important;background:rgba(255,255,255,.95)!important;
}
.app-shell .leaflet-control-attribution{background:rgba(255,255,255,.78)!important;backdrop-filter:blur(6px)!important;border-radius:8px 0 0 0!important}

@media (max-width: 991.98px){
  .app-shell .topbar{
    position:fixed!important;
    top:10px!important;left:10px!important;right:10px!important;
    width:auto!important;height:62px!important;
    padding:7px 8px 7px 10px!important;
    border-radius:19px!important;
    display:flex!important;flex-direction:row!important;
    box-shadow:0 16px 36px rgba(2,6,23,.22)!important;
  }
  .app-shell .brand-wrap{max-width:calc(100% - 52px)!important;padding:0!important;border:0!important;gap:8px!important}
  .app-shell .brand-logo-box{width:43px!important;min-width:43px!important;height:43px!important;border-radius:13px!important}
  .app-shell .brand-logo-box img{max-height:36px!important;max-width:36px!important}
  .app-shell .brand-copy h1{font-size:.92rem!important}
  .app-shell .brand-copy p{font-size:.66rem!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .app-shell .menu-toggle{
    display:flex!important;align-items:center!important;justify-content:center!important;
    width:43px!important;height:43px!important;border-radius:13px!important;
    background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.12)!important;
    color:#fff!important;font-size:0!important;
  }
  .app-shell .top-menu{
    position:fixed!important;
    top:82px!important;left:10px!important;right:10px!important;
    max-height:calc(100vh - 96px)!important;
    overflow:auto!important;
    padding:10px!important;
    border-radius:20px!important;
    background:rgba(255,255,255,.98)!important;
    border:1px solid #e5eaf2!important;
    box-shadow:0 24px 60px rgba(2,6,23,.24)!important;
    backdrop-filter:blur(18px)!important;
  }
  .app-shell .top-menu.open{display:flex!important;flex-direction:column!important;gap:6px!important}
  .app-shell .menu-group,.app-shell .top-btn{width:100%!important}
  .app-shell .menu-trigger,.app-shell .top-btn{
    width:100%!important;min-height:47px!important;padding:0 13px!important;
    background:#f8fafc!important;color:#1e293b!important;border:1px solid #e7ebf1!important;
    border-radius:13px!important;text-align:left!important;text-decoration:none!important;
  }
  .app-shell .menu-dropdown{position:static!important;width:100%!important;margin-top:5px!important;box-shadow:none!important;border:1px solid #e8edf4!important;background:#fff!important}
  .app-shell .legend-box{
    top:82px!important;right:10px!important;left:auto!important;bottom:auto!important;
    transform:none!important;max-width:calc(100vw - 20px)!important;
    overflow-x:auto!important;justify-content:flex-start!important;
    padding:5px!important;border-radius:15px!important;background:rgba(255,255,255,.90)!important;
    backdrop-filter:blur(12px)!important;
  }
  .app-shell .legend-item{font-size:.67rem!important;padding:6px 8px!important;box-shadow:none!important;border:0!important;background:transparent!important}
  .app-shell .toast-status{left:10px!important;right:auto!important;bottom:12px!important;max-width:calc(100vw - 20px)!important;font-size:.75rem!important;padding:10px 12px!important}
  .app-shell .leaflet-control-zoom{margin-right:10px!important;margin-bottom:82px!important}

  /* Admin mobile volta a header compacto */
  .topbar-wrap{position:sticky!important;top:0!important;padding:8px 8px 0!important;width:auto!important;height:auto!important}
  .topbar-wrap .topbar{border-radius:17px!important;padding:9px 11px!important}
  .page-shell{margin-left:0!important;padding:12px 10px 26px!important}
  .navbar-toggler{border:1px solid rgba(255,255,255,.16)!important;border-radius:11px!important;background:rgba(255,255,255,.08)!important}
  .hero-card{padding:18px 16px!important}
  .hero-title{font-size:1.35rem!important}
  .filters-bar,.filter-form{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;padding:10px!important}
  .filters-left,.filters-right{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%!important}
  .filters-bar .form-control,.filters-bar .form-select,.filter-form .form-control,.filter-form .form-select{min-width:0!important;width:100%!important}
}

@media (max-width: 575.98px){
  .app-shell .brand-copy p{display:none!important}
  .app-shell .topbar{height:58px!important}
  .app-shell .legend-box{top:77px!important}
  .app-shell .top-menu{top:77px!important}
  .app-shell .legend-item{font-size:.63rem!important;padding:5px 6px!important}
  .app-shell .legend-pin{width:15px!important;height:15px!important;font-size:8px!important}
  .modal-dialog{margin:8px!important}
  .modal-content{border-radius:19px!important}
  .card-login,.login-card,.auth-card,.form-panel,.form-card,.main-card{border-radius:20px!important;box-shadow:0 16px 40px rgba(15,23,42,.12)!important}
}

/* ============================================================
   InstalaTrack UI V3 — correção e refinamento do menu principal
   Ícones explícitos no HTML (sem códigos Unicode em pseudo-elementos)
   ============================================================ */
.app-shell .menu-trigger:before,
.app-shell .top-btn:before,
.app-shell .menu-toggle:before{
  content:none!important;
  display:none!important;
}

.app-shell .menu-main{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
  gap:11px!important;
}
.app-shell .menu-main>i{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
}

@media (min-width: 992px){
  .app-shell .topbar{
    left:14px!important;
    top:14px!important;
    bottom:14px!important;
    width:244px!important;
    padding:15px 12px!important;
    border-radius:24px!important;
    gap:16px!important;
    background:linear-gradient(180deg,#0b1831 0%,#101f3d 100%)!important;
    border:1px solid rgba(255,255,255,.075)!important;
    box-shadow:0 22px 55px rgba(2,6,23,.24)!important;
  }
  .app-shell .brand-wrap{
    padding:3px 5px 16px!important;
    gap:10px!important;
  }
  .app-shell .brand-logo-box{
    width:48px!important;
    min-width:48px!important;
    height:48px!important;
    border-radius:15px!important;
    background:rgba(255,255,255,.075)!important;
    border:1px solid rgba(255,255,255,.08)!important;
  }
  .app-shell .brand-logo-box img{
    max-height:39px!important;
    max-width:39px!important;
  }
  .app-shell .brand-copy h1{
    margin:0!important;
    color:#fff!important;
    font-size:1rem!important;
    font-weight:800!important;
    letter-spacing:-.015em!important;
  }
  .app-shell .brand-copy p{
    margin:2px 0 0!important;
    color:#9fb0cb!important;
    font-size:.67rem!important;
    line-height:1.3!important;
    font-weight:500!important;
  }
  .app-shell .top-menu{
    gap:5px!important;
  }
  .app-shell .menu-trigger,
  .app-shell .top-btn{
    min-height:50px!important;
    padding:5px 8px!important;
    gap:8px!important;
    border-radius:13px!important;
    color:#d9e4f4!important;
    font-size:.84rem!important;
    line-height:1!important;
    font-weight:700!important;
    letter-spacing:0!important;
  }
  .app-shell .menu-trigger{
    justify-content:space-between!important;
  }
  .app-shell .top-btn{
    justify-content:flex-start!important;
  }
  .app-shell .menu-main{
    gap:10px!important;
  }
  .app-shell .menu-main>i{
    width:34px!important;
    height:34px!important;
    border-radius:10px!important;
    background:rgba(102,153,255,.10)!important;
    border:1px solid rgba(125,165,255,.10)!important;
    color:#8db5ff!important;
    font-size:.98rem!important;
  }
  .app-shell .menu-main>span{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .app-shell .menu-caret{
    width:auto!important;
    margin-left:auto!important;
    color:#6f83a5!important;
    font-size:.72rem!important;
    transition:transform .18s ease,color .18s ease!important;
  }
  .app-shell .menu-group.open>.menu-trigger .menu-caret{
    transform:rotate(90deg)!important;
    color:#b8cced!important;
  }
  .app-shell .menu-trigger:hover,
  .app-shell .top-btn:hover,
  .app-shell .menu-group.open>.menu-trigger{
    background:#152a4d!important;
    border-color:rgba(129,164,221,.15)!important;
    color:#fff!important;
    transform:none!important;
  }
  .app-shell .menu-trigger:hover .menu-main>i,
  .app-shell .top-btn:hover .menu-main>i,
  .app-shell .menu-group.open>.menu-trigger .menu-main>i{
    background:#2563eb!important;
    border-color:#2563eb!important;
    color:#fff!important;
    box-shadow:0 7px 18px rgba(37,99,235,.22)!important;
  }
  .app-shell .menu-dropdown{
    left:calc(100% + 10px)!important;
    min-width:270px!important;
    padding:10px!important;
    border-radius:17px!important;
    border:1px solid #e5eaf2!important;
    background:#fff!important;
    box-shadow:0 22px 55px rgba(15,23,42,.18)!important;
  }
  .app-shell .menu-dropdown-title{
    padding:7px 9px 8px!important;
    color:#8794a8!important;
    font-size:.66rem!important;
    font-weight:800!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
  }
  .app-shell .menu-dropdown a,
  .app-shell .menu-dropdown button,
  .app-shell .menu-dropdown .muted-user{
    border-radius:10px!important;
    font-size:.8rem!important;
  }
}

@media (max-width: 991.98px){
  .app-shell .menu-toggle{
    font-size:1.35rem!important;
  }
  .app-shell .menu-toggle>i{
    display:block!important;
    line-height:1!important;
  }
  .app-shell .menu-trigger,
  .app-shell .top-btn{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
    font-size:.84rem!important;
    font-weight:700!important;
  }
  .app-shell .top-btn{
    justify-content:flex-start!important;
  }
  .app-shell .menu-main{
    gap:10px!important;
  }
  .app-shell .menu-main>i{
    width:32px!important;
    height:32px!important;
    border-radius:10px!important;
    background:#edf4ff!important;
    color:#2563eb!important;
    font-size:.95rem!important;
  }
  .app-shell .menu-caret{
    font-size:.72rem!important;
    color:#8190a5!important;
  }
  .app-shell .menu-group.open>.menu-trigger .menu-caret{
    transform:rotate(90deg)!important;
  }
}

/* ============================================================
   InstalaTrack UI V6 — menu público premium / accordion integrado
   ============================================================ */
.app-shell .nav-section-label,
.app-shell .sidebar-footer,
.app-shell .menu-link-arrow{display:none}

@media (min-width: 992px){
  .app-shell .topbar{
    left:18px!important;
    top:18px!important;
    bottom:18px!important;
    width:276px!important;
    padding:14px!important;
    gap:10px!important;
    border-radius:28px!important;
    background:rgba(255,255,255,.96)!important;
    border:1px solid rgba(226,232,240,.95)!important;
    box-shadow:0 24px 70px rgba(15,23,42,.18)!important;
    backdrop-filter:blur(22px) saturate(135%)!important;
  }
  .app-shell .brand-wrap{
    min-height:72px!important;
    padding:8px 8px 16px!important;
    margin-bottom:2px!important;
    border-bottom:1px solid #edf1f6!important;
    gap:12px!important;
  }
  .app-shell .brand-logo-box{
    width:48px!important;
    min-width:48px!important;
    height:48px!important;
    border-radius:15px!important;
    background:linear-gradient(145deg,#eff6ff,#dbeafe)!important;
    border:1px solid #d8e6fb!important;
    box-shadow:0 8px 18px rgba(37,99,235,.08)!important;
  }
  .app-shell .brand-logo-box img{max-width:39px!important;max-height:39px!important}
  .app-shell .brand-copy h1{
    color:#0f172a!important;
    font-size:1.02rem!important;
    font-weight:900!important;
    letter-spacing:-.025em!important;
  }
  .app-shell .brand-copy p{
    color:#64748b!important;
    font-size:.67rem!important;
    font-weight:600!important;
    line-height:1.35!important;
  }
  .app-shell .top-menu{
    display:flex!important;
    flex-direction:column!important;
    gap:4px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:0 1px 4px!important;
  }
  .app-shell .nav-section-label{
    display:block!important;
    padding:11px 10px 6px!important;
    color:#94a3b8!important;
    font-size:.61rem!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:.12em!important;
    text-transform:uppercase!important;
  }
  .app-shell .nav-section-system{margin-top:5px!important;padding-top:12px!important;border-top:1px solid #f0f3f7!important}
  .app-shell .menu-group{position:static!important;width:100%!important}
  .app-shell .menu-trigger,
  .app-shell .top-btn{
    width:100%!important;
    min-height:48px!important;
    padding:5px 7px!important;
    border:1px solid transparent!important;
    border-radius:14px!important;
    background:transparent!important;
    color:#334155!important;
    font-size:.82rem!important;
    font-weight:800!important;
    box-shadow:none!important;
  }
  .app-shell .menu-main{gap:10px!important}
  .app-shell .menu-main>i{
    width:36px!important;
    height:36px!important;
    border-radius:11px!important;
    background:#f4f7fb!important;
    border:1px solid #e8edf4!important;
    color:#64748b!important;
    font-size:1rem!important;
    box-shadow:0 1px 2px rgba(15,23,42,.025)!important;
  }
  .app-shell .menu-trigger:hover,
  .app-shell .top-btn:hover{
    background:#f8fafc!important;
    border-color:#edf1f5!important;
    color:#0f172a!important;
  }
  .app-shell .menu-trigger:hover .menu-main>i,
  .app-shell .top-btn:hover .menu-main>i{
    background:#eef5ff!important;
    border-color:#d8e8ff!important;
    color:#2563eb!important;
    box-shadow:none!important;
  }
  .app-shell .menu-group.open>.menu-trigger{
    background:linear-gradient(135deg,#eff6ff,#f5f9ff)!important;
    border-color:#d9e9ff!important;
    color:#1d4ed8!important;
  }
  .app-shell .menu-group.open>.menu-trigger .menu-main>i{
    background:linear-gradient(135deg,#2563eb,#3b82f6)!important;
    border-color:#2563eb!important;
    color:#fff!important;
    box-shadow:0 7px 16px rgba(37,99,235,.20)!important;
  }
  .app-shell .menu-caret{
    color:#94a3b8!important;
    font-size:.66rem!important;
    margin-right:5px!important;
  }
  .app-shell .menu-group.open>.menu-trigger .menu-caret{color:#2563eb!important;transform:rotate(90deg)!important}

  /* submenu dentro da sidebar, não flutuante */
  .app-shell .menu-dropdown{
    position:static!important;
    left:auto!important;
    top:auto!important;
    right:auto!important;
    width:auto!important;
    min-width:0!important;
    margin:4px 5px 8px 18px!important;
    padding:5px 0 5px 13px!important;
    border:0!important;
    border-left:2px solid #dbeafe!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    overflow:visible!important;
  }
  .app-shell .menu-dropdown-title{
    padding:4px 9px 6px!important;
    color:#94a3b8!important;
    font-size:.58rem!important;
    font-weight:900!important;
    letter-spacing:.09em!important;
  }
  .app-shell .menu-dropdown a,
  .app-shell .menu-dropdown button,
  .app-shell .menu-dropdown .muted-user{
    width:100%!important;
    min-height:34px!important;
    display:flex!important;
    align-items:center!important;
    padding:7px 9px!important;
    margin:1px 0!important;
    border:0!important;
    border-radius:9px!important;
    background:transparent!important;
    color:#475569!important;
    font-size:.74rem!important;
    line-height:1.25!important;
    font-weight:700!important;
    text-align:left!important;
    box-shadow:none!important;
  }
  .app-shell .menu-dropdown a:hover,
  .app-shell .menu-dropdown button:hover{
    background:#f1f5f9!important;
    color:#1d4ed8!important;
  }
  .app-shell .menu-dropdown .primary-link{color:#1d4ed8!important;background:#eff6ff!important}
  .app-shell .menu-dropdown .danger-link{color:#b91c1c!important}
  .app-shell .menu-dropdown .muted-user{display:block!important;color:#64748b!important;background:#f8fafc!important}

  .app-shell .top-btn.menu-link{justify-content:flex-start!important}
  .app-shell .menu-link-arrow{
    display:block!important;
    margin-left:auto!important;
    margin-right:5px!important;
    color:#94a3b8!important;
    font-size:.72rem!important;
  }
  .app-shell .sidebar-footer{
    display:flex!important;
    align-items:center!important;
    gap:9px!important;
    margin-top:auto!important;
    padding:12px 10px 4px!important;
    border-top:1px solid #edf1f6!important;
    color:#64748b!important;
  }
  .app-shell .sidebar-footer-dot{
    width:9px!important;height:9px!important;border-radius:50%!important;
    background:#22c55e!important;
    box-shadow:0 0 0 4px #dcfce7!important;
    flex:0 0 auto!important;
  }
  .app-shell .sidebar-footer span:last-child{display:flex!important;flex-direction:column!important;min-width:0!important}
  .app-shell .sidebar-footer strong{font-size:.68rem!important;color:#334155!important;line-height:1.2!important}
  .app-shell .sidebar-footer small{font-size:.6rem!important;color:#94a3b8!important;line-height:1.3!important}

  .app-shell .toast-status{left:310px!important}
  .app-shell .leaflet-left{left:300px!important}
}

@media (max-width: 991.98px){
  .app-shell .topbar{
    background:rgba(255,255,255,.97)!important;
    border:1px solid #e2e8f0!important;
    box-shadow:0 14px 36px rgba(15,23,42,.16)!important;
  }
  .app-shell .brand-logo-box{background:#eff6ff!important;border-color:#dbeafe!important}
  .app-shell .brand-copy h1{color:#0f172a!important}
  .app-shell .brand-copy p{color:#64748b!important}
  .app-shell .menu-toggle{
    background:#0f172a!important;
    border-color:#0f172a!important;
    color:#fff!important;
  }
  .app-shell .top-menu{
    padding:12px!important;
    background:rgba(255,255,255,.985)!important;
    border:1px solid #e2e8f0!important;
    border-radius:20px!important;
  }
  .app-shell .nav-section-label{
    display:block!important;
    padding:8px 6px 5px!important;
    color:#94a3b8!important;
    font-size:.6rem!important;
    font-weight:900!important;
    letter-spacing:.11em!important;
    text-transform:uppercase!important;
  }
  .app-shell .nav-section-system{margin-top:4px!important;padding-top:10px!important;border-top:1px solid #edf1f5!important}
  .app-shell .menu-trigger,.app-shell .top-btn{
    background:#fff!important;
    border:1px solid #edf1f5!important;
    color:#334155!important;
    border-radius:13px!important;
  }
  .app-shell .menu-main>i{background:#f4f7fb!important;border:1px solid #e8edf4!important;color:#2563eb!important}
  .app-shell .menu-group.open>.menu-trigger{background:#eff6ff!important;border-color:#dbeafe!important;color:#1d4ed8!important}
  .app-shell .menu-dropdown{
    position:static!important;
    margin:5px 3px 8px 17px!important;
    padding:5px 0 5px 12px!important;
    border:0!important;
    border-left:2px solid #dbeafe!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .app-shell .menu-dropdown-title{padding:4px 8px!important;font-size:.58rem!important;color:#94a3b8!important}
  .app-shell .menu-dropdown a,.app-shell .menu-dropdown button,.app-shell .menu-dropdown .muted-user{
    border:0!important;background:transparent!important;border-radius:9px!important;font-size:.75rem!important;padding:8px!important;
  }
  .app-shell .menu-link-arrow{display:block!important;margin-left:auto!important;color:#94a3b8!important;font-size:.72rem!important}
  .app-shell .sidebar-footer{display:none!important}
}


/* ============================================================
   InstalaTrack UI V7 — correção definitiva do accordion público
   ============================================================ */
@media (min-width: 992px){
  .app-shell .top-menu > .menu-group{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    width:100%!important;
    flex:0 0 auto!important;
  }
  .app-shell .top-menu > .menu-group > .menu-trigger{
    flex:0 0 auto!important;
  }
  .app-shell .top-menu > .menu-group > .menu-dropdown{
    flex:0 0 auto!important;
    align-self:stretch!important;
    box-sizing:border-box!important;
    white-space:normal!important;
  }
  .app-shell .menu-dropdown a,
  .app-shell .menu-dropdown button{
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }
}
@media (max-width: 991.98px){
  .app-shell .top-menu > .menu-group{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    width:100%!important;
  }
  .app-shell .top-menu > .menu-group > .menu-dropdown{
    width:calc(100% - 20px)!important;
    box-sizing:border-box!important;
  }
}

/* ============================================================
   InstalaTrack UI V8 — logo e ícones flutuantes sem caixas
   ============================================================ */
.app-shell .brand-logo-box{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:0!important;
  overflow:visible!important;
}
.app-shell .brand-logo-box img{
  width:54px!important;
  height:54px!important;
  max-width:54px!important;
  max-height:54px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 7px 10px rgba(15,23,42,.16))!important;
  transform:translateZ(0)!important;
}
.app-shell .menu-main>i{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:#64748b!important;
  font-size:1.28rem!important;
}
.app-shell .menu-trigger:hover .menu-main>i,
.app-shell .top-btn:hover .menu-main>i,
.app-shell .menu-group.open>.menu-trigger .menu-main>i{
  background:transparent!important;
  border:0!important;
  color:#2563eb!important;
  box-shadow:none!important;
  transform:translateY(-1px)!important;
}
.app-shell .menu-group.open>.menu-trigger{
  box-shadow:0 7px 22px rgba(37,99,235,.08)!important;
}
@media (max-width:991.98px){
  .app-shell .brand-logo-box img{
    width:46px!important;height:46px!important;max-width:46px!important;max-height:46px!important;
  }
  .app-shell .menu-main>i{
    width:28px!important;height:28px!important;min-width:28px!important;font-size:1.18rem!important;
  }
}

/* ============================================================
   InstalaTrack UI V8.2 — logo maior, solta e sem qualquer moldura
   ============================================================ */
.app-shell .brand-wrap{
  gap:14px!important;
  align-items:center!important;
}
.app-shell .brand-logo-box{
  width:72px!important;
  min-width:72px!important;
  height:72px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.app-shell .brand-logo-box img{
  width:68px!important;
  height:68px!important;
  max-width:68px!important;
  max-height:68px!important;
  object-fit:contain!important;
  display:block!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 8px 12px rgba(15,23,42,.14))!important;
}
@media (max-width:991.98px){
  .app-shell .brand-wrap{gap:10px!important;}
  .app-shell .brand-logo-box{
    width:58px!important;
    min-width:58px!important;
    height:58px!important;
  }
  .app-shell .brand-logo-box img{
    width:56px!important;
    height:56px!important;
    max-width:56px!important;
    max-height:56px!important;
  }
}
