/* SentryTrack UEP-BM v1.7: identidad institucional, navegación accesible y doble tema.
   Logotipos aportados por el usuario. No se declara aval del Banco Mundial. */
:root{--bg:#071424;--sidebar:#071528;--surface:#0c2038;--surface2:#102a46;--line:#2b4d70;--txt:#f4f8ff;--muted:#a4bedb;--blue:#147bfb;--blue2:#0c5bc8;--green:#22d6a0;--radius:16px}
.dashboard-body{background:radial-gradient(circle at 68% -25%,#174579 0%,#071629 52%,#061225 100%);color:var(--txt)}
.app-shell{background:transparent}
.sidebar{background:linear-gradient(165deg,#0b2646,#061528 75%);border-color:#19426d;padding-top:15px}
.sidebar .brand{padding:10px 12px 20px}.sidebar .brand strong{color:white}
.sidebar .side-section-label{color:#8caacb}
.nav-item{border-radius:13px;font-size:14px;transition:background .15s ease,transform .15s ease}
.nav-item.active{background:linear-gradient(110deg,#166ef4,#0a4bab);border-color:#419bff;box-shadow:0 10px 20px #073e9b69}
.nav-item:hover{transform:translateX(2px)}
.topbar{min-height:115px;padding:13px 24px;gap:20px;background:linear-gradient(115deg,#073662,#081f3c 68%,#091b32);border-bottom:1px solid #285883}
.page-head{display:flex;align-items:center;gap:18px;min-width:0}
.institutional-brand{flex:0 0 auto}
.brandplate{display:flex;align-items:center;gap:8px;background:white;border:1px solid #c8dceb;box-shadow:0 4px 22px #001c4270;border-radius:13px;padding:7px 13px;min-height:75px}
.brandplate img:first-child{width:137px;height:64px;object-fit:contain}
.brandplate img:last-child{width:142px;height:58px;object-fit:contain}
.logo-divider{height:50px;border-left:1px solid #b1c9db}
.page-caption{min-width:0}.page-caption h1{font-size:19px;letter-spacing:-.5px;margin:5px 0}
.page-caption p{font-size:11px;color:#c0d6ee;max-width:440px}
.dev-credit{display:block;color:#9ec9ec;font-size:10px;margin-top:5px}
.top-actions{gap:9px}.top-actions .avatar{background:linear-gradient(130deg,#3e9cfb,#0b5bbb)}
.theme-toggle{border:1px solid #5082bc;background:#113f74;color:white;border-radius:11px;padding:10px 12px;display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px;font-weight:800;box-shadow:inset 0 0 0 1px #ffffff12}
.theme-toggle:hover{background:#1664ad}.theme-toggle span:first-child{font-size:17px}
.workspace{max-width:2200px;padding:19px 22px 20px}
.panel,.metric-card{border-color:#31547b;box-shadow:0 12px 40px #00162b55}
.map-toolbar{background:#0b2747;border-bottom-color:#2f5580;min-height:65px;height:65px}
.asset-filters{display:flex;align-items:center;gap:4px;padding:3px;background:#061931;border:1px solid #284d73;border-radius:11px}
.asset-filters button{background:transparent;color:#abc9e8;border:0;border-radius:8px;font-size:11px;font-weight:800;padding:8px 9px}
.asset-filters button.selected{color:white;background:#1467d4;box-shadow:0 2px 12px #0057b15a}
.map-canvas{background:#15273e}.map-card{border-radius:16px}.map-legend{background:#07192eea}
.vehicle-marker,.person-marker.marker-photo{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:3px solid #3b9ffb;background:linear-gradient(140deg,#0f4f9b,#0b2354);color:#fff;box-shadow:0 0 0 6px #0c63dd33,0 7px 25px #000b;overflow:hidden}
.vehicle-marker{background:#086651;border-color:#22e4bb;box-shadow:0 0 0 6px #09e8a02b,0 7px 25px #000b}
.vehicle-marker svg{width:27px;height:27px;color:white}
.vehicle-marker.stopped{background:#6d4b13;border-color:#ffcf50;box-shadow:0 0 0 6px #ffcb4430}
.vehicle-marker.critical,.vehicle-marker.sos{background:#842236;border-color:#ff5f71;box-shadow:0 0 0 6px #ff536033}
.vehicle-marker.offline,.vehicle-marker.nogps{background:#37495c;border-color:#a6b4c5}
.person-marker.marker-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.person-marker.marker-photo span{font-size:13px;font-weight:900}
.asset-detail-sheet{position:absolute;top:78px;right:14px;z-index:680;width:min(335px,calc(100% - 28px));background:linear-gradient(140deg,#081b33ed,#0a3053ef);border:1px solid #5684b4;border-radius:16px;box-shadow:0 15px 45px #000a;color:#fff;backdrop-filter:blur(16px);padding:20px}
.asset-detail-sheet .asset-title{display:flex;gap:14px;align-items:center;padding-right:20px;margin-bottom:14px}
.asset-title img.asset-avatar,.asset-title .asset-avatar{width:62px;height:62px;flex:0 0 62px;border:2px solid #75bafd;border-radius:15px;object-fit:cover;display:grid;place-items:center;font-weight:900;background:#17548a;color:#fff;font-size:21px}
.asset-title small{display:block;font-size:10px;letter-spacing:1px;color:#a9cced}.asset-title h3{margin:4px 0 8px;font-size:17px}
.asset-car-icon{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:#0d6b5d;font-size:28px}
.asset-close{position:absolute;top:10px;right:12px;border:0;background:transparent;color:#d7eafa;font-size:23px}
.asset-data{display:grid;gap:0;margin:14px 0}.asset-data>div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #ffffff1a;font-size:12px}
.asset-data span{color:#9fc1dc}.asset-data b{max-width:64%;text-align:right;overflow-wrap:anywhere;font-weight:700}
.alert-person-line{display:flex;gap:9px;align-items:center}.alert-person-line strong{font-size:12px}
.alert-avatar{width:28px;height:28px;flex:0 0 28px;object-fit:cover;border-radius:50%;background:#2b5b83;display:grid;place-items:center;font-size:10px;font-weight:800;color:#fff;border:1px solid #8bb8e1}
.staff-avatar.is-photo{object-fit:cover;border-radius:12px}
.person-detail-cover,.vehicle-detail-cover{display:flex;gap:15px;align-items:center;background:#0a3052;border:1px solid #2c628d;padding:12px;border-radius:13px;margin-bottom:16px}
.person-detail-avatar{width:92px;height:100px;object-fit:cover;border-radius:11px;border:2px solid #619be0;display:grid;place-items:center;background:#20518d;color:white;font-size:27px}
.person-detail-cover strong,.vehicle-detail-cover strong{display:block;font-size:18px}.person-detail-cover small,.vehicle-detail-cover small{display:block;color:#b8d5eb;margin:4px 0 12px}
.photo-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:15px}.photo-actions input{max-width:340px}
.vehicle-big-icon,.vehicle-row-icon{display:grid;place-items:center;width:64px;height:64px;background:#0d6c66;border:1px solid #19d9bc;border-radius:15px;font-size:32px}
.vehicle-page-head{display:flex;align-items:center;justify-content:space-between;gap:20px}
.vehicle-page-head p{max-width:720px}.vehicle-summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.vehicle-summary span{padding:13px 16px;border-radius:11px;border:1px solid #2a547a;background:#102b48;font-size:12px;color:#bcd6ef}.vehicle-summary b{font-size:20px;color:#fff;margin-right:5px}
.vehicle-list{display:grid;gap:11px}.vehicle-row{display:flex;gap:14px;align-items:center;padding:17px;background:#0a1f34;border:1px solid #2e4e6d;border-radius:13px}
.vehicle-row-icon{width:48px;height:48px;font-size:23px;flex:0 0 48px}.vehicle-row-main{min-width:0;flex:1}.vehicle-row-main strong{display:block;font-size:16px}.vehicle-row-main small{display:block;color:#a2bed9;margin-top:4px;font-size:11px;overflow-wrap:anywhere}
.workspace[data-view="vehicles"] > :not(#page-view){display:none!important}
.workspace[data-view="vehicles"] #page-view{display:block!important}
/* Tema claro: fondo neutro con azules corporativos de ambas instituciones. */
body.theme-light{--bg:#f2f6fc;--sidebar:#e6effb;--surface:#fff;--surface2:#f1f6fc;--line:#cbdbee;--txt:#112b49;--muted:#55728e;--shadow:0 10px 30px #173d6214;background:#f2f6fc;color:#132e4b}
.theme-light .sidebar{background:linear-gradient(165deg,#e5effb,#d5e5f7);border-color:#c0d3e9}
.theme-light .sidebar .brand strong,.theme-light .nav-item,.theme-light .sidebar-bottom h3{color:#183756}
.theme-light .nav-item:hover{background:#d0e2f6;color:#092c53}
.theme-light .nav-item.active{color:#fff}
.theme-light .sidebar-bottom,.theme-light .side-section-label,.theme-light .side-version{color:#44617e}
.theme-light .topbar{background:linear-gradient(110deg,#e8f3ff,#d9e9fb);border-color:#c5d9ed}
.theme-light .page-caption h1,.theme-light .page-caption .eyebrow{color:#10375e}
.theme-light .page-caption p,.theme-light .dev-credit{color:#456d92}
.theme-light .theme-toggle{background:#d9eaff;border-color:#a5c5e7;color:#123960}
.theme-light .top-actions .live-indicator{color:#2a5874}
.theme-light .panel,.theme-light .metric-card{background:#fff;color:#183656;border-color:#cad9e9;box-shadow:0 12px 36px #173d6212}
.theme-light .panel-head,.theme-light .people-header,.theme-light .map-toolbar{background:#eff6ff;color:#15385c;border-color:#c9dbf0}
.theme-light .metric-card{background:linear-gradient(130deg,#fff,#edf5ff)}
.theme-light .metric-body label,.theme-light .metric-number,.theme-light .map-label{color:#12395f}
.theme-light .metric-detail,.theme-light .map-label small,.theme-light .panel-head p,.theme-light .people-header p,.theme-light .muted,.theme-light .page-content p{color:#536f8c}
.theme-light .map-toolbar-right .btn{background:#dceafd;color:#17436a;border-color:#b4c9e0}
.theme-light .asset-filters{background:#d6e6f6;border-color:#adc8e2}.theme-light .asset-filters button{color:#214a75}.theme-light .asset-filters button.selected{color:#fff}
.theme-light .people-panel table,.theme-light .people-panel th,.theme-light .people-panel td{color:#224260;border-color:#d9e4ee}
.theme-light .people-panel th,.theme-light .filter-row{background:#eaf3ff}
.theme-light .people-panel tr:nth-child(even){background:#f5f9fe}
.theme-light .alert-feed,.theme-light .alerts-card{background:#fff}
.theme-light .alert-card{background:#fff6f6;border-color:#f2c6cb;border-left-color:#ed4b5d;color:#243c56}
.theme-light .alert-card.warning{background:#fffbf0;border-color:#eed7a5;border-left-color:#e6b043}
.theme-light .alert-card.offline{background:#f1f6fb;border-color:#c8d7e6;border-left-color:#97aab9}
.theme-light .alert-text strong,.theme-light .alert-person-line strong{color:#173d62}
.theme-light .alert-text p,.theme-light .alert-meta time,.theme-light .alert-state{color:#55718d}
.theme-light .page-card,.theme-light .page-card-head{background:#fff;border-color:#cadbec;color:#203d5b}
.theme-light .page-card-head h2,.theme-light .page-content label{color:#123456}
.theme-light .page-content input,.theme-light .page-content textarea,.theme-light .page-content select,.theme-light .modal input,.theme-light .modal select,.theme-light .modal textarea{background:#f7fbff;border-color:#bdcfe3;color:#12385b}
.theme-light .modal{background:#fff;color:#173858;border-color:#b9d4e9}
.theme-light .modal-head{border-color:#d1e1f1}
.theme-light .modal label{color:#214a69}.theme-light .modal p,.theme-light .modal small{color:#426784}
.theme-light .person-detail-cover,.theme-light .vehicle-detail-cover,.theme-light .vehicle-row,.theme-light .vehicle-summary span{background:#eaf4ff;border-color:#c7d9ed;color:#173858}
.theme-light .person-detail-cover small,.theme-light .vehicle-row small,.theme-light .vehicle-summary span,.theme-light .vehicle-summary b{color:#325e80}
.theme-light .team-picker,.theme-light .commission-group,.theme-light .commission-person,.theme-light .team-choice{background:#f3f8fd;border-color:#c8ddec;color:#193c60}
.theme-light .team-picker small,.theme-light .team-choice small,.theme-light .commission-group small{color:#456e8d}
.theme-light .commission-badge{background:#e7f1ff;color:#195ba1}
.theme-light .action-button,.theme-light .btn-subtle{background:#dbe9f9;color:#17456c;border-color:#b3c9e1}
.theme-light .search-wrap{background:#f5f9ff;border-color:#b3cce8;color:#476887}
.theme-light .search-wrap input{color:#17395d}
.theme-light .footer-note{color:#577393}
@media(max-width:1550px){.brandplate img:first-child{width:116px;height:60px}.brandplate img:last-child{width:117px;height:56px}.page-caption h1{font-size:16px}.page-caption .eyebrow{font-size:8px}.page-caption p{font-size:10px}.page-head{gap:12px}.topbar{padding:12px 14px}.top-actions{gap:5px}}
@media(max-width:1170px){.page-head{flex-wrap:wrap}.institutional-brand{width:100%}.brandplate{width:fit-content;min-height:50px;padding:2px 8px}.brandplate img:first-child{width:100px;height:39px}.brandplate img:last-child{width:120px;height:37px}.logo-divider{height:33px}.page-caption p{display:none}.top-actions .live-indicator{display:none}.map-toolbar{flex-wrap:wrap;height:auto;padding:8px 12px}.map-toolbar-right{flex-wrap:wrap}}
@media(max-width:760px){.theme-toggle{padding:6px}.theme-toggle #theme-label{display:none}.brandplate img:first-child{width:72px;height:40px}.brandplate img:last-child{width:80px;height:39px}.page-caption h1{font-size:13px}.dev-credit{font-size:9px}.asset-filters button{font-size:10px;padding:6px}.vehicle-row{flex-wrap:wrap}.vehicle-page-head{align-items:start;flex-direction:column}.vehicle-row .state-chip{margin-left:0}}

.mobile-launch{white-space:nowrap;text-decoration:none;padding:9px;font-size:11px}
@media(max-width:950px){.mobile-launch{display:none}}
