:root{--bg:#eef2f8;--surface:#fff;--fg:#0e1f45;--muted:#5d6b88;--line:#d3ddeb;--accent:#1d4aa8;--accent-soft:#e7eefb;--danger:#b42318;--ok:#1a7f37;--warn:#b54708;color:var(--fg);background:var(--bg);font-family:"Source Sans 3",Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.45}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:0;font-family:Montserrat,Segoe UI,sans-serif;line-height:1.2}.muted{color:var(--muted)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;font-size:12px;font-weight:700}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:9px 16px;font-weight:700}button:disabled{opacity:.6;cursor:default}button.link,button.secundario{color:var(--accent);background:0 0;border-color:#0000;padding:4px 0;font-weight:600}button.secundario{border-color:var(--line);padding:6px 12px}input,select{font:inherit;border:1px solid var(--line);color:var(--fg);background:#fff;border-radius:6px;padding:9px 11px}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.error{color:var(--danger);margin:0}.aviso{color:var(--ok);margin:0}.login{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:10px;width:min(400px,100%);padding:32px;display:grid}.login-card h1{font-size:24px}.login-form{gap:10px;margin-top:12px;display:grid}.login-form label{font-size:14px;font-weight:600}#codigo{letter-spacing:6px;text-align:center;font-size:22px}.top{background:var(--fg);color:#fff}.top-in{flex-wrap:wrap;align-items:center;gap:20px;max-width:1280px;margin:0 auto;padding:10px 20px;display:flex}.top .marca{color:#fff;font-family:Montserrat,sans-serif;font-weight:700}.top nav{flex-wrap:wrap;flex:1;gap:4px;display:flex}.top nav a{color:#c9d5ee;border-radius:6px;padding:6px 10px;font-size:14px}.top nav a:hover,.top nav a[aria-current=page]{color:#fff;background:#ffffff1f}.top .quien{color:#c9d5ee;align-items:center;gap:10px;font-size:13px;display:flex}.top .quien button{background:0 0;border-color:#ffffff4d;padding:4px 10px;font-size:13px}.pagina{gap:20px;max-width:1280px;margin:0 auto;padding:24px 20px 48px;display:grid}.titulo{gap:4px;display:grid}.titulo h1{font-size:24px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px}.panel h2{margin-bottom:12px;font-size:16px}.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:4px;padding:14px 16px;display:grid}.kpi .v{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.kpi .l{color:var(--muted);font-size:13px}.grid-tableros{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.tablero{background:var(--surface);border:1px solid var(--line);color:var(--fg);border-radius:10px;gap:6px;padding:16px;display:grid}.tablero:hover{border-color:var(--accent)}.tablero .cod{color:var(--accent);font-size:12px;font-weight:700}.tablero.pronto{opacity:.6;pointer-events:none}table.datos{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}table.datos th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:600}table.datos td{border-bottom:1px solid #edf1f7;padding:7px 10px}table.datos td.n,table.datos th.n{text-align:right}.tabla-scroll{overflow-x:auto}.chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.chip.ok{color:var(--ok);background:#e6f4ea}.chip.mal{color:var(--danger);background:#fdecea}.chip.warn{color:var(--warn);background:#fff4e5}.filtros{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.filtros label{color:var(--muted);gap:4px;font-size:12px;font-weight:600;display:grid}.dos-col{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:16px;display:grid}.barras{gap:6px;display:grid}.barra-fila{grid-template-columns:minmax(110px,34%) 1fr auto;align-items:center;gap:10px;font-size:13px;display:grid}.barra-et{text-overflow:ellipsis;white-space:nowrap;color:var(--fg);overflow:hidden}.barra-pista{height:16px;display:flex}.barra{background:#2a78d6;border-radius:0 4px 4px 0;min-width:2px;height:100%}.barra-pista.apilada{gap:2px}.seg{color:#fff;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex;overflow:hidden}.seg:last-child{border-radius:0 4px 4px 0}.barra-v{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right;min-width:40px}.leyenda{color:var(--muted);flex-wrap:wrap;gap:14px;margin-bottom:8px;font-size:12px;display:flex}.leyenda i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}.matriz-wrap{overflow-x:auto}.matriz{grid-template-columns:34px repeat(24,minmax(16px,1fr));gap:2px;min-width:520px;display:grid}.matriz .mh{color:var(--muted);font-size:10px}.matriz .md{color:var(--muted);align-self:center;font-size:11px}.matriz .mc{border-radius:2px;height:18px}.matriz .mc.noche{box-shadow:inset 0 -2px #eda100}.nota{color:var(--muted);margin:8px 0 0;font-size:12px}details.viajes summary{cursor:pointer;color:var(--accent);font-weight:600}.shell{grid-template-columns:236px 1fr;min-height:100vh;display:grid}.side{background:var(--fg);color:#c9d5ee;flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.side-marca{color:#fff;border-bottom:1px solid #ffffff14;padding:18px 18px 14px;font-family:Montserrat,sans-serif;font-size:18px;font-weight:700;display:grid}.side-marca span{color:#9fb3dd;letter-spacing:.04em;font-size:12px;font-weight:600}.side-nav{flex:1;align-content:start;gap:1px;padding:10px 8px;display:grid}.side-grupo{text-transform:uppercase;letter-spacing:.08em;color:#7f93bd;margin:14px 10px 4px;font-size:11px;font-weight:700}.side-item{color:#c9d5ee;border-radius:6px;align-items:baseline;gap:8px;padding:7px 10px;font-size:14px;line-height:1.25;display:flex}.side-item:hover{color:#fff;background:#ffffff12}.side-item[aria-current=page]{color:#fff;background:#1d4aa8}.side-cod{color:#9fb3dd;min-width:26px;font-size:11px;font-weight:700}.side-item[aria-current=page] .side-cod{color:#fff}.side-pie{border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:8px;padding:12px 18px 16px;font-size:13px;display:flex}.side-pie span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.side-pie button{background:0 0;border-color:#ffffff4d;padding:4px 10px;font-size:12px}.contenido{min-width:0}.contenido .pagina{max-width:1240px;margin:0}@media (max-width:900px){.shell{grid-template-columns:1fr}.side{height:auto;position:static}.side-nav{grid-auto-columns:max-content;grid-auto-flow:column;padding-bottom:8px;overflow-x:auto}.side-grupo{display:none}}.gf{gap:14px;max-width:1240px;padding:20px 24px 40px;display:grid}.gf-barra{color:#fff;background:#0e1f45;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}.gf-barra b{font-family:Montserrat,sans-serif}.gf-barra .gf-ruta{color:#c9d5ee;font-size:14px}.gf-barra .gf-ruta strong{color:#fff;font-weight:600}.gf-filtros{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:end;gap:14px;padding:12px 16px;display:flex;box-shadow:0 1px 3px #0e1f450f}.gf-filtros label{color:var(--fg);gap:3px;font-size:12px;font-weight:700;display:grid}.gf-filtros input,.gf-filtros select{padding:6px 8px;font-size:13px}.gf-filtros button{background:#0e1f45;border-color:#0e1f45;margin-left:auto}.gf-kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.gf-kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:2px;padding:12px 16px;display:grid;box-shadow:0 1px 3px #0e1f450f}.gf-kpi .k{letter-spacing:.05em;text-transform:uppercase;color:#1d4aa8;font-size:11px;font-weight:700}.gf-kpi .v{font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1.15}.gf-kpi .s{color:var(--muted);font-size:12px}.gf-fila{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px;display:grid}.gf-fila.tres{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.gf-panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:0;padding:14px 18px;box-shadow:0 1px 3px #0e1f450f}.gf-panel h2{margin:0;font-size:16px}.gf-panel .sub{color:var(--muted);margin:2px 0 10px;font-size:12px}.gf-nota{color:var(--muted);margin:0;font-size:12px}.gf-reglas{color:var(--muted);font-size:12px}.gf-reglas summary{cursor:pointer;color:var(--accent);font-weight:600}.mapa{background:#e9eef5;border-radius:8px;width:100%}table.gf-tabla{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}table.gf-tabla th{color:#fff;text-align:left;white-space:nowrap;background:#0e1f45;border:1px solid #0e1f45;padding:7px 10px;font-weight:600}table.gf-tabla td{border:1px solid #d3ddeb;padding:6px 10px}table.gf-tabla tr:nth-child(2n) td{background:#f5f8fc}table.gf-tabla .n{text-align:right}table.gf-tabla .c{text-align:center}.bv{border-bottom:1px solid #c9d3e3;align-items:flex-end;gap:10px;height:190px;padding-top:18px;display:flex}.bv-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex}.bv-v{margin-bottom:3px;font-size:12px;font-weight:700}.bv-b{border-radius:4px 4px 0 0;width:70%;max-width:64px;min-height:2px}.bv-et{gap:10px;display:flex}.bv-et span{text-align:center;color:var(--muted);flex:1;padding-top:4px;font-size:12px}.cap{gap:6px;display:flex}.cap div{color:#fff;border-radius:6px;place-items:center;min-width:52px;height:52px;font-size:26px;font-weight:700;display:grid}.cap-et{gap:6px;margin-top:4px;display:flex}.cap-et span{text-align:center;font-size:12px;font-weight:700}.cap-pie{color:#fff;background:#0e1f45;border-radius:8px;margin-top:14px;padding:12px 16px;font-size:14px}.cap-pie b{font-size:16px}.leyenda-lista{gap:12px;margin-top:6px;display:grid}.leyenda-lista div{align-items:center;gap:10px;font-size:14px;display:flex}.leyenda-lista i{border-radius:50%;width:12px;height:12px;display:inline-block}.leyenda-lista b{font-variant-numeric:tabular-nums;margin-left:auto}.progreso{grid-template-columns:160px 1fr 52px;align-items:center;gap:10px;margin-bottom:10px;font-size:13px;display:grid}.progreso .pista{background:#e6ebf3;border-radius:6px;height:10px;overflow:hidden}.progreso .pista span{border-radius:6px;height:100%;display:block}.progreso b{text-align:right}
