/* ============================================================
 * IntelMind · imagen-v3.css (2026-05-12)
 * Frontend post 727 paridad email/IP 9.7/10
 * Paleta: #123b7a · #0f5f88 · #0f8f7a (NUNCA CAMBIAR)
 * ============================================================ */

/* Hero superior (recuperado del post legacy pre-V3) */
.im-hero-bleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:26px 0 22px;background:#ffffff;}
.im-hero-shell{max-width:1400px;margin:0 auto;padding:0 18px;}
.im-hero-glass{border-radius:22px;padding:14px;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.55));border:1px solid rgba(15,23,42,.10);box-shadow:0 18px 55px rgba(0,0,0,.12),0 2px 0 rgba(255,255,255,.65) inset,0 -1px 0 rgba(0,0,0,.10) inset;}
.im-hero-grad{position:relative;overflow:hidden;border-radius:18px;min-height:190px;padding:26px 26px 54px;display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(90deg,#123b7a 12%,#0f5f88 52%,#0f8f7a 100%);box-shadow:0 10px 28px rgba(0,0,0,.18),0 1px 0 rgba(255,255,255,.22) inset,0 -10px 30px rgba(0,0,0,.10) inset;border:1px solid rgba(255,255,255,.14);}
.im-hero-grad::before{content:"";position:absolute;inset:-2px;border-radius:20px;pointer-events:none;background:radial-gradient(1200px 200px at 50% -40px,rgba(255,255,255,.22),transparent 60%),radial-gradient(900px 200px at 50% 120%,rgba(255,255,255,.12),transparent 60%);opacity:.95;}
.im-hero-grad::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:18px;box-shadow:0 0 0 1px rgba(255,255,255,.10) inset,0 0 0 1px rgba(0,0,0,.12);opacity:.7;}
.im-hero-title{margin:0;color:#fff;font-weight:650;letter-spacing:-0.02em;line-height:1.05;font-size:54px;text-shadow:0 2px 10px rgba(0,0,0,.28),0 1px 0 rgba(0,0,0,.20);padding:0 10px;position:relative;z-index:2;}
.im-hero-peaks{position:absolute;left:0;bottom:-1px;width:110%;height:62px;transform:translateX(-5%);opacity:.95;pointer-events:none;z-index:1;}
@media(max-width:1024px){.im-hero-shell{padding:0 14px;}.im-hero-title{font-size:42px;}.im-hero-grad{min-height:175px;padding:22px 18px 50px;}}
@media(max-width:768px){.im-hero-bleed{padding:18px 0 16px;}.im-hero-glass{border-radius:18px;padding:12px;}.im-hero-grad{border-radius:14px;min-height:155px;padding:18px 14px 44px;}.im-hero-title{font-size:32px;}.im-hero-peaks{height:54px;}}

/* Banner 1ª búsqueda gratis (usado por JS para usuarios demo) */
.im-firstfree-banner{display:flex;align-items:center;gap:14px;padding:14px 18px;background:linear-gradient(135deg,rgba(15,143,122,0.12),rgba(15,95,136,0.10));border:1px solid rgba(15,143,122,0.35);border-left:4px solid #0f8f7a;border-radius:10px;color:#6ee7b7;animation:imFfFadeIn .5s ease-out;}
.im-ff-icon{font-size:1.6rem;line-height:1;flex-shrink:0;}
.im-ff-text{display:flex;flex-direction:column;gap:2px;}
.im-ff-text strong{color:#a7f3d0;font-size:.95rem;font-weight:800;}
.im-ff-text span{color:#86efac;font-size:.82rem;}
@keyframes imFfFadeIn{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:translateY(0);}}
@media (max-width:560px){.im-firstfree-banner{padding:12px 14px;}.im-ff-text strong{font-size:.9rem;}.im-ff-text span{font-size:.78rem;}}

/* Banner historial */
.im-history-banner{display:flex;align-items:center;gap:14px;padding:14px 18px;margin-bottom:14px;background:linear-gradient(135deg,rgba(168,85,247,0.14),rgba(96,165,250,0.10));border:1px solid rgba(168,85,247,0.40);border-left:4px solid #a78bfa;border-radius:10px;color:#c4b5fd;}
.im-history-banner i.im-hist-icon{font-size:1.5rem;color:#a78bfa;flex-shrink:0;}
.im-history-banner .im-hist-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;}
.im-history-banner .im-hist-text strong{color:#fff;font-size:.95rem;font-weight:800;}
.im-history-banner .im-hist-text span{color:#e0e7ff;font-size:.82rem;}
.im-history-banner code{background:rgba(0,0,0,.30);padding:1px 6px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;color:#a7f3d0;}
.im-history-banner a.im-hist-back{color:#a78bfa;font-weight:700;font-size:.82rem;text-decoration:none;padding:7px 14px;border-radius:8px;background:rgba(168,85,247,0.18);border:1px solid rgba(168,85,247,0.40);transition:all .15s;flex-shrink:0;}
.im-history-banner a.im-hist-back:hover{background:rgba(168,85,247,0.32);color:#fff;}
@media (max-width:600px){.im-history-banner{flex-direction:column;align-items:flex-start;}.im-history-banner a.im-hist-back{align-self:flex-end;}}

/* Paneles principales */
.im-result-panels-v2 { display: flex; flex-direction: column; gap: 18px; margin-top: 14px; }
#scoring-v2:empty, #resumen:empty, #resultados:empty { display: none; }

/* ====================================================================
   Loading state v2 — barra de progreso + fases animadas + tiempo restante
   ==================================================================== */
.im-loading-card-v2 {
  background: linear-gradient(135deg, #123b7a 0%, #0f5f88 48%, #0f8f7a 100%);
  border-radius: 20px; padding: 28px 30px; color: #f0f8ff;
  border: 1px solid rgba(186,230,253,.20);
  box-shadow: 0 14px 44px rgba(15,59,122,.30);
  position: relative; overflow: hidden;
}
.im-loading-card-v2::before {
  content: ''; position: absolute; right: -70px; top: -70px;
  width: 240px; height: 240px;
  background: radial-gradient(circle, rgba(255,255,255,.10) 0%, transparent 70%);
  pointer-events: none;
}
.im-loading-card-v2::after {
  content: ''; position: absolute; left: -50px; bottom: -50px;
  width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(15,143,122,.20) 0%, transparent 70%);
  pointer-events: none;
}

.im-loading-header-v2 {
  display: flex; align-items: center; gap: 18px; margin-bottom: 22px;
  position: relative; z-index: 1;
}
.im-loading-spinner-v2 {
  width: 56px; height: 56px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.im-spinner-ring {
  width: 100%; height: 100%; border-radius: 50%;
  border: 4px solid rgba(255,255,255,.16);
  border-top-color: #93c5fd;
  border-right-color: rgba(147,197,253,.6);
  animation: imv3-spin 1s cubic-bezier(.4,0,.6,1) infinite;
}
@keyframes imv3-spin { from { transform: rotate(0); } to { transform: rotate(360deg); } }
.im-loading-title-block { flex: 1; min-width: 0; }
.im-loading-title-v2 {
  font-size: 19px; font-weight: 800; letter-spacing: .3px; margin-bottom: 4px;
  line-height: 1.3;
}
.im-loading-sub-v2 {
  font-size: 13px; opacity: .88; line-height: 1.5;
}
.im-loading-sub-v2 b { color: #93c5fd; font-weight: 700; }

/* Barra de progreso */
.im-loading-progress-wrap {
  margin: 0 0 22px; position: relative; z-index: 1;
}
.im-loading-progress-bar {
  height: 8px; border-radius: 999px;
  background: rgba(255,255,255,.12);
  overflow: hidden;
  box-shadow: inset 0 1px 3px rgba(0,0,0,.18);
}
.im-loading-progress-fill {
  height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, #93c5fd 0%, #60a5fa 35%, #0f8f7a 100%);
  transition: width .8s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 0 12px rgba(147,197,253,.55), inset 0 1px 0 rgba(255,255,255,.30);
  position: relative;
}
.im-loading-progress-fill::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.30) 50%, transparent 100%);
  animation: imv3-shimmer 2s linear infinite;
}
@keyframes imv3-shimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}
.im-loading-progress-meta {
  margin-top: 8px;
  display: flex; justify-content: space-between; align-items: center;
  font-size: 12.5px; opacity: .9;
  flex-wrap: wrap; gap: 6px;
}
.im-loading-progress-meta b { color: #93c5fd; font-weight: 700; }
.im-loading-counter {
  padding: 3px 10px; border-radius: 999px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  font-size: 12px;
}

/* Lista de fases */
.im-loading-stages-v2 {
  display: flex; flex-direction: column; gap: 6px;
  max-height: 350px; overflow-y: auto;
  padding: 16px; border-radius: 12px;
  background: rgba(0,0,0,.18);
  border: 1px solid rgba(186,230,253,.10);
  scrollbar-width: thin;
  scrollbar-color: rgba(186,230,253,.3) transparent;
  position: relative; z-index: 1;
}
.im-loading-stages-v2::-webkit-scrollbar { width: 6px; }
.im-loading-stages-v2::-webkit-scrollbar-track { background: transparent; }
.im-loading-stages-v2::-webkit-scrollbar-thumb { background: rgba(186,230,253,.25); border-radius: 4px; }

.im-stage {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 10px; border-radius: 8px;
  font-size: 13px; line-height: 1.45;
  transition: all .25s ease;
}
.im-stage.pending {
  opacity: .45; color: #cbd5e1;
}
.im-stage.active {
  background: rgba(147,197,253,.14);
  color: #f0f8ff;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
  border-left: 3px solid #93c5fd;
  padding-left: 8px;
  animation: imv3-stage-pulse 2s ease-in-out infinite;
}
.im-stage.done {
  opacity: .75; color: #a7f3d0;
}
@keyframes imv3-stage-pulse {
  0%, 100% { box-shadow: 0 2px 8px rgba(0,0,0,.18); }
  50% { box-shadow: 0 2px 18px rgba(147,197,253,.40); }
}
.im-stage-mark {
  flex: 0 0 18px; width: 18px; text-align: center;
  font-weight: 700; font-size: 12px;
}
.im-stage.done .im-stage-mark { color: #10b981; }
.im-stage.active .im-stage-mark { color: #93c5fd; }
.im-stage-pulse {
  display: inline-block; width: 10px; height: 10px;
  border-radius: 50%; background: #93c5fd;
  box-shadow: 0 0 0 0 rgba(147,197,253,.55);
  animation: imv3-pulse-dot 1.4s ease-out infinite;
}
@keyframes imv3-pulse-dot {
  0%   { box-shadow: 0 0 0 0 rgba(147,197,253,.55); }
  70%  { box-shadow: 0 0 0 8px rgba(147,197,253,0); }
  100% { box-shadow: 0 0 0 0 rgba(147,197,253,0); }
}
.im-stage-ico { flex: 0 0 22px; font-size: 16px; text-align: center; }
.im-stage-label { flex: 1; }

/* Tip al final */
.im-loading-tip {
  margin-top: 18px; padding: 12px 16px; border-radius: 10px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(186,230,253,.14);
  font-size: 12.5px; line-height: 1.55; color: #dbeafe;
  position: relative; z-index: 1;
}
.im-loading-tip b { color: #93c5fd; font-weight: 700; }

/* Mantener compatibilidad con el v1 que ya no se usa */
.im-loading-card {
  background: linear-gradient(135deg, rgba(18,59,122,.92) 0%, rgba(15,95,136,.92) 48%, rgba(15,143,122,.92) 100%);
  border-radius: 18px; padding: 28px; color: #f0f8ff;
  display: flex; flex-direction: column; gap: 14px; align-items: center;
  border: 1px solid rgba(186,230,253,.16);
  box-shadow: 0 8px 32px rgba(0,0,0,.18);
}
.im-loading-spinner {
  width: 48px; height: 48px; border-radius: 50%;
  border: 4px solid rgba(255,255,255,.18); border-top-color: #60a5fa;
  animation: imv3-spin .8s linear infinite;
}
.im-loading-stages { font-size: 14px; opacity: .9; display: flex; flex-direction: column; gap: 6px; max-width: 600px; }
.im-loading-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 12px; border-radius: 999px; background: rgba(255,255,255,.14);
  font-size: 13px; margin-right: 6px;
}

@media (max-width: 720px) {
  .im-loading-card-v2 { padding: 22px 18px; border-radius: 16px; }
  .im-loading-header-v2 { gap: 14px; margin-bottom: 18px; }
  .im-loading-spinner-v2 { width: 44px; height: 44px; }
  .im-loading-title-v2 { font-size: 16px; }
  .im-loading-sub-v2 { font-size: 12px; }
  .im-loading-stages-v2 { padding: 12px; }
  .im-stage { font-size: 12px; gap: 8px; padding: 4px 8px; }
}

/* ====================================================================
   RESUMEN IA — card ejecutiva + informe estructurado (PARTE 1 + PARTE 2)
   ==================================================================== */

/* Card ejecutiva (decisión / nivel / acción) */
.im-ia-exec {
  position: relative;
  background: linear-gradient(135deg, #123b7a 0%, #0f5f88 48%, #0f8f7a 100%);
  border-radius: 18px; padding: 26px 28px; color: #f0f8ff;
  border: 1px solid rgba(186,230,253,.22);
  box-shadow: 0 10px 38px rgba(15,59,122,.28);
  overflow: hidden;
}
.im-ia-exec::before {
  content: ''; position: absolute; right: -60px; top: -60px;
  width: 220px; height: 220px;
  background: radial-gradient(circle, rgba(255,255,255,.10) 0%, transparent 70%);
  pointer-events: none;
}
.im-ia-exec-title {
  font-size: 18px; font-weight: 800; margin: 0 0 18px; letter-spacing: .4px;
  display: flex; align-items: center; gap: 10px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(186,230,253,.22);
}
.im-ia-exec-row {
  margin: 10px 0; line-height: 1.55; font-size: 14.5px;
  display: grid; grid-template-columns: 170px 1fr; gap: 14px;
  align-items: start;
}
.im-ia-exec-row b {
  color: #93c5fd; font-weight: 700; font-size: 13.5px;
  text-transform: uppercase; letter-spacing: .5px;
}
.im-ia-pill {
  display: inline-block; padding: 4px 12px; border-radius: 999px; font-size: 12px;
  font-weight: 800; vertical-align: middle; margin: 0 6px 0 0; letter-spacing: .5px;
  text-transform: uppercase;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.im-ia-pill.bajo  { background: #10b981; color: #fff; }
.im-ia-pill.medio { background: #fbbf24; color: #1a2733; }
.im-ia-pill.elevado { background: #fb923c; color: #fff; }
.im-ia-pill.alto, .im-ia-pill.critico { background: #ef4444; color: #fff; }

@media (max-width: 720px) {
  .im-ia-exec { padding: 20px; border-radius: 14px; }
  .im-ia-exec-row { grid-template-columns: 1fr; gap: 4px; }
  .im-ia-exec-row b { font-size: 12px; }
}

/* Informe estructurado (PARTE 1 + PARTE 2) */
.im-ia-report {
  margin-top: 18px; padding: 30px 30px 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.02) 100%);
  border-radius: 18px;
  border: 1px solid rgba(186,230,253,.14);
  color: #eef7ff;
  font-size: 14.5px; line-height: 1.72;
  box-shadow: 0 4px 18px rgba(0,0,0,.08);
}

/* H1 — Título del informe */
.im-ia-report h1 {
  font-size: 24px; margin: 0 0 8px; color: #93c5fd; font-weight: 800;
  letter-spacing: .3px;
  display: flex; align-items: center; gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(186,230,253,.20);
}
.im-ia-report h1::before {
  content: '📑'; font-size: 22px;
}

/* H2 — Cabeceras PARTE 1 / PARTE 2 = banner gradient destacado */
.im-ia-report h2 {
  font-size: 19px; font-weight: 800;
  margin: 28px -8px 14px;
  padding: 14px 22px;
  color: #fff;
  background: linear-gradient(135deg, #123b7a 0%, #0f5f88 52%, #0f8f7a 100%);
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(15,95,136,.25);
  border: none;
  letter-spacing: .3px;
  position: relative;
  overflow: hidden;
}
.im-ia-report h2::after {
  content: ''; position: absolute; right: -30px; top: -30px;
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,255,255,.12) 0%, transparent 70%);
  pointer-events: none;
}
/* Excepción: H2 que es resumen ejecutivo dentro del informe md (si IA lo deja) */
.im-ia-report h2:first-child { margin-top: 0; }

/* H3 — secciones internas de cada PARTE */
.im-ia-report h3 {
  font-size: 16px; margin: 22px 0 10px;
  color: #93c5fd; font-weight: 700;
  letter-spacing: .2px;
  padding-left: 14px;
  border-left: 3px solid #0f8f7a;
}

/* Párrafos y listas */
.im-ia-report p { margin: 10px 0; }
.im-ia-report ul, .im-ia-report ol { padding-left: 24px; margin: 10px 0; }
.im-ia-report li { margin: 6px 0; padding-left: 4px; }
.im-ia-report li::marker { color: #0f8f7a; }

/* Énfasis */
.im-ia-report strong { color: #f8fbff; font-weight: 800; }
.im-ia-report em { color: #bfdbfe; font-style: italic; }

/* Código (hashes, sha256, etc.) */
.im-ia-report code {
  background: rgba(15,143,122,.18);
  padding: 2px 8px; border-radius: 5px;
  font-size: 12.5px; color: #bfdbfe;
  font-family: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
  border: 1px solid rgba(15,143,122,.30);
}

/* Separadores --- */
.im-ia-report hr {
  border: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(186,230,253,.30) 50%, transparent 100%);
  margin: 26px 0;
}

/* Enlaces */
.im-ia-report a {
  color: #93c5fd; text-decoration: none;
  border-bottom: 1px dashed rgba(147,197,253,.5);
  transition: color .15s ease, border-color .15s ease;
}
.im-ia-report a:hover {
  color: #0f8f7a; border-bottom-color: #0f8f7a;
}

/* Tablas — para los bloques Dispositivo/Datación/Localización */
.im-ia-report table {
  width: 100%; border-collapse: collapse; margin: 14px 0;
  font-size: 13.5px; line-height: 1.55;
  border-radius: 10px; overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,.10);
}
.im-ia-report thead { background: linear-gradient(180deg, rgba(18,59,122,.55) 0%, rgba(15,95,136,.45) 100%); }
.im-ia-report th {
  padding: 10px 14px; text-align: left;
  color: #f0f8ff; font-weight: 700;
  border-bottom: 2px solid rgba(186,230,253,.25);
  font-size: 13px; letter-spacing: .3px;
  text-transform: uppercase;
}
.im-ia-report td {
  padding: 10px 14px;
  border-bottom: 1px solid rgba(186,230,253,.10);
  vertical-align: top;
}
.im-ia-report tr:nth-child(even) td { background: rgba(255,255,255,.025); }
.im-ia-report tr:last-child td { border-bottom: none; }

/* Blockquote (por si IA usa > para resaltar) */
.im-ia-report blockquote {
  margin: 14px 0; padding: 10px 16px;
  border-left: 3px solid #0f8f7a;
  background: rgba(15,143,122,.08);
  border-radius: 0 8px 8px 0;
  color: #dbeafe; font-style: italic;
}

@media (max-width: 720px) {
  .im-ia-report { padding: 20px 18px; border-radius: 14px; }
  .im-ia-report h1 { font-size: 20px; }
  .im-ia-report h2 { font-size: 16px; padding: 12px 16px; margin: 22px -4px 12px; }
  .im-ia-report h3 { font-size: 14.5px; }
  .im-ia-report table { font-size: 12.5px; }
  .im-ia-report th, .im-ia-report td { padding: 8px 10px; }
}

/* Scoring v3 — 5 score boxes + risk bars */
.imv3-scoring-wrap {
  background: linear-gradient(135deg, rgba(18,59,122,.06), rgba(15,95,136,.04));
  border: 1px solid rgba(18,59,122,.12); border-radius: 18px; padding: 22px;
}
.imv3-scoring-leyenda { font-size: 13px; opacity: .85; margin-bottom: 14px; display: flex; flex-wrap: wrap; gap: 12px; }
.imv3-leg-pill { display: inline-flex; align-items: center; gap: 6px; }
.imv3-leg-dot  { width: 10px; height: 10px; border-radius: 50%; }
.imv3-leg-bajo  .imv3-leg-dot { background: #10b981; }
.imv3-leg-medio .imv3-leg-dot { background: #fbbf24; }
.imv3-leg-elev  .imv3-leg-dot { background: #fb923c; }
.imv3-leg-alto  .imv3-leg-dot { background: #ef4444; }
.imv3-scores-row {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px;
}
.imv3-scorebox {
  background: #fff; border: 1px solid rgba(18,59,122,.12); border-radius: 14px;
  padding: 14px; display: flex; flex-direction: column; gap: 6px; position: relative; overflow: hidden;
}
.imv3-scorebox::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: #94a3b8; }
.imv3-scorebox.bajo::before  { background: #10b981; }
.imv3-scorebox.medio::before { background: #fbbf24; }
.imv3-scorebox.elev::before  { background: #fb923c; }
.imv3-scorebox.alto::before  { background: #ef4444; }
.imv3-scorebox-label { font-size: 12px; font-weight: 700; color: #475569; text-transform: uppercase; letter-spacing: .4px; }
.imv3-scorebox-sub   { font-size: 11.5px; color: #64748b; min-height: 14px; }
.imv3-scorebox-val   { font-size: 36px; font-weight: 800; color: #123b7a; line-height: 1; margin: 4px 0; }
.imv3-scorebox-pill  { align-self: flex-start; padding: 3px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; color: #fff; }
.imv3-scorebox.bajo  .imv3-scorebox-pill { background: #10b981; }
.imv3-scorebox.medio .imv3-scorebox-pill { background: #fbbf24; color: #1a2733; }
.imv3-scorebox.elev  .imv3-scorebox-pill { background: #fb923c; }
.imv3-scorebox.alto  .imv3-scorebox-pill { background: #ef4444; }

/* Factors panel */
.imv3-factors {
  margin-top: 14px; padding: 14px; background: rgba(18,59,122,.04);
  border: 1px solid rgba(18,59,122,.10); border-radius: 12px;
}
.imv3-factors-title { font-size: 13px; font-weight: 700; color: #475569; margin: 0 0 8px; }
.imv3-factors ul { padding-left: 22px; margin: 0; }
.imv3-factors li { margin: 3px 0; font-size: 13px; color: #334155; }

/* Cards arsenal v3 */
.imv3-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 4px;
  align-items: start;
}

/* ─── Separador de sección (banner full-width) ─── */
.imv3-section-header {
  grid-column: 1 / -1;
  display: flex; align-items: center; gap: 16px;
  padding: 18px 22px; border-radius: 14px;
  margin: 22px 0 6px;
  color: #fff;
  background: linear-gradient(135deg, #123b7a 0%, #0f5f88 48%, #0f8f7a 100%);
  box-shadow: 0 6px 22px rgba(15,95,136,.22);
  position: relative; overflow: hidden;
}
.imv3-section-header::after {
  content: ''; position: absolute; right: -40px; top: -40px; width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(255,255,255,.10) 0%, transparent 70%);
  pointer-events: none;
}
.imv3-section-header:first-child { margin-top: 0; }
.imv3-section-icon {
  flex: 0 0 52px; width: 52px; height: 52px;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px;
  background: rgba(255,255,255,.16); border-radius: 13px;
  border: 1px solid rgba(255,255,255,.24);
  backdrop-filter: blur(6px);
}
.imv3-section-text { flex: 1; min-width: 0; z-index: 1; }
.imv3-section-title {
  font-size: 19px; font-weight: 800; letter-spacing: .6px;
  margin: 0 0 4px; color: #fff; text-transform: uppercase; line-height: 1.1;
}
.imv3-section-subtitle {
  font-size: 12.5px; margin: 0; color: rgba(255,255,255,.86); line-height: 1.45; font-weight: 500;
}
.imv3-section-identidad { background: linear-gradient(135deg, #0f5f88 0%, #0f8f7a 100%); }
.imv3-section-auditoria { background: linear-gradient(135deg, #475569 0%, #1e293b 100%); box-shadow: 0 6px 18px rgba(30,41,59,.18); }

/* ─── Card individual ─── */
.imv3-card {
  background: #fff;
  border: 1px solid rgba(18,59,122,.10);
  border-radius: 14px;
  padding: 18px 18px 16px;
  box-shadow: 0 1px 3px rgba(18,59,122,.04), 0 2px 8px rgba(18,59,122,.03);
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.imv3-card:hover {
  box-shadow: 0 4px 14px rgba(18,59,122,.10), 0 8px 24px rgba(15,95,136,.06);
  border-color: rgba(15,95,136,.22);
}
.imv3-card-full { grid-column: 1 / -1; }
.imv3-card-title {
  font-size: 14.5px; font-weight: 800; color: #0f1a2b; margin: 0 0 12px;
  display: flex; align-items: center; gap: 9px; padding-bottom: 10px;
  border-bottom: 2px solid rgba(15,95,136,.10);
  letter-spacing: .2px;
}
.imv3-card-title .imv3-icon {
  font-size: 18px; flex: 0 0 auto;
  width: 30px; height: 30px;
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(18,59,122,.10), rgba(15,143,122,.10));
  border-radius: 8px;
}
.imv3-card-title-text { flex: 1; }
.imv3-card-body { font-size: 13.5px; color: #1f2937; line-height: 1.6; }
.imv3-card-body p { margin: 6px 0; }
.imv3-card-body b, .imv3-card-body strong { color: #0f1a2b; font-weight: 700; }
.imv3-card-body a { color: #0f5f88; text-decoration: none; font-weight: 600; border-bottom: 1px solid rgba(15,95,136,.25); transition: color .15s, border-color .15s; }
.imv3-card-body a:hover { color: #123b7a; border-bottom-color: #123b7a; }

/* Responsive sección header */
@media (max-width: 640px) {
  .imv3-section-header { padding: 14px 16px; gap: 12px; margin: 14px 0 4px; }
  .imv3-section-icon { flex: 0 0 42px; width: 42px; height: 42px; font-size: 22px; }
  .imv3-section-title { font-size: 16px; }
  .imv3-section-subtitle { font-size: 11.5px; }
}

/* Sub-cards / mini-cards */
.imv3-mini { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; margin: 8px 0; }
.imv3-mini-cell {
  background: rgba(18,59,122,.04); border: 1px solid rgba(18,59,122,.08);
  border-radius: 8px; padding: 8px 10px; font-size: 12.5px;
}
.imv3-mini-cell-label { font-size: 11px; color: #64748b; text-transform: uppercase; letter-spacing: .3px; }
.imv3-mini-cell-val { color: #123b7a; font-weight: 600; word-break: break-word; }

/* KV table */
.imv3-kv { width: 100%; font-size: 13px; border-collapse: collapse; }
.imv3-kv tr:last-child td { border-bottom: 0; }
.imv3-kv td { padding: 7px 10px; border-bottom: 1px solid rgba(18,59,122,.06); vertical-align: top; line-height: 1.5; }
.imv3-kv td:first-child {
  color: #475569; width: 38%; font-weight: 600;
  font-size: 12px; text-transform: uppercase; letter-spacing: .35px;
}
.imv3-kv td:last-child  { color: #0f1a2b; word-break: break-word; font-weight: 500; }
.imv3-kv td:last-child code { background: rgba(15,95,136,.07); padding: 1px 6px; border-radius: 4px; font-size: 12.5px; color: #0f5f88; }

/* Badges */
.imv3-badge {
  display: inline-block; padding: 3px 11px; border-radius: 999px; font-size: 11.5px; font-weight: 700;
  margin-right: 4px; margin-bottom: 4px; letter-spacing: .2px;
}
.imv3-badge.ok    { background: rgba(16,185,129,.14); color: #047857; border: 1px solid rgba(16,185,129,.22); }
.imv3-badge.warn  { background: rgba(251,191,36,.20); color: #92400e; border: 1px solid rgba(251,191,36,.32); }
.imv3-badge.err   { background: rgba(239,68,68,.14);  color: #b91c1c; border: 1px solid rgba(239,68,68,.24); }
.imv3-badge.neutral, .imv3-badge.neu { background: rgba(18,59,122,.08); color: #334155; border: 1px solid rgba(18,59,122,.14); }

/* ELA heatmap visible */
.imv3-heatmap-wrap { text-align: center; margin: 10px 0; }
.imv3-heatmap-img  { max-width: 100%; max-height: 380px; border-radius: 12px; border: 1px solid rgba(18,59,122,.16); }
.imv3-heatmap-cap  { font-size: 12px; color: #64748b; margin-top: 6px; font-style: italic; }

/* Lista de URLs / matches */
.imv3-url-list { padding-left: 0; list-style: none; margin: 6px 0; }
.imv3-url-list li {
  padding: 5px 8px; background: rgba(18,59,122,.04); border-radius: 6px;
  margin-bottom: 4px; font-size: 12.5px; word-break: break-all;
}
.imv3-url-list a { color: #0f5f88; text-decoration: none; font-weight: 600; }
.imv3-url-list a:hover { text-decoration: underline; }

/* Cross-ref cards */
.imv3-xref {
  background: linear-gradient(135deg, rgba(15,95,136,.08), rgba(15,143,122,.06));
  border: 1px solid rgba(15,95,136,.18); border-radius: 10px; padding: 10px 14px; margin: 6px 0;
}
.imv3-xref-title { font-size: 13px; font-weight: 700; color: #0f5f88; margin: 0 0 6px; }
.imv3-xref-body  { font-size: 13px; color: #1f2937; }

/* Anomalies + recommendations */
.imv3-anom-section { margin: 8px 0; }
.imv3-anom-list, .imv3-rec-list { padding-left: 20px; margin: 4px 0; }
.imv3-anom-list li { color: #92400e; margin: 4px 0; }
.imv3-rec-list li  { color: #047857; margin: 4px 0; }

/* Empty / no-data placeholder */
.imv3-nodata { font-size: 12.5px; color: #94a3b8; font-style: italic; padding: 8px 0; }

/* Chat */
.im-chat-thread { display: flex; flex-direction: column; gap: 10px; margin: 14px 0; max-height: 320px; overflow-y: auto; padding: 10px; }
.im-bubble { padding: 10px 14px; border-radius: 14px; max-width: 80%; font-size: 14px; line-height: 1.5; }
.im-bubble-user { align-self: flex-end; background: #123b7a; color: #fff; }
.im-bubble-ai   { align-self: flex-start; background: rgba(18,59,122,.06); color: #1f2937; border: 1px solid rgba(18,59,122,.10); }

/* Botón export PDF */
.imv3-export-btn {
  background: linear-gradient(135deg, #123b7a 0%, #0f5f88 48%, #0f8f7a 100%);
  color: #fff; padding: 12px 22px; border: 0; border-radius: 12px; font-weight: 700; cursor: pointer;
  font-size: 14px; letter-spacing: .3px; box-shadow: 0 4px 14px rgba(15,95,136,.3);
}
.imv3-export-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(15,95,136,.4); }
.imv3-export-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }

/* Responsive */
@media (max-width: 900px) {
  .imv3-scores-row { grid-template-columns: repeat(2, 1fr); }
  .imv3-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .imv3-scores-row { grid-template-columns: 1fr; }
  .im-ia-report { padding: 14px; font-size: 13.5px; }
}
