/* Estilos de la consola de SEGURPRO (antes dentro de index.html). Las variables de color las define /tema.js. */
  :root{--bg:#000000;--panel:#111111;--panel2:#0a0a0a;--line:#262626;--brand:#2563eb;--brand2:#1d4ed8;--gold:#f5c542;--text:#ededed;--muted:#a1a1aa;--ok:#16a34a;--danger:#dc2626}
  *{box-sizing:border-box}
  body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--f000);color:var(--text);min-height:100vh}
  .login{min-height:100vh;display:grid;place-items:center;padding:24px}
  .card{width:100%;max-width:420px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
  .brand{font-size:26px;font-weight:800;letter-spacing:.5px}
  .brand span{color:var(--gold)}
  .sub{color:var(--muted);font-size:13px;margin:2px 0 22px}
  .steps{display:flex;gap:8px;margin-bottom:22px}
  .dot{flex:1;height:6px;border-radius:6px;background:var(--line)}
  .dot.on{background:var(--brand)}
  label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px}
  input,select,textarea{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font-size:14px;outline:none;font-family:inherit}
  input:focus,select:focus,textarea:focus{border-color:var(--brand)}
  button{padding:12px;border:0;border-radius:10px;background:var(--brand);color:#fff;font-size:14px;font-weight:600;cursor:pointer}
  button:hover{background:var(--brand2)}
  button:disabled{opacity:.5;cursor:default}
  .btn-block{width:100%;margin-top:20px}
  .msg{margin-top:14px;font-size:13px;padding:10px 12px;border-radius:8px;display:none}
  .msg.err{display:block;background:rgba(220,38,38,.12);color:var(--texto-peligro);border:1px solid rgba(220,38,38,.3)}
  .msg.info{display:block;background:rgba(var(--brand-rgb),.12);color:var(--texto-info);border:1px solid rgba(var(--brand-rgb),.3)}
  .msg.ok{display:block;background:rgba(22,163,74,.12);color:var(--texto-ok);border:1px solid rgba(22,163,74,.3)}
  .hint{font-size:12px;color:var(--muted);margin-top:10px;text-align:center}
  .hidden{display:none !important}
  .topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-bottom:1px solid var(--line);background:var(--panel)}
  .topbar .brand{font-size:20px}
  .who{font-size:13px;color:var(--muted);text-align:right}
  .who b{color:var(--text);display:block}
  .logout{background:transparent;border:1px solid var(--line);color:var(--muted);padding:8px 14px;font-size:13px}
  .tm-color{display:flex;align-items:center;gap:10px}.tm-color input[type=color]{width:58px;height:42px;padding:3px;border-radius:10px;cursor:pointer;flex:0 0 58px}.tm-color code{font-size:13px;color:var(--muted)}
  .tm-pre{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}.tm-pre button{width:auto;display:inline-flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:8px 12px;font-size:13px;font-weight:600}
  .tm-pre button:hover{background:var(--panel2);border-color:var(--muted)}.tm-pre button.on{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.tm-pre i{display:inline-block;width:18px;height:18px;border-radius:50%;border:1px solid rgba(var(--velo),.3)}
  .tm-muestra{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:12px;border:1px dashed var(--line);border-radius:12px;margin-bottom:8px}.tm-muestra button{width:auto;padding:9px 14px;font-size:13px;cursor:default}.tm-muestra .ac{background:var(--acento);color:#111}.tm-muestra b{color:var(--gold)}.tm-muestra a{color:var(--brand-t);font-size:13px;font-weight:600}
  .btn-tema{display:inline-flex;align-items:center;gap:6px;width:auto;margin:0}.btn-tema svg{flex:none}
  #temaIngreso .btn-tema{background:rgba(var(--acento-rgb),.08);border:1px solid rgba(var(--acento-rgb),.45);color:var(--text);border-radius:24px;padding:11px 14px}#temaIngreso .tema-tx{display:none}
  @media (max-width:900px){#temaSitio .tema-tx{display:none}}
  /* Tema claro: lo que no sale de una variable */
  [data-tema=claro] .l3-texto h1 span{background:linear-gradient(90deg,var(--gold),var(--acento-osc));-webkit-background-clip:text;background-clip:text}
  [data-tema=claro] .l3-a{opacity:.22}[data-tema=claro] .l3-b{opacity:.16}
  [data-tema=claro] .card,[data-tema=claro] .lg-card,[data-tema=claro] .l3-panel{box-shadow:0 18px 50px rgba(15,23,42,.14)}
  [data-tema=claro] .overlay{background:rgba(15,23,42,.45)}
  .logout:hover{background:var(--panel2)}
  .layout{display:flex;min-height:calc(100vh - 57px)}
  .side{width:210px;border-right:1px solid var(--line);background:var(--panel);padding:16px 10px;flex-shrink:0}
  .nav{display:block;width:100%;text-align:left;background:transparent;color:var(--muted);padding:11px 14px;border-radius:9px;font-size:14px;font-weight:500;margin-bottom:4px;border:0;cursor:pointer}
  .nav:hover{background:var(--panel2);color:var(--text)}
  .nav.active{background:var(--brand);color:#fff}
  .main{flex:1;padding:24px;overflow:auto}
  h2{font-size:15px;color:var(--muted);font-weight:600;margin:0 0 16px;text-transform:uppercase;letter-spacing:.5px}
  .page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
  .page-head h1{font-size:22px;margin:0}
  .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}
  .kpi{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px}
  .kpi .n{font-size:32px;font-weight:800}
  .kpi .l{color:var(--muted);font-size:13px;margin-top:4px}
  .kpi.alert .n{color:var(--gold)}
  .perms{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
  .chip{font-size:11px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);padding:4px 8px;border-radius:6px;font-family:ui-monospace,monospace}
  .toolbar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
  .toolbar input,.toolbar select{width:auto;flex:0 0 auto;padding:9px 12px;font-size:14px}
  .toolbar .search{flex:1;min-width:200px}
  .table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
  table{width:100%;border-collapse:collapse}
  th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel2)}
  td{padding:12px 16px;border-bottom:1px solid var(--line);font-size:14px}
  tr:last-child td{border-bottom:0}
  tr:hover td{background:rgba(var(--velo),.02)}
  .badge{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600}
  .badge.activo,.badge.aprobado{background:rgba(22,163,74,.15);color:var(--texto-ok)}
  .badge.inactivo,.badge.en_curso{background:rgba(148,163,184,.15);color:var(--t94a3b8)}
  .badge.retirado,.badge.vencido{background:rgba(220,38,38,.15);color:var(--texto-peligro)}
  .row-actions{display:flex;gap:8px}
  .icon-btn{background:transparent;border:1px solid var(--line);color:var(--muted);padding:6px 10px;font-size:13px;border-radius:8px}
  .icon-btn:hover{background:var(--panel2);color:var(--text)}
  .icon-btn.danger:hover{border-color:var(--danger);color:var(--texto-peligro)}
  .empty{padding:40px;text-align:center;color:var(--muted)}
  .pager{display:flex;justify-content:space-between;align-items:center;margin-top:14px;color:var(--muted);font-size:13px}
  .pager button{background:var(--panel);border:1px solid var(--line);color:var(--text);padding:7px 14px;font-size:13px}
  .pager button:disabled{opacity:.4}
  .overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:grid;place-items:center;padding:20px;z-index:50}
  .modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px;width:100%;max-width:1000px;max-height:92vh;overflow-y:auto;overflow-x:hidden}
  .modal h3{margin:0 0 6px;font-size:18px}
  .modal .msub{color:var(--muted);font-size:13px;margin-bottom:16px}
  .tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:18px}
  .tab{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;padding:9px 12px;font-size:13px;border-radius:0;cursor:pointer}
  .tab:hover{color:var(--text)}
  .tab.active{color:var(--text);border-bottom-color:var(--brand)}
  .tabpane{display:none}
  .tabpane.active{display:block}
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .form-grid label{margin-top:2px}
  .full{grid-column:1 / -1}
  .switches{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px}
  .switch{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}
  .switch input{width:auto}
  .modal-actions{display:flex;gap:10px;justify-content:flex-end;margin:22px 0 -24px;position:sticky;bottom:-24px;background:var(--panel);padding:12px 0 24px;z-index:2}
  .modal-actions .cancel{background:transparent;border:1px solid var(--line);color:var(--muted)}
  .subsec{margin-top:6px}
  .subsec .addrow{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
  .subsec .addrow input,.subsec .addrow select{flex:1;min-width:110px;width:auto}
  .subsec .addrow button{flex:0 0 auto}
  .mini{font-size:13px}
  .mini td,.mini th{padding:8px 10px}
  .note{font-size:12px;color:var(--muted);margin-top:4px}
  .revisar{border-color:var(--gold)!important;box-shadow:0 0 0 1px var(--gold)}
  .tab{white-space:nowrap}
  .pq-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 18px;margin:16px 0 14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px}
  .pq-d span{display:block;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
  .pq-d b{font-weight:600;overflow-wrap:anywhere}
  .pq-d a{color:inherit;text-decoration-color:var(--gold)}
  .pq-txt{border:1px solid var(--line);border-radius:10px;padding:12px 14px;line-height:1.5;overflow-wrap:anywhere;max-height:260px;overflow:auto}
  .pq-acc{margin-top:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:rgba(148,163,184,.05)}
  .pq-seg{display:grid;gap:8px;max-height:240px;overflow:auto}
  .pq-seg > div{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;font-size:13px;line-height:1.45}
  .pq-seg small{display:block;color:var(--muted);font-size:12px}
  /* Panel de control: secciones plegadas y vistas separadas */
  #pagePanel .pcard.plegable > .pcard-head{cursor:pointer;margin-bottom:0;align-items:flex-start}
  #pagePanel .pcard.plegable > .pcard-head h2{display:flex;align-items:center;gap:8px}
  #pagePanel .pcard.plegable > .pcard-head h2::before{content:"›";display:inline-block;color:var(--gold);font-size:20px;line-height:1;transition:transform .15s ease}
  #pagePanel .pcard.plegable.abierta > .pcard-head h2::before{transform:rotate(90deg)}
  #pagePanel .pcard.plegable > .pcard-head:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:8px}
  #pagePanel .pc-res{font-size:13px;color:var(--muted);margin:3px 0 0 26px}
  #pagePanel .pcard.plegable:not(.abierta) > :not(.pcard-head){display:none !important}
  #pagePanel .pcard.plegable:not(.abierta) > .pcard-head > button{display:none !important}
  #pagePanel .pcard.plegable.abierta > .pcard-head{margin-bottom:16px}
  #pagePanel .pcard.vacia, #pagePanel .pcard.sin-coincidencia{display:none !important}
  #pagePanel[data-vista="general"]:not([data-buscando]) .pcard:not([data-vista="general"]),
  #pagePanel[data-vista="th"]:not([data-buscando]) .pcard:not([data-vista="th"]),
  #pagePanel[data-vista="op"]:not([data-buscando]) .pcard:not([data-vista="op"]),
  #pagePanel[data-vista="com"]:not([data-buscando]) .pcard:not([data-vista="com"]){display:none !important}
  #pagePanel .form-grid > .no-coincide, #pagePanel .alrow.no-coincide{display:none}
  #pagePanel textarea[data-clave]{min-height:120px;font-family:inherit;line-height:1.5}
  .side .nav[data-page^="panel_"]{display:flex;align-items:flex-start;line-height:1.25}
  .side .nav[data-page^="panel_"] svg{flex:none;margin-top:1px;vertical-align:0}
  #pagePanel .pc-donde{display:none;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--gold);margin:0 0 2px 26px}
  #pagePanel[data-buscando] .pc-donde{display:block}
  .navbadge{background:#dc2626;color:#fff;border-radius:10px;font-size:11px;padding:1px 7px;margin-left:6px;font-weight:700}
  .pcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:18px}
  .pcard-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:10px}
  .pcard-head h2{margin:0}
  .fhelp{font-size:12px;color:var(--muted);margin-top:4px}
  .alrow{display:grid;grid-template-columns:44px 1fr 300px;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
  .alrow:last-child{border-bottom:0}
  .sw{position:relative;width:42px;height:24px;display:inline-block}
  .sw input{opacity:0;width:0;height:0}
  .sw span{position:absolute;inset:0;background:var(--line);border-radius:24px;cursor:pointer;transition:.2s}
  .sw span:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
  .sw input:checked+span{background:var(--brand)}
  .sw input:checked+span:before{transform:translateX(18px)}
  .dias{display:flex;align-items:center;gap:6px}
  .dias input{width:80px;text-align:center}
  .pc-edit{display:flex;gap:8px;flex-wrap:wrap}
  .pc-edit input,.pc-edit select{width:auto;flex:1;min-width:160px}
  .pc-edit button{flex:0 0 auto}
  .bio-fotos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  @media (max-width:900px){.manos{grid-template-columns:1fr}}
  .bio-slot{border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center;background:var(--panel2)}
  .bio-img{height:170px;border-radius:8px;display:grid;place-items:center;overflow:hidden;background:var(--f050505);margin-bottom:8px}
  .bio-img img{max-width:100%;max-height:100%}
  .manos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:10px}
  .mano-t{font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:600}
  .dedos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
  .dedo{min-width:0;border:1px solid var(--line);border-radius:10px;padding:6px;text-align:center;background:var(--panel2);font-size:11px}
  .dedo.ok{border-color:#16a34a}
  .dedo .th{height:62px;display:grid;place-items:center;overflow:hidden;border-radius:6px;background:var(--f050505);margin-bottom:4px;font-size:22px}
  .dedo .th img{max-width:100%;max-height:100%}
  .dedo button{padding:4px 6px;font-size:11px;margin-top:3px;width:100%}
  .cambio{font-size:13px;padding:3px 0}
  .cambio s{color:var(--texto-peligro)}
  .cambio b{color:var(--texto-ok);font-weight:600}
  .splash{position:fixed;inset:0;background:var(--f000);display:grid;place-items:center;z-index:200;transition:opacity .35s}
  .splash img{width:150px;filter:drop-shadow(0 10px 30px rgba(0,0,0,.5));animation:latido 1.2s ease-in-out infinite}
  .splash.fuera{opacity:0;pointer-events:none}
  @keyframes latido{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
  .login-logo{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:6px}
  .login-logo img{width:110px;margin-bottom:10px}
  .login-logo .empresa{font-size:18px;font-weight:700}
  .top-logo{display:flex;align-items:center;gap:10px}
  .top-logo img{height:36px}
  .neto-box{background:linear-gradient(135deg,rgba(var(--brand-rgb),.18),rgba(var(--acento-rgb),.12));border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:10px}
  .neto-box .n{font-size:30px;font-weight:800;color:var(--texto-ok)}
  .dash-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:18px}
  .dash-hola{font-size:24px;font-weight:800}
  .dash-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:18px}
  .dk{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;cursor:pointer;transition:border-color .15s,transform .15s}
  .dk:hover{border-color:var(--gold);transform:translateY(-1px)}
  .dk .ic{font-size:20px}
  .dk .n{font-size:30px;font-weight:800;margin-top:6px}
  .dk .l{color:var(--muted);font-size:13px}
  .dk .s{font-size:12px;margin-top:4px}
  .dash-cols{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}
  @media (max-width:1000px){.dash-cols{grid-template-columns:1fr}}
  .at{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;cursor:pointer}
  .at:last-child{border-bottom:0}
  .at:hover{color:var(--gold)}
  .at .who{flex:0 0 170px;text-align:left;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .at .det{flex:1;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dash-acc{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .dash-acc button{background:var(--panel2);border:1px solid var(--line);color:var(--text);font-weight:500;text-align:left;padding:13px 14px;font-size:14px}
  .dash-acc button:hover{border-color:var(--gold);background:var(--panel2)}
  .dash-mini{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
  .dash-mini div{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
  .dash-mini b{font-size:22px;display:block}
  .dash-mini span{color:var(--muted);font-size:12px}
  .dash-perms{margin-top:6px;color:var(--muted);font-size:13px}
  .dash-perms summary{cursor:pointer;padding:6px 0}
  /* ===== Ingreso dividido ===== */
  .login2{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--f000)}
  .lg-izq{padding:56px 64px;display:flex;flex-direction:column;justify-content:center;gap:18px;border-right:1px solid var(--line);
    background:radial-gradient(700px 400px at 20% 20%,rgba(var(--acento-rgb),.08),transparent 60%),var(--f050505)}
  .lg-badge{font-size:11px;font-weight:800;letter-spacing:1.5px;color:var(--gold);display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:20px;padding:5px 12px;width:max-content}
  .lg-badge .punto{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55e}
  .lg-logo{width:92px;height:92px;border-radius:20px;background:var(--f111);border:1px solid var(--line);display:grid;place-items:center}
  .lg-logo img{width:74px}
  .lg-izq h1{font-size:40px;line-height:1.1;margin:0}
  .lg-izq .oro{color:var(--gold)}
  .lg-izq p{color:var(--muted);max-width:520px;line-height:1.6;margin:0}
  .lg-feat{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:12px}
  .lg-feat li{display:flex;align-items:center;gap:12px;font-size:14px}
  .lg-feat i{width:32px;height:32px;border-radius:9px;border:1px solid rgba(var(--acento-rgb),.35);display:grid;place-items:center;color:var(--gold);flex:0 0 32px}
  .lg-feat svg{width:16px;height:16px}
  .lg-pie{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;border-top:1px solid var(--line);padding-top:14px;margin-top:18px;max-width:560px}
  .lg-der{display:grid;place-items:center;padding:24px}
  .lg-card{width:100%;max-width:420px;background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:34px 32px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
  .lg-card h2{text-align:center;margin:18px 0 4px;font-size:22px;color:var(--text);text-transform:none;letter-spacing:0}
  .lg-sub{text-align:center;color:var(--muted);font-size:14px;margin:0 0 18px}
  .lg-card .steps{display:flex;align-items:center;justify-content:center;gap:0;margin:0}
  .lg-card .dot{width:32px;height:32px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--muted);flex:0 0 32px}
  .lg-card .dot.on{background:var(--acento);color:#000;border-color:var(--gold)}
  .lg-card .linea{width:46px;height:2px;background:var(--line)}
  .inp-ic{position:relative}
  .inp-ic>svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--muted);pointer-events:none}
  .inp-ic input{padding-left:40px}
  .inp-ic .ojo{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:0;padding:6px;color:var(--muted);cursor:pointer;width:auto;margin:0}
  .inp-ic .ojo svg{width:18px;height:18px}
  .lbl-row{display:flex;justify-content:space-between;align-items:baseline}
  .lbl-row a{font-size:12px;color:var(--gold);text-decoration:none}
  .lg-seg{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;border:1px solid var(--line);border-radius:10px;padding:9px;font-size:12px;color:var(--muted)}
  .lg-seg svg{width:14px;height:14px;color:var(--texto-ok-fuerte)}
  @media (max-width:900px){.login2{grid-template-columns:1fr}.lg-izq{display:none}}
  /* ===== Estructura con menú lateral ===== */
  #appView{display:grid;grid-template-columns:250px 1fr;grid-template-rows:auto 1fr;min-height:100vh}
  #appView .layout{display:contents}
  #appView .side{grid-column:1;grid-row:1 / span 2;position:sticky;top:0;height:100vh;overflow-y:auto;width:auto;padding:0 12px 24px;background:var(--f070707);border-right:1px solid var(--line)}
  #appView .topbar{grid-column:2;grid-row:1;position:sticky;top:0;z-index:20;background:rgba(var(--bg-rgb),.88);backdrop-filter:blur(8px)}
  #appView .main{grid-column:2;grid-row:2;padding:26px 30px;min-width:0}
  #appView.colapsado{grid-template-columns:0 1fr}
  #appView.colapsado .side{display:none}
  .side-brand{display:flex;flex-direction:column;align-items:center;text-align:center;padding:22px 8px 18px;border-bottom:1px solid var(--line);margin-bottom:10px}
  .side-brand img{width:78px}
  .side-brand .nom{font-weight:700;font-size:14px;margin-top:10px}
  .side .nav,.nav-p{font-size:14px;padding:9px 12px;margin-bottom:2px}
  .side .nav svg,.nav-p svg{width:17px;height:17px;vertical-align:-3px;margin-right:11px}
  .nav-p{display:block;width:100%;text-align:left;background:transparent;border:0;color:var(--muted);opacity:.5;border-radius:9px;cursor:pointer;font-weight:500}
  .nav-p:hover{opacity:.75}
  .pu-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}
  @media(max-width:860px){.pu-grid{grid-template-columns:1fr}}
  .pu-h{margin:16px 0 4px;font-size:14px}
  .pu-horas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:10px}
  .pu-horas label{font-size:11.5px;margin:0 0 3px}
  .pu-horas input[readonly]{opacity:.75}
  .pu-otro{display:grid;grid-template-columns:1fr 140px 34px;gap:8px;margin-bottom:6px}
  .pu-res{position:sticky;top:0}
  #puBody .badge{white-space:nowrap}
  .pu-mes{display:flex;align-items:center;gap:10px;margin-bottom:10px}.pu-mes input{max-width:180px}
  .pu-per{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-top:10px;font-size:13px}
  .pu-res .neto-box .n{font-size:26px}
  .pu-cifras{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
  .pu-cifras div{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
  .pu-cifras b{display:block;font-size:17px}
  .pu-sug{display:inline-block;font-size:11px;padding:1px 7px;border-radius:9px;border:1px solid var(--line);margin-left:6px}
  #lqKpis .mk .n,#dfKpis .mk .n{font-size:21px;white-space:nowrap}
  .pv-multi{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:4px}
  .dp-paso{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
  .dp-paso>summary{cursor:pointer;font-weight:700;list-style:none;display:flex;gap:8px;align-items:center}
  .dp-paso>summary::-webkit-details-marker{display:none}
  .dp-ok{color:var(--texto-ok)}.dp-no{color:var(--muted)}
  .dp-falta{display:grid;grid-template-columns:170px 1fr 120px 34px;gap:8px;margin-bottom:12px;padding:10px;border:1px solid var(--line);border-radius:12px}
  .dp-hist{font-size:12px;color:var(--muted);max-height:140px;overflow:auto}
  .kb{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}
  .kb-col{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:8px;min-height:180px}
  .kb-col.sobre{border-color:var(--gold)}
  .kb-col h4{margin:2px 4px 8px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);display:flex;justify-content:space-between}
  .kb-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 10px;margin-bottom:8px;cursor:pointer}
  .kb-card:hover{border-color:var(--l3f3f46)}.kb-card b{display:block;font-size:13.5px}.kb-card small{color:var(--muted);font-size:11.5px;display:block;margin-top:3px}
  .kb-card .v{font-weight:700;color:var(--texto-ok);font-size:12.5px;margin-top:4px}
  .ag-g h4{margin:14px 0 6px;font-size:13px;color:var(--muted)}
  .ag-i{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px;background:var(--panel)}
  .ag-i input{width:auto;margin-top:3px}
  .mt-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
  .mt-b{height:6px;border-radius:4px;background:var(--f262626);overflow:hidden;margin-top:6px}.mt-b i{display:block;height:100%;background:var(--acento)}
  .cot-t input,.cot-t select{padding:6px 7px;font-size:12.5px}
  .cot-top{grid-template-columns:repeat(4,1fr)}
  .cot-t [data-f="tipo"]{min-width:150px}.cot-t [data-f="medio"]{min-width:175px}.cot-t [data-f="dias"]{min-width:215px}.cot-t [data-f="esquema"]{min-width:112px}.cot-t [data-f="descripcion"]{min-width:170px}
  .cot-t td{vertical-align:top}.cot-t small.cot-sug{display:block;margin-top:3px;font-size:11px}
  .cot-t .mg-b{color:var(--texto-ok);font-weight:700}.cot-t .mg-m{color:var(--texto-aviso-fuerte);font-weight:700}.cot-t .mg-r{color:var(--texto-peligro-fuerte);font-weight:700}
  .cst-box{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-top:12px}.cst-box>summary{cursor:pointer;font-weight:700}
  .cst-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 10px}.cst-tabs button{background:transparent;border:1px solid var(--line);color:var(--muted);padding:6px 12px;border-radius:999px;font-size:12.5px}
  .cst-tabs button.on{border-color:var(--gold);color:var(--text)}
  .cst-t input,.cst-t select{padding:5px 7px;font-size:12.5px}.cst-t td{vertical-align:middle}
  .pyg{width:100%;border-collapse:collapse;font-size:13px}.pyg td{padding:6px 8px;border-bottom:1px solid var(--line)}.pyg td.v{text-align:right;white-space:nowrap}.pyg tr.tt td{font-weight:700}.pyg tr.hd td{color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;padding-top:14px}
  .tf-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
  .tf-c{border:1px solid var(--line);border-radius:12px;padding:12px}.tf-c b{display:block;font-size:20px;margin-top:4px}.tf-c small{color:var(--muted)}
  @media (max-width:760px){.cot-top{grid-template-columns:1fr 1fr}}
  .pr-t td.nm a{color:inherit;text-decoration:none}.pr-t td.nm a:hover{text-decoration:underline}
  #prDir a{color:var(--gold)}
  .rot-dias{font-family:ui-monospace,Menlo,monospace;letter-spacing:2px;white-space:nowrap}.rot-dias b{display:inline-block;width:18px;text-align:center;border-radius:4px;margin-right:2px}
  .rot-dias b.D{background:#fde68a;color:#111}.rot-dias b.N{background:#93c5fd;color:#111}.rot-dias b.X{color:var(--t71717a)}
  .rot-cob{display:flex;gap:6px;flex-wrap:wrap}.rot-cob div{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12px;text-align:center;min-width:64px}
  .rot-cob .ok{color:var(--texto-ok)}.rot-cob .fa{color:var(--texto-aviso-fuerte);font-weight:700}
  .rev-i{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:10px}.rev-i ul{margin:6px 0 8px 18px;padding:0;font-size:13px}
  .rv{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;display:inline-block}.rv.continua{color:var(--texto-apagado);background:rgba(161,161,170,.12)}
  .rv.por_revisar{color:var(--texto-aviso-fuerte);background:rgba(251,191,36,.14)}.rv.aprobada{color:var(--texto-ok);background:rgba(74,222,128,.12)}.rv.devuelta{color:var(--texto-peligro-fuerte);background:rgba(248,113,113,.14)}
  .pr-rev{border:1px solid rgba(251,191,36,.45);background:rgba(251,191,36,.07);border-radius:12px;padding:10px 14px;margin:0 0 10px;font-size:13px}.pr-rev ul{margin:4px 0 6px 18px;padding:0}
  .rl-g{display:grid;grid-template-columns:280px 1fr;gap:14px;align-items:start}
  .rl-lista{border:1px solid var(--line);border-radius:12px;overflow:hidden}.rl-lista button{display:block;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--text);padding:10px 12px;border-radius:0;font-weight:500}
  .rl-lista button.on{background:var(--panel2);box-shadow:inset 3px 0 0 var(--gold)}.rl-lista small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
  .rl-perm{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-bottom:1px dashed var(--line)}.rl-perm input{width:auto;margin-top:3px}.rl-perm code{font-size:11px;color:var(--muted)}
  .rl-mx td.c{text-align:center}.rl-mx th.r{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-size:11.5px;padding:8px 4px}
  @media (max-width:760px){.rl-g{grid-template-columns:1fr}}
  .pr-estado{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:0 0 12px;background:var(--panel)}
  .pr-estado .est{font-weight:700}.pr-estado .est.borrador{color:var(--texto-aviso-fuerte)}.pr-estado .est.enviada{color:var(--texto-info-fuerte)}.pr-estado .est.aprobada{color:var(--texto-ok)}
  .np-g h4{margin:14px 0 6px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
  .nv-hist{font-size:12px;color:var(--muted);margin-top:4px}
  .ct-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:12px}
  .pr-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;max-height:70vh}
  .pr-t{border-collapse:separate;border-spacing:0;font-size:12px;min-width:100%}
  .pr-t th,.pr-t td{padding:0;border-bottom:1px solid var(--line);border-right:1px solid var(--l1c1c1c);text-align:center;height:30px;min-width:27px}
  .pr-t thead th{position:sticky;top:0;background:var(--panel);z-index:2;font-weight:600;color:var(--muted);font-size:11px;padding:4px 0;line-height:1.2}
  .pr-t thead th.fs{color:var(--gold)}
  .pr-t thead th.fst{color:var(--texto-peligro-fuerte);background:rgba(248,113,113,.14)}
  .pr-t td.fst{background:rgba(248,113,113,.09)}
  .pr-t td.adv-alta{box-shadow:inset 0 0 0 2px #ef4444}.pr-t td.adv-media{box-shadow:inset 0 0 0 2px #f59e0b}
  .pc.fst-m{background:rgba(248,113,113,.2);color:var(--texto-peligro-fuerte)}.pc.adv-m{box-shadow:inset 0 0 0 2px #ef4444;background:transparent}
  .pg-advb.alta{border-color:#ef4444;color:var(--texto-peligro)}.pg-advb.media{border-color:#f59e0b;color:var(--texto-aviso)}.pg-advb.ok{color:var(--texto-ok);cursor:default}
  .pg-adv{margin:0 0 14px}.pg-adv > b{display:block;margin:0 0 6px;font-size:13px}
  .pg-sug{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(var(--acento-rgb),.05)}.pg-sug > b{display:block;margin:0 0 6px;font-size:13px;color:var(--gold)}
  .pg-sug .sg{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:7px 9px;border:1px solid transparent;border-radius:9px;font-size:13.5px}.pg-sug .sg.uno{border-color:var(--gold)}.pg-sug .sg button{white-space:nowrap}
  .pg-adv .it{display:grid;grid-template-columns:10px minmax(0,1fr);gap:10px;align-items:start;padding:8px 10px;border:1px solid var(--line);border-radius:9px;margin-bottom:5px;font-size:13.5px;line-height:1.45}
  .pg-adv .it[data-t]{cursor:pointer}.pg-adv .it[data-t]:hover{border-color:var(--gold)}
  .pg-adv .it > span{width:9px;height:9px;border-radius:50%;margin-top:6px;background:#f59e0b}.pg-adv .it.alta > span{background:#ef4444}
  .pr-t .nm{position:sticky;left:0;background:var(--panel);z-index:1;text-align:left;padding:4px 10px;min-width:210px;max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pr-t thead .nm{z-index:3}
  .pr-t .nm small{display:block;color:var(--muted);font-size:10.5px}
  .pr-t .tt{padding:0 8px;color:var(--muted);white-space:nowrap}
  .pr-t td.cl{cursor:pointer}.pr-t td.cl:hover{outline:1px solid var(--gold);outline-offset:-1px}
  .pc{display:inline-grid;place-items:center;width:22px;height:20px;border-radius:5px;font-size:11px;font-weight:800}
  .pc.D{background:rgba(var(--acento-rgb),.22);color:var(--gold)}.pc.N{background:rgba(var(--brand-rgb),.3);color:var(--texto-info)}.pc.F{background:rgba(22,163,74,.22);color:var(--texto-ok)}
  .pc.ad{background:rgba(168,85,247,.28);color:var(--td8b4fe)}.pc.au{background:var(--f262626);color:var(--texto-suave)}.pc.ot{background:transparent;color:var(--t71717a);font-weight:400}
  .pc.pend{box-shadow:inset 0 0 0 1px var(--la1a1aa)}
  .pc.x{background:transparent;color:var(--t52525b);font-weight:600}.pc.ev{background:rgba(20,184,166,.25);color:var(--t5eead4)}.pc.au2{opacity:.7}.pc.ot2{outline:1px dashed var(--l71717a)}
  .pg-wrap .pr-t td .pc{width:auto;min-width:22px;padding:0 3px;font-size:10.5px}
  .pg-wrap .pr-t{min-width:0;width:max-content}.pg-wrap .pr-t td:not(.nm):not(.tt),.pg-wrap .pr-t thead th:not(.nm):not(.tt){width:40px;min-width:40px;max-width:52px}
  .pg-wrap .pr-t td.tt,.pg-wrap .pr-t th.tt{min-width:64px}
  .pg-wrap .pr-t tr.gr td{background:var(--f141414);text-align:left;padding:6px 10px;font-size:12px;font-weight:700;color:var(--gold);position:sticky;left:0}
  .pg-wrap .pr-t tr.gr td small{color:var(--muted);font-weight:400;margin-left:6px}
  .pg-wrap .pr-t td.hoy,.pg-wrap .pr-t th.hoy{box-shadow:inset 0 0 0 1px rgba(var(--acento-rgb),.45)}
  .nv-adv{margin-top:10px}.nv-adv:empty{display:none}
  .nv-adv .adv{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;border-radius:8px;margin-top:6px;font-size:13px;line-height:1.35}
  .nv-adv .adv.alta{background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.45);color:var(--texto-aviso)}
  .nv-adv .adv.media{background:var(--f171717);border:1px solid var(--l3f3f46);color:var(--te4e4e7)}
  .nv-adv .adv.info{background:transparent;border:1px dashed var(--l3f3f46);color:var(--muted)}
  .pg-temp{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 12px;background:var(--panel)}
  .pg-temp .it{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--line);font-size:13px}.pg-temp .it:first-of-type{border-top:0}
  .pr-t tr.hue td{background:var(--f0d0d0d)}.pr-t tr.hue td.cl b{color:var(--texto-aviso-fuerte)}
  .pr-ley{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;color:var(--muted)}
  .pr-menu{position:fixed;z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:4px;min-width:170px}
  .pr-menu button{text-align:left;background:transparent;border:0;color:var(--text);padding:7px 10px;border-radius:7px;font-size:13px;margin:0;width:100%}
  .pr-menu button:hover{background:var(--f1f1f1f)}.pr-menu .note{padding:4px 10px;margin:0;font-size:11.5px}
  .nv-como{display:flex;flex-wrap:wrap;gap:6px}
  .nv-como label{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:20px;padding:6px 12px;margin:0;font-size:13px;cursor:pointer}
  .nv-como input{width:auto;margin:0}
  .nv-como label:has(input:checked){border-color:var(--gold);color:var(--gold)}
  .tag-pronto{font-size:9px;text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--line);border-radius:10px;padding:1px 6px;margin-left:6px;vertical-align:1px}
  .grupo-t{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:0;color:var(--gold);font-weight:700;font-size:11px;letter-spacing:.8px;text-transform:uppercase;padding:16px 12px 8px;cursor:pointer}
  .grupo-t .fl{font-size:16px;transition:transform .2s;color:var(--muted)}
  .grupo.abierto .grupo-t .fl{transform:rotate(90deg)}
  .grupo-items{display:none}
  .grupo.abierto .grupo-items{display:block}
  .tb-left{display:flex;align-items:center;gap:14px}
  #btnMenu{background:transparent;border:0;color:var(--text);padding:6px;cursor:pointer;width:auto;margin:0}
  #btnMenu svg{width:22px;height:22px}
  #pageTitle{font-weight:700;font-size:15px}
  .topbar .who{text-align:right;line-height:1.35}
  #uRole{display:block;width:max-content;margin-left:auto;background:var(--acento);color:#000;font-weight:800;font-size:10px;padding:2px 9px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}
  .avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--acento),var(--acento-osc));color:#000;font-weight:800;display:grid;place-items:center;font-size:14px}
  .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--f161616);border:1px solid var(--gold);color:var(--text);padding:12px 18px;border-radius:12px;z-index:300;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.6)}
  @media (max-width:900px){
    #appView{grid-template-columns:1fr}
    #appView .topbar,#appView .main{grid-column:1}
    #appView .side{position:fixed;left:0;top:0;z-index:60;width:260px;transform:translateX(-105%);transition:transform .2s;display:block}
    #appView.menu-movil .side{transform:none}
    #appView.colapsado .side{display:block}
  }
  /* ===== Tablero de inicio ===== */
  .hero{background:linear-gradient(135deg,var(--f17140a) 0%,var(--f0c0c0c) 55%,var(--f0a0a0a) 100%);border:1px solid var(--l2b2410);border-radius:20px;padding:24px 26px;margin-bottom:18px;position:relative;overflow:hidden}
  .hero:after{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;background:radial-gradient(circle,rgba(var(--acento-rgb),.14),transparent 70%)}
  .hero h1{margin:0;font-size:24px}
  .hero .sub{color:var(--muted);font-size:13px;margin:4px 0 18px}
  .hero .brief{color:var(--texto-suave);font-size:16px;margin-top:8px;max-width:820px;line-height:1.5}
  .hero .brief b{color:var(--gold)}
  .hero-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;position:relative;z-index:1}
  .ht{background:rgba(var(--velo),.03);border:1px solid rgba(var(--velo),.08);border-radius:14px;padding:14px 16px;cursor:pointer}
  .ht:hover{border-color:var(--gold)}
  .ht .l{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
  .ht .n{font-size:30px;font-weight:800;margin-top:6px}
  .tab-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
  @media (max-width:1200px){.tab-cards,.hero-tiles{grid-template-columns:repeat(2,1fr)}}
  .tc{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 16px 14px;cursor:pointer;position:relative;overflow:hidden}
  .tc:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--c,var(--brand)),transparent)}
  .tc:hover{border-color:var(--c)}
  .tc .h{display:flex;justify-content:space-between;font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
  .tc .h svg{width:16px;height:16px;opacity:.6}
  .tc .v{font-size:28px;font-weight:800;margin:6px 0 10px}
  .tc .v small{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-left:6px}
  .tr{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:7px 10px;margin-top:6px;font-size:12px}
  .tr .et{flex:0 0 auto;min-width:88px;color:var(--muted);font-weight:700;text-transform:uppercase;font-size:10px;letter-spacing:.5px}
  .tr b{min-width:34px}
  .tr .bar{flex:1;height:5px;border-radius:5px;background:var(--f1f1f1f);overflow:hidden}
  .tr .bar i{display:block;height:100%;border-radius:5px}
  .graf{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin-bottom:18px}
  .graf h2{margin:0;text-transform:none;letter-spacing:0;font-size:16px;color:var(--text)}
  .graf .leg{display:flex;gap:18px;justify-content:center;font-size:12px;color:var(--muted);margin-top:6px}
  .graf .leg i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
  /* ===== Ingreso propio ===== */
  .login3{min-height:100vh;position:relative;overflow:hidden;background:var(--f000);display:flex;flex-direction:column}
  .l3-luz{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;pointer-events:none;animation:flotar 14s ease-in-out infinite alternate}
  .l3-a{width:520px;height:520px;background:#8a6d12;top:-160px;left:-120px}
  .l3-b{width:460px;height:460px;background:#1e3a8a;bottom:-180px;right:-100px;animation-delay:-6s;opacity:.35}
  @keyframes flotar{to{transform:translate(60px,40px) scale(1.1)}}
  .l3-rejilla{position:absolute;inset:0;background-image:linear-gradient(rgba(var(--velo),.035) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--velo),.035) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);pointer-events:none}
  .l3-top{position:relative;display:flex;justify-content:space-between;align-items:center;padding:22px 40px}
  .l3-marca{display:flex;align-items:center;gap:12px}
  .l3-marca img{width:46px}
  .l3-marca b{display:block;font-size:15px}
  .l3-marca span{font-size:11px;letter-spacing:2px;color:var(--muted)}
  .l3-marca em{font-style:normal;color:var(--gold)}
  .l3-accesos{display:flex;gap:10px;flex-wrap:wrap}
  .l3-portal{color:var(--text);text-decoration:none;font-size:15px;font-weight:700;border:1px solid rgba(var(--acento-rgb),.45);border-radius:24px;padding:11px 20px;background:rgba(var(--acento-rgb),.08)}
  .l3-sep{display:flex;align-items:center;gap:10px;margin:22px 0 12px;color:var(--muted);font-size:13px}.l3-sep:before,.l3-sep:after{content:"";flex:1;height:1px;background:var(--line)}
  .l3-otros{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .l3-otros a{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--text);border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:rgba(var(--velo),.03);transition:border-color .15s}
  .l3-otros a:hover{border-color:var(--gold)}.l3-otros b{font-size:17px}.l3-otros span{font-size:12.5px;color:var(--muted);line-height:1.35}
  @media (max-width:520px){.l3-otros{grid-template-columns:1fr}.l3-accesos{display:none}}
  .l3-portal:hover{border-color:var(--gold)}
  .l3-grid{position:relative;flex:1;display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:center;padding:10px 40px 20px;max-width:1280px;width:100%;margin:0 auto;box-sizing:border-box}
  .l3-chip{display:inline-block;font-size:12px;color:var(--gold);border:1px solid rgba(var(--acento-rgb),.35);border-radius:20px;padding:5px 12px;background:rgba(var(--acento-rgb),.06)}
  .l3-texto h1{font-size:46px;line-height:1.08;margin:18px 0 16px;letter-spacing:-.5px}
  .l3-texto h1 span{background:linear-gradient(90deg,var(--acento),var(--acento3));-webkit-background-clip:text;background-clip:text;color:transparent}
  .l3-texto p{color:var(--tb4b4bb);font-size:16px;line-height:1.6;max-width:540px;margin:0}
  .l3-datos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px;max-width:560px}
  .l3-datos div{border:1px solid var(--line);border-radius:14px;padding:14px;background:rgba(var(--velo),.025)}
  .l3-datos b{display:block;font-size:20px;color:var(--gold)}
  .l3-datos span{font-size:12px;color:var(--muted)}
  .l3-panel{background:rgba(var(--panel-rgb),.8);backdrop-filter:blur(18px);border:1px solid rgba(var(--velo),.09);border-radius:24px;padding:30px;max-width:430px;width:100%;justify-self:end;box-shadow:0 30px 90px rgba(0,0,0,.7);box-sizing:border-box}
  .l3-panel h2{font-size:24px;margin:18px 0 4px;color:var(--text);text-transform:none;letter-spacing:0}
  .l3-panel .lg-sub{text-align:left;margin-bottom:14px}
  .l3-pasos{display:flex;gap:6px}
  .l3-pasos .dot{flex:1;width:auto;height:auto;border-radius:0;background:none;border:0;font-size:11px;color:var(--muted);padding-top:9px;position:relative;text-align:left;display:block}
  .l3-pasos .dot:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:3px;background:var(--f262626)}
  .l3-pasos .dot.on{color:var(--text);background:none}
  .l3-pasos .dot.on:before{background:linear-gradient(90deg,var(--acento),var(--acento3))}
  .l3-btn{background:linear-gradient(90deg,var(--acento),var(--acento2))!important;color:#111!important;font-weight:800}
  .l3-nota{font-size:12px;color:var(--muted);margin-top:14px;text-align:center}
  .l3-pie{position:relative;display:flex;justify-content:space-between;padding:16px 40px;font-size:12px;color:var(--muted);border-top:1px solid rgba(var(--velo),.05)}
  @media (max-width:980px){.l3-grid{grid-template-columns:1fr}.l3-texto h1{font-size:32px}.l3-panel{justify-self:stretch;max-width:none}.l3-top,.l3-grid,.l3-pie{padding-left:18px;padding-right:18px}.l3-portal{font-size:14px;padding:9px 14px}}
  /* ===== Menú: buscador y portal ===== */
  .nav-buscar{position:relative;margin:4px 2px 10px}
  .nav-buscar svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted)}
  .nav-buscar input{padding:9px 10px 9px 34px;font-size:13px;border-radius:10px;background:var(--f0f0f0f)}
  .side-portal{display:flex;align-items:center;gap:10px;margin:16px 4px 0;padding:11px 12px;border:1px dashed var(--l3a3a3a);border-radius:12px;color:var(--text);text-decoration:none;font-size:13px}
  .side-portal svg{width:17px;height:17px;color:var(--gold)}
  .side-portal span{margin-left:auto;color:var(--muted)}
  .side-portal:hover{border-color:var(--gold)}
  /* ===== Módulos ===== */
  /* ---- Central de operación ---- */
  .leaflet-container{z-index:0}
  .rg-f{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}.rg-v{display:flex;gap:4px}.rg-v button{width:34px;padding:6px 0;background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:8px}.rg-v button.on{background:var(--acento);color:#000;border-color:var(--gold)}
  .aq-bus{display:flex;gap:8px}.aq-bus input{font-size:16px;padding:14px}.aq-bus button{padding:0 26px}
  .aq-fac>div{margin:4px 0}.aq-chip{cursor:pointer}.aq-chip b{color:var(--text);margin-left:4px}
  .aq-it{display:flex;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;cursor:pointer;background:var(--panel)}.aq-it:hover{border-color:var(--gold)}
  .aq-ic{width:42px;height:50px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--gold);flex-shrink:0}
  .aq-frag{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.45}.aq-frag mark{background:rgba(var(--acento-rgb),.3);color:var(--text);padding:0 2px;border-radius:3px}
  .aq-ver{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;margin-top:12px}.aq-visor{height:70vh;border:1px solid var(--line);border-radius:12px;overflow:auto;background:var(--f222)}.aq-visor iframe{width:100%;height:100%;border:0}
  .aq-vbar{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;position:sticky;top:0;background:var(--f1a1a1a);z-index:1}.aq-pag{display:block;width:100%;height:auto;margin:0 auto 8px;background:#fff}
  .aq-txt{white-space:pre-wrap;font-size:12px;max-height:260px;overflow:auto;background:var(--panel2);padding:10px;border-radius:8px}
  .aq-drop{border:2px dashed var(--line);border-radius:14px;padding:26px;text-align:center}.aq-drop.on{border-color:var(--gold)}
  .aq-q{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:5px 0;border-bottom:1px solid var(--line)}.aq-q span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aq-q em{font-style:normal;color:var(--muted);white-space:nowrap}.aq-q em.ok{color:var(--texto-ok)}.aq-q em.dup{color:var(--texto-aviso)}.aq-q em.mal{color:var(--texto-peligro)}
  @media(max-width:900px){.aq-ver{grid-template-columns:1fr}.aq-visor{height:55vh}}
  .pe-sedes{max-height:190px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px 10px}
  .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .row3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:700px){.row3{grid-template-columns:1fr}}
  .msg.warn{display:block;background:rgba(217,119,6,.13);color:var(--texto-aviso);border:1px solid rgba(217,119,6,.35)}
  .badge.op-warn{background:rgba(217,119,6,.16);color:var(--texto-aviso)}.badge.op-falta{background:rgba(249,115,22,.16);color:var(--tfdba74)}.badge.op-info{background:rgba(14,165,233,.14);color:var(--t7dd3fc)}
  .mp-g{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px}.mp-mapa{height:calc(100vh - 330px);min-height:420px;border-radius:14px;border:1px solid var(--line)}
  .rt-pin{background:#16a34a;color:#fff;font-size:11px;font-weight:800;border-radius:11px;padding:3px 6px;text-align:center;border:1.5px solid #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 6px rgba(0,0,0,.5)}
  .ec-al{border:1px solid #dc2626;border-radius:14px;padding:12px 14px;margin:0 0 14px;background:color-mix(in srgb,#dc2626 9%,var(--panel))}
  .ec-al-t{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin:0 0 8px;font-size:15px}
  .ec-al-i{display:flex;gap:12px;align-items:center;padding:9px 10px;border-radius:10px;background:var(--panel);border:1px solid var(--line);margin-top:6px;font-size:13.5px}.ec-al-i.pasada{opacity:.75}
  .ec-al-b{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.ec-al-b button,.ec-al-b a{padding:7px 12px;font-size:13px;white-space:nowrap}
  @media(max-width:760px){.ec-al-i{flex-wrap:wrap}.ec-al-b{width:100%;justify-content:flex-start}}
  .ec-cli{display:flex;justify-content:space-between;gap:8px;align-items:baseline;padding:10px 8px 4px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-top:1px solid var(--line)}.ec-cli:first-child{border-top:0;padding-top:2px}.ec-cli b{color:var(--gold);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-cli span{white-space:nowrap}
  .ec-g{grid-template-columns:minmax(0,1fr) 420px}.ec-mal{font-weight:700;color:var(--texto-peligro)}.ec-mal.am{color:var(--texto-aviso)}
  .ec-dc{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--gold);font-weight:700}
  #pageEscoltas .note a{color:var(--gold);text-decoration:none}
  #pageRutas .note a,.rt-d .note a,.rt-d .rt-kv a,.rt-d .op-li a{color:var(--gold);text-decoration:none}#pageRutas .note a:hover,.rt-d .note a:hover,.rt-d .rt-kv a:hover,.rt-d .op-li a:hover{text-decoration:underline}
  #rtNuevo{white-space:nowrap}
  .rx-g{display:grid;grid-template-columns:340px minmax(0,1fr);gap:14px;align-items:start}@media(max-width:900px){.rx-g{grid-template-columns:1fr}}
  .rx-lista{overflow:auto;max-height:calc(100vh - 300px);min-height:260px}
  .rx-mute{width:auto;margin:0;background:transparent;border:1px solid var(--line);color:var(--muted);font-size:11px;padding:3px 8px;border-radius:12px;flex-shrink:0}.rx-mute.on{color:var(--texto-aviso);border-color:rgba(217,119,6,.5)}
  .rx-msgs{overflow:auto;height:calc(100vh - 470px);min-height:220px;margin-top:10px;border-top:1px solid var(--line);padding-top:6px}
  .rx-m{display:flex;gap:10px;align-items:center;padding:8px 6px;border-radius:10px;cursor:pointer;font-size:13.5px}.rx-m:hover{background:var(--panel2)}
  .rx-m .pl{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:11px;flex-shrink:0}
  .rx-m.nuevo .pl{background:var(--acento);color:#111;border-color:var(--gold)}.rx-m.son .pl{background:#16a34a;color:#000;border-color:#16a34a}.rx-m.mio b{color:var(--muted)}
  .rx-pie{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px;margin-top:8px}
  .rx-ptt{width:auto;margin:0;display:inline-flex;gap:10px;align-items:center;background:var(--acento);color:#111;font-weight:700;padding:13px 20px;border-radius:30px;user-select:none;touch-action:none}
  .rx-ptt svg{width:22px;height:22px}.rx-ptt.tx{background:#dc2626;color:#fff}.rx-ptt.rx{background:#14532d;color:#bbf7d0}.rx-ptt:disabled{background:var(--f27272a);color:var(--t71717a);cursor:default}
  .rx-flot{position:fixed;right:18px;bottom:18px;z-index:45;display:flex;gap:12px;align-items:center;background:var(--f111);border:1px solid var(--line);border-radius:16px;padding:12px 14px;box-shadow:0 10px 30px rgba(0,0,0,.6);max-width:min(460px,calc(100vw - 36px))}
  .rx-flot.vivo{border-color:#16a34a}.rx-flot i{width:11px;height:11px;border-radius:50%;background:var(--f52525b);flex-shrink:0}.rx-flot.vivo i{background:#22c55e;animation:rxPulso 1s infinite}@keyframes rxPulso{50%{opacity:.25}}
  .rx-flot b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rx-fbtn{width:auto;margin:0;background:var(--acento);color:#111;font-weight:700;padding:9px 12px;border-radius:22px;font-size:12.5px;white-space:nowrap;user-select:none;touch-action:none}.rx-fbtn.tx{background:#dc2626;color:#fff}
  .rt-d{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:18px;margin-top:12px}@media(max-width:900px){.rt-d{grid-template-columns:1fr}}
  .dg-lista{display:flex;flex-direction:column;gap:8px}
  .dg-ev{border:1px solid var(--line);border-left:4px solid var(--l52525b);border-radius:10px;padding:10px 12px;background:rgba(var(--velo),.02)}.dg-ev.error{border-left-color:#dc2626}.dg-ev.aviso{border-left-color:#d97706}
  .dg-cab{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13.5px}.dg-q{color:var(--muted);font-size:12.5px;margin-left:auto}.dg-msg{margin-top:5px;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
  .dg-ev details{margin-top:6px}.dg-ev summary{cursor:pointer;color:var(--gold);font-size:12.5px}.dg-rastro{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:var(--muted);line-height:1.5;margin-top:4px;overflow-wrap:anywhere}
  .dg-err{color:var(--texto-peligro-fuerte)}tr.dg-cel.on td{background:rgba(var(--acento-rgb),.08)}tr.dg-cel:hover td{background:rgba(var(--velo),.03)}
  .rt-kv{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;font-size:13.5px;margin-top:12px}.rt-kv span{color:var(--muted)}.rt-kv b{font-weight:600}.rt-kv a{color:var(--gold);text-decoration:none}
  .rt-tl{max-height:420px;overflow:auto;padding-right:4px}
  .rt-ev{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}.rt-ev:last-child{border-bottom:0}
  .rt-ev i{width:26px;height:26px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;flex-shrink:0}
  .rt-ev.novedad i,.rt-ev.sos i{background:#dc2626;border-color:#dc2626;color:#fff}.rt-ev.detencion i{background:#d97706;border-color:#d97706;color:#000}.rt-ev.inicio i,.rt-ev.final i{background:#16a34a;border-color:#16a34a;color:#000}.rt-ev.central i{background:var(--brand);border-color:var(--brand);color:#fff}.rt-ev.visita i{background:#22c55e;border-color:#22c55e;color:#000}
  .rt-fotos{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.rt-fotos img{height:120px;border-radius:8px;border:1px solid var(--line)}.rt-fotos img.firma{background:#fff;height:80px}
  .rt-sel{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.rt-chip{background:var(--panel2);border:1px solid var(--line);border-radius:20px;padding:5px 10px;font-size:13px}.rt-chip b{color:var(--gold);font-size:11px}.rt-chip a{cursor:pointer;margin-left:6px;color:var(--muted);font-weight:800}
  .rt-res div[data-a]{padding:7px 10px;border-radius:8px;cursor:pointer;font-size:13.5px}.rt-res div[data-a]:hover{background:var(--panel2)}
  .mp-lado{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;min-height:0}
  .mp-lista{overflow:auto;max-height:calc(100vh - 400px);min-height:300px}
  .mp-it{display:flex;gap:10px;align-items:center;padding:9px 8px;border-radius:10px;cursor:pointer;font-size:13.5px}.mp-it:hover,.mp-it.on{background:var(--panel2)}
  .mp-it i{width:11px;height:11px;border-radius:50%;flex-shrink:0}.mp-it b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
  .mk.mp-k.on{outline:2px solid var(--gold)}
  .mp-sos{background:#dc2626;color:#fff;font-weight:800;font-size:11px;border-radius:6px;padding:3px 6px;text-align:center;box-shadow:0 0 0 4px rgba(220,38,38,.35);animation:mpPulso 1s infinite}
  @keyframes mpPulso{50%{box-shadow:0 0 0 10px rgba(220,38,38,0)}}
  .mp-sug{max-height:180px;overflow:auto}.mp-sug-it{padding:8px 10px;border-bottom:1px solid var(--line);font-size:13px;cursor:pointer}.mp-sug-it:hover{background:var(--panel2)}
  .op-li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
  .dot-ok{width:9px;height:9px;border-radius:50%;background:#16a34a;display:inline-block}
  .op-tel{display:inline-block;font-size:12.5px;color:var(--muted);margin-right:10px}.op-tel a{color:var(--gold);margin-left:4px;text-decoration:none;font-weight:600}
  .op-kv{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}.op-kv span{color:var(--muted)}
  .op-src{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
  .rd-g{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;align-items:start}#rdDet{min-width:0}.rd-lado{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px}
  .rd-g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:12px;align-items:start}.rd-g2>*{min-width:0}
  .rd-k{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.rd-k div{background:var(--panel2);border-radius:10px;padding:9px}.rd-k b{display:block;font-size:19px}.rd-k span{font-size:11.5px;color:var(--muted)}
  .rd-vent{display:grid;grid-template-columns:repeat(auto-fill,minmax(14px,1fr));gap:3px}.rd-vent i{height:22px;border-radius:4px;display:block;border:1px solid var(--l262626)}
  .rd-ley{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:8px}.rd-ley i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
  tr.ev-sos td{background:rgba(220,38,38,.07)}
  .emg{position:fixed;inset:0;z-index:2000;background:rgba(40,0,0,.86);display:flex;align-items:center;justify-content:center;padding:16px;animation:emgFondo 1.2s infinite}
  @keyframes emgFondo{50%{background:rgba(90,0,0,.9)}}
  .emg-box{background:var(--panel);border:2px solid #dc2626;border-radius:18px;padding:20px;width:min(1080px,100%);max-height:94vh;overflow:auto}
  .emg-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}.emg-t{font-size:26px;font-weight:900;color:var(--texto-peligro-fuerte);letter-spacing:1px}.emg-s{color:var(--muted);font-size:13px}
  .emg-otras{background:rgba(220,38,38,.1);border-radius:10px;padding:8px 10px;margin-bottom:10px;font-size:13px}
  .emg-g{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .emg-d{padding:8px 0;border-bottom:1px solid var(--line)}.emg-d b{display:block;font-size:15px}.emg-d span{display:block;color:var(--muted);font-size:13px;margin-top:2px}
  .emg-mapa{height:220px;border-radius:12px;border:1px solid var(--line);margin-top:10px}
  .emg-prog{height:10px;background:var(--f1f1f1f);border-radius:10px;overflow:hidden}.emg-prog i{display:block;height:100%;background:#16a34a}
  .emg-acc{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px}.emg-acc.ok{border-color:rgba(22,163,74,.5);background:rgba(22,163,74,.06)}
  .emg-acc-h{display:flex;gap:8px;align-items:center;margin-bottom:6px}.emg-ck{width:22px;height:22px;border-radius:50%;border:2px solid var(--l52525b);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:12px}
  .emg-acc.ok .emg-ck{background:#16a34a;border-color:#16a34a;color:#000}.emg-acc textarea{width:100%;margin-bottom:6px}
  .emg-cerrar{width:100%;margin-top:8px;padding:14px;font-size:15px}.emg-cerrar:not(:disabled){background:#16a34a}
  @media(max-width:900px){.mp-g,.rd-g,.rd-g2,.emg-g{grid-template-columns:1fr}.mp-mapa{height:380px}.rd-k{grid-template-columns:repeat(2,1fr)}}
  .if-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px;grid-auto-flow:row dense}
  .if-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;min-width:0}
  .if-card.ancho{grid-column:1/-1}
  .if-h{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.if-h b{font-size:14px}.if-h span{font-size:12px;color:var(--muted)}
  .if-svg{width:100%;height:auto;display:block}.if-svg .if-gl{stroke:var(--line);stroke-width:1}.if-ax{fill:var(--muted);font-size:10.5px}
  .if-svg rect:hover,.if-svg circle:hover{opacity:.8}
  .if-ley{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted);margin-top:6px}.if-ley i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
  .if-hb{display:flex;flex-direction:column;gap:7px}.if-hr{display:grid;grid-template-columns:minmax(90px,38%) 1fr 44px 38px;gap:8px;align-items:center;font-size:13px}
  .if-hl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.if-ht{background:var(--panel2);border-radius:6px;height:12px;overflow:hidden}.if-ht i{display:block;height:100%;border-radius:6px}
  .if-hr b{text-align:right}.if-hr em{font-style:normal;color:var(--muted);font-size:12px;text-align:right}
  .if-vacio{color:var(--muted);font-size:13px;padding:30px 0;text-align:center}.if-sep{height:1px;background:var(--line);margin:12px 0}
  .if-pie{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--muted);margin-top:8px}.if-pie b{color:var(--text)}
  .if-lb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);white-space:nowrap}
  @media(max-width:560px){.if-grid{grid-template-columns:1fr}.if-hr{grid-template-columns:minmax(80px,40%) 1fr 40px}.if-hr em{display:none}}
  .mini-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
  .mk{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:13px 16px;position:relative;overflow:hidden}
  .mk:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--c,var(--brand))}
  .mk .l{font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}
  .mk .n{font-size:26px;font-weight:800;margin-top:4px}
  .mk .s{font-size:12px;color:var(--muted)}
  .tabs2{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--line)}
  .t2{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:10px 14px;border-radius:0;font-weight:600;cursor:pointer;width:auto;margin:0}
  .t2.on{color:var(--text);border-bottom-color:var(--gold)}
  .leyenda{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:4px 0 10px}
  .leyenda i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
  .s-vigente{background:#16a34a}.s-por_vencer{background:#d97706}.s-vencido{background:#dc2626}.s-validar{background:var(--brand)}.s-nada{background:var(--f1c1c1c)}
  .mx-wrap{max-height:62vh;overflow:auto}
  .mx{border-collapse:separate;border-spacing:0;font-size:12px}
  .mx th{position:sticky;top:0;background:var(--f0d0d0d);z-index:2;font-size:10.5px;min-width:112px;max-width:130px;white-space:normal;vertical-align:bottom;text-transform:none;letter-spacing:0}
  .mx th:first-child,.mx td:first-child{position:sticky;left:0;background:var(--f0d0d0d);z-index:3;min-width:220px}
  .mx td{padding:5px 6px;border-bottom:1px solid var(--l1a1a1a)}
  .mx .c{border-radius:6px;padding:5px 4px;text-align:center;font-size:11px;font-weight:600;color:#fff}
  .mx .c.s-nada{color:var(--t555)}
  .ce-res{margin-top:16px;border:1px solid rgba(34,197,94,.35);background:rgba(34,197,94,.06);border-radius:12px;padding:14px 16px}
  .ce-res code{font-size:18px;color:var(--gold);letter-spacing:1px}
  .ce-firma{width:220px;height:100px;border:1px dashed var(--l3a3a3a);border-radius:12px;display:grid;place-items:center;background:#fff}
  .ce-firma img{max-width:200px;max-height:84px}
  .doc-card{padding:16px 18px;margin-bottom:12px}
  .dc-head{display:flex;gap:14px;align-items:flex-start}
  .dc-ic{width:44px;height:52px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:11px;flex:0 0 44px;color:#fff}
  .dc-ic.w{background:var(--brand2)}.dc-ic.p{background:#b91c1c}
  .dc-head b{font-size:15px}
  .dc-acc{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
  .dc-hist{margin-top:12px}
  .var-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
  .var{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 12px;cursor:pointer}
  .var:hover{border-color:var(--gold)}
  .var code{color:var(--gold);font-size:12.5px}
  .var span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
  .de-pasos{margin:6px 0 10px;padding-left:20px;line-height:1.8;font-size:14px}
  .de-cargos{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;font-size:13px}
  .de-cargos label{display:flex;gap:8px;align-items:center;margin:0;color:var(--text)}
  .de-cargos input{width:auto}
  .ct-plant{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px}
  .ct-plant button{width:auto}
  .emp-av{width:34px;height:34px;border-radius:50%;background:var(--f1f1f1f);border:1px solid var(--l333);display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--gold);flex:0 0 34px}
  .emp-cel{display:flex;gap:10px;align-items:center}
  .pill{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:12px;background:rgba(var(--acento-rgb),.12);color:var(--gold);border:1px solid rgba(var(--acento-rgb),.25);white-space:nowrap}
  .chip-cc{display:inline-block;font-size:12px;padding:2px 9px;border-radius:12px;background:var(--f161616);border:1px solid var(--line);white-space:nowrap}
  .imp-pasos{display:flex;gap:6px;margin:4px 0 16px}
  .imp-pasos span{flex:1;font-size:12px;color:var(--muted);padding-top:8px;border-top:3px solid var(--l262626)}
  .imp-pasos span.on{color:var(--text);border-top-color:var(--gold)}
  .imp-drop{border:2px dashed var(--l3a3a3a);border-radius:16px;padding:36px;text-align:center;cursor:pointer;background:var(--f0b0b0b)}
  .imp-drop:hover,.imp-drop.sobre{border-color:var(--gold);background:#11100a}
  .imp-ops{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;font-size:13px}
  .imp-ok td{color:var(--muted)}
  .cf-head{display:flex;gap:14px;align-items:center;margin-bottom:12px}
  .cf-head button{width:auto}
  .cf-etapas{display:flex;gap:4px;margin-bottom:12px;flex-wrap:wrap}
  .cf-etapas button{flex:1;min-width:120px;background:var(--f151515);border:1px solid var(--line);color:var(--muted);font-size:12px;padding:8px;border-radius:8px;margin:0;width:auto}
  .cf-etapas button.hecha{color:var(--text);border-color:rgba(var(--acento-rgb),.35)}
  .cf-etapas button.actual{background:rgba(var(--acento-rgb),.14);color:var(--gold);border-color:var(--gold);font-weight:800}
  .cf-check{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
  .cf-it{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2)}
  .cf-it b{display:block;font-size:14px}
  .cf-it.ok{border-color:rgba(34,197,94,.4)}.cf-it.no{border-color:rgba(var(--acento-rgb),.35)}
  .cf-lista{margin-bottom:18px}
  .cf-lista .fila{display:grid;gap:6px;margin-bottom:6px;align-items:center}
  .cf-lista input,.cf-lista select{padding:7px 9px;font-size:13px}
  .cf-lista .x{width:auto;padding:6px 10px;background:transparent;border:1px solid var(--l3a3a3a);color:var(--texto-peligro);margin:0}
  .pz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
  .pz-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;cursor:pointer}
  .pz-card:hover{border-color:var(--gold)}
  .pz-q{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:var(--panel2)}
  .pz-q .top{display:flex;gap:8px;align-items:center;margin-bottom:6px}
  .pz-q .top button{width:auto;padding:5px 9px;margin:0;font-size:12px}
  .pz-op{display:flex;gap:8px;align-items:center;margin-top:5px}
  .pz-op input[type=text]{flex:1;padding:7px 9px;font-size:13px}
  .pz-op input[type=checkbox],.pz-op input[type=radio]{width:auto}
  .pa-q{border-bottom:1px solid var(--line);padding:10px 0}
  .pa-ok{color:var(--texto-ok)}.pa-mal{color:var(--texto-peligro)}
  .slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
  .slot{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--panel2)}
  .slot.ok{border-color:rgba(34,197,94,.4)}.slot.pend.obl{border-color:rgba(var(--acento-rgb),.35)}
  .slot .sl-h{display:flex;gap:8px;align-items:center}.slot .sl-h b{font-size:13px;flex:1}
  .slot .sl-up{width:auto;padding:5px 10px;font-size:12px;margin:0;cursor:pointer;white-space:nowrap}
  .slot .sl-d{display:flex;gap:6px;align-items:center;font-size:12px;margin-top:6px;flex-wrap:wrap}
  .slot .sl-d select{width:auto;padding:4px 6px;font-size:12px}
  .pz-bib{border:1px dashed rgba(var(--acento-rgb),.45);background:rgba(var(--acento-rgb),.05);border-radius:14px;padding:14px 16px;margin-bottom:16px}
  .pz-bib .it{display:flex;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.pz-bib .it:first-of-type{border-top:0}
  .pz-bib .it button{width:auto;margin:0}
  .pz-nota{background:rgba(var(--acento-rgb),.1);border:1px solid rgba(var(--acento-rgb),.35);color:var(--gold);border-radius:8px;padding:6px 9px;font-size:12px;margin-top:6px}
  .as-t td,.as-t th{padding:6px 8px;font-size:13px}.r-bajo{color:var(--texto-ok)}.r-moderado{color:var(--texto-aviso-fuerte)}.r-alto{color:var(--texto-peligro-fuerte);font-weight:800}
  .wg{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.wg div{background:#fff;border-radius:8px;padding:4px;text-align:center;color:#111;font-size:12px}
  .wg img{width:100%;display:block;border-radius:6px}
  @media (max-width:700px){.wg{grid-template-columns:repeat(2,1fr)}}
  /* Celular: la barra superior no debe ensanchar la página */
  @media (max-width:640px){.topbar .who{display:none}.topbar>div:last-child{gap:8px!important}#btnSeguridad{display:none}.main{min-width:0;overflow-x:auto}.hero-tiles{grid-template-columns:1fr 1fr}}
  /* Resultado de la evaluación del candidato */
  .ev-box{margin:0 0 14px}
  .ev-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;border-radius:12px;border:1.5px solid var(--ev,#a16207);background:color-mix(in srgb,var(--ev,#a16207) 10%,transparent)}
  .ev-head .ev-c{font-size:20px;font-weight:800;color:var(--ev)}
  .ev-head .ev-l{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
  .ev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:10px}
  .ev-card{border:1px solid var(--line,rgba(148,163,184,.25));border-radius:10px;padding:10px 12px}
  .ev-card h4{margin:0 0 6px;font-size:13px}
  .ev-row{display:flex;gap:8px;align-items:flex-start;font-size:13px;padding:4px 0}
  .ev-dot{flex:0 0 auto;min-width:26px;text-align:center;font-size:10px;font-weight:800;border-radius:5px;padding:2px 4px;color:#fff}
  .ev-ok{background:#15803d}.ev-mal{background:#b91c1c}.ev-pendiente{background:#a16207}.ev-alerta{background:#c2410c}
  .ev-li{font-size:13px;margin:2px 0 2px 2px}
  .ev-q{font-size:12px;border-left:3px solid #b91c1c;padding:4px 8px;margin:6px 0}
  .ev-dec{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
  .ev-dec textarea{flex:1 1 260px;min-height:38px}
  /* Firma electrónica en la ficha */
  .fm-box{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px}
  .fm-head{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
  .fm-head button{width:auto}
  .fm-sol{border-top:1px solid var(--line);margin-top:10px;padding-top:10px;font-size:13px}
  .fm-sol .fm-docs{margin:6px 0 0 2px}
  .fm-sol .fm-doc{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:3px 0}
  .fm-op{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
  .fm-op input[type=checkbox]{width:20px;height:20px;margin-top:2px;accent-color:#f5c542;flex:0 0 20px}
  .fm-op select{margin-top:6px}
  .fm-link{display:flex;gap:8px;margin-top:8px}.fm-link input{flex:1;font-size:12px}
  .fm-link button{width:auto;white-space:nowrap}
  .fm-codigo{font-size:34px;font-weight:800;letter-spacing:8px;text-align:center;color:var(--gold);margin:10px 0}
  /* Retiros */
  .rt-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
  .rt-avance{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
  .rt-barra{width:160px;height:8px;background:var(--f222);border-radius:6px;overflow:hidden}.rt-barra i{display:block;height:100%;background:linear-gradient(90deg,var(--acento),#22c55e)}
  .rt-pasos{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.rt-pasos span{font-size:12px;padding:4px 9px;border-radius:14px;background:var(--f1a1a1a);border:1px solid var(--line);color:var(--muted)}
  .rt-pasos span.ok{color:var(--texto-ok);border-color:rgba(34,197,94,.35)}
  .rt-sec{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
  .rt-sec summary{cursor:pointer;font-weight:700;margin:-2px 0 10px;list-style:revert}
  .rt-sec:not([open]) summary{margin-bottom:-2px}
  .rt-otro{display:flex;gap:8px;margin-bottom:6px}.rt-otro input:first-child{flex:2}.rt-otro input{flex:1}.rt-otro button{width:auto}
  .rt-chks{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
  .rt-lq td{padding:7px 10px;vertical-align:top}.rt-lq tr.deduccion td:first-child{color:var(--texto-peligro)}
  .rt-lq tr.tot td{font-weight:700;border-top:1px solid var(--line)}.rt-lq tr.neto td{font-weight:800;font-size:16px;color:var(--gold);border-top:2px solid var(--gold)}

/* Avisos breves (UI.aviso) */
.avisos{position:fixed;top:14px;right:14px;z-index:20000;display:flex;flex-direction:column;gap:8px;max-width:360px}
.aviso{padding:10px 14px;border-radius:10px;font-size:13.5px;background:var(--panel);border:1px solid var(--line);color:var(--text);box-shadow:0 10px 30px rgba(0,0,0,.35);animation:avisoEntra .2s ease-out}
.aviso.ok{border-color:rgba(22,163,74,.5);color:var(--texto-ok)}
.aviso.err{border-color:rgba(220,38,38,.5);color:var(--texto-peligro)}
.aviso.ida{opacity:0;transform:translateY(-6px);transition:all .4s}
@keyframes avisoEntra{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  /* ---- Programación 2.62: Cubrir y cuadrilla del puesto ---- */
  .cb-rango{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
  .cb-rango .t2{border:0;border-radius:0;padding:9px 13px;font-size:13px}
  .cb-rango .t2.on{background:var(--panel2);color:var(--text);box-shadow:inset 0 -2px 0 var(--gold)}
  .cb-dia{margin:0 0 16px}
  .cb-dia-t{display:flex;align-items:baseline;gap:10px;padding:0 2px 6px;position:sticky;top:0;background:var(--bg);z-index:1}
  .cb-dia-t b{font-size:15px}
  .cb-it{display:grid;grid-template-columns:auto minmax(280px,1.5fr) minmax(0,1fr);gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:6px}
  .cb-it.hecho{opacity:.75}
  .cb-t{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:15px}
  .cb-t.D{background:rgba(245,197,66,.16);color:var(--gold)}
  .cb-t.N{background:rgba(99,102,241,.2);color:#a5b4fc}
  [data-tema=claro] .cb-t.D{background:#fef3c7;color:#92400e}
  [data-tema=claro] .cb-t.N{background:#e0e7ff;color:#3730a3}
  .cb-info{min-width:0;overflow-wrap:anywhere}
  .cb-nov{color:#f59e0b;font-weight:600}
  [data-tema=claro] .cb-nov{color:#b45309}
  .cb-quien{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:center;min-width:0}
  .cb-sug{width:auto;margin:0;text-align:left;padding:6px 11px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);color:var(--text);font-weight:400;line-height:1.25;max-width:230px}
  .cb-sug b,.cb-sug small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cb-sug b{font-size:13px;font-weight:600}
  .cb-sug small,.cb-cubre small,.cb-cand small,.pq-r small,.pq-p small,.pq-ops small{font-size:11.5px;color:var(--muted);font-weight:400}
  .cb-sug.disponible{border-color:rgba(22,163,74,.55)}
  .cb-sug.doble{border-style:dashed}
  .cb-sug:hover:not(:disabled){border-color:var(--gold)}
  .cb-cubre{text-align:right;line-height:1.3}
  .cb-cubre small{display:block}
  .cb-cand{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;margin:0 0 6px;text-align:left;background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:9px 12px;border-radius:10px;font-weight:400}
  .cb-cand small{display:block}
  .cb-cand:disabled{opacity:.5;cursor:not-allowed}
  .pq-paso{display:flex;align-items:center;gap:9px;margin:20px 0 10px}
  .pq-paso span{width:24px;height:24px;border-radius:50%;background:var(--gold);color:#111;display:grid;place-items:center;font-weight:800;font-size:13px;flex:none}
  .pq-fila{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}
  .pq-fila label{margin-top:0}
  .pq-ops{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
  .pq-ops button{margin:0;width:auto;text-align:left;background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:10px 12px;border-radius:12px;line-height:1.3}
  .pq-ops button b,.pq-ops button small{display:block}
  .pq-ops button.on{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
  .pq-cuad{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .pq-cuad label{margin-top:0}
  .pq-gente{display:flex;flex-wrap:wrap;gap:6px;min-height:42px;border:1px solid var(--line);border-radius:12px;padding:8px;align-content:flex-start}
  .pq-p{display:inline-flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:4px 6px 4px 12px;font-size:13px;max-width:100%}
  .pq-p b{font-weight:600;overflow-wrap:anywhere}
  .pq-p small{display:block}
  .pq-gente .pq-p{border-radius:12px}
  .pq-p button{width:22px;height:22px;margin:0;padding:0;border-radius:50%;background:transparent;border:1px solid var(--line);color:var(--muted);line-height:1;font-size:15px;flex:none}
  .pq-busca{margin-top:12px}
  .pq-r{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid var(--line)}
  .pq-r small{display:block}
  .pq-r>span:last-child{white-space:nowrap}
  .pq-cuenta{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);line-height:1.5;font-size:14px}
  @media (max-width:760px){.cb-it{grid-template-columns:auto 1fr}.cb-quien{grid-column:1/-1;justify-content:flex-start}.pq-fila,.pq-cuad{grid-template-columns:1fr}}
