/* =========================================================
   TRAINIA — estilos propios sobre el tema CuatrIA (custom.css)
   ========================================================= */

/* Login: llamada al equipo comercial para empresas no registradas */
.login-empresa{
  margin-top:1rem;padding:.85rem 1rem;border-radius:var(--radius-md);
  background:var(--blue-50);border:1px solid var(--blue-100);
  font-size:.82rem;color:var(--text-secondary);text-align:center;line-height:1.5;
}
.login-empresa span{ display:block;margin-bottom:.15rem; }
.login-empresa a{ font-weight:700;color:var(--blue-600);text-decoration:none; }
.login-empresa a:hover{ text-decoration:underline; }

/* Chip de empresa en la topbar */
.trainia-chip-empresa{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.28rem .8rem;border-radius:var(--radius-pill);
  background:var(--blue-50);border:1px solid var(--blue-100);
  color:var(--blue-600);font-size:.78rem;font-weight:600;white-space:nowrap;
  max-width:240px;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0;
}
.trainia-chip-empresa i{ flex-shrink:0; }
/* En pantallas pequeñas se oculta para no empujar el menú de usuario fuera de
   la topbar (la empresa se ve también en Mi perfil). */
@media (max-width:575.98px){ .trainia-chip-empresa{ display:none; } }

/* Pills de estado de curso (derivadas de inscripción + intentos) */
.estado-pill{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:var(--radius-pill);
  white-space:nowrap;
}
.estado-pill--sin-iniciar{ background:#f1f5f9;color:#475569; }
.estado-pill--en-curso{ background:var(--blue-50);color:var(--blue-600); }
.estado-pill--pendiente-test{ background:#fef3c7;color:#b45309; }
.estado-pill--aprobado{ background:#dcfce7;color:#15803d; }
.estado-pill--suspendido{ background:#fee2e2;color:#b91c1c; }
.estado-pill--caducado{ background:#fef3c7;color:#b45309; }
.curso-card__caduca{ font-size:.72rem;color:var(--text-muted);align-self:center; }

/* Tarjetas de curso (catálogo del alumno) */
.curso-card{
  background:#fff;border:1px solid var(--blue-100);border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);padding:1.4rem 1.5rem;height:100%;
  display:flex;flex-direction:column;gap:.65rem;transition:box-shadow .15s;
}
.curso-card:hover{ box-shadow:var(--shadow-md); }
.curso-card__icono{
  width:46px;height:46px;border-radius:var(--radius-md);
  background:var(--blue-50);color:var(--blue-600);
  display:flex;align-items:center;justify-content:center;font-size:1.35rem;
}
.curso-card h2{ font-size:1.02rem;font-weight:700;color:var(--zl-ink);margin:0; }
.curso-card__desc{ font-size:.82rem;color:var(--text-muted); }
.curso-card__meta{ display:flex;gap:1rem;font-size:.75rem;color:var(--text-secondary); }
.curso-card__meta i{ color:var(--blue-600); }
/* Agenda compacta (5 bullets) en la tarjeta de curso */
.curso-card__agenda{ list-style:none;margin:.2rem 0 .3rem;padding:0;display:flex;flex-direction:column;gap:.22rem; }
.curso-card__agenda li{ position:relative;padding-left:1.05rem;font-size:.78rem;color:var(--text-secondary);line-height:1.35; }
.curso-card__agenda li::before{ content:"";position:absolute;left:0;top:.5em;width:.4rem;height:.4rem;margin-top:-.2rem;border-radius:2px;background:var(--blue-600); }

/* Barra de progreso fina reutilizable */
.trainia-progress{ height:8px;background:var(--blue-100);border-radius:var(--radius-pill);overflow:hidden; }
.trainia-progress__fill{ height:100%;background:var(--blue-600);border-radius:var(--radius-pill);transition:width .3s; }
.trainia-progress__fill--ok{ background:var(--signal-success); }

/* Reproductor de curso (iframe de slides 16:9) */
.player-wrap{
  position:relative;width:100%;aspect-ratio:16/9;
  background:#0b0f1a;border-radius:var(--radius-md);overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.player-wrap iframe{ position:absolute;inset:0;width:100%;height:100%;border:0; }
.player-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  flex-wrap:wrap;margin-top:1rem;
}

/* KPI cards del dashboard */
.kpi-card{
  background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-md);
  padding:1.15rem 1.3rem;display:flex;align-items:center;gap:1rem;height:100%;
}
.kpi-card__icono{
  width:46px;height:46px;border-radius:var(--radius-md);flex-shrink:0;
  background:var(--blue-50);color:var(--blue-600);
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;
}
.kpi-card__valor{ font-size:1.55rem;font-weight:800;color:var(--zl-ink);line-height:1.1; }
.kpi-card__label{ font-size:.75rem;color:var(--text-muted); }

/* Test de evaluación */
.test-pregunta{
  background:#fff;border:1px solid var(--blue-100);border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);padding:1.2rem 1.4rem;margin-bottom:1rem;
}
.test-pregunta__num{
  /* Como <legend> dentro de un <fieldset>, Bootstrap lo renderiza float:left;
     width:100% → queda como una línea normal DENTRO de la cajita (arriba), sin
     partir el borde. Reforzamos ese comportamiento por si cambia el reset. */
  float:left;width:100%;display:block;
  font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--blue-600);margin:0 0 .55rem;padding:0;line-height:1.2;
}
.test-pregunta__texto{ clear:both; }
.test-pregunta__texto{ font-size:.95rem;font-weight:600;color:var(--zl-ink);margin-bottom:.75rem; }
.test-opcion{ display:flex;align-items:flex-start;gap:.6rem;padding:.45rem .6rem;border-radius:var(--radius-sm);cursor:pointer; }
.test-opcion:hover{ background:var(--blue-50); }
.test-opcion input{ margin-top:.2rem; }

/* Resultado del test */
.test-resultado{ text-align:center;padding:2.5rem 1rem; }
.test-resultado__nota{ font-size:3.2rem;font-weight:900;line-height:1; }
.test-resultado__nota--ok{ color:var(--signal-success); }
.test-resultado__nota--ko{ color:var(--signal-danger); }

/* Gamificación (Mi formación) */
.gam-metric{ font-size:.85rem;color:var(--text-secondary); }
.gam-metric b{ color:var(--blue-600);font-size:1.05rem; }
.gam-insignias{ display:flex;flex-wrap:wrap;gap:.5rem; }
.gam-badge{ display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;
  padding:.32rem .7rem;border-radius:var(--radius-pill);background:var(--blue-50);color:var(--blue-700);border:1px solid var(--blue-100); }
.gam-badge i{ font-size:.95rem;color:var(--blue-600); }
.gam-ranking{ list-style:none;counter-reset:r;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem; }
.gam-ranking li{ counter-increment:r;display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  font-size:.85rem;padding:.35rem .6rem;border-radius:var(--radius-sm);background:#f8fafc; }
.gam-ranking li::before{ content:counter(r);font-weight:800;color:var(--text-muted);min-width:1.2rem; }
.gam-ranking li span:first-of-type{ flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.gam-ranking--yo{ background:var(--blue-50);font-weight:700; }
.gam-pts{ font-weight:700;color:var(--blue-600); }

/* Avatares pequeños en tablas */
.tabla-avatar{ width:34px;height:34px;flex-shrink:0;border-radius:50%;object-fit:cover;border:1px solid var(--blue-100); }
/* Celda de alumno (avatar + nombre [+ botón]) alineada en todas las vistas.
   El nombre no se parte y el botón de acción no se encoge (flex-shrink:0 en
   .btn-icon): así no se solapan. Si la fila no cabe, la tabla desplaza en su
   contenedor .table-responsive. */
/* Celda "avatar + nombre + botón simular" de las tablas. Se maqueta en línea
   (NO flex): el ancho intrínseco de un contenedor flex/inline-flex no lo respeta
   el algoritmo de columnas de la tabla, y el contenido se desbordaba sobre la
   columna vecina (DNI). Con maquetación inline el <td> sí reserva su ancho. */
.celda-alumno{ white-space:nowrap; }
.celda-alumno > *{ vertical-align:middle; }
.celda-alumno > * + *{ margin-left:.6rem; }
.celda-alumno span{ white-space:nowrap; }
.tabla-logo-empresa{ max-height:34px;max-width:90px;object-fit:contain; }

/* Filtros sobre tablas */
.tabla-toolbar{ display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem; }
.tabla-toolbar .form-control,.tabla-toolbar .form-select{ max-width:260px; }

/* Botón "Simular vista" en tablas (ojo azul).
   Lleva relleno y borde propios para leerse como botón junto a Editar/Eliminar
   y no depender del orden de carga de CSS (si no, el icono podría quedar
   blanco sobre blanco). */
.btn-simular{ background:var(--blue-50); border-color:var(--blue-200); color:var(--zl-blue); }
.btn-simular:hover{ color:#fff;background:var(--blue-600);border-color:var(--blue-600); }

/* ── Modo simulación "ver como alumno" ── */
/* Banner fijo inferior, visible en toda la sesión simulada. */
.sim-banner{
  /* Anclado a la zona de contenido (a la derecha del sidebar), igual que la
     topbar; así el sidebar (z-index alto, altura completa) no lo tapa. Se
     ajusta solo al colapsar el sidebar porque --sidebar-width cambia. */
  position:fixed;left:var(--sidebar-width);right:0;bottom:0;z-index:1080;
  transition:left .2s ease;
  display:flex;align-items:center;gap:.9rem;
  padding:.6rem 1.1rem;
  background:linear-gradient(90deg,var(--zl-ink),var(--blue-700));
  color:#fff;box-shadow:0 -4px 16px rgba(29,39,63,.25);
}
.sim-banner__ico{
  width:30px;height:30px;flex-shrink:0;border-radius:50%;
  background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:1rem;
}
.sim-banner__txt{ font-size:.86rem;line-height:1.3;flex:1;min-width:0; }
.sim-banner__txt strong{ font-weight:800; }
.sim-banner__modo{ color:rgba(255,255,255,.85);font-weight:400; } /* subido de .72: AA en todo el degradado */
.sim-banner__btn{
  flex-shrink:0;background:#fff;color:var(--blue-700);font-weight:700;border:none;
}
.sim-banner__btn:hover{ background:var(--blue-50);color:var(--blue-800); }
/* Deja aire al final del contenido para que el banner (fijo, ~50px + sombra)
   no tape el último elemento (p. ej. el botón "Entregar test").
   Lleva !important porque las vistas usan la utilidad Bootstrap .py-4, que fija
   padding-bottom:1.5rem !important y ganaría a esta regla. */
body.simulando .contenido-div{ padding-bottom:6.5rem !important; }
/* Durante la simulación, los toasts suben por encima del banner inferior para
   no tapar su botón "Salir de la simulación". */
body.simulando #trainia-toasts{ bottom:4.25rem !important; }
/* KPIs de Mi formación: caída a 1 columna en teléfonos. */
@media (max-width:480px){ .mf-kpis{ grid-template-columns:1fr !important; } }

/* Aviso "solo lectura" dentro de las vistas de alumno simuladas. */
.sim-nota{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.78rem;font-weight:600;color:var(--blue-800);
  background:var(--blue-50);border:1px solid var(--blue-100);
  padding:.3rem .7rem;border-radius:var(--radius-pill);
}
