@charset "UTF-8";
/* SIT · EMMANUEL GV S.A.C. — consola operativa de transporte (naranja · negro · blanco).
   Layout: cada módulo es una app a pantalla completa (cabecera fija + cuerpo flex). Tema claro deliberado, estilo consola corporativa. */
:root{
  --hd:#18191d; --hd2:#0d0e11; --blue:#e8590c; --bubble:#f59e5b; --sky:#fde3cf; --sky2:#fff1e6;
  --orange:#f26b1d; --green:#2e9e4f; --green2:#43b65f; --red:#d33a2c; --yellow:#f3c623;
  --ink:#18191c; --muted:#5f6368; --line:#dcdcdf; --line2:#ececee; --bg:#f1f1f3; --panel:#ffffff; --zebra:#f8f8f9;
  --f-ui:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-cond:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--ink);font:14px/1.35 var(--f-ui);display:flex;flex-direction:column;overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--orange);outline-offset:1px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums}

:root{ --brand:#f26b1d; --brand-d:#c2410c; --brand-l:#fff1e6; --black:#0d0e11; --black2:#18191d; }
/* ---------- Cabecera corporativa ---------- */
.sit-hd{flex:0 0 auto;height:52px;display:flex;align-items:center;gap:12px;padding:0 14px;background:var(--black);color:#fff;position:relative;z-index:50;box-shadow:inset 0 -3px 0 var(--brand),0 2px 10px rgba(0,0,0,.18)}
.sit-logo{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;flex:0 0 auto}
.sit-logo svg{width:32px;height:32px}
.sit-brand{display:flex;flex-direction:column;line-height:1}
.sit-brand b{font:700 17px/1 var(--f-cond);letter-spacing:.08em}
.sit-brand span{font:600 9.5px/1.2 var(--f-cond);letter-spacing:.16em;color:#a9abb2;margin-top:2px}
nav.hm{display:flex;align-items:center;position:relative;flex:0 0 auto}
.hm-burger{display:none;background:#1f2024;border:1px solid #2c2e33;color:#fff;border-radius:6px;width:36px;height:32px;font-size:16px}
.hm-tabs{display:flex;align-items:stretch;gap:2px;height:52px}
.hm-tab{position:relative;display:flex}
.hm-tab>button{display:flex;align-items:center;gap:6px;background:none;border:0;color:#d9dadd;padding:0 11px;height:52px;border-bottom:3px solid transparent;font:600 13.5px var(--f-ui)}
.hm-tab>button i{font-style:normal;font-size:10px;opacity:.6}
.hm-tab>button .hm-k{display:none;font:700 10.5px var(--f-cond);letter-spacing:.08em;color:#8b8e95;border:1px solid #34363c;border-radius:3px;padding:1px 4px}
@media (min-width:1700px){ .hm-tab>button .hm-k{display:inline} }
.hm-tab>button:hover,.hm-tab.open>button{background:#1a1b1f;color:#fff}
.hm-tab.on>button{color:#fff;border-bottom-color:var(--brand)}
.hm-tab.on>button .hm-k{color:var(--brand);border-color:var(--brand)}
.hm-drop{display:none;position:absolute;left:0;top:100%;background:#fff;color:var(--ink);border-radius:0 0 10px 10px;border-top:3px solid var(--brand);box-shadow:0 18px 40px rgba(0,0,0,.28);padding:10px;gap:4px 18px;z-index:60;min-width:260px}
.hm-tab.open .hm-drop{display:flex}
.hm-col{min-width:210px}
.hm-col h6{margin:6px 8px 4px;font:700 10.5px var(--f-cond);letter-spacing:.14em;color:var(--brand-d);text-transform:uppercase}
.hm-col a{display:block;padding:6px 10px;border-radius:6px;color:var(--ink);text-decoration:none;font-size:13.5px;white-space:nowrap}
.hm-col a:hover{background:var(--brand-l);color:var(--brand-d)}
.hm-col a.cur{background:var(--black2);color:#fff;font-weight:600}
.sit-crumb{display:flex;align-items:center;gap:8px;padding-left:12px;border-left:1px solid #2c2e33;min-width:0}
.sit-crumb .sys{display:none;font:700 11px var(--f-cond);letter-spacing:.1em;color:var(--brand);border:1px solid rgba(242,107,29,.55);padding:2px 6px;border-radius:3px}
.sit-crumb .sys:empty{display:none}
.sit-crumb .pg{font:600 15.5px var(--f-cond);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f4f4f5}
.sit-hd .grow{flex:1}
.sit-hd-extra{display:flex;align-items:center;gap:8px}
.sit-hd select,.sit-hd .hbtn{background:#1f2024;border:1px solid #34363c;color:#fff;border-radius:6px;padding:4px 8px;font-size:13px}
.sit-hd select option{color:var(--ink)}
.sit-menu{position:relative}
.sit-menu-list{position:absolute;right:0;top:calc(100% + 9px);background:#fff;color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:0 0 10px 10px;box-shadow:0 18px 40px rgba(0,0,0,.25);min-width:280px;padding:8px;display:none;max-height:calc(100vh - 70px);overflow:auto}
.sit-menu.open .sit-menu-list{display:block}
.sit-menu-list h6{margin:8px 8px 2px;font:700 10.5px var(--f-cond);letter-spacing:.14em;color:var(--muted)}
.sit-menu-list a{display:block;padding:7px 10px;border-radius:6px;color:var(--ink);text-decoration:none}
.sit-menu-list a:hover,.sit-menu-list a.cur{background:var(--brand-l);color:var(--brand-d)}
.sit-menu-list a.out{color:#b42318;font-weight:600}
.hu-btn{display:flex;align-items:center;gap:8px;background:none;border:1px solid transparent;border-radius:8px;padding:3px 6px;color:#fff}
.hu-btn:hover,.hu.open .hu-btn{background:#1a1b1f;border-color:#2c2e33}
.hu-btn i{font-style:normal;font-size:10px;opacity:.6}
.hu-av{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--brand);color:#fff;font:700 12.5px var(--f-ui);flex:0 0 auto}
.hu-av.lg{width:42px;height:42px;font-size:15px}
.hu-tx{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;max-width:170px}
.hu-tx b{font:600 13px var(--f-ui);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.hu-tx small{font-size:11px;color:#a9abb2}
.hu-card{display:flex;gap:10px;align-items:center;padding:6px 6px 10px;margin-bottom:4px;border-bottom:1px solid var(--line2)}
.hu-card b{display:block;font-size:14px}.hu-card small{display:block;font-size:11.5px;color:var(--muted)}
.sit-clock{font:600 17px var(--f-mono);letter-spacing:.04em;font-variant-numeric:tabular-nums;color:#f4f4f5;padding:3px 9px;border-radius:6px;background:#1a1b1f;border:1px solid #2c2e33}
.sit-sync{font:600 10.5px var(--f-cond);letter-spacing:.1em;padding:3px 7px;border-radius:4px;color:#9be1ae;background:rgba(67,182,95,.12);border:1px solid rgba(67,182,95,.45)}
.sit-sync.flash{background:rgba(67,182,95,.4)}
@media (max-width:1560px){ .sit-brand span{display:none} .hu-tx{display:none} }
@media (max-width:1380px){ .sit-crumb .pg{max-width:18vw} }
@media (max-width:1240px){ .sit-crumb{display:none} }
@media (max-width:1100px){
  .hm-burger{display:block} .hm-tabs{display:none;position:fixed;left:8px;right:8px;top:56px;flex-direction:column;height:auto;background:#fff;border-top:3px solid var(--brand);border-radius:0 0 10px 10px;box-shadow:0 18px 40px rgba(0,0,0,.3);padding:6px;min-width:280px;max-height:calc(100vh - 70px);overflow:auto}
  nav.hm.open .hm-tabs{display:flex} .hm-tab{flex-direction:column} .hm-tab>button{height:40px;color:var(--ink);border-bottom:0;border-radius:6px} .hm-tab>button:hover,.hm-tab.open>button{background:var(--brand-l);color:var(--brand-d)}
  .hm-tab.on>button{color:var(--brand-d)} .hm-drop{position:static;box-shadow:none;border:0;padding:0 0 6px 8px;flex-direction:column;min-width:0} .hm-col{min-width:0}
}
.sit-main{flex:1 1 auto;min-height:0;display:flex;position:relative}

/* ---------- Controles básicos ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 11px;font-size:13px;line-height:1.2;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}
.btn:hover{border-color:var(--brand);color:var(--brand-d)}
.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.btn.pri:hover{background:var(--brand-d);border-color:var(--brand-d);color:#fff}
.btn.ok:hover,.btn.warn:hover,.btn.danger:hover{color:#fff;filter:brightness(.93)}
.btn.ok{background:var(--green);border-color:var(--green);color:#fff}
.btn.warn{background:#18191d;border-color:#18191d;color:#fff}
.btn.danger{background:var(--red);border-color:var(--red);color:#fff}
.btn.sm{padding:2px 7px;font-size:12px}
.btn.icon{padding:4px 7px}
.btn:disabled{opacity:.5;cursor:default}
.inp,.sel{border:1px solid var(--line);border-radius:6px;padding:5px 7px;background:#fff;min-width:0;font-size:13px}
.inp:focus,.sel:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 2px rgba(232,89,12,.15)}
.inp.sm,.sel.sm{padding:2px 5px;font-size:12px}
label.chk{display:inline-flex;align-items:center;gap:5px;font-size:13px;cursor:pointer;white-space:nowrap}
.fld{display:flex;flex-direction:column;gap:3px;min-width:0}
.fld>span{font:600 11.5px var(--f-cond);letter-spacing:.06em;color:var(--muted);text-transform:uppercase}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#222;vertical-align:middle}
.dot.on{background:var(--orange);box-shadow:0 0 0 2px rgba(242,107,29,.25),0 0 7px rgba(242,107,29,.9)}
.dot.g{background:var(--green2);box-shadow:0 0 6px var(--green2)}
.pill{display:inline-block;padding:1px 7px;border-radius:10px;font:600 11.5px var(--f-cond);letter-spacing:.04em;background:var(--line2);color:var(--muted)}
.pill.g{background:#dcf2e2;color:#1e7a3a}.pill.r{background:#fbe0dd;color:#a3271b}.pill.o{background:#fde9d2;color:#9a560a}.pill.b{background:var(--sky2);color:var(--hd)}
.badge-r{display:inline-grid;place-items:center;width:22px;height:20px;border-radius:3px;background:var(--orange);color:#fff;font:700 12px var(--f-cond);border:0}
.badge-y{display:inline-grid;place-items:center;width:20px;height:18px;border-radius:3px;background:var(--yellow);color:#4a3a00;font:700 11px var(--f-cond)}
.x-red{display:inline-grid;place-items:center;width:20px;height:18px;border-radius:3px;background:var(--red);color:#fff;font:700 12px/1 var(--f-ui);border:0}
.info-i{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#3aa7e0;color:#fff;font:italic 700 12px Georgia,serif;border:0}

/* ---------- Tablas ---------- */
.tbl-wrap{overflow:auto;min-height:0;background:#fff}
table.tbl{border-collapse:collapse;width:100%;font-size:12.5px}
.tbl th{position:sticky;top:0;z-index:2;background:var(--black2);color:#fff;font:600 11.5px var(--f-cond);letter-spacing:.06em;text-transform:uppercase;padding:6px 6px;text-align:left;white-space:nowrap;border-right:1px solid rgba(255,255,255,.15)}
.tbl td{padding:4px 6px;border-bottom:1px solid var(--line2);white-space:nowrap;font-variant-numeric:tabular-nums}
.tbl tbody tr:nth-child(even) td{background:var(--zebra)}
.tbl tbody tr:hover td{background:#fff6e6}
.tbl tbody tr.sel td{background:#ffe7c2}
.tbl.sky td{background:var(--sky)!important;border-bottom-color:#f6c7a4}
.tbl.sky tbody tr:hover td{background:#f8d3b5!important}
.tbl .c{text-align:center}
.empty{padding:22px;text-align:center;color:var(--muted)}

/* ---------- Modales ---------- */
.mdl-back{position:fixed;inset:0;background:rgba(10,10,12,.45);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}
.mdl{background:#fff;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.35);display:flex;flex-direction:column;max-height:calc(100% - 20px);max-width:100%;overflow:hidden}
.mdl-hd{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--black);color:#fff;font:600 15.5px var(--f-cond);letter-spacing:.04em;box-shadow:inset 0 -3px 0 var(--brand)}
.mdl-hd .x{margin-left:auto;background:none;border:0;color:#fff;font-size:18px;line-height:1;padding:0 4px}
.mdl-bd{padding:14px;overflow:auto;min-height:0}
.mdl-ft{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--line2);background:#f8f8f9}
.tabs{display:flex;gap:2px;border-bottom:2px solid var(--black2);flex-wrap:wrap}
.tabs button{border:1px solid var(--line);border-bottom:0;background:#f3f3f5;padding:6px 12px;border-radius:4px 4px 0 0;font-size:13px}
.tabs button.on{background:var(--black2);color:#fff;border-color:var(--black2);box-shadow:inset 0 -3px 0 var(--brand)}
.tabpane{padding-top:12px}
.grid{display:grid;gap:10px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* ---------- Toast ---------- */
.toasts{position:fixed;top:62px;right:14px;z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{background:#1f2024;color:#fff;padding:10px 14px;border-radius:8px;border-left:4px solid var(--brand);box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:13.5px;max-width:360px;animation:tin .2s ease-out}
.toast.ok{background:var(--green)}.toast.err{background:var(--red)}.toast.warn{background:var(--orange)}
@keyframes tin{from{transform:translateY(-6px);opacity:0}}

/* ---------- Motor de mapa SIT ---------- */
.smap{position:relative;overflow:hidden;background:#e9e9ec;user-select:none;-webkit-user-select:none;touch-action:none;cursor:grab}
.smap.dragging{cursor:grabbing}
.smap.cross{cursor:crosshair}
.smap-tiles,.smap-svg,.smap-mk,.smap-pop{position:absolute;inset:0}
.smap-tiles img{position:absolute;width:256px;height:256px;max-width:none;pointer-events:none}
.smap-svg{width:100%;height:100%;overflow:visible}
.smap-svg .hit{cursor:pointer}
.smap-mk,.smap-pop{pointer-events:none}
.smap-mk>*,.smap-pop>*{pointer-events:auto}
.smap-zoom{position:absolute;left:10px;top:10px;display:flex;flex-direction:column;z-index:5;box-shadow:0 1px 4px rgba(0,0,0,.3);border-radius:4px;overflow:hidden}
.smap-zoom button{width:30px;height:30px;border:0;border-bottom:1px solid var(--line);background:#fff;font:700 18px/1 var(--f-ui)}
.smap-attr{position:absolute;right:0;bottom:0;background:rgba(255,255,255,.8);font-size:10.5px;padding:1px 6px;z-index:5;color:#444}
.smap-note{position:absolute;left:50%;transform:translateX(-50%);bottom:6px;background:rgba(17,18,21,.88);color:#fff;font-size:11.5px;padding:3px 10px;border-radius:10px;z-index:5;pointer-events:none;white-space:nowrap}
.smap-title{position:absolute;left:50px;top:10px;z-index:5;background:var(--black);box-shadow:inset 0 -2px 0 var(--brand);color:#fff;font:600 13px var(--f-cond);letter-spacing:.06em;padding:5px 10px;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.vlabel{font:600 11px var(--f-cond);letter-spacing:.12em;fill:#82858c;text-transform:uppercase}
.vstreet{font:500 10px var(--f-ui);fill:#8f9299}

/* bus marker */
.bus{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;cursor:pointer}
.bus .arw{width:24px;height:24px;border-radius:50%;background:var(--orange);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45);display:grid;place-items:center}
.bus .arw svg{width:14px;height:14px}
.bus.wait .arw{background:#8b8e95}
.bus.off .arw{background:#222}
.bus.late .arw{background:var(--red)}
.bus .lbl{margin-top:1px;background:#fff;border:1px solid #a3a6ad;font:700 10.5px var(--f-mono);padding:0 3px;border-radius:2px;white-space:nowrap}
.bus.selected .arw{outline:3px solid var(--bubble);outline-offset:1px}
.term{position:absolute;transform:translate(-50%,-100%);font:700 10.5px var(--f-cond);letter-spacing:.08em;background:var(--hd);color:#fff;padding:2px 6px;border-radius:3px;white-space:nowrap}
.term::after{content:"";position:absolute;left:50%;bottom:-5px;margin-left:-5px;border:5px solid transparent;border-bottom:0;border-top-color:var(--hd)}

/* popup genérico */
.spop{position:absolute;transform:translate(-50%,calc(-100% - 16px));background:#fff;border-radius:5px;box-shadow:0 6px 22px rgba(0,0,0,.35);min-width:180px}
.spop::after{content:"";position:absolute;left:50%;bottom:-9px;margin-left:-9px;border:9px solid transparent;border-bottom:0;border-top-color:#fff}
.spop-x{position:absolute;right:4px;top:3px;border:0;background:none;font-size:15px;color:#fff;z-index:2}

@media (max-width:760px){
  .sit-brand span,.sit-user span,.sit-hd-extra .hide-sm{display:none}
  .sit-hd{gap:8px;padding:0 8px}
  .sit-clock{font-size:15px;padding:2px 6px}
  .g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- Layout T-REG (menú lateral corporativo) ---------- */
.treg{display:flex;min-width:0}
.treg-nav{flex:0 0 240px;background:#141518;color:#d9dadd;overflow:auto;padding:10px 0 16px;font-size:13.5px;border-right:1px solid #000}
.treg-nav h5{margin:14px 16px 6px;font:700 10.5px var(--f-cond);letter-spacing:.16em;color:#8b8e95;display:flex;align-items:center;gap:6px;text-transform:uppercase}
.treg-nav a{display:block;margin:1px 8px;padding:7px 12px;color:#d9dadd;text-decoration:none;border-radius:6px;line-height:1.25;border-left:3px solid transparent}
.treg-nav a:hover{background:#1f2024;color:#fff}
.treg-nav a.cur{background:rgba(242,107,29,.14);border-left-color:var(--brand);color:#fff;font-weight:600}
.treg-body{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}
.treg-title{display:flex;align-items:baseline;gap:12px;padding:12px 16px 10px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.treg-title h1{margin:0;font:700 22px var(--f-cond);letter-spacing:.02em;color:var(--black2);padding-left:10px;border-left:4px solid var(--brand);line-height:1.05}
.treg-title .sub{color:var(--muted);font-size:12.5px}
.toolbar{display:flex;align-items:flex-end;gap:10px;padding:9px 14px;background:#f8f8f9;border-bottom:1px solid var(--line);flex-wrap:wrap}
.treg-body>.tbl-wrap{flex:1}
.foot{padding:6px 14px;font-size:12px;color:var(--muted);background:#fff;border-top:1px solid var(--line)}
.photo{width:190px;height:140px;border:1px dashed var(--line);border-radius:4px;background:#f2f5f9 center/cover no-repeat;display:grid;place-items:center;color:var(--muted);font-size:12px}
.msel{position:relative}
.msel-btn{width:100%;text-align:left;display:flex;justify-content:space-between;gap:6px;overflow:hidden}
.msel-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msel-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 2px);background:#fff;border:1px solid var(--line);border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.18);max-height:240px;overflow:auto;padding:4px;display:none}
.msel.open .msel-list{display:block}
.msel-list label{display:flex;gap:6px;padding:4px 6px;border-radius:3px;font-size:13px}
.msel-list label:hover{background:var(--sky2)}
@media (max-width:860px){ .treg-nav{display:none} body{overflow:auto} }
.mini{width:100%;border-collapse:collapse;font-size:12.5px}
.mini th{background:var(--sky2);color:var(--ink);text-align:left;padding:4px 6px;font:600 11.5px var(--f-cond);letter-spacing:.05em;position:static}
.mini td{padding:4px 6px;border-bottom:1px solid var(--line2)}
.status{font-size:12px;min-height:16px}
.sit-crumb .sys,.sit-sync,.sit-hd .hbtn,.sit-user{white-space:nowrap}
#engineSel{max-width:210px}
@media (max-width:1320px){ .sit-brand span{display:none} }
@media (max-width:1100px){ .sit-sync{display:none} #engineSel{max-width:150px} }
@media (max-width:760px){ .sit-crumb{display:none} #engineSel{max-width:118px} .sit-hd .hbtn{padding:4px 6px} .sit-user{display:none} }

.smk.anim{transition:left .95s linear,top .95s linear}
.smap.moving .smk.anim,.smap.dragging .smk.anim{transition:none}
.smap-tiles,.smap-svg,.smap-mk,.smap-pop{will-change:transform}

/* página sin autorización de módulo */
.sit-noauth{position:fixed;inset:52px 0 0 0;z-index:900;background:rgba(244,244,245,.97);display:grid;place-items:center;padding:16px}
.sit-noauth div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:22px 24px;max-width:420px;text-align:center;box-shadow:0 6px 24px rgba(10,10,12,.15)}
.sit-noauth b{display:block;font:700 20px var(--f-cond);color:var(--hd);margin-bottom:6px}
.sit-noauth p{margin:0 0 14px;color:#3f4247;font-size:14px}
@media (max-width:420px){ .sit-clock{font-size:12.5px;padding:2px 4px} #engineSel{max-width:96px} }
@media (max-width:520px){ .sit-hd{gap:8px;padding:0 10px} .sit-brand b{font-size:15px} .sit-clock{font-size:13px;padding:2px 6px} .hu-btn i{display:none} }
@media (max-width:400px){ .sit-brand{display:none} }

/* ===== Celular: la página crece hacia abajo y se desplaza con el dedo =====
   En PC cada módulo cabe en la pantalla y sus paneles tienen barra propia; en un celular eso deja tablas
   aplastadas en cajas pequeñas. Aquí todo se apila en una sola columna a su alto natural: las tablas muestran
   todas sus filas (con desplazamiento lateral si son anchas) y los mapas tienen un alto fijo cómodo.
   Servicio, Localizador y el simulador de tablet tienen su propio diseño de app (body.app-movil). */
@media (max-width:860px){
  html:has(body:not(.app-movil)){height:auto}
  body:not(.app-movil){height:auto;min-height:100vh;min-height:100dvh;overflow:visible;display:block}
  body:not(.app-movil) .sit-hd{position:sticky;top:0}
  body:not(.app-movil) .sit-main{display:flex;flex-direction:column;flex:none;height:auto;min-height:0;overflow:visible}
  body:not(.app-movil) .sit-main *{max-height:none}
  body:not(.app-movil) .sit-main > *{flex:none!important;width:auto!important;max-width:100%;min-width:0;height:auto;min-height:0;border-right:0}
  body:not(.app-movil) .sit-main :is(aside,section,div,form):not(.smap):not(.smap *):not(.tbl-wrap){overflow-y:visible}
  body:not(.app-movil) .tbl-wrap{flex:none;height:auto;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}
  body:not(.app-movil) .smap{position:relative!important;inset:auto!important;width:100%!important;height:62vh!important;min-height:320px;flex:none}
  body:not(.app-movil) .tbl td, body:not(.app-movil) .tbl th{white-space:nowrap}
  body:not(.app-movil) .btn, body:not(.app-movil) .sel, body:not(.app-movil) .inp{min-height:36px}
  /* listas de unidades / controles en el panel lateral: caja con su propio desplazamiento para no empujar el mapa o la matriz */
  body:not(.app-movil) .sit-main aside :is(.tbl-wrap,.rp-u,.lista-u){max-height:40vh!important;overflow-y:auto!important;border-bottom:2px solid var(--line)}
}
