/* Menú profesional Ruta360: versión fiel al prototipo aprobado. */
.sidebar{display:flex!important;flex-direction:column!important;width:300px!important;padding:10px 8px 14px!important;background:#fff!important;border-right:1px solid #d7e1ef!important;box-shadow:8px 0 28px rgba(11,30,66,.15)!important;font-family:Arial,"Helvetica Neue",sans-serif!important}
.sidebar .drawer-handle{display:none!important}
.sidebar .mobile-user-dropdown{display:block!important;position:static!important;margin:0 0 12px!important;padding:13px 15px!important;border:0!important;border-radius:12px!important;background:#edf3ff!important;box-shadow:none!important}
.sidebar .mobile-user-dropdown .user-pill{display:flex!important;width:auto!important;min-width:0!important;padding:0!important;border:0!important;background:transparent!important;color:#103b88!important;font-size:.8rem!important;font-weight:800!important}
.sidebar .mobile-user-dropdown .user-pill i{width:20px;color:#103b88;font-size:.86rem}.sidebar .mobile-user-dropdown .badge-date{display:none!important}
.menu-role-label{display:block;margin:5px 0 0 20px;color:#64748b;font-size:.66rem;font-weight:500;line-height:1.2}
.sidebar .accordion-card,.sidebar .accordion-card.open{flex:0 0 auto;margin:0!important;border:0!important;border-bottom:1px solid #d7e1ef!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
.sidebar .accordion-header,.sidebar .accordion-card.open .accordion-header{min-height:54px!important;padding:8px 9px!important;border:0!important;border-radius:0!important;background:#fff!important;color:#12213c!important;font-size:.8rem!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important}
.sidebar .accordion-header:hover{background:#f8faff!important}.sidebar .accordion-header>span{display:flex;align-items:center;gap:9px;min-width:0}.sidebar .accordion-header>span>i{display:grid;place-items:center;width:20px;color:#1557d5;font-size:.84rem}.sidebar .accordion-header>span>span{display:block}.sidebar .accordion-header strong{color:#12213c;font-size:.8rem;font-weight:500}.sidebar .accordion-header small{display:none}.sidebar .accordion-header>i.fa-chevron-down{color:#12213c;font-size:.62rem}
.sidebar .accordion-card.open .accordion-header{background:#f1f5ff!important;color:#12213c!important}.sidebar .accordion-card.open .accordion-header strong{color:#12213c!important}
.sidebar .accordion-body,.sidebar .accordion-card.open .accordion-body{background:#fff!important}
.sidebar .accordion-card:not(.open)>.accordion-body{display:flex!important;height:0!important;min-height:0!important;max-height:0!important;padding:0 8px!important;overflow:hidden!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}
.sidebar .accordion-card.open>.accordion-body{height:auto!important;max-height:none!important;padding:9px 8px 12px!important;overflow:visible!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}
.sidebar .professional-menu-feature,.sidebar .professional-menu-feature .accordion-header,.sidebar .professional-menu-feature.open .accordion-header,.sidebar .professional-menu-feature .accordion-body{margin-top:0!important;background:#fff!important}.sidebar .professional-menu-feature.open .accordion-header{background:#f1f5ff!important}.sidebar .professional-menu-feature .accordion-header>span>i{color:#1557d5}
#acc-gestion .accordion-body{display:grid;gap:8px}#acc-gestion button{width:100%;min-height:38px;margin:0;border-radius:8px;box-shadow:none;font-size:.72rem;font-weight:700}#acc-administracion .admin-panel{margin:0!important;padding:9px!important;border:1px solid #d8e3f3!important;border-radius:9px!important;background:#f8fbff!important;box-shadow:none!important}#acc-administracion .admin-panel>label:first-child{color:#173f91;font-weight:700}
#acc-gestion button[hidden],#acc-gestion[hidden],#acc-administracion[hidden]{display:none!important}
.sidebar .accordion-body button:not(.coordinate-search-toggle):not(.btn-sim-play):not(.btn-day){min-height:39px;border:1px solid #c9d7eb!important;border-radius:8px!important;background:#fff!important;color:#1746a2!important;font-family:inherit!important;font-size:.72rem!important;font-weight:700!important;box-shadow:none!important;transform:none!important;transition:background .16s ease,border-color .16s ease,color .16s ease!important}
.sidebar .accordion-body button:not(.coordinate-search-toggle):not(.btn-sim-play):not(.btn-day):hover:not(:disabled){border-color:#86a8dd!important;background:#f4f7ff!important;color:#103b88!important}
.sidebar .accordion-body button:disabled{background:#f5f7fa!important;border-color:#e2e8f0!important;color:#94a3b8!important;opacity:1!important}
.sidebar .accordion-body .btn-route-opt,.sidebar .accordion-body .reporting-menu-button{border-color:#1d4ed8!important;background:#1d4ed8!important;color:#fff!important}
.sidebar .accordion-body .btn-route-opt:hover:not(:disabled),.sidebar .accordion-body .reporting-menu-button:hover:not(:disabled){border-color:#173f91!important;background:#173f91!important;color:#fff!important}
.sidebar .accordion-body .btn-compare,.sidebar .accordion-body .btn-download-visited{justify-content:flex-start!important}
.professional-report-actions{display:none!important}
.professional-report-actions .btn-download{width:100%;margin:0!important}
.sidebar>.professional-menu-logout{display:flex!important;flex:0 0 auto;align-items:center;justify-content:center;gap:10px;width:100%!important;min-height:44px!important;margin:auto 0 0!important;padding:9px 14px!important;border:1px solid #ef7180!important;border-radius:10px!important;background:#fff!important;color:#e33545!important;font-size:.78rem!important;font-weight:500!important;box-shadow:none!important}
.sidebar>.professional-menu-logout:hover,.sidebar>.professional-menu-logout:focus-visible{background:#fff5f6!important;color:#c92535!important}.sidebar>.professional-menu-logout i{font-size:.78rem!important}
header{box-shadow:0 2px 12px rgba(11,30,66,.18)}header .btn-mobile-menu{border-radius:11px!important;background:rgba(255,255,255,.14)!important}.header-brand{gap:9px!important}.header-logo{height:36px!important}.header-title-text{font-weight:800!important}.btn-notification{background:rgba(255,255,255,.14)!important}
@media(min-width:769px){.sidebar{width:300px!important}.sidebar:not(.collapsed)+#map .leaflet-left{transform:translateX(308px)!important}.sidebar .filter-section{border-color:#dce5f1!important;background:#f9fbfe!important}}
@media(max-width:768px){.sidebar{width:min(88vw,350px)!important;padding:12px 9px 14px!important}.sidebar .mobile-user-dropdown{padding:15px!important;margin-bottom:10px!important}.sidebar .mobile-user-dropdown .user-pill,.sidebar .accordion-header strong{font-size:1rem!important}.menu-role-label{font-size:.78rem!important;margin-top:6px!important}.sidebar .accordion-header{min-height:64px!important;padding:10px!important}.sidebar .accordion-header>span{gap:11px}.sidebar .accordion-header>span>i{width:23px;font-size:1rem}.sidebar .accordion-header>i.fa-chevron-down{font-size:.72rem}.sidebar>.professional-menu-logout{min-height:48px!important;font-size:.94rem!important}}

/* Orientación, estados y búsqueda rápida universal. */
.sidebar .accordion-card.open{box-shadow:inset 3px 0 #1d4ed8!important}.sidebar .accordion-card.open>.accordion-header{background:#f1f5ff!important}
.ux-filter-summary{display:block!important;max-width:175px;margin-top:3px;color:#64748b!important;font-size:.58rem!important;font-weight:500!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ux-clear-filters{display:flex!important;align-items:center!important;gap:4px!important;min-height:30px!important;padding:5px 8px!important;border:1px solid #b8c9e2!important;border-radius:7px!important;background:#fff!important;color:#1746a2!important;font-size:.61rem!important}.ux-clear-filters:hover{border-color:#7898ca!important;background:#f1f5ff!important;color:#103b88!important}
.ux-menu-count{display:grid;place-items:center;min-width:22px;height:22px;margin-left:auto;margin-right:9px;padding:0 6px;border-radius:999px;background:#1d4ed8;color:#fff;font-size:.62rem;font-weight:800}.ux-menu-count[hidden]{display:none!important}
.ux-empty-state{display:flex;align-items:center;gap:9px;padding:12px;border:1px dashed #bfd0e7;border-radius:9px;background:#f8fbff;color:#64748b;font-size:.7rem;line-height:1.35}.ux-empty-state[hidden]{display:none!important}.ux-empty-state i{color:#1d4ed8;font-size:1rem}
.ux-restore-context{width:100%;justify-content:center!important;border-style:dashed!important}.ux-inline-status{display:flex;gap:8px;align-items:flex-start;padding:9px;border-radius:8px;background:#f1f5ff;color:#42526b;font-size:.68rem;line-height:1.35}.ux-inline-status i{margin-top:2px;color:#1d4ed8}
.coordinate-search-panel{flex-direction:column!important;width:min(410px,calc(100vw - 20px))!important}.universal-search-row{display:flex;gap:7px;width:100%}.universal-search-row input{flex:1}.universal-search-results{display:grid;gap:3px;max-height:300px;overflow:auto}.universal-search-hint,.universal-search-empty{margin:2px;padding:10px;color:#64748b;font-size:.72rem;line-height:1.4}.universal-search-empty{border-radius:8px;background:#f8fafc}
.universal-search-result{display:grid!important;grid-template-columns:24px 1fr 12px;align-items:center;text-align:left;width:100%;min-height:48px!important;padding:7px 8px!important;border:0!important;border-radius:8px!important;background:#fff!important;color:#17233a!important;box-shadow:none!important}.universal-search-result:hover{background:#f1f5ff!important}.universal-search-result>i:first-child{color:#1d4ed8}.universal-search-result>i:last-child{color:#94a3b8;font-size:.6rem}.universal-search-result span{display:grid;min-width:0}.universal-search-result strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}.universal-search-result small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-size:.61rem}
select:disabled{cursor:not-allowed!important;background:#f3f6fa!important;color:#8a98aa!important}
@media(min-width:769px){
  #acc-filtros>.accordion-header{display:grid!important;grid-template-columns:minmax(0,1fr) auto 14px!important;column-gap:8px!important}
  #acc-filtros>.accordion-header>span{min-width:0!important}
  #acc-filtros .ux-filter-summary{max-width:100%!important;white-space:normal!important;line-height:1.18;max-height:2.36em}
  #acc-filtros .ux-clear-filters{position:static!important;flex:0 0 auto!important}
  #acc-filtros .accordion-card.open>.accordion-body{padding:6px 5px 9px!important}
  #acc-filtros .accordion-body{gap:5px!important}
  #acc-filtros .filter-section{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:4px 7px;margin:0!important;padding:5px 7px!important;border-radius:7px!important}
  #acc-filtros .filter-section>label{grid-column:1;margin:0!important;font-size:.62rem!important}
  #acc-filtros .filter-section>.chips-container{grid-column:2;grid-row:1}
  #acc-filtros .filter-section>select{grid-column:1/-1;min-height:31px!important;height:31px!important;padding:4px 8px!important;font-size:.68rem!important}
  #acc-filtros .chip-item{font-size:.65rem!important;padding:3px 7px!important}
  #acc-filtros .filter-section:has(.day-buttons){display:block!important;padding:7px!important}
  #acc-filtros .filter-section:has(.day-buttons)>label{display:block!important;margin:0 0 6px!important}
  #acc-filtros .day-buttons{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important;width:100%!important;background:transparent!important}
  #acc-filtros .btn-day{min-width:0!important;padding:6px 3px!important;border:1px solid #c9d7eb!important;border-radius:7px!important;background:#eef3fa!important;color:#24364f!important;font-size:.61rem!important}
  #acc-filtros .btn-day.active{border-color:#1d4ed8!important;background:#1d4ed8!important;color:#fff!important}
  .sidebar select,.sidebar select:disabled,.sidebar select option{color:#0f172a!important;opacity:1!important;-webkit-text-fill-color:#0f172a!important}
  #acc-kpis .kpi-card .val{font-size:.86rem!important}#acc-kpis .kpi-card .lbl{font-size:.56rem!important}
  #acc-kpis .kpi-card{min-height:50px!important;padding:5px!important}
  #acc-kpis .progress-text{font-size:.61rem!important}
  #acc-kpis .filter-section:has(#input-search-cliente){display:none!important}
  #acc-kpis .table-title{font-size:.73rem!important}#acc-kpis table{font-size:.68rem!important}
  #acc-kpis .table-wrapper{max-height:230px!important}
  #acc-capas .ios-switch-label{font-size:.72rem!important}
}
@media(max-width:768px){.ux-filter-summary{max-width:175px;font-size:.7rem!important}.ux-clear-filters span{display:none}.ux-empty-state,.ux-inline-status{font-size:.84rem}.coordinate-search-panel{width:min(360px,calc(100vw - 16px))!important}.universal-search-result strong{font-size:.9rem}.universal-search-result small,.universal-search-hint,.universal-search-empty{font-size:.76rem}}
.map-kpi-dashboard{position:absolute;z-index:850;left:12px;bottom:18px;width:min(286px,calc(100% - 24px));padding:9px;border:1px solid rgba(190,205,226,.95);border-radius:13px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(11,30,66,.2);backdrop-filter:blur(7px)}.map-kpi-dashboard[hidden]{display:none!important}.map-kpi-dashboard .kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.map-kpi-dashboard .kpi-card{min-height:47px;padding:5px}.map-kpi-dashboard .kpi-card .val{font-size:.84rem}.map-kpi-dashboard .kpi-card .lbl{font-size:.52rem}.map-kpi-dashboard .progress-container{margin-top:7px}.map-kpi-dashboard .progress-text{font-size:.56rem}@media(max-width:768px){.map-kpi-dashboard{left:8px;bottom:12px;width:min(330px,calc(100% - 16px))}}
.map-kpi-context{margin:0 2px 7px;padding-bottom:6px;border-bottom:1px solid #dbe5f2;color:#173579;font-size:.64rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-kpi-dashboard{transition:left .24s ease,width .24s ease}@media(min-width:769px){.sidebar:not(.collapsed)+#map .map-kpi-dashboard{left:320px}}
@media(max-width:768px){header{position:fixed!important;top:0;left:0;right:0;width:100%;z-index:2000!important}.main-container{margin-top:50px!important;height:calc(100dvh - 50px)!important;flex:none!important}.coordinate-search-box.expanded{width:46px!important;height:46px!important}.coordinate-search-box.expanded .coordinate-search-panel{top:52px!important;right:0!important;width:min(272px,calc(100vw - 48px))!important;max-width:none!important;padding:5px!important}.universal-search-row{display:grid!important;grid-template-columns:minmax(0,1fr) 36px!important;gap:5px!important}.universal-search-row input{width:100%!important;min-width:0!important;padding:6px 7px!important;font-size:.7rem!important}.universal-search-row button{width:36px!important;min-width:36px!important;padding:0!important;justify-content:center!important}.universal-search-row button span{display:none!important}.map-kpi-dashboard{position:fixed!important;left:auto!important;right:7px!important;bottom:max(9px,env(safe-area-inset-bottom))!important;width:190px!important;padding:7px!important;border-radius:10px!important}.map-kpi-context{margin-bottom:5px;padding-bottom:4px;font-size:.61rem!important}.map-kpi-dashboard .kpi-grid{gap:3px!important}.map-kpi-dashboard .kpi-card{min-height:35px!important;padding:3px 2px!important;border-radius:8px!important}.map-kpi-dashboard .kpi-card .val{font-size:.75rem!important;line-height:1.08!important}.map-kpi-dashboard .kpi-card .lbl{font-size:.43rem!important;line-height:1.08!important;margin-top:1px!important}.map-kpi-dashboard .progress-container{height:10px!important;margin-top:4px!important}.map-kpi-dashboard .progress-text{font-size:.45rem!important}}

