/* Dirección (bloque 04 EYSA, 05/11/2026). Todo acotado a .dir: no toca el resto de la plataforma. Claro por defecto; oscuro con html[data-ot-theme=dark].
   Colores de la marca Ordenatec: azul noche, azul intenso, azul eléctrico, cian radar, brillo, pizarra, niebla, nube y amarillo aviso. */
.dir{--o-font:"Plus Jakarta Sans",Arial,sans-serif;--o-t1:12px;--o-t2:13px;--o-t3:14px;--o-r-ctl:10px;--o-r-card:16px;
  --noche:#0B1B33;--intenso:#0B64F0;--electrico:#0D8EF2;--radar:#17B8F6;--brillo:#6FE0FF;--pizarra:#607089;--niebla:#E3EAF5;--nube:#F5F8FC;--aviso:#F2C14E;
  --o-bg:#F5F8FC;--o-surface:#fff;--o-surface-2:#F4F8FF;--o-line:#E3EAF5;--o-line-2:#EDF2F9;--o-ink:#0B1B33;--o-muted:#607089;--o-faint:#93A1B6;
  --o-primary:#0B64F0;--o-primary-ink:#fff;--o-primary-soft:rgba(11,100,240,.08);--o-primary-line:rgba(11,100,240,.24);--o-link:#0B64F0;--o-focus:#0D8EF2;
  --c-det:#C9D5E6;--c-tra:#0D8EF2;--c-dec:#0B64F0;--c-ofe:#0B1B33;--c-gan:#F2C14E;--c-per:#607089;--c-des:#93A1B6;--c-otro:#17B8F6;
  --o-sh-1:0 1px 2px rgba(11,27,51,.04),0 6px 18px rgba(11,27,51,.05);--o-sh-2:0 16px 40px rgba(11,27,51,.14);--o-hover:rgba(11,27,51,.04);
  font:500 var(--o-t3)/1.5 var(--o-font);color:var(--o-ink)}
html[data-ot-theme=dark] .dir{--o-bg:#061429;--o-surface:#0B1B33;--o-surface-2:#0F2442;--o-line:#1C3358;--o-line-2:#16294A;--o-ink:#F4F8FF;--o-muted:#97A8C4;--o-faint:#6E819F;
  --o-primary:#17B8F6;--o-primary-ink:#061429;--o-primary-soft:rgba(23,184,246,.12);--o-primary-line:rgba(23,184,246,.34);--o-link:#6FE0FF;--o-focus:#17B8F6;
  --c-det:#2A4470;--c-tra:#17B8F6;--c-dec:#0D8EF2;--c-ofe:#F4F8FF;--c-per:#97A8C4;--c-des:#6E819F;--c-otro:#6FE0FF;
  --o-sh-1:0 1px 2px rgba(0,0,0,.35),0 6px 18px rgba(0,0,0,.25);--o-sh-2:0 16px 40px rgba(0,0,0,.5);--o-hover:rgba(255,255,255,.04)}
.dir-route.dir{display:flex;flex-direction:column;gap:18px;padding:4px 0 90px;min-width:0}
.dir *{box-sizing:border-box}
.dir button,.dir input,.dir select{font:inherit;color:inherit}
.dir :focus-visible{outline:2px solid var(--o-focus);outline-offset:2px}
.dir .o-i{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dir [hidden]{display:none!important}
.dir a{color:var(--o-link)}
@keyframes dir-up{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes dir-spin{to{transform:rotate(360deg)}}
@keyframes dir-pulse{0%,100%{box-shadow:0 0 0 0 rgba(242,193,78,.55)}50%{box-shadow:0 0 0 6px rgba(242,193,78,0)}}
@keyframes dir-sweep{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.dir-anim{animation:dir-up .45s cubic-bezier(.2,.7,.2,1) both}
.dir-load{display:flex;align-items:center;gap:10px;padding:40px 8px;color:var(--o-muted);font-weight:600}
.dir-spin{width:18px;height:18px;border-radius:50%;border:2px solid var(--o-primary);border-right-color:transparent;animation:dir-spin .7s linear infinite}

/* Cabecera */
.dir-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dir-ph{display:flex;align-items:center;gap:12px;flex:1;min-width:240px}
.dir-tile{width:42px;height:42px;border-radius:12px;background:var(--o-primary-soft);color:var(--o-primary);display:grid;place-items:center;flex:none;position:relative;overflow:hidden}
.dir-tile .o-i{width:22px;height:22px}
.dir-tile::after{content:"";position:absolute;inset:-40%;background:conic-gradient(from 0deg,transparent 0 300deg,rgba(23,184,246,.28) 360deg);animation:dir-sweep 6s linear infinite}
.dir-ph h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.015em;line-height:1.15}
.dir-ph small{display:block;color:var(--o-muted);font-size:var(--o-t2);font-weight:600}
.dir-acc{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dir .o-tabs{display:inline-flex;gap:2px;padding:4px;background:var(--o-surface-2);border:1px solid var(--o-line);border-radius:12px;max-width:100%;overflow-x:auto;align-self:flex-start}
.dir .o-tab{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border:0;border-radius:9px;background:none;color:var(--o-muted);font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s,box-shadow .2s}
.dir .o-tab:hover{color:var(--o-ink)}
.dir .o-tab[aria-selected="true"]{background:var(--o-surface);color:var(--o-ink);box-shadow:0 1px 2px rgba(11,27,51,.08),0 2px 8px rgba(11,27,51,.06)}
.dir .o-tab[aria-selected="true"] .o-i{color:var(--o-primary)}
.dir .o-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 14px;border-radius:var(--o-r-ctl);border:1px solid transparent;font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s}
.dir .o-btn.pri{background:var(--o-primary);color:var(--o-primary-ink)}
.dir .o-btn.pri:hover{box-shadow:0 6px 16px rgba(11,100,240,.25);transform:translateY(-1px)}
.dir .o-btn.sec{background:var(--o-surface);border-color:var(--o-line);color:var(--o-ink)}
.dir .o-btn.sec:hover{border-color:var(--o-primary-line);background:var(--o-surface-2)}
.dir .o-btn.sm{height:30px;padding:0 10px;font-size:var(--o-t2)}
.dir .o-btn[disabled]{opacity:.5;cursor:default;transform:none;box-shadow:none}
.dir-sel{height:38px;border:1px solid var(--o-line);border-radius:var(--o-r-ctl);background:var(--o-surface);padding:0 30px 0 12px;font-weight:600;max-width:220px;
  appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23607089' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;background-size:15px}
html[data-ot-theme=dark] .dir-sel{background-color:var(--o-surface)}
.dir-inp{height:38px;border:1px solid var(--o-line);border-radius:var(--o-r-ctl);background:var(--o-surface);padding:0 12px;min-width:200px}
.dir-sel.sm{height:32px;font-size:var(--o-t2);padding:0 26px 0 9px;background-position:right 7px center;background-size:13px}
.dir-inp.sm{height:32px;min-width:0;width:112px;font-size:var(--o-t2);padding:0 9px}
.dir-an{min-width:200px}
.dir-an-f{display:inline-flex;gap:6px;align-items:center}
.dir-filtros{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dir-filtros label{display:flex;flex-direction:column;gap:3px;font-size:var(--o-t1);font-weight:700;color:var(--o-muted);text-transform:uppercase;letter-spacing:.04em}
.dir-menu{position:relative}
.dir-menu-l{position:absolute;right:0;top:44px;z-index:30;background:var(--o-surface);border:1px solid var(--o-line);border-radius:12px;box-shadow:var(--o-sh-2);padding:6px;display:flex;flex-direction:column;min-width:210px}
.dir-menu-l button{display:flex;align-items:center;gap:8px;border:0;background:none;padding:9px 10px;border-radius:8px;cursor:pointer;font-weight:600;text-align:left}
.dir-menu-l button:hover{background:var(--o-hover)}

/* Paneles */
.dir-panel{background:var(--o-surface);border:1px solid var(--o-line);border-radius:var(--o-r-card);box-shadow:var(--o-sh-1);padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.dir-panel h2{margin:0;font-size:17px;font-weight:800;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}
.dir-panel h2 .o-i{color:var(--o-primary)}
.dir-ph2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dir-ph2 .dir-sp{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dir-nota{color:var(--o-muted);font-size:var(--o-t2);margin:0}
.dir-grid2{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px}
@media (max-width:1100px){.dir-grid2{grid-template-columns:minmax(0,1fr)}}

/* Cifras */
.dir-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
@media (max-width:1250px){.dir-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.dir-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dir-kpi{position:relative;text-align:left;border:1px solid var(--o-line);background:var(--o-surface);border-radius:14px;padding:14px 14px 12px;cursor:pointer;display:flex;flex-direction:column;gap:4px;
  box-shadow:var(--o-sh-1);transition:transform .18s,box-shadow .18s,border-color .18s;overflow:hidden;min-width:0}
.dir-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c,var(--o-primary))}
.dir-kpi:hover{transform:translateY(-2px);box-shadow:var(--o-sh-2);border-color:var(--o-primary-line)}
.dir-kpi[aria-pressed="true"]{border-color:var(--o-primary);box-shadow:0 0 0 3px var(--o-primary-soft)}
.dir-kpi .k-l{font-size:var(--o-t2);font-weight:700;color:var(--o-muted);display:flex;align-items:center;gap:6px}
.dir-kpi .k-v{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.dir-kpi .k-d{font-size:var(--o-t1);color:var(--o-muted);font-weight:600}
.dir-kpi .k-bar{height:4px;border-radius:4px;background:var(--o-line-2);overflow:hidden;margin-top:4px}
.dir-kpi .k-bar i{display:block;height:100%;width:0;background:var(--c,var(--o-primary));border-radius:4px;transition:width 1.1s cubic-bezier(.2,.7,.2,1)}

/* Punto de estado + texto (sin chips) */
.dir-dot{display:inline-flex;align-items:center;gap:6px;font-weight:600;white-space:nowrap}
.dir-dot::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c,var(--o-faint));flex:none}
.dir-dot.vivo::before{animation:dir-pulse 1.8s ease-in-out infinite}

/* Embudo */
.dir-embudo{display:flex;flex-direction:column;gap:10px}
.dir-et{display:grid;grid-template-columns:120px minmax(0,1fr) 78px 64px;align-items:center;gap:12px;border:0;background:none;padding:2px 0;text-align:left;cursor:pointer;border-radius:10px}
.dir-et:hover .dir-et-b{filter:brightness(1.06)}
.dir-et-n{font-weight:700;font-size:var(--o-t3)}
.dir-et-t{position:relative;height:30px;background:var(--o-line-2);border-radius:9px;overflow:hidden}
.dir-et-b{position:absolute;inset:0 auto 0 0;width:0;background:var(--c);border-radius:9px;transition:width 1.2s cubic-bezier(.2,.7,.2,1)}
.dir-et-v{font-weight:800;font-size:18px;font-variant-numeric:tabular-nums;text-align:right}
.dir-et-c{font-size:var(--o-t2);font-weight:700;color:var(--o-muted);text-align:right;font-variant-numeric:tabular-nums}
.dir-et-c b{color:var(--o-ink)}
@media (max-width:640px){.dir-et{grid-template-columns:86px minmax(0,1fr) 56px 48px}}

/* Barras horizontales (motivos, líneas, rivales) */
.dir-hb{display:flex;flex-direction:column;gap:8px}
.dir-hb-f{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr) auto;align-items:center;gap:10px}
.dir-hb-f span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.dir-hb-t{height:12px;border-radius:6px;background:var(--o-line-2);overflow:hidden;display:flex}
.dir-hb-t i{display:block;height:100%;width:0;background:var(--c,var(--o-primary));transition:width 1s cubic-bezier(.2,.7,.2,1)}
.dir-hb-f b{font-variant-numeric:tabular-nums;font-size:var(--o-t2)}

/* Cifras oficiales */
.dir-ofi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
@media (max-width:900px){.dir-ofi{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dir-ofi div{background:var(--o-surface-2);border:1px solid var(--o-line-2);border-radius:12px;padding:12px}
.dir-ofi b{display:block;font-size:24px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.dir-ofi > div > span{display:block;font-size:var(--o-t2);color:var(--o-muted);font-weight:600}
.dir-ofi .real{border-left:4px solid var(--aviso)}

/* Columnas por mes */
.dir-cols{display:flex;align-items:flex-end;gap:6px;height:120px;padding-top:8px}
.dir-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%}
.dir-col-b{width:100%;max-width:34px;display:flex;flex-direction:column-reverse;border-radius:6px 6px 2px 2px;overflow:hidden;height:0;transition:height 1s cubic-bezier(.2,.7,.2,1)}
.dir-col-b i{display:block;width:100%}
.dir-col small{font-size:11px;color:var(--o-muted);font-weight:600;white-space:nowrap}
.dir-leyenda{display:flex;gap:14px;flex-wrap:wrap;font-size:var(--o-t2);color:var(--o-muted)}

/* Tablas */
.dir-tw{overflow-x:auto;border:1px solid var(--o-line);border-radius:12px}
.dir-t{width:100%;border-collapse:collapse;font-size:var(--o-t2)}
.dir-t th{position:sticky;top:0;background:var(--o-surface-2);color:var(--o-muted);font-weight:700;text-align:left;padding:9px 10px;white-space:nowrap;border-bottom:1px solid var(--o-line)}
.dir-t td{padding:9px 10px;border-bottom:1px solid var(--o-line-2);vertical-align:top}
.dir-t tr:last-child td{border-bottom:0}
.dir-t tbody tr{transition:background .15s}
.dir-t tbody tr:hover{background:var(--o-hover)}
.dir-t .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.dir-t .tit{min-width:260px;max-width:440px}
.dir-t .tit a{font-weight:700;text-decoration:none;color:var(--o-ink)}
.dir-t .tit a:hover{color:var(--o-link);text-decoration:underline}
.dir-t .tit small{display:block;color:var(--o-muted);font-weight:500}
.dir-t .mini{display:inline-block;height:6px;border-radius:3px;background:var(--c,var(--o-primary));vertical-align:middle;margin-right:6px;opacity:.85}
.dir-t .gan td{background:rgba(242,193,78,.10)}
.dir-pag{display:flex;align-items:center;gap:8px;justify-content:flex-end;color:var(--o-muted);font-size:var(--o-t2);font-weight:600}
.dir-vacio{padding:26px;text-align:center;color:var(--o-muted);font-weight:600;border:1px dashed var(--o-line);border-radius:12px}

/* Tiempos */
.dir-tiempos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.dir-tiempos div{border:1px solid var(--o-line-2);border-radius:12px;padding:10px 12px;background:var(--o-surface-2)}
.dir-tiempos b{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.dir-tiempos > div > span{display:block;font-size:var(--o-t2);color:var(--o-muted);font-weight:600}

/* Carga del equipo: mapa de calor */
.dir-heat{display:grid;gap:4px;min-width:640px}
.dir-heat-h{font-size:11px;font-weight:700;color:var(--o-muted);text-align:center;padding:2px 0}
.dir-heat-p{font-weight:700;font-size:var(--o-t2);display:flex;align-items:center;gap:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.dir-av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;background:var(--intenso);flex:none}
.dir-cel{height:44px;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;font-variant-numeric:tabular-nums;
  background:var(--o-line-2);color:var(--o-muted);border:1px solid transparent;cursor:default;transform:scale(.6);opacity:0;transition:transform .5s cubic-bezier(.2,.9,.3,1.3),opacity .4s}
.dir-cel.on{transform:none;opacity:1}
.dir-cel small{font-size:10px;font-weight:700;opacity:.85}
.dir-cel.n1{background:rgba(13,142,242,.16);color:var(--o-ink)}
.dir-cel.n2{background:rgba(11,100,240,.38);color:#fff}
.dir-cel.n3{background:var(--intenso);color:#fff}
.dir-cel.pd{background:rgba(23,184,246,.14);color:var(--o-ink)}
.dir-cel.choque{background:var(--aviso);color:#0B1B33;animation:dir-pulse 1.8s ease-in-out infinite}
.dir-cuellos{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.dir-cuellos li{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--o-line-2);border-radius:12px;background:var(--o-surface-2)}
.dir-cuellos li b{font-variant-numeric:tabular-nums}
.dir-cal{display:flex;flex-direction:column;gap:10px}
.dir-cal-d{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;align-items:start}
.dir-cal-d > b{font-size:var(--o-t2);color:var(--o-muted);padding-top:2px}
.dir-cal-d ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.dir-cal-d li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.dir-cal-d li a{font-weight:600;text-decoration:none;color:var(--o-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1 1 260px;min-width:0}
.dir-cal-d li a:hover{color:var(--o-link)}
.dir-cal-d li small{color:var(--o-muted)}

/* Competencia */
.dir-cob{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:900px){.dir-cob{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dir-cob div{border:1px solid var(--o-line-2);border-radius:12px;padding:12px;background:var(--o-surface-2)}
.dir-cob b{display:block;font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}
.dir-cob > div > span{display:block;font-size:var(--o-t2);color:var(--o-muted);font-weight:600}
.dir-adj{border:1px solid var(--o-line);border-radius:14px;overflow:hidden;background:var(--o-surface)}
.dir-adj > summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;cursor:pointer}
.dir-adj > summary::-webkit-details-marker{display:none}
.dir-adj > summary:hover{background:var(--o-hover)}
.dir-adj-t{font-weight:700;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dir-adj-m{display:flex;gap:14px;flex-wrap:wrap;color:var(--o-muted);font-size:var(--o-t2);font-weight:600}
.dir-adj-x{display:flex;align-items:center;gap:10px;color:var(--o-muted);font-weight:700;font-size:var(--o-t2)}
.dir-adj-x .o-i{transition:transform .25s}
.dir-adj[open] .dir-adj-x .o-i{transform:rotate(180deg)}
.dir-adj-c{padding:0 14px 14px}
.dir-lista-adj{display:flex;flex-direction:column;gap:10px}

.dir-aviso{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:9999;background:#0B1B33;color:#F4F8FF;padding:12px 18px;border-radius:12px;box-shadow:0 16px 40px rgba(11,27,51,.3);font:600 14px/1.4 "Plus Jakarta Sans",Arial,sans-serif;animation:dir-up .3s both}

/* Bloque en la ficha de la licitación */
.dir-ficha{margin:18px 0;background:var(--o-surface);border:1px solid var(--o-line);border-radius:var(--o-r-card);box-shadow:var(--o-sh-1);padding:18px;display:flex;flex-direction:column;gap:12px}
.dir-ficha h3{margin:0;font-size:17px;font-weight:800;display:flex;gap:8px;align-items:center}
.dir-ficha h3 .o-i{color:var(--o-primary)}

@media (prefers-reduced-motion:reduce){.dir *{animation:none!important;transition:none!important}.dir-cel{transform:none;opacity:1}}
