  :root {
    --azul: #1B3A5C; --azul2: #2E6BA8; --claro: #EAF2FA;
    --gris: #6b7280; --verde: #16a34a; --rojo: #dc2626;
    --naranja: #ea580c; --borde: #d1d5db;
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { font-family: 'Segoe UI', Arial, sans-serif; background: #f3f4f6;
         color: #1f2937; line-height: 1.5; }
  header { background: var(--azul); color: white; padding: 14px 24px;
           display: flex; align-items: center; justify-content: space-between; }
  header h1 { font-size: 20px; font-weight: 600; }
  header nav a { color: #cde0f2; text-decoration: none; margin-left: 20px;
                 font-size: 14px; }
  header nav a:hover { color: white; }
  .container { max-width: 1280px; margin: 0 auto; padding: 24px; }
  .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr));
           gap: 16px; margin-bottom: 24px; }
  .card { background: white; border-radius: 10px; padding: 18px;
          box-shadow: 0 1px 3px rgba(0,0,0,.08); border-left: 4px solid var(--azul2); }
  .card .num { font-size: 30px; font-weight: 700; color: var(--azul); }
  .card .lbl { font-size: 13px; color: var(--gris); margin-top: 4px; }
  .card.alerta { border-left-color: var(--naranja); }
  .card.alerta .num { color: var(--naranja); }
  table { width: 100%; border-collapse: collapse; background: white;
          border-radius: 10px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
  th { background: var(--azul); color: white; text-align: left; padding: 10px 12px;
       font-size: 13px; font-weight: 600; }
  td { padding: 10px 12px; border-bottom: 1px solid #eee; font-size: 14px; }
  tr:nth-child(even) td { background: #f9fbfd; }
  tr:hover td { background: var(--claro); }
  a.link { color: var(--azul2); text-decoration: none; font-weight: 600; }
  a.link:hover { text-decoration: underline; }
  .badge { display: inline-block; padding: 2px 10px; border-radius: 999px;
           font-size: 12px; font-weight: 600; }
  .b-borrador { background:#e5e7eb; color:#374151; }
  .b-provisional { background:#fef3c7; color:#92400e; }
  .b-en_proceso { background:#dbeafe; color:#1e40af; }
  .b-presupuestado { background:#ede9fe; color:#5b21b6; }
  .b-confirmado { background:#d1fae5; color:#065f46; }
  .b-facturado { background:#cffafe; color:#0e7490; }
  .b-completado { background:#dcfce7; color:#14532d; }
  .b-cerrada { background:#f3f4f6; color:#374151; }
  .b-cancelado { background:#fee2e2; color:#991b1b; }
  .b-archivado { background:#f3f4f6; color:#9ca3af; }
  .b-vip { background:#fae8ff; color:#86198f; }
  .b-urgente { background:#ffedd5; color:#9a3412; }
  .b-normal { background:#f3f4f6; color:#6b7280; }
  h2 { color: var(--azul); margin: 24px 0 14px; font-size: 18px; }
  .filtros { margin-bottom: 16px; display: flex; gap: 8px; flex-wrap: wrap; }
  .filtros a { padding: 6px 14px; background: white; border: 1px solid var(--borde);
               border-radius: 8px; text-decoration: none; color: var(--gris);
               font-size: 13px; }
  .filtros a.activo { background: var(--azul2); color: white; border-color: var(--azul2); }
  .search { padding: 8px 12px; border: 1px solid var(--borde); border-radius: 8px;
            width: 280px; font-size: 14px; }
  .ficha { background: white; border-radius: 10px; padding: 24px; margin-bottom: 20px;
           box-shadow: 0 1px 3px rgba(0,0,0,.08); }
  .ficha-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
                gap: 14px; margin-top: 14px; }
  .campo { font-size: 14px; }
  .campo .k { color: var(--gris); font-size: 12px; text-transform: uppercase; display:flex; align-items:center; gap:6px; }
  .campo .v { font-weight: 600; margin-top: 2px; }
  .btn-inline-edit { background:none; border:none; cursor:pointer; color:var(--gris); font-size:13px; padding:0 2px; line-height:1; opacity:.6; }
  .btn-inline-edit:hover { opacity:1; color:var(--azul2); }
  .inline-input { font-size:14px; font-weight:600; border:1px solid var(--borde); border-radius:6px; padding:3px 8px; width:100%; box-sizing:border-box; font-family:inherit; }
  .inline-input:focus { outline:none; border-color:var(--azul2); box-shadow:0 0 0 2px rgba(59,130,246,.15); }
  #edit-contacto-actions { display:none; grid-column:1/-1; gap:8px; align-items:center; padding:4px 0 8px; }
  .giav-links { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
  .giav-links span { background: var(--claro); padding: 6px 12px; border-radius: 8px;
                     font-size: 13px; }
  .hilo { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; max-height: 460px; overflow-y: auto; }
  .msg { padding: 12px 16px; border-radius: 12px; max-width: 75%; }
  .msg.entrante { background: white; align-self: flex-start; border: 1px solid var(--borde); }
  .msg.saliente { background: var(--azul2); color: white; align-self: flex-end; }
  .msg.interno { background: #fffbeb; align-self: center; border: 1px dashed #d4a72c;
                 max-width: 90%; font-style: italic; font-size: 13px; }
  .msg .meta { font-size: 11px; opacity: .7; margin-bottom: 4px; }
  .empty { text-align: center; color: var(--gris); padding: 40px; }
  /* Formularios de edicion */
  .form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
               gap: 14px; margin-top: 8px; }
  .form-field label { display:block; font-size:12px; color:var(--gris);
                      text-transform:uppercase; margin-bottom:4px; }
  .form-field input, .form-field select, .form-field textarea {
      width:100%; padding:8px 10px; border:1px solid var(--borde);
      border-radius:8px; font-size:14px; font-family:inherit; }
  .form-field textarea { resize:vertical; min-height:60px; }
  .btn { padding:9px 18px; background:var(--azul2); color:white; border:none;
         border-radius:8px; cursor:pointer; font-size:14px; font-weight:600; }
  .btn:hover { background:var(--azul); }
  .btn-sec { background:#e5e7eb; color:#374151; }
  .btn-sec:hover { background:#d1d5db; }
  .btn-verde { background:var(--verde) !important; }
  .btn-verde:hover { background:#15803d !important; }
  .btn-naranja { background:var(--naranja) !important; }
  .btn-naranja:hover { background:#c2410c !important; }
  .badge-complejidad { display:inline-block; padding:2px 8px; border-radius:10px;
                       font-size:11px; font-weight:600; margin-left:6px; vertical-align:middle; }
  .badge-complejidad.baja  { background:#dcfce7; color:#16a34a; }
  .badge-complejidad.media { background:#dbeafe; color:#1d4ed8; }
  .badge-complejidad.alta  { background:#ffedd5; color:#ea580c; }
  .toggle { cursor:pointer; color:var(--azul2); font-size:13px; font-weight:600;
            user-select:none; }
  details > summary { list-style:none; cursor:pointer; }
  details > summary::-webkit-details-marker { display:none; }
  .ok-flash { background:#d1fae5; color:#065f46; padding:10px 16px;
              border-radius:8px; margin-bottom:16px; font-size:14px; }
  /* Pestanas */
  .tabs-nav { display:flex; gap:2px; align-items:flex-end; border-bottom:2px solid var(--borde);
              margin-bottom:20px; flex-wrap:wrap; position:sticky; top:0; z-index:100;
              background:#f3f4f6; padding-top:8px; }
  .tabs-viaje-num { font-size:12px; font-weight:700; color:white; background:var(--azul);
                    padding:7px 14px; border-radius:8px 8px 0 0; margin-right:8px;
                    white-space:nowrap; letter-spacing:.4px; align-self:flex-end; }
  .tab-btn { padding:10px 16px; border:1px solid transparent; border-bottom:none; border-radius:8px 8px 0 0;
             background:#f3f4f6; cursor:pointer; font-size:13px; font-weight:600; color:var(--gris); }
  .tab-btn:hover { background:#e5e7eb; }
  .tab-btn.activo { background:white; border-color:var(--borde); border-bottom:2px solid white;
                    margin-bottom:-2px; color:var(--azul); }
  .tab-pane { display:none; }
  .tab-pane.activo { display:block; }
  .tabs-select-wrap { display:none; margin-bottom:0; position:sticky; top:0; z-index:100;
                      background:#f3f4f6; padding:8px 0; }
  @media (max-width:600px) { .tabs-nav { display:none; } .tabs-select-wrap { display:block; } }
  .tabs-select-wrap select { width:100%; padding:8px 10px; border:1px solid var(--borde);
                              border-radius:8px; font-size:14px; }
  /* Botones de accion con feedback */
  .btn-accion .spinner { display:none; width:12px; height:12px; border:2px solid rgba(255,255,255,.4);
                         border-top-color:white; border-radius:50%; animation:spin .6s linear infinite;
                         vertical-align:middle; margin-left:6px; }
  .btn-accion.cargando .spinner { display:inline-block; }
  .btn-accion.btn-sec .spinner { border-color:rgba(55,65,81,.25); border-top-color:#374151; }
  @keyframes spin { to { transform:rotate(360deg); } }
  .resultado-accion { margin-top:10px; padding:10px 14px; border-radius:8px; font-size:14px; display:none; }
  .resultado-accion.ok { background:#d1fae5; color:#065f46; display:block; }
  .resultado-accion.err { background:#fee2e2; color:#991b1b; display:block; }
  .prox { display:inline-block; background:#f3f4f6; color:#9ca3af; padding:3px 8px;
          border-radius:999px; font-size:11px; font-style:italic; vertical-align:middle; margin-left:6px; }
  /* Dialog de confirmacion */
  dialog { border:none; border-radius:12px; padding:24px; max-width:400px;
           box-shadow:0 8px 24px rgba(0,0,0,.18); }
  dialog::backdrop { background:rgba(0,0,0,.45); }
  dialog h3 { color:var(--rojo); margin-bottom:12px; font-size:16px; }
  dialog p { font-size:14px; color:#374151; margin-bottom:18px; line-height:1.6; }
  .btn-danger { background:var(--rojo); color:white; border:none; padding:9px 18px;
                border-radius:8px; cursor:pointer; font-size:14px; font-weight:600; }
  .btn-danger:hover { background:#b91c1c; }
  .tab-seccion { background:white; border-radius:10px; padding:20px; margin-bottom:16px;
                 box-shadow:0 1px 3px rgba(0,0,0,.08); }
  .tab-seccion h3 { color:var(--azul); font-size:15px; margin-bottom:14px; }
  /* Ciclo de vida */
  .lifecycle-bar { display:flex; align-items:center; background:white; border-radius:10px;
                   padding:12px 16px; margin:10px 0 0; box-shadow:0 1px 3px rgba(0,0,0,.08);
                   overflow-x:auto; gap:4px; }
  .fase-item { display:flex; flex-direction:column; align-items:center; flex:1; min-width:56px;
               padding:6px 4px; border-radius:8px; }
  .fase-sep { color:#d1d5db; font-size:14px; flex-shrink:0; }
  .fase-icon { font-size:15px; }
  .fase-txt { font-size:10px; font-weight:600; text-align:center; margin-top:2px; }
  .fase-txt-corto { display:none; font-size:10px; font-weight:600; text-align:center; margin-top:2px; }
  .fase-pending .fase-icon { color:#d1d5db; }
  .fase-pending .fase-txt  { color:#9ca3af; }
  .fase-done .fase-icon { color:var(--verde); }
  .fase-done .fase-txt  { color:var(--verde); font-weight:700; }
  .fase-activa { background:var(--claro); }
  .fase-activa .fase-icon { color:var(--azul2); }
  .fase-activa .fase-txt  { color:var(--azul); font-weight:700; }
  @media (max-width:600px) {
    .fase-txt { display:none; } .fase-txt-corto { display:block; }
    .fase-sep { display:none; } .fase-item { min-width:36px; padding:4px 2px; }
  }
  /* NBA */
  .nba-panel { background:white; border-radius:10px; padding:14px 20px; margin:8px 0 0;
               box-shadow:0 1px 3px rgba(0,0,0,.08); border-left:4px solid var(--azul2); }
  .ei-panel  { background:#fffdf5; border-radius:10px; padding:14px 20px; margin:8px 0 0;
               box-shadow:0 1px 3px rgba(0,0,0,.08); border-left:4px solid #d97706; }
  .nba-titulo { font-size:11px; font-weight:700; color:var(--gris); text-transform:uppercase;
                letter-spacing:.5px; margin-bottom:8px; }
  .nba-layout { display:flex; gap:16px; align-items:flex-start; flex-wrap:wrap; }
  .nba-det { flex:1; min-width:180px; }
  .nba-ia  { flex:1; min-width:200px; border-left:1px solid var(--borde); padding-left:16px; }
  .nba-costo { font-size:12px; color:var(--gris); }
  .blocker-form { margin-top:10px; background:#fffbeb; border:1px solid #d4a72c; border-radius:8px;
                  padding:10px 14px; }
  .blocker-form label { display:block; font-size:12px; color:#92400e; font-weight:600; margin-bottom:6px; }
  .blocker-form input { padding:6px 10px; border:1px solid #d4a72c; border-radius:6px;
                        font-size:13px; width:160px; margin-right:8px; }
  @media (max-width:600px) {
    .nba-ia { border-left:none; padding-left:0; border-top:1px solid var(--borde); padding-top:12px; }
  }
  .canal-badge { display:inline-block; padding:1px 6px; border-radius:4px;
                 font-size:10px; font-weight:700; margin-right:4px; vertical-align:middle; }
  .canal-badge.wa    { background:#25d366; color:white; }
  .canal-badge.email { background:#4285f4; color:white; }
  .canal-badge.ia    { background:#7c3aed; color:white; }
  .canal-badge.int   { background:#6b7280; color:white; }
  .canal-badge.web   { background:#f59e0b; color:#1f2937; }
  tr.sin-responder td:first-child { border-left: 4px solid #dc2626; }
  th.sortable { cursor:pointer; user-select:none; white-space:nowrap; }
  th.sortable:hover { background:#1a4a7a; }
  th.sortable .sort-icon { font-size:10px; margin-left:4px; opacity:0.5; }
  th.sortable.asc .sort-icon::after  { content:'▲'; opacity:1; }
  th.sortable.desc .sort-icon::after { content:'▼'; opacity:1; }
  th.sortable:not(.asc):not(.desc) .sort-icon::after { content:'⇅'; }
  /* Badges de canal en hilo de conversacion */
  .badge-wa    { background:#25d366; color:white; }
  .badge-email { background:#4285f4; color:white; }
  .badge-ia    { background:#7c3aed; color:white; }
  .badge-int   { background:#6b7280; color:white; }
  .badge-web   { background:#f59e0b; color:white; }
  /* Burbujas de hilo por direccion */
  .msg-hilo { padding:10px 14px; border-radius:10px; max-width:78%; word-wrap:break-word; }
  .msg-hilo.entrante { background:#f0f9ff; border:1px solid #bae6fd; align-self:flex-start; }
  .msg-hilo.saliente { background:#f0fdf4; border:1px solid #bbf7d0; align-self:flex-end; }
  .msg-hilo.interno  { background:#f5f5f5; border:1px dashed #d1d5db; align-self:center; max-width:90%; font-style:italic; font-size:13px; }
  .msg-hilo .meta    { font-size:11px; color:#6b7280; margin-bottom:5px; }
  .msg-hilo .cuerpo  { white-space:pre-wrap; font-size:14px; line-height:1.5; }
  /* Burbujas del espacio interno — clase propia, desacoplada del hilo externo */
  .msg-hilo-interno { padding:10px 14px; border-radius:10px; max-width:78%; word-wrap:break-word; }
  .msg-hilo-interno.entrante { background:#f0f9ff; border:1px solid #bae6fd; align-self:flex-start; }
  .msg-hilo-interno.saliente { background:#f0fdf4; border:1px solid #bbf7d0; align-self:flex-end; }
  .msg-hilo-interno.sistema  { background:#f5f5f5; border:1px dashed #d1d5db; align-self:center; max-width:90%; font-style:italic; font-size:13px; }
  .msg-hilo-interno .meta    { font-size:11px; color:#6b7280; margin-bottom:5px; }
  .msg-hilo-interno .cuerpo  { white-space:pre-wrap; font-size:14px; line-height:1.5; }
  nav .nav-dropdown { position: relative; display: inline-block; }
  nav .nav-dropdown > a { cursor: pointer; }
  nav .nav-dropdown-menu {
    display: none; position: absolute; top: 100%; left: 0;
    background: #1e3a5f; border: 1px solid #2d5986; border-radius: 6px;
    min-width: 160px; z-index: 100; padding: 4px 0;
  }
  nav .nav-dropdown:hover .nav-dropdown-menu { display: block; }
  nav .nav-dropdown-menu a {
    display: block; padding: 8px 14px; white-space: nowrap; border-bottom: none;
  }
  nav .nav-dropdown-menu a:hover { background: #2d5986; border-radius: 0; }

/* ============================================================
   LOGIN PAGE
   ============================================================ */
body.login-page {
  font-family: sans-serif;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: #f5f5f5;
  margin: 0;
}
.login-box {
  background: white;
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  width: 320px;
}
.login-box h2 { margin-top: 0; color: #333; }
.login-box label { display: block; margin-bottom: 0.25rem; font-size: 0.9rem; color: #555; }
.login-box input {
  width: 100%; padding: 0.5rem; margin-bottom: 1rem;
  border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box;
}
.login-box button {
  width: 100%; padding: 0.6rem; background: #2563eb; color: white;
  border: none; border-radius: 4px; cursor: pointer; font-size: 1rem;
}
.login-box button:hover { background: #1d4ed8; }
.login-box .error { color: #dc2626; font-size: 0.85rem; margin-bottom: 0.75rem; }

/* ============================================================
   TOAST SSE — estilos movidos desde inline (OT-021)
   ============================================================ */
#sse-toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  background: #25d366;
  color: white;
  padding: 14px 20px;
  border-radius: 10px;
  box-shadow: 0 4px 16px rgba(0,0,0,.25);
  font-size: 14px;
  max-width: 320px;
  cursor: pointer;
}

/* ============================================================
   RESPONSIVE / MOBILE-FIRST — OT-021 Paso 2
   Breakpoints: 768px (tablet/mobile) y 480px (mobile pequeno)
   ============================================================ */

/* Nav: desktop siempre visible, mobile oculto por defecto */
.nav-desktop { display: flex; align-items: center; }
.nav-mobile  { display: none; }

@media (max-width: 768px) {
  /* -- Contenedor y cabecera -- */
  .container { padding: 12px; }
  header { padding: 10px 12px; }
  header h1 { font-size: 16px; }

  /* -- Nav hamburguesa -- */
  .nav-desktop { display: none; }
  .nav-mobile  { display: block; position: relative; }
  details.nav-mobile > summary {
    list-style: none;
    color: #cde0f2;
    font-size: 22px;
    cursor: pointer;
    padding: 2px 8px;
    user-select: none;
  }
  details.nav-mobile > summary::-webkit-details-marker { display: none; }
  .nav-mobile-links {
    position: absolute;
    top: calc(100% + 10px);
    right: -12px;
    min-width: 200px;
    background: var(--azul);
    border: 1px solid #2d5986;
    border-radius: 8px;
    padding: 4px 0;
    z-index: 300;
    box-shadow: 0 4px 16px rgba(0,0,0,.3);
  }
  .nav-mobile-links a {
    display: block;
    padding: 11px 16px;
    color: #cde0f2;
    text-decoration: none;
    font-size: 14px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    margin-left: 0;
  }
  .nav-mobile-links a:last-child { border-bottom: none; }
  .nav-mobile-links a:hover { background: rgba(255,255,255,.1); color: white; }

  /* -- Tablas con scroll horizontal -- */
  table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* -- Barra de ciclo de vida -- */
  .lifecycle-bar { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .fase-item { min-width: 44px; }

  /* -- Ficha y formularios: 1 columna -- */
  .ficha-grid { grid-template-columns: 1fr; }
  .form-grid  { grid-template-columns: 1fr; }

  /* -- Hilo de mensajes -- */
  .msg-hilo { max-width: 92%; }
  .msg-hilo .cuerpo { font-size: 13px; }
  .msg-hilo-interno { max-width: 92%; }
  .msg-hilo-interno .cuerpo { font-size: 13px; }

  /* -- NBA panel -- */
  .nba-layout { flex-direction: column; }
  .nba-ia { border-left: none; padding-left: 0;
            border-top: 1px solid var(--borde); padding-top: 12px; }

  /* -- Touch targets (min 44px) -- */
  .btn, button, .tab-btn, .filtros a { min-height: 44px; }
  .search { width: 100%; }
  .filtros a { flex: 1 1 auto; text-align: center; }

  /* -- Toast SSE reposicionado -- */
  #sse-toast { bottom: 8px; right: 8px; left: 8px; max-width: none; }
}

@media (max-width: 480px) {
  /* -- Cards del dashboard: 2 columnas -- */
  .cards { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .card .num { font-size: 22px; }
}

/* ============================================================
   FOOTER (OT-119)
   ============================================================ */
footer {
  background: var(--azul);
  color: #cde0f2;
  padding: 16px 24px;
  margin-top: 32px;
  font-size: 12px;
}
.footer-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
footer a { color: #cde0f2; text-decoration: none; }
footer a:hover { color: white; }
.footer-legal-badge {
  display: inline-block;
  background: #dc2626;
  color: white;
  font-size: 10px;
  padding: 1px 5px;
  border-radius: 3px;
  font-weight: 700;
  margin-left: 4px;
  vertical-align: middle;
}

/* ============================================================
   BARRA COMBINADA FASES + SIGUIENTE PASO (OT-119 3.2)
   ============================================================ */
.barra-combinada-outer {
  display: flex;
  align-items: stretch;
  background: white;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
  margin: 10px 0 0;
  overflow: hidden;
}
.barra-combinada-fases {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 12px;
  overflow-x: auto;
  flex-shrink: 1;
}
.barra-combinada-nba {
  flex-shrink: 0;
  border-left: 1px solid #e5e7eb;
  padding: 10px 16px;
  min-width: 200px;
}
@media (max-width: 768px) {
  .barra-combinada-outer { flex-direction: column; }
  .barra-combinada-nba { border-left: none; border-top: 1px solid #e5e7eb; }
}

/* ============================================================
   FRESHNESS CHIPS + FILTROS VUELOS (OT-119 3.5, 3.6)
   ============================================================ */
.prov-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.prov-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 12px;
}
.prov-chip .chip-label { font-weight: 600; color: #0369a1; }
.prov-chip .chip-edad { color: #6b7280; }
.bv-filtros {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 10px;
  align-items: center;
  padding: 8px 10px;
  background: #f9fafb;
  border: 1px solid var(--borde);
  border-radius: 8px;
}
.bv-filtros label { font-size: 12px; color: #374151; display: flex; align-items: center; gap: 4px; cursor: pointer; }
.bv-filtros select { font-size: 12px; padding: 3px 6px; border: 1px solid var(--borde); border-radius: 6px; background: white; }

/* ============================================================
   TABLA VUELOS CON SCROLL VERTICAL (OT-119 3.4)
   ============================================================ */
.vuelos-tabla-wrap {
  overflow-x: auto;
  max-height: 500px;
  overflow-y: auto;
  border: 1px solid var(--borde);
  border-radius: 8px;
}
.vuelos-tabla-wrap table {
  border-radius: 0;
  box-shadow: none;
}
.vuelos-tabla-wrap thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--azul);
}
