/*! © 2026 Kerb3r0ps · www.kerb3r0ps.com */
/* Atlas OSINT: lo propio de /atlas-osint (lo común viene de certificaciones.css) */
.stats { grid-template-columns: repeat(3, 1fr); }
.osint-h2 { font-family: var(--display); font-weight: 700; font-size: clamp(1.3rem, 2.4vw, 1.9rem); line-height: 1.15; margin-bottom: .7rem; }

/* color por categoría (reutiliza la paleta de áreas) */
.c-buscadores { --c: var(--bone); } .c-personas { --c: #FF5FA2; } .c-usuarios { --c: #A47BFF; }
.c-correo { --c: var(--int); } .c-telefonos { --c: #FF8A3D; } .c-dominios { --c: var(--def); }
.c-infra { --c: #3DDC97; } .c-imagenes { --c: #2BC4C4; } .c-geo { --c: #6FB1FF; }
.c-redes { --c: #FF5FA2; } .c-empresas { --c: #CFCBC2; } .c-cripto { --c: #F8BE38; }
.c-amenazas { --c: var(--atk); } .c-archivo { --c: #9C9CA6; } .c-frameworks { --c: #A47BFF; }

/* punto de partida: botones grandes */
.osint-partida { padding-top: clamp(2rem, 5vw, 3rem); }
.puntos { display: grid; grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr)); gap: .7rem; margin-top: 1.3rem; }
/* el texto de cada dato se ajusta a su tarjeta: nunca se sale ("IP / infraestructura", "Criptomonedas") */
.punto > span:last-child { min-width: 0; overflow-wrap: break-word; hyphens: auto; line-height: 1.25; }
.punto small { white-space: nowrap; }
.punto { display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; cursor: pointer; text-align: left; font: 600 .95rem var(--body); color: var(--bone); background: var(--panel); border: 1px solid var(--line); border-radius: .9rem; transition: border-color .15s, background .15s, transform .15s; }
.punto:hover { border-color: var(--ash); transform: translateY(-2px); }
.punto[aria-pressed="true"] { border-color: var(--bone); background: var(--panel-2); box-shadow: inset 0 0 0 1px var(--bone); }
.punto .ico { flex: none; display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: .6rem; font: 800 .7rem var(--display); letter-spacing: -.02em; color: var(--bg); background: var(--c, var(--ash)); }
.punto small { display: block; color: var(--ash); font-weight: 500; font-size: .78rem; margin-top: .1rem; }
.punto.todos .ico { background: var(--bone); }

.pivotes { margin-top: 1.1rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .7rem; padding: .9rem 1.1rem; border: 1px solid var(--line); border-left: 3px solid var(--def); border-radius: .9rem; background: color-mix(in srgb, var(--def) 7%, var(--panel)); }
.pivotes[hidden] { display: none; }
.pivotes-et { color: var(--ash); font-size: .9rem; font-weight: 600; }
.pivote { cursor: pointer; font: 600 .85rem var(--body); color: var(--bone); background: transparent; border: 1px solid var(--line); border-radius: 999px; padding: .3rem .8rem; transition: border-color .15s, color .15s; }
.pivote:hover { border-color: var(--bone); }
.pivote::before { content: "→ "; color: var(--ash); }

/* filtros rápidos */
.osint-flags { display: inline-flex; flex-wrap: wrap; gap: .5rem; }

/* tarjetas */
.osint-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 1rem; margin-top: 1.4rem; }
.osint-card { display: flex; flex-direction: column; gap: .5rem; padding: 1.1rem 1.2rem; text-decoration: none; color: var(--bone); background: linear-gradient(180deg, color-mix(in srgb, var(--c) 8%, var(--panel)), var(--panel) 70%); border: 1px solid var(--line); border-left: 3px solid var(--c); border-radius: 1rem; transition: border-color .15s, transform .15s; }
.osint-card:hover, .osint-card:focus-visible { border-color: color-mix(in srgb, var(--c) 55%, var(--line)); transform: translateY(-2px); outline: none; }
.osint-card.apagada { display: none; }
.osint-card .cab { display: flex; flex-direction: column; gap: .15rem; }
.osint-card h3 { font: 700 1.1rem var(--display); line-height: 1.2; }
.osint-card .cat { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c); }
.osint-card p { color: var(--ash); font-size: .88rem; line-height: 1.45; flex: 1; }
.osint-admite { font-size: .78rem; color: var(--ash); line-height: 1.4; }
.osint-admite span { font-weight: 600; color: var(--bone); }
.osint-card .etqs { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .2rem; }
.osint-et { font-size: .72rem; font-weight: 600; padding: .12rem .5rem; border-radius: 999px; border: 1px solid var(--line); color: var(--ash); }
.osint-et.ok { color: #3DDC97; border-color: color-mix(in srgb, #3DDC97 45%, var(--line)); }
.osint-et.pago { color: var(--int); border-color: color-mix(in srgb, var(--int) 45%, var(--line)); }
.osint-et.reg { color: var(--ash); }
.osint-et.es { color: var(--def); border-color: color-mix(in srgb, var(--def) 45%, var(--line)); }
.osint-et.rastro-activo { color: var(--atk); border-color: color-mix(in srgb, var(--atk) 45%, var(--line)); }
.osint-et.irr { color: #F8BE38; border-color: color-mix(in srgb, #F8BE38 45%, var(--line)); }
.osint-et.rastro-local { color: #3DDC97; border-color: color-mix(in srgb, #3DDC97 45%, var(--line)); }
/* aviso: las herramientas cambian con el tiempo */
.osint-aviso { margin-top: 1.1rem; padding: .9rem 1.1rem; border: 1px solid var(--line); border-left: 3px solid #F8BE38; border-radius: .9rem; background: color-mix(in srgb, #F8BE38 6%, var(--panel)); }
.osint-aviso h3 { font: 700 .95rem var(--display); margin-bottom: .3rem; }
.osint-aviso p { color: var(--ash); font-size: .88rem; line-height: 1.5; }
.osint-aviso p + p { margin-top: .35rem; }
.osint-aviso b { color: var(--bone); font-weight: 600; }
.osint-contador { color: var(--ash); font-size: .9rem; margin-top: 1.2rem; }
.osint-vacio { grid-column: 1 / -1; color: var(--ash); padding: 1.4rem; border: 1px dashed var(--line); border-radius: 1rem; text-align: center; }

/* cómo usarlo bien */
.osint-legal { border-top: 1px solid var(--line); margin-top: 1rem; }
.osint-notas { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; margin-top: 1rem; }
.osint-nota { padding: 1.1rem 1.2rem; border: 1px solid var(--line); border-top: 2px solid var(--int); border-radius: 1rem; background: var(--panel); }
.osint-nota h3 { font: 700 1rem var(--display); margin-bottom: .4rem; }
.osint-nota p { color: var(--ash); font-size: .9rem; line-height: 1.5; }

@media (max-width: 900px) {
  .puntos { grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
  .punto { flex-direction: column; align-items: flex-start; gap: .45rem; padding: .85rem .9rem; }
}
@media (max-width: 560px) {
  .puntos { grid-template-columns: 1fr 1fr; gap: .6rem; }
  .osint-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .punto, .osint-card { transition: none; } .punto:hover, .osint-card:hover { transform: none; } }

/* catálogo completo: categorías nuevas */
.c-registros { --c: #E0B486; } .c-transporte { --c: #59D0F5; } .c-documentos { --c: #B9A7FF; }
.c-noticias { --c: #FF9E8A; } .c-codigo { --c: #8FE36B; } .c-opsec { --c: #7FD8BE; }
.c-formacion { --c: #F6E27A; } .c-utilidades { --c: #A9A9B3; }

/* esenciales o catálogo completo */
.osint-capa { display: inline-grid; grid-template-columns: 1fr 1fr; gap: .4rem; padding: .3rem; margin-bottom: .4rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--panel); }
.osint-capa button { display: flex; flex-direction: column; align-items: flex-start; gap: .1rem; cursor: pointer; text-align: left; padding: .55rem 1rem; border: 0; border-radius: .75rem; background: transparent; color: var(--ash); font: 500 .8rem var(--body); transition: background .15s, color .15s; }
.osint-capa button b { font: 700 .92rem var(--display); color: inherit; }
.osint-capa button:hover:not(:disabled) { color: var(--bone); }
.osint-capa button[aria-pressed="true"] { background: var(--bone); color: var(--bg); }
.osint-capa button:disabled { cursor: progress; opacity: .6; }
.chip[hidden] { display: none; }

/* estado y origen en las tarjetas */
.osint-et.esen { color: var(--bone); border-color: color-mix(in srgb, var(--bone) 40%, var(--line)); }
.osint-et.hist { color: var(--ash); border-style: dashed; }
.osint-et.prot { color: #F8BE38; border-color: color-mix(in srgb, #F8BE38 35%, var(--line)); }
.osint-et.en { color: var(--ash); font-size: .66rem; letter-spacing: .04em; }
.osint-card.hist { opacity: .72; }
.osint-card p.sin { font-style: italic; opacity: .7; }
.ficha .f-en { color: var(--ash); font-size: .85em; }
.ficha .f-aviso { color: #F8BE38; }

/* mostrar más */
.osint-mas { display: block; margin: 1.4rem auto 0; cursor: pointer; font: 600 .92rem var(--body); color: var(--bone); background: var(--panel); border: 1px solid var(--line); border-radius: 999px; padding: .65rem 1.4rem; transition: border-color .15s; }
.osint-mas:hover { border-color: var(--bone); }
.osint-mas[hidden] { display: none; }
.osint-mas-link { cursor: pointer; font: inherit; color: var(--bone); background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0; margin-left: .3rem; }
@media (max-width: 560px) { .osint-capa { display: grid; } .osint-capa button { min-width: 0; padding: .55rem .7rem; } .osint-capa button b { overflow-wrap: anywhere; } }

/* ───────── la red de datos de partida (la misma de la portada, a tamaño completo) ───────── */
.red-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.red-txt { display: flex; flex-direction: column; gap: 1.1rem; }
.red-txt .lead { margin: 0; }
.red-txt .osint-capa { align-self: flex-start; margin: 0; }
.red-viz { display: grid; place-items: center; }
.red { --fg: var(--bone); --fg-2: var(--ash); --rease: cubic-bezier(.16, 1, .3, 1); width: 100%; max-width: 42rem; height: auto; overflow: visible; user-select: none; }
.red .e { fill: none; stroke: #fff; stroke-opacity: var(--o); stroke-width: var(--w); stroke-dasharray: 1000; stroke-dashoffset: 1000; transition: stroke-dashoffset 2s var(--rease), stroke-opacity .35s, stroke .35s; }
.red.in .e { stroke-dashoffset: 0; }
.red .e.on { stroke-opacity: calc(var(--o) + .35); }
.red .e.off { stroke-opacity: .03; }
.red .e.h { stroke-opacity: calc(var(--o) + .45); }
.red .f { fill: none; stroke: var(--fg); stroke-width: 1.8; stroke-linecap: round; stroke-dasharray: 12 900; stroke-dashoffset: 12; opacity: 0; transition: opacity .6s 1.6s; animation: redflujo 3.6s cubic-bezier(.65, 0, .35, 1) infinite var(--d, 0s); }
.red.in .f { opacity: 1; }
@keyframes redflujo { to { stroke-dashoffset: -520; } }
.red .hit { fill: none; stroke: transparent; stroke-width: 12; cursor: pointer; pointer-events: stroke; }
.red .nd { cursor: pointer; outline: none; }
.red .nd circle { fill: var(--panel-2); stroke: var(--fg-2); stroke-width: 1.4; transition: fill .25s, stroke .25s; }
.red .nd .halo { fill: transparent; stroke: none; }
.red .nd text { fill: var(--fg-2); font: 500 17px var(--body); transition: fill .25s, opacity .25s; }
.red .nd text .n { font-size: 13px; font-weight: 400; fill-opacity: .7; }
.red .nd:hover circle:not(.halo), .red .nd:focus-visible circle:not(.halo) { stroke: var(--fg); }
.red .nd:hover text, .red .nd:focus-visible text { fill: var(--fg); }
.red .nd:focus-visible .halo { stroke: var(--fg); stroke-width: 1; stroke-dasharray: 2 3; }
.red .nd.sel circle:not(.halo) { fill: var(--fg); stroke: var(--fg); }
.red .nd.sel text { fill: var(--fg); font-weight: 700; }
.red.con-sel .nd:not(.sel):not(.vec) text { opacity: .35; }
.red.con-sel .nd.vec text { fill: var(--fg); }

/* panel junto a la red */
.red-panel { display: flex; flex-direction: column; gap: .7rem; padding: 1.1rem 1.2rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--panel); min-height: 12rem; }
.red-et { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ash); }
.red-h { font: 700 1.35rem var(--display); line-height: 1.15; }
.red-ayuda { color: var(--ash); font-size: .92rem; line-height: 1.5; }
.red-sub { font-size: .85rem; font-weight: 600; color: var(--bone); margin-top: .2rem; }
.red-pivs { display: flex; flex-wrap: wrap; gap: .45rem; }
.red-pivs .pivote small { color: var(--ash); font-weight: 500; margin-left: .2rem; }
.red-pivs .pivote::before { content: none; }
.red-pivs .pivote.quitar::before { content: "× "; }
.red-ver { align-self: flex-start; cursor: pointer; margin-top: .3rem; font: 600 .9rem var(--body); color: var(--bg); background: var(--bone); border: 0; border-radius: 999px; padding: .55rem 1.1rem; transition: transform .15s; }
.red-ver:hover { transform: translateY(-1px); }

/* en pantallas estrechas, los datos también como botones bajo la red */
.red-wrap .puntos { display: none; }
@media (max-width: 900px) {
  .red-wrap { grid-template-columns: 1fr; }
  .red-txt { display: contents; }
  .red-txt .osint-h2 { order: 1; } .red-txt .lead { order: 2; } .red-viz { order: 3; } .red-txt .osint-capa { order: 4; } .red-panel { order: 5; } .red-wrap .puntos { order: 6; }
  .red-wrap { gap: 1.1rem; }
  .red .nd text { font-size: 19px; }
  .red .nd text .n { font-size: 15px; }
}
@media (max-width: 600px) {
  .red .nd text { font-size: 22px; }
  .red .nd text .n { display: none; }
  .red-wrap .puntos { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; grid-template-columns: none; }
  .red-wrap .puntos .chip small { color: inherit; opacity: .7; }
}
.osint-et.caida { color: var(--atk); border-color: color-mix(in srgb, var(--atk) 45%, var(--line)); }
@media (prefers-reduced-motion: reduce) { .red .f { animation: none; } .red .e { transition: none; } }

/* comprobación en vivo al abrir la página */
.osint-aviso .en-vivo::before { content: ""; display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: #3DDC97; margin-right: .45rem; vertical-align: .06em; box-shadow: 0 0 0 3px color-mix(in srgb, #3DDC97 25%, transparent); }
.osint-aviso .en-vivo.cargando::before { background: #F8BE38; box-shadow: 0 0 0 3px color-mix(in srgb, #F8BE38 25%, transparent); animation: latido 1s ease-in-out infinite alternate; }
@keyframes latido { to { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .osint-aviso .en-vivo.cargando::before { animation: none; } }
.osint-aviso .en-vivo.error::before { background: var(--atk); box-shadow: 0 0 0 3px color-mix(in srgb, var(--atk) 25%, transparent); }
.vivo-barra { display: block; height: 4px; margin: .5rem 0 .35rem; border-radius: 999px; background: color-mix(in srgb, var(--bone) 10%, transparent); overflow: hidden; }
.vivo-barra i { display: block; height: 100%; border-radius: inherit; background: #F8BE38; transition: width .4s ease-out; }

/* pivotar: los recomendados (hilos más gruesos) llevan un delineado blanco; los pivotes elegidos, en blanco como el resto de la página */
.red .e.tenue { stroke-opacity: calc(var(--o) * .6); }
.red .nd.rec .halo { stroke: var(--fg); stroke-width: 1.2; stroke-dasharray: 3 3; }
.red .nd.rec text { fill: var(--fg); }
.red .nd.piv circle:not(.halo) { fill: var(--fg); stroke: var(--fg); }
.red .nd.piv .halo { stroke: var(--fg); stroke-width: 1.4; stroke-dasharray: none; }
.red .nd.piv text { fill: var(--fg); font-weight: 700; }
.red.con-piv .nd.vec:not(.piv) text { opacity: .7; }
.red-pivs .pivote[aria-pressed="true"] { color: var(--bg); background: var(--bone); border-color: var(--bone); }
.red-pivs .pivote[aria-pressed="true"] small { color: inherit; opacity: .7; }
.red-pivs .pivote.rec { border-style: dashed; border-color: color-mix(in srgb, var(--bone) 55%, var(--line)); }
.red-pivs .pivote.rec[aria-pressed="true"] { border-style: solid; }
.red-pista { color: var(--ash); font-size: .82rem; line-height: 1.45; }
