@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#070f1c;--sidebar:#071323;--surface:#0c1a2e;--surface2:#0e2037;--line:#21324a;--txt:#ecf4ff;--muted:#91a5c1;--blue:#2b83ff;--blue2:#1761e6;--green:#19d998;--yellow:#f5b63f;--red:#ff535e;--gray:#95a6c2;--radius:15px;--shadow:0 10px 30px #0003}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--txt)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:#6fb0ff}svg.ico{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.hidden{display:none!important}.dashboard-body{background:var(--bg)}.app-shell{display:flex;min-height:100vh}.sidebar{width:235px;flex:0 0 235px;padding:25px 13px 15px;background:linear-gradient(150deg,#0b192d 0%,#051020 90%);border-right:1px solid #1d2e44;display:flex;flex-direction:column;position:sticky;top:0;max-height:100vh}.brand,.mobile-brand{display:flex;align-items:center;gap:10px;padding:0 10px 26px}.brand-logo{width:36px;height:39px;border-radius:11px;background:linear-gradient(135deg,#4bc6ff,#246df7 75%);box-shadow:0 7px 19px #226df850;color:#d3efff;display:grid;place-items:center;transform:rotate(-7deg);font-size:24px;flex-shrink:0}.brand strong,.mobile-brand strong{font:800 19px Manrope,sans-serif;letter-spacing:-.7px}.brand strong span,.mobile-brand strong span{color:#65b2ff}.brand small,.mobile-brand small{display:block;font-size:9px;letter-spacing:1.25px;color:#8aabc9;margin-top:3px;font-weight:800}.side-section-label{font-size:10px;color:#5c7696;letter-spacing:1.6px;font-weight:800;padding:13px 13px 9px}.nav-menu{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;padding:13px 15px;width:100%;border-radius:10px;border:1px solid transparent;background:transparent;color:#a6b9d3;text-align:left;font-size:13px;font-weight:700}.nav-item .ico{width:18px;height:18px}.nav-item:hover{background:#172941;color:#fff}.nav-item.active{color:#fff;background:linear-gradient(90deg,#1358c3,#173d82);border-color:#2c76e4;box-shadow:0 5px 24px #1161e324}.nav-count{margin-left:auto;background:#ff414f;color:white;padding:2px 7px;border-radius:20px;font-size:11px}.sidebar-bottom{margin-top:auto;padding:8px 12px;color:#90a8c7}.mini-orbit{height:110px;display:grid;place-items:center;position:relative}.orbit-dot{background:#1c74ff;color:#e3f7ff;border-radius:30px;width:45px;height:45px;text-align:center;line-height:43px;font-size:42px;box-shadow:0 0 35px #167bff70}.orbit-ring{position:absolute;border:1px solid #1b5eb45e;width:100px;height:65px;transform:rotate(-30deg);border-radius:50%}.sidebar-bottom h3{font-size:14px;color:#b3c7e1;margin:5px 0}.sidebar-bottom p{font-size:12px;line-height:1.65}.side-version{font-size:10px;border-top:1px solid #1d3450;padding-top:14px;margin-top:22px;color:#5e7897}.main-content{flex:1;min-width:0;max-width:100%}.topbar{min-height:111px;display:flex;align-items:center;justify-content:space-between;padding:22px 27px 18px;gap:20px;background:linear-gradient(95deg,#09182b,#070f1b);border-bottom:1px solid #1b2d45}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.8px;color:#5d9af5}.dot-separator{color:#436188;padding:0 4px}.page-head h1{font-family:Manrope,sans-serif;font-size:25px;line-height:1.3;margin:6px 0;font-weight:800;letter-spacing:-.85px}.page-head p{font-size:12px;color:#92a8c8;margin:0}.top-actions{display:flex;align-items:center;gap:12px;white-space:nowrap}.live-indicator{font-size:12px;color:#a6bfd7;display:flex;align-items:center;gap:7px}.pulse-dot{display:inline-block;width:8px;height:8px;background:#22d9a2;border-radius:50%;box-shadow:0 0 0 4px #24c9971c;animation:pulse 2s infinite;flex:0 0 8px}@keyframes pulse{50%{box-shadow:0 0 0 8px #24c99706}}.avatar{display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#855af9,#3e60c9);width:35px;height:35px;font-size:12px;font-weight:800}.icon-btn{background:#15253c;border:1px solid #2a3a53;color:#d9eaff;border-radius:11px;width:38px;height:38px;display:grid;place-items:center;position:relative}.icon-btn:hover{background:#243a59}.count-bubble{position:absolute;top:-8px;right:-8px;background:#ff3f51;color:#fff;border-radius:12px;font-size:10px;padding:1px 5px}.demo-pill{font-size:10px;color:#f8d787;background:#55432165;border:1px solid #7a6127;padding:8px 10px;border-radius:9px;font-weight:800;letter-spacing:.6px}.workspace{padding:22px 25px 13px;max-width:1900px;margin:auto}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:15px}.metric-card{position:relative;overflow:hidden;border-radius:14px;padding:18px 15px;display:flex;align-items:center;gap:14px;min-height:112px;border:1px solid #203853;background:linear-gradient(130deg,#0d2633,#101b2a);box-shadow:0 12px 22px #0002}.metric-card:after{content:'';position:absolute;inset:-45px auto auto -45px;width:120px;height:120px;border-radius:100%;filter:blur(45px);opacity:.16}.metric-icon{border-radius:50%;width:51px;height:51px;display:grid;place-items:center;flex:0 0 51px;position:relative;z-index:1}.metric-icon svg{width:24px;height:24px}.metric-body{min-width:0;z-index:1}.metric-body label{font-size:12px;font-weight:800;display:block}.metric-number{font-family:Manrope,sans-serif;font-size:29px;font-weight:800;line-height:1.3;letter-spacing:-.9px}.metric-number small{font-size:11px;font-weight:600;color:#a9b6c8}.metric-detail{font-size:10px;color:#9baeca;white-space:nowrap}.metric-green{border-color:#19684e}.metric-green .metric-icon{background:#0f9d70;box-shadow:0 0 25px #0bbc8275}.metric-green label{color:#56f8be}.metric-green:after{background:#09ffb4}.metric-red{border-color:#633448}.metric-red .metric-icon{background:#ed364a;box-shadow:0 0 25px #fa415b80}.metric-red label{color:#ff9aa4}.metric-red:after{background:#ff3344}.metric-yellow{border-color:#65512f}.metric-yellow .metric-icon{background:#ffc449;color:#533a00;box-shadow:0 0 25px #ffbe4060}.metric-yellow label{color:#ffe1a0}.metric-yellow:after{background:#ffb52b}.metric-gray .metric-icon{background:#46607b;box-shadow:0 0 23px #809bb650}.metric-gray label{color:#d4e7fc}.metric-gray:after{background:#98b2d9}.sparkline{position:absolute;right:-9px;bottom:12px;font-size:45px;letter-spacing:-12px;opacity:.13;color:#c4d8e4}.middle-grid{display:grid;grid-template-columns:minmax(0,2.25fr) minmax(300px,.9fr);gap:14px;min-height:450px;margin-bottom:15px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);overflow:hidden}.map-card{position:relative;display:flex;flex-direction:column}.map-toolbar{height:59px;min-height:59px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;background:#0c1b2c;border-bottom:1px solid #263850;z-index:600;gap:8px}.map-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800}.live-map-dot{width:9px;height:9px;background:#2082ff;border-radius:50%;box-shadow:0 0 0 4px #1469da35}.map-label small{font-size:11px;color:var(--muted);font-weight:500;margin-left:6px}.map-toolbar-right{display:flex;gap:7px}.map-canvas{flex:1;min-height:370px;background:#0e1c29}.map-legend{position:absolute;bottom:15px;left:14px;z-index:500;background:#091526ea;border:1px solid #40506a;border-radius:8px;padding:9px 10px;display:flex;flex-wrap:wrap;gap:13px;font-size:10px;color:#b6c5d8}.legend-pin{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.pin-green{background:var(--green)}.pin-yellow{background:var(--yellow)}.pin-red{background:var(--red)}.pin-gray{background:var(--gray)}.map-empty{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);z-index:600;background:#0a172beb;box-shadow:0 15px 40px #0007;border:1px solid #28425d;border-radius:16px;padding:22px;text-align:center;min-width:270px;pointer-events:none}.map-empty-icon{font-size:22px;color:#5fa3ff;display:grid;place-items:center}.map-empty-icon svg{width:29px;height:29px}.map-empty b,.map-empty span{display:block;margin:8px 0}.map-empty b{font-size:13px}.map-empty span{font-size:11px;color:#91abc6}.alerts-card{display:flex;flex-direction:column;max-height:520px}.panel-head{padding:18px 15px 13px;display:flex;align-items:flex-start;justify-content:space-between;gap:5px}.panel-head h2,.people-header h2{font-family:Manrope,sans-serif;font-size:16px;margin:0;letter-spacing:-.4px}.panel-head p,.people-header p{font-size:11px;color:#8fa6c4;margin:5px 0}.small-red-count{background:#ec3c4a;color:#fff;font-size:10px;padding:3px 7px;border-radius:12px;vertical-align:middle;margin-left:4px}.text-button{border:0;background:none;color:#62aaff;font-size:11px;font-weight:700;white-space:nowrap;padding:3px 0}.alert-feed{padding:0 12px 14px;display:grid;align-content:start;gap:9px;flex:1;overflow-y:auto;min-height:0}.alert-card{border:1px solid #42344a;border-left:4px solid var(--red);border-radius:10px;padding:12px 11px;background:linear-gradient(105deg,#3a1827,#231925);display:flex;gap:9px;position:relative;cursor:pointer}.alert-card.acknowledged{opacity:.65}.alert-icon{display:grid;place-items:start;flex:0 0 24px;color:#ff5867;padding-top:2px}.alert-icon svg{width:19px;height:19px}.alert-text{flex:1;min-width:0}.alert-meta{display:flex;gap:6px;justify-content:space-between;align-items:center;margin-bottom:5px}.alert-meta b{font-size:10px;letter-spacing:.4px;color:#ff8189}.alert-meta time{font-size:10px;color:#b4aabb;white-space:nowrap}.alert-card strong{font-size:12px;display:block;line-height:1.4}.alert-card p{font-size:10px;color:#c6b1be;margin:3px 0 0;line-height:1.5}.alert-card.warning{background:linear-gradient(110deg,#382919,#27251a);border-color:#5d4b25;border-left-color:#f2ae33}.alert-card.warning .alert-icon,.alert-card.warning .alert-meta b{color:#ffcc60}.alert-card.offline{background:linear-gradient(110deg,#223249,#1a263a);border-color:#35485f;border-left-color:#9db2ce}.alert-card.offline .alert-icon,.alert-card.offline .alert-meta b{color:#b5c9e7}.alert-card.resolved{opacity:.5;border-left-color:#6c829c}.alert-bottom{height:39px;background:#0a1627;border-top:1px solid #20324b;display:flex;align-items:center;gap:10px;padding:0 15px;color:#8da8c2;font-size:10px}.empty-item{padding:25px 10px;color:#90a8c3;text-align:center;line-height:1.7;font-size:12px}.people-panel{margin-bottom:13px}.people-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px 10px}.list-total{color:#67adfa;font-size:13px}.people-actions{display:flex;align-items:center;gap:8px}.search-wrap{display:flex;align-items:center;border:1px solid #27405d;border-radius:9px;background:#0a1728;color:#87a0bd;padding:0 11px;gap:8px}.search-wrap input{width:185px;border:0;background:transparent;padding:10px 0;color:#ddebff;outline:0;font-size:11px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;border:1px solid transparent;padding:11px 13px;font-weight:800;font-size:12px;color:white;white-space:nowrap}.btn-primary{background:linear-gradient(110deg,#2379f7,#1160df);border-color:#367dec;box-shadow:0 5px 18px #0c57da28}.btn-primary:hover{filter:brightness(1.15)}.btn-dark,.btn-subtle{background:#14253a;border:1px solid #29405b;color:#c7d9ef}.btn-dark:hover,.btn-subtle:hover{background:#223754}.btn-small{font-size:11px;padding:8px 10px}.full{width:100%}.filter-row{padding:0 17px 11px;display:flex;flex-wrap:wrap;gap:7px}.filter-chip{background:#132136;color:#a8bbd1;border:1px solid #29405e;padding:7px 11px;border-radius:20px;font-size:11px;font-weight:700}.filter-chip b{display:inline-block;margin-left:5px}.filter-chip.active{color:white;background:#1466d8;border-color:#3076e2}.table-scroll{overflow:auto}.staff-table{width:100%;border-collapse:collapse;font-size:12px;min-width:850px}.staff-table th{background:#14233a;color:#a7bdd7;white-space:nowrap;text-align:left;font-size:10px;letter-spacing:.35px;padding:13px 16px;font-weight:800}.staff-table td{padding:11px 16px;border-top:1px solid #1e3049;color:#c6d6ea}.staff-table tr:hover td{background:#142840}.person-cell{display:flex;gap:10px;align-items:center;min-width:150px}.staff-avatar{border-radius:50%;width:32px;height:32px;display:grid;place-items:center;color:white;font-size:11px;font-weight:800;background:linear-gradient(135deg,#2486bd,#4d5daa)}.person-cell strong{display:block;color:#f1f7ff;font-size:12px}.person-cell small{display:block;color:#8ca3be;margin-top:2px;font-size:10px}.state-chip{display:inline-flex;gap:6px;align-items:center;border-radius:18px;border:1px solid #3b526b;padding:5px 10px;color:#a5b9d1;background:#1b2d43;white-space:nowrap;font-size:10px;font-weight:800}.state-chip i{width:7px;height:7px;border-radius:100%;background:currentColor}.state-chip.moving{color:#44eeaa;background:#0c3a31;border-color:#176c53}.state-chip.stopped{color:#ffd169;background:#43321e;border-color:#99732b}.state-chip.critical,.state-chip.sos{color:#ff848b;background:#491b2a;border-color:#982b3d}.state-chip.offline,.state-chip.nogps{color:#aabfda;background:#233247;border-color:#55708a}.muted{color:#8399b7!important}.action-button{background:#1b304c;border:1px solid #3b526c;border-radius:7px;color:#d8eaff;font-size:11px;padding:6px 12px;font-weight:700}.action-button:hover{background:#28476b}.empty-table{text-align:center;padding:30px!important;color:#8ca7c3!important}.footer-note{color:#607a9b;font-size:10px;text-align:center;padding:7px 0 14px}.welcome-bar{background:#172f4c;border:1px solid #346095;border-radius:12px;padding:14px 16px;margin-bottom:15px;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px}.welcome-bar span{color:#bad1ed}.demo-bar{background:#362b18;border-color:#81692a}.leaflet-container{background:#091522;font-family:inherit}.leaflet-bar a{background:#101e33;color:#e8f2ff;border-color:#26374e}.leaflet-bar a:hover{background:#1b3656;color:#fff}.leaflet-control-attribution{background:#112031dc!important;color:#b1c5d8!important;font-size:9px!important}.person-marker{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;border:3px solid #85ffe0;color:white;box-shadow:0 0 0 6px #13e5a52a,0 4px 15px #0009;font-weight:900;font-size:10px}.person-marker.moving{background:#067853;border-color:#38e7a4}.person-marker.stopped{background:#8d5815;border-color:#ffd36b;box-shadow:0 0 0 6px #ffcc3f2a,0 4px 15px #0009}.person-marker.critical,.person-marker.sos{background:#a91a3c;border-color:#ff6675;box-shadow:0 0 0 8px #f33a4d25,0 4px 15px #0009}.person-marker.offline,.person-marker.nogps{background:#394a60;border-color:#a1b4cb;box-shadow:0 0 0 5px #b0c0d029}.person-marker.pending,.person-marker.paused{background:#4664a3;border-color:#80b2fe}.map-pop h4{color:#141e2e;margin:0 0 7px}.map-pop p{margin:3px 0;font-size:12px;color:#33425a}.map-pop button{background:#126ddd;color:white;border:0;border-radius:7px;padding:6px 10px;margin-top:7px}.leaflet-popup-content-wrapper{border-radius:11px}.toast-host{position:fixed;z-index:3000;top:16px;right:17px;width:min(380px,calc(100vw - 34px));display:grid;gap:9px;pointer-events:none}.toast{background:#2a1723;color:#fff;padding:15px;border-radius:12px;border:1px solid #bc4a5e;box-shadow:0 15px 35px #0009;pointer-events:auto;display:flex;gap:11px;align-items:flex-start;animation:appear .2s}.toast.warning{background:#34281a;border-color:#b6852c}.toast.info{background:#102b46;border-color:#3679b5}.toast .toast-icon{font-size:20px}.toast strong{display:block;font-size:12px}.toast small{font-size:11px;display:block;color:#bdd0e0;line-height:1.6;margin-top:3px}.toast button{background:none;border:0;color:white;font-size:21px;margin-left:auto}.modal-backdrop{position:fixed;z-index:2500;inset:0;background:#010714d9;display:flex;justify-content:center;align-items:center;padding:18px;backdrop-filter:blur(5px)}.modal{background:#101f35;border:1px solid #2d4664;max-height:min(90vh,850px);overflow-y:auto;width:min(590px,100%);border-radius:17px;padding:23px;box-shadow:0 25px 100px #000a}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-bottom:1px solid #273c58;padding-bottom:15px;margin-bottom:18px}.modal-head h2{margin:7px 0 0;font:800 22px Manrope,sans-serif}.modal label,.gate label{display:block;color:#c2d7ef;font-size:12px;font-weight:800;margin:0 0 7px}.modal input,.modal select,.gate input{width:100%;background:#0a1729;border:1px solid #38516d;border-radius:9px;padding:12px 13px;color:#edf6ff;outline:0;margin-bottom:16px;font-size:13px}.modal input:focus,.gate input:focus{border-color:#4a93ff}.modal p{color:#a6bdd5;font-size:12px;line-height:1.75}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;flex-wrap:wrap}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.link-output{border:1px dashed #3f6386;background:#09192e;padding:13px;border-radius:10px;color:#a7d0ff;overflow-wrap:anywhere;font-size:11px}.note-box{padding:12px 13px;border:1px solid #345079;background:#102a46;border-radius:10px;font-size:12px;color:#afd1ee;line-height:1.6;margin:10px 0}.critical-note{border-color:#944150;background:#411b2c;color:#ffc0c8}.error-text{color:#ff9fab;font-size:11px;min-height:15px}.subhead{font-size:13px;font-weight:800;margin:16px 0 10px}.detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.detail-stats>div{background:#102942;border:1px solid #24496b;border-radius:8px;padding:12px}.detail-stats b{font-size:12px;display:block}.detail-stats small{font-size:10px;color:#91b2cc}.history-list{display:grid;gap:7px;max-height:240px;overflow:auto}.history-list>div{display:flex;justify-content:space-between;background:#0a1728;padding:9px 11px;border-radius:8px;font-size:11px;color:#acc6da}.gate{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 40% 0%,#123661 0%,#091527 40%,#050c18 85%);padding:20px}.gate-card{max-width:435px;width:100%;padding:32px;background:linear-gradient(150deg,#122741,#0b1b30);border:1px solid #34516f;border-radius:22px;box-shadow:0 28px 90px #0009}.brand-large{font:800 26px Manrope,sans-serif;display:flex;align-items:center;gap:14px}.brand-large span:not(.brand-logo){color:#6ab6ff}.gate-eyebrow{font-size:10px;letter-spacing:1.3px;color:#569cf8;margin-top:25px;font-weight:800}.gate h1{font:800 27px Manrope,sans-serif;margin:8px 0}.gate p{color:#9db2c9;font-size:13px;line-height:1.65;margin-bottom:23px}.gate form label{margin-top:12px}.gate-foot{text-align:center;font-size:10px;color:#617e9d;padding-top:20px;line-height:1.5}@keyframes appear{from{transform:translateY(-7px);opacity:.2}to{transform:translateY(0);opacity:1}}@media(max-width:1220px){.sidebar{width:195px;flex-basis:195px}.middle-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr)}.metric-card{padding:15px 11px;gap:10px}.metric-icon{width:43px;height:43px;flex-basis:43px}.metric-number{font-size:25px}.topbar{padding-left:20px}.workspace{padding:17px}.people-actions .search-wrap input{width:130px}}@media(max-width:950px){.sidebar{width:69px;flex-basis:69px;padding:15px 9px}.sidebar .brand{padding:0 7px 27px}.sidebar .brand div,.side-section-label,.nav-item:not(.active) .nav-count,.sidebar-bottom,.nav-item{font-size:0}.nav-item{justify-content:center;padding:14px 8px}.nav-item .ico{width:20px;height:20px}.metrics{grid-template-columns:repeat(2,1fr)}.middle-grid{grid-template-columns:1fr}.alerts-card{max-height:350px}.map-canvas{min-height:420px}.topbar{gap:8px}.page-head h1{font-size:22px}}@media(max-width:680px){.sidebar{width:54px;flex-basis:54px;padding:14px 4px}.nav-item{padding:13px 5px}.sidebar .brand{padding:0 4px 19px}.sidebar .brand-logo{width:32px}.topbar{padding:15px;min-height:90px}.page-head h1{font-size:17px}.page-head p{font-size:10px}.eyebrow{font-size:9px}.live-indicator,.avatar,#logout-btn,.demo-pill{display:none}.workspace{padding:12px}.metrics{gap:8px}.metric-card{min-height:90px;padding:12px 10px}.metric-icon{width:34px;height:34px;flex-basis:34px}.metric-icon svg{width:18px}.metric-number{font-size:21px}.metric-body label{font-size:10px}.metric-detail{font-size:9px}.map-canvas{min-height:330px}.people-header{align-items:flex-start;flex-direction:column}.people-actions{width:100%;flex-wrap:wrap}.search-wrap{flex:1}.search-wrap input{min-width:120px;width:100%!important}.welcome-bar{align-items:flex-start;flex-direction:column}.map-legend{gap:6px;font-size:9px}.modal-grid{grid-template-columns:1fr}}
/* Pantalla móvil de la persona que comparte ubicación */
.mobile-body{background:radial-gradient(circle at 40% -10%,#164780 0%,#091a32 39%,#07101e 100%);min-height:100vh}.tracker-shell{min-height:100vh;max-width:520px;margin:auto;display:flex;flex-direction:column;padding:18px 21px 22px}.tracker-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.mobile-brand{padding:0}.mobile-brand .brand-logo{height:37px;width:36px}.shield-chip{color:#7fdfbd;font-size:9px;border:1px solid #1f765d;background:#0e493e4d;border-radius:16px;padding:7px}.tracker-main{padding-top:28px;flex:1;text-align:center}.tracker-symbol{position:relative;width:125px;height:125px;margin:5px auto 17px;display:grid;place-items:center}.tracker-symbol span{height:70px;width:70px;display:grid;place-items:center;border-radius:24px;background:linear-gradient(135deg,#2188ff,#1747c4);font-size:54px;line-height:0;box-shadow:0 8px 35px #2877f966;z-index:1}.tracker-rings{position:absolute;inset:0;border:1px solid #278aff55;border-radius:50%;box-shadow:0 0 0 12px #1a79ff10,0 0 0 23px #1a79ff08}.tracker-tag{display:inline-block;color:#79b6ff;font-size:10px;font-weight:800;letter-spacing:1.5px;background:#1b487755;border-radius:25px;padding:7px 11px}.tracker-main h1{font:800 26px/1.3 Manrope,sans-serif;letter-spacing:-.8px;margin:17px auto 9px;max-width:380px}.tracker-intro{color:#a8bcd2;font-size:13px;line-height:1.75;margin:0 auto 21px;max-width:390px}.identity-card{background:#101f35;border:1px solid #2b4562;border-radius:14px;display:flex;text-align:left;align-items:center;gap:12px;padding:13px;margin-bottom:14px}.identity-avatar{width:43px;height:43px;border-radius:12px;background:linear-gradient(130deg,#154d9b,#2f90ed);display:grid;place-items:center;font-weight:800}.identity-card label{display:block;font-size:9px;letter-spacing:1.1px;font-weight:800;color:#6b9ed1}.identity-card strong{display:block;margin-top:3px;font-size:14px}.identity-card small{display:block;color:#8fb0cf;font-size:11px;margin-top:2px}.gps-feedback{text-align:left;border:1px solid #345674;background:#10263d;border-radius:12px;padding:12px 15px;margin-bottom:16px}.gps-feedback b{display:block;font-size:12px}.gps-feedback span{display:block;font-size:11px;color:#96afc9;margin-top:5px;line-height:1.6}.gps-feedback.ok{border-color:#177456;background:#0b312e}.gps-feedback.error{border-color:#bc425c;background:#3b1b2b}.consent-area{text-align:left}.consent-check{display:flex;gap:12px;color:#b7cbe2;font-size:12px;line-height:1.7;padding:12px;background:#0d1d32;border:1px solid #284361;border-radius:11px;margin-bottom:16px}.consent-check input{accent-color:#217efa;transform:scale(1.2);align-self:flex-start;margin:5px 0 0}.track-button{background:linear-gradient(105deg,#277ffa,#1055d4);border:1px solid #3988ff;border-radius:13px;width:100%;padding:17px 18px;color:white;font-size:14px;font-weight:800;display:flex;justify-content:space-between;align-items:center;box-shadow:0 10px 25px #0d55d45e}.track-button span{font-size:23px}.live-banner{display:flex;gap:12px;align-items:center;text-align:left;border:1px solid #147c5f;background:#0b4737;border-radius:12px;padding:14px;margin-bottom:17px}.live-banner .pulse-dot{width:12px;height:12px}.live-banner strong{font-size:13px}.live-banner small{display:block;font-size:11px;margin-top:4px;color:#b2e9d7;line-height:1.55}.sos-button{background:#e53c4c;color:white;border:1px solid #ff6876;box-shadow:0 7px 30px #ff40523b;border-radius:13px;width:100%;padding:18px;font-size:14px;font-weight:800;margin-bottom:10px}.stop-button{background:#1d2d42;color:#d5e4f6;border:1px solid #4b6682;width:100%;border-radius:11px;padding:15px;font-size:12px;font-weight:800}.privacy-text{font-size:11px;color:#7f9ab9;text-align:left;line-height:1.8;margin:18px 0}.tracker-foot{text-align:center;font-size:10px;color:#6482a2;border-top:1px solid #1e344f;padding-top:17px}

/* v1.1: apariencia oscura sobre teselas OpenStreetMap, sin API Key; los pines GPS permanecen intactos. */
.map-canvas.map-night .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.68) contrast(1.13) saturate(.78)}
.map-canvas:not(.map-night){background:#e1e7ed}
@media(max-width:680px){#map-style{font-size:10px;padding:7px}}

/* UEP-BM: módulo de comisiones, identidad institucional y accesibilidad móvil */
.commission-headnote,.native-app-tip{padding:13px 15px;border:1px solid rgba(63,145,235,.33);background:rgba(41,105,193,.10);border-radius:12px;color:#c7d8f4;font-size:13px;margin-bottom:13px;line-height:1.5}
.native-app-tip{margin:12px 0 16px}
.native-app-tip p{margin:4px 0 0}
.commission-picker{padding:12px 0 8px}
.commission-picker select,.commission-picker option{width:100%;border:1px solid #30415f;border-radius:10px;background:#142139;color:#fff;padding:13px;font:inherit;margin:7px 0 6px}
.commission-picker small{color:#9cafc8}

/* v1.4 — Comisiones de uno o varios integrantes */
.team-picker{border:1px solid #304767;background:linear-gradient(150deg,#132741,#101d31);border-radius:16px;padding:15px;margin:8px 0 18px}
.team-picker-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.team-picker-top b{font-size:13px}.team-picker-top small{display:block;color:#9ab2cd;font-size:11px;margin-top:4px}
.team-counter{border:1px solid #2b79c7;background:#153e68;color:#a8d7ff;font-weight:800;border-radius:25px;padding:7px 10px;white-space:nowrap;font-size:11px}
.team-picker-tools{display:flex;gap:7px;align-items:center;margin-bottom:11px}.team-picker-tools input{flex:1;min-width:90px;margin:0!important;padding:10px!important}
.team-choices{max-height:225px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.team-choice{border:1px solid #334862;border-radius:11px;padding:9px;display:flex;align-items:center;gap:8px;cursor:pointer;min-width:0;background:#0b182a}
.team-choice[hidden]{display:none}.team-choice.chosen{border-color:#479bff;background:#163c68}.team-choice input{width:16px;height:16px;flex-shrink:0;accent-color:#3987ff}
.team-choice-icon{background:#205385;border-radius:9px;display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;color:white;font-weight:800;font-size:10px}
.team-choice b{font-size:12px;display:block;line-height:1.3;overflow-wrap:anywhere}.team-choice small{font-size:10px;color:#95b0ca;display:block;line-height:1.4}
.team-choice-tick{margin-left:auto;color:#75b5ff;opacity:0}.team-choice.chosen .team-choice-tick{opacity:1}
.commission-groups{display:grid;gap:12px;margin:12px 0}.commission-group{padding:16px;border:1px solid #2a4163;background:#0d1b2e;border-radius:15px}
.commission-group-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.commission-group-head b{font-size:14px}.commission-group-head small{display:block;color:#8fa9c5;font-size:11px;margin-top:6px}
.commission-badge{border-radius:20px;padding:6px 10px;font-size:10px;white-space:nowrap;background:#1c3c67;color:#9dcaff}
.commission-badge.active{background:#094738;color:#86e7c3}.commission-badge.finished{background:#273e51;color:#bdcce0}.commission-badge.cancelled{background:#3d2731;color:#f9a7ac}
.commission-stat{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:#bacce1;font-size:12px;margin:13px 0 10px}.commission-stat strong{color:white;font-size:19px}.commission-stat span{color:#8aabc8}
.commission-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.commission-person{display:flex;gap:8px;align-items:center;background:#101f36;border:1px solid #263d58;border-radius:10px;padding:9px;min-width:0}.commission-person>div{flex:1;min-width:0}.commission-person b{font-size:11px;display:block;white-space:normal;overflow-wrap:anywhere}.commission-person small{font-size:10px;display:block;color:#9ab5d0;margin-top:3px}
.commission-status-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#e4ad39}.commission-status-dot.active{background:#35ce96}.commission-status-dot.finished{background:#92a7bf}.commission-status-dot.cancelled{background:#e46b7a}
.commission-person .action-button{font-size:10px;padding:7px}.commission-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap;margin-top:13px}
.commission-period{color:#839fbb;display:block;margin-top:10px}
@media(max-width:700px){.team-choices,.commission-roster{grid-template-columns:1fr}.team-picker-tools{flex-wrap:wrap}.commission-group-head{flex-wrap:wrap}}

/* v1.6 · Una pantalla independiente por opción del menú */
.workspace[data-view="map"] > #first-banner,
.workspace[data-view="map"] > #demo-banner,
.workspace[data-view="map"] > #metrics,
.workspace[data-view="map"] > #people-panel,
.workspace[data-view="map"] > .footer-note,
.workspace[data-view="people"] > #first-banner,
.workspace[data-view="people"] > #demo-banner,
.workspace[data-view="people"] > #metrics,
.workspace[data-view="people"] > #middle-grid,
.workspace[data-view="people"] > .footer-note,
.workspace[data-view="alerts"] > #first-banner,
.workspace[data-view="alerts"] > #demo-banner,
.workspace[data-view="alerts"] > #metrics,
.workspace[data-view="alerts"] > #people-panel,
.workspace[data-view="alerts"] > .footer-note,
.workspace[data-view="commissions"] > #first-banner,
.workspace[data-view="commissions"] > #demo-banner,
.workspace[data-view="commissions"] > #metrics,
.workspace[data-view="commissions"] > #middle-grid,
.workspace[data-view="commissions"] > #people-panel,
.workspace[data-view="commissions"] > .footer-note,
.workspace[data-view="history"] > #first-banner,
.workspace[data-view="history"] > #demo-banner,
.workspace[data-view="history"] > #metrics,
.workspace[data-view="history"] > #middle-grid,
.workspace[data-view="history"] > #people-panel,
.workspace[data-view="history"] > .footer-note,
.workspace[data-view="settings"] > #first-banner,
.workspace[data-view="settings"] > #demo-banner,
.workspace[data-view="settings"] > #metrics,
.workspace[data-view="settings"] > #middle-grid,
.workspace[data-view="settings"] > #people-panel,
.workspace[data-view="settings"] > .footer-note {display:none!important}
.workspace[data-view="map"] > #middle-grid,
.workspace[data-view="alerts"] > #middle-grid{display:block;margin:0;min-height:0}
.workspace[data-view="map"] .alerts-card,
.workspace[data-view="alerts"] .map-card {display:none!important}
.workspace[data-view="map"] .map-card{height:calc(100dvh - 165px);min-height:500px}
.workspace[data-view="map"] .map-canvas{min-height:0;flex:1}
.workspace[data-view="alerts"] .alerts-card{max-height:none;height:calc(100dvh - 165px);min-height:520px}
.workspace[data-view="alerts"] .alert-feed{grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:13px;align-content:start;overflow-y:auto;padding:16px}
.workspace[data-view="alerts"] .alert-card{min-height:180px}
.workspace[data-view="people"] .people-panel{min-height:530px}
.page-card{padding:22px 25px;min-height:calc(100dvh - 168px)}
.page-card-head{margin-bottom:18px;padding-bottom:15px;border-bottom:1px solid #2b405a}
.page-card-head h2{font:800 22px Manrope,sans-serif;margin:7px 0 0}
.page-content{max-width:1300px}
.page-content p{color:#abc2dc;font-size:13px;line-height:1.65}
.page-content label{display:block;color:#d4e4f6;font-size:12px;font-weight:700;margin:4px 0 8px}
.page-content input,.page-content textarea,.page-content select{background:#0a1729;border:1px solid #38516d;border-radius:9px;padding:12px 13px;color:#edf6ff;outline:none;margin-bottom:15px;font-size:13px;max-width:100%}
.page-content input:focus,.page-content textarea:focus{border-color:#4a93ff}
.page-content input:not([type=checkbox]),.page-content textarea,.page-content select{width:100%}
.page-content .history-list{max-height:none;gap:10px}
.page-content .history-list>div{align-items:center;padding:12px 15px}
.page-content .commission-groups{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:13px}
.page-content .team-choices{max-height:280px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.alert-filters{display:flex;gap:9px;align-items:center;padding:13px 16px 5px;flex-wrap:wrap}
.alert-card{cursor:default}
.alert-buttons{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.alert-buttons .verify{border-color:#2889ad;color:#9bd7fb}
.alert-buttons .dismiss{border-color:#447b68;color:#9ae5c8}
.alert-card.dismissed{opacity:.84;border-left-color:#4cb9a0;background:#0e292b}
.alert-state{display:block;font-size:11px;color:#b9d3ed;margin-top:8px}
.alert-audit{border-left:2px solid #379a87;padding-left:8px;color:#a5d7cd!important}
.map-card:fullscreen,.map-card.map-fullscreen-fallback{background:#071626!important;display:flex!important;flex-direction:column!important;border-radius:0!important;padding:0!important;width:100vw!important;height:100dvh!important;max-width:unset!important;max-height:unset!important}
.map-card:fullscreen .map-canvas,.map-card.map-fullscreen-fallback .map-canvas{flex:1!important;min-height:0!important}
.map-card.map-fullscreen-fallback{position:fixed!important;inset:0!important;z-index:4000!important}
.map-card:fullscreen .map-toolbar,.map-card.map-fullscreen-fallback .map-toolbar{flex:0 0 auto!important}
.alert-popup-host{position:fixed;z-index:3300;bottom:20px;right:22px;display:grid;gap:11px;width:min(410px,calc(100vw - 34px));pointer-events:none;max-height:min(78vh,780px);overflow-y:auto}
.alert-popup{pointer-events:auto;border-radius:14px;padding:16px 18px;border:1px solid #d04b66;border-left:5px solid #ff5566;background:linear-gradient(135deg,#471823 0%,#23172c 100%);box-shadow:0 18px 54px #000c;animation:appear .2s}
.alert-popup.warning{background:linear-gradient(135deg,#49321c,#251e1a);border-color:#e7af49}
.alert-popup.offline{background:linear-gradient(135deg,#1f354f,#101b32);border-color:#91b2d1}
.popup-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.popup-top button{border:none;background:transparent;color:#d9e7f3;font-size:24px;line-height:1}
.popup-warning{font-size:10px;letter-spacing:.8px;color:#ffb7be;font-weight:900}
.alert-popup.warning .popup-warning{color:#ffda92}.alert-popup.offline .popup-warning{color:#b6d6f3}
.alert-popup strong{display:block;font-size:14px;color:white}
.alert-popup p{font-size:12px;line-height:1.5;color:#e0cbd4;margin:7px 0 12px}
.popup-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.modal textarea{width:100%;background:#0a1729;color:#eef5ff;border:1px solid #38516d;border-radius:9px;padding:12px 13px;font-family:inherit;font-size:13px;resize:vertical}
@media(max-width:720px){.workspace[data-view="map"] .map-card{height:calc(100dvh - 150px);min-height:390px}.workspace[data-view="alerts"] .alerts-card{height:auto;min-height:400px}.workspace[data-view="alerts"] .alert-feed{grid-template-columns:1fr}.page-card{padding:16px}.page-content .commission-groups{grid-template-columns:1fr}.alert-popup-host{bottom:12px;right:12px}.popup-actions{justify-content:stretch}.popup-actions button{flex:1}}

/* v2.2 | Búsqueda de lugares en el mapa en vivo */
.map-search-bar{position:relative;background:var(--surface,#0b213c);padding:9px 12px;border-top:1px solid #284e72;z-index:600}
.map-search-form{display:flex;gap:9px}.map-search-form input{min-width:0;flex:1;background:#122c48;color:#f6fbff;border:1px solid #315b82;border-radius:10px;padding:9px 11px;font-size:13px}.map-search-form button{white-space:nowrap}
.map-search-results{position:absolute;left:12px;right:12px;top:calc(100% - 3px);background:#10283f;color:#f1f8ff;z-index:990;border-radius:0 0 13px 13px;box-shadow:0 16px 28px #071728a8;max-height:225px;overflow:auto}
.map-search-results:empty{display:none}.map-search-results .sr-place{display:flex;gap:7px;align-items:center;justify-content:space-between;padding:9px 11px;border-top:1px solid #385471;font-size:12px}
.map-search-results .sr-place-name{min-width:0;overflow-wrap:anywhere;flex:1}.map-search-results .sr-place-actions{display:flex;gap:6px;flex-wrap:wrap}.map-search-results .sr-place button{padding:7px 9px;font-size:11px;border:1px solid #406c93;background:#184269;color:white;border-radius:7px;cursor:pointer}
.theme-light .map-search-bar{background:#f6faff}.theme-light .map-search-form input{background:white;color:#213d5e}.theme-light .map-search-results{background:#eef7ff;color:#16344f}.theme-light .map-search-results .sr-place button{color:white}
@media(max-width:600px){.map-search-form{flex-wrap:wrap}.map-search-form button{max-width:100%}.map-search-results .sr-place{flex-direction:column;align-items:stretch}}

/* v2.7.9: Hitos de comisión - controles compactos dentro de Comisiones */
.milestones-compact{width:100%;max-width:100%;min-width:0}
.milestones-explainer{margin:0 0 13px;color:#a7bfd8;font-size:12px;line-height:1.5}
.milestones-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.milestones-two label{display:block;min-width:0;font-size:12px;font-weight:700;color:#d2e4fb}
.milestones-two select{display:block;width:100%;min-width:0;max-width:100%;padding:10px 9px;background:#0b1a2d;color:#f1f7ff;border:1px solid #395472;border-radius:9px;margin-top:7px}
.milestones-info{background:#0c263c;border:1px solid #254866;color:#b2daf3;font-size:12px;padding:12px;border-radius:10px;margin:10px 0}
.milestones-team{border-top:1px solid #36536a;margin-top:14px;padding-top:10px;font-size:12px;color:#bbd6f0}
.milestones-team summary{cursor:pointer;font-weight:700}.milestones-team p{margin:8px 0}
.milestones-note{color:#e4b15c;font-size:11px}
@media(max-width:620px){.milestones-two{grid-template-columns:1fr}.milestones-compact .modal-actions{gap:7px;flex-wrap:wrap}.milestones-compact .modal-actions button{flex:1;min-width:120px}}
body.theme-light .milestones-explainer{color:#446483}body.theme-light .milestones-two label{color:#16395b}body.theme-light .milestones-two select{color:#143554;background:#fff;border-color:#b2c6dc}
body.theme-light .milestones-info{color:#285172;background:#eff8ff;border-color:#bfd5e4}
body.theme-light .milestones-team{color:#365a77}

/* v2.8: Comisión/corredor e historial filtrado */
.milestones-corridor-option{display:flex;align-items:flex-start;gap:9px;margin:11px 0;color:#c8e7ef;font-weight:600;font-size:12px}
.milestones-corridor-option input{flex:0 0 auto;width:17px;height:17px;accent-color:#10bdb2}
.milestones-map{height:275px;min-height:250px;border-radius:12px;border:1px solid #41627a;margin:10px 0 14px;background:#142f46;overflow:hidden}
.history-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end;margin:12px 0}
.history-filters label{font-size:12px;font-weight:650;color:#cde7f8;display:block}
.history-filters input,.history-filters select{display:block;width:100%;min-width:0;margin-top:6px;background:#11263e;color:#f3f8ff;padding:10px;border:1px solid #416181;border-radius:9px}
.history-table-scroll{overflow:auto;max-height:370px;border:1px solid #36526e;border-radius:10px}
.history-data-table{width:100%;border-collapse:collapse;min-width:680px;font-size:12px}
.history-data-table td,.history-data-table th{padding:9px;border-bottom:1px solid #29415c;text-align:left}
.history-data-table th{position:sticky;top:0;background:#10263c;color:#c9ebfc}
body.theme-light .history-filters label{color:#244763}
body.theme-light .history-filters input,body.theme-light .history-filters select{background:#fff;color:#17314a;border-color:#b0c5d9}
body.theme-light .milestones-corridor-option{color:#284f62}
