/* Cortex Analytica · Kit de visualización 2.1 · tokens de la piel.
   Capa de marca: único CSS propio de Cortex; el resto del kit es el núcleo común.
   Tema Web por defecto (papel cálido); Documento con [data-theme="documento"]; Oscuro con [data-theme="oscuro"].
   Fuente: brand/doctrina/tokens.json · Doctrina 2026.1 normas transversales (28/09/2026). */

.ccv{
  --fondo:#F4F2EC; --panel:#EBE9E1; --panel-2:#EFEDE6; --filete:#DEDBD2; --filete-2:#CFCBC0;
  --tinta:#141413; --texto:#2B2A27; --tinta-2:#4A463E; --tinta-3:#6B665C;
  --acento:#556D3B; --acento-2:#9BB076; --acento-3:#C9D9A6; --acento-4:#E3E8D6;
  --sobre-acento:#FBF6EA; --foco:#556D3B;
  --senal:var(--acento); --senal-suave:rgba(85,109,59,.12); --critico:#8A5E12;
  --serie-1:var(--acento); --serie-2:var(--acento-2); --serie-3:var(--acento-3); --serie-4:var(--acento-4);
  /* color con significado (Doctrina 2026.1 §3): solo con ese significado */
  --google:#2F5A80; --ia:#8A5E12; --competencia:#7A7367;
  --banda:#E3E8D6; --banda-activa:#9BB076; --rejilla:#E6E3DA;
  --barrido:var(--acento);
  --trazo-fino:.5px;
  --f-texto:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-rotulo:"Space Grotesk","Outfit",ui-monospace,"Consolas",monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
.ccv[data-theme="documento"], [data-theme="documento"] .ccv{
  --fondo:#FFFFFF; --panel:#F5F5F3; --panel-2:#FAFAF8; --filete:#E6E4DE; --filete-2:#D9D6CE;
  --tinta:#141413; --texto:#141413; --tinta-2:#4A463E; --tinta-3:#6B665C;
  --acento:#5D6E44; --foco:#5D6E44; --senal:#5D6E44; --senal-suave:rgba(93,110,68,.12);
  --serie-1:#5D6E44; --banda:#E3E8D6; --rejilla:#ECEAE4;
}
.ccv[data-theme="oscuro"], [data-theme="oscuro"] .ccv, html[data-theme="dark"] .ccv{
  --fondo:#141413; --panel:#1C1C1A; --panel-2:#20201E; --filete:#2A2A27; --filete-2:#353531;
  --tinta:#FBF6EA; --texto:#FBF6EA; --tinta-2:#A8A399; --tinta-3:#8F8B80;
  --acento:#9BB076; --acento-2:#C9D9A6; --acento-3:#5D6E44; --acento-4:#3A4430; --sobre-acento:#141A0F; --foco:#C9D9A6;
  --senal:#9BB076; --senal-suave:rgba(155,176,118,.16); --critico:#EBC26A;
  --serie-1:#9BB076; --serie-2:#C9D9A6; --serie-3:#5D6E44; --serie-4:#3A4430;
  --google:#7FA3CC; --ia:#EBC26A; --competencia:#857D72;
  --banda:#2F3828; --banda-activa:#5D6E44; --rejilla:#262624;
  color-scheme:dark;
}

/* Base: radio 0, sin sombras, trazo fino */
.ccv, .ccv *{box-sizing:border-box;border-radius:0;box-shadow:none}
.ccv{background:var(--fondo);color:var(--texto);font:400 16px/1.6 var(--f-texto)}
.ccv :focus-visible{outline:2px solid var(--foco);outline-offset:2px}
.ccv a{color:var(--acento);text-decoration:underline;text-decoration-color:var(--filete-2);text-underline-offset:3px}
.ccv a:hover{color:var(--tinta);text-decoration-color:var(--acento)}

/* Roles tipográficos · titular tipo Cursor: frase viva + continuación apagada en el mismo párrafo */
.ccv .tesis{font:500 clamp(24px,1.2rem + 1.4vw,32px)/1.2 var(--f-texto);letter-spacing:-.01em;color:var(--tinta);text-wrap:balance;margin:0}
.ccv .tesis .apagado{font-weight:400;color:var(--tinta-3)}
.ccv .contexto{color:var(--tinta-2);margin:8px 0 0}
.ccv .cifra{font:500 clamp(40px,2rem + 1.6vw,56px)/1 var(--f-rotulo);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--tinta)}
.ccv .etiqueta, .ccv .codigo{font:500 10px/1.4 var(--f-rotulo);letter-spacing:.18em;text-transform:uppercase;color:var(--acento)}
.ccv .pregunta{font:300 13px/1.4 var(--f-texto);color:var(--tinta-3)}
.ccv .nota{font:300 13px/21px var(--f-texto);color:var(--tinta-3)}
.ccv .fuente{font:400 11px/1.6 var(--f-rotulo);letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-3)}
.ccv .lectura{border-left:2px solid var(--acento);padding-left:16px;color:var(--tinta-2);margin:16px 0 0}
.ccv .lectura strong{color:var(--tinta);font-weight:500}
.ccv .num{font-variant-numeric:tabular-nums}

/* SVG: gramática. Trazo fino de figura (0,5 px); la serie del hallazgo hasta 1,5 px */
.ccv .eje{font:400 11px var(--f-rotulo);letter-spacing:.06em;fill:var(--tinta-3)}
.ccv .lab{font:400 13px var(--f-rotulo);fill:var(--tinta)}
.ccv .lab-2{font:400 12px var(--f-rotulo);fill:var(--tinta-2)}
.ccv .lab-3{font:500 10px var(--f-rotulo);letter-spacing:.18em;fill:var(--acento)}
.ccv .lab-s{fill:var(--senal)}
.ccv .rej{stroke:var(--filete);stroke-width:var(--trazo-fino)}
.ccv .rej-base{stroke:var(--filete-2);stroke-width:1}
.ccv .hoy{stroke:var(--tinta-2);stroke-width:1;stroke-dasharray:2 4}
.ccv .ln-1{stroke:var(--serie-1);stroke-width:1.5;fill:none}
.ccv .ln-2{stroke:var(--serie-2);stroke-width:1;fill:none}
.ccv .ln-s{stroke:var(--senal);stroke-width:1.5;fill:none}
.ccv .ln-google{stroke:var(--google);stroke-width:1;fill:none} .ccv .ln-ia{stroke:var(--ia);stroke-width:1;fill:none}
.ccv .m-pub-1{fill:var(--serie-1)} .ccv .m-pub-s{fill:var(--senal)}
.ccv .m-der-1{fill:none;stroke:var(--serie-1);stroke-width:1;stroke-dasharray:2 2}
.ccv .m-der-s{fill:none;stroke:var(--senal);stroke-width:1;stroke-dasharray:2 2}
.ccv .r-pas{fill:var(--serie-1)} .ccv .r-fut{fill:none;stroke:var(--senal);stroke-width:1} .ccv .r-ver{fill:none;stroke:var(--senal);stroke-width:1;stroke-dasharray:2 2}
.ccv .llave{stroke:var(--senal);stroke-width:1;fill:none}
.ccv .banda{fill:var(--banda);opacity:.9} .ccv .banda.s{fill:var(--senal);opacity:.95}
.ccv .nodo{fill:var(--serie-1)} .ccv .nodo.s{fill:var(--senal)} .ccv .nodo.h2{fill:var(--serie-2)}
.ccv .foco-activo .banda:not(.on){opacity:.18} .ccv .foco-activo .nodo:not(.on){opacity:.35}
.ccv .anillo{fill:none;stroke:var(--foco);stroke-width:1;opacity:0} .ccv :focus-visible > .anillo, .ccv .sel > .anillo{opacity:1}
/* Competencia y ruido: rayas a 135°, nunca color plano */
.ccv .competencia{fill:url(#cc-rayas)}
.ccv .rayas-def line{stroke:var(--competencia);stroke-width:1}

/* Lienzo y partes */
.ccv .pieza{border:1px solid var(--filete);background:var(--fondo)}
.ccv .cab{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--filete)}
.ccv .grados{margin-left:auto;display:flex;gap:8px}
.ccv .grado{font:500 10px/1 var(--f-rotulo);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-2);border:1px solid var(--filete-2);padding:6px 8px}
.ccv .grado.s{color:var(--senal);border-color:var(--senal)}
.ccv .cuerpo{padding:20px 16px}
.ccv .lienzo{position:relative;background:var(--panel);border-top:1px solid var(--filete);border-bottom:1px solid var(--filete)}
.ccv .barra{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--filete)}
.ccv .ayuda{font:300 13px/1.4 var(--f-texto);color:var(--tinta-3)}
.ccv .graf{display:block;width:100%;height:auto}
.ccv .scroll{overflow-x:auto;overscroll-behavior-x:contain}
.ccv .evidencia{border-top:1px solid var(--filete)}
.ccv .evidencia summary{cursor:pointer;padding:12px 16px;font:500 11px/1 var(--f-rotulo);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta)}
.ccv table{width:100%;border-collapse:collapse;font-size:14px}
.ccv th, .ccv td{padding:8px 12px;border-top:1px solid var(--filete);text-align:left}
.ccv th{font:500 10px/1.4 var(--f-rotulo);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3)}
.ccv td.n, .ccv th.n{text-align:right;font-variant-numeric:tabular-nums}
.ccv .vacio{padding:32px 16px;color:var(--tinta-2)} .ccv .vacio b{display:block;color:var(--tinta);font-weight:500}

/* Controles */
.ccv .btn, .ccv .cc-repetir, .ccv .segmento button, .ccv [role="tab"]{font:500 11px/1 var(--f-rotulo);letter-spacing:.1em;text-transform:uppercase;background:transparent;color:var(--tinta-2);border:1px solid var(--filete-2);padding:10px 14px;min-height:36px;cursor:pointer}
.ccv .cc-repetir{border-color:var(--acento);color:var(--tinta)}
.ccv .segmento{display:inline-flex;border:1px solid var(--filete-2)} .ccv .segmento button{border:0} .ccv .segmento button + button{border-left:1px solid var(--filete-2)}
.ccv [aria-pressed="true"], .ccv [aria-selected="true"]{background:var(--acento);color:var(--sobre-acento);border-color:var(--acento)}
.ccv .cta-puente{display:inline-block;margin-top:16px;font:500 11px/1 var(--f-rotulo);letter-spacing:.14em;text-transform:uppercase;color:var(--acento);text-decoration:none;border-bottom:1px solid var(--filete-2);padding-bottom:6px}
.ccv .cta-puente:hover{color:var(--tinta);border-color:var(--acento)}

/* Tooltip y barrido (motor-cc.js) */
.ccv .tip{position:absolute;transform:translate(-50%,-100%);background:var(--fondo);border:1px solid var(--filete-2);color:var(--tinta);font:400 13px/1.45 var(--f-texto);padding:8px 10px;pointer-events:none;max-width:260px;z-index:3}
.ccv .tip .nota{display:block;margin-top:2px}
.ccv .cc-barrido{position:absolute;top:0;bottom:0;width:2px;background:var(--barrido);pointer-events:none;z-index:2}
.ccv .cc-barrido.sutil{width:1px;opacity:.4}

@media (prefers-reduced-motion: reduce){ .ccv .cc-repetir{display:none} }
@media (max-width: 640px){ .ccv .cuerpo{padding:16px 12px} .ccv .cab, .ccv .barra{padding:10px 12px} }


/* ==========================================================================
   Componentes cc-* de Cortex · kit 2.1 · primera construcción 10/10/2026 (tema 0.120.0)
   V01 Indicadores (cc-kpis) · V05 Secuencia (cc-secuencia) · V04 Cronología (cc-cronologia)
   Contrato: brand/skill/cortex-graficas/references/contrato-componente.md
   Solo variables de los tokens de arriba. Ningún hexadecimal a partir de aquí.
   La línea «html[data-theme="dark"] .ccv» de los tokens enlaza el modo oscuro del tema con el Tema Oscuro del kit.
   ========================================================================== */
.ccv{fill:currentColor}
.ccv.pieza{border:1px solid var(--filete);background:var(--fondo);scroll-margin-top:96px;min-width:0}
.ccv .cab{width:auto;max-width:none}
.ccv .tesis{max-width:44ch}
.ccv .contexto{max-width:72ch;font-size:15px;line-height:1.6}
.ccv .lectura{max-width:72ch}
.ccv .fuente{margin:16px 0 0;max-width:90ch}
.ccv .fuente a{color:var(--tinta-2)}
.ccv .evidencia > div{overflow-x:auto}
.ccv cc-kpis,.ccv cc-secuencia,.ccv cc-cronologia{display:block;position:relative;min-width:0}
.ccv .tip[hidden]{display:none}
.ccv .rot{font:400 13px var(--f-rotulo);fill:var(--tinta)}
.ccv .rot-2{font:400 12px var(--f-rotulo);fill:var(--tinta-2)}
.ccv .rot-s{font:500 13px var(--f-rotulo);fill:var(--senal)}
.ccv .cc-crece{transform-box:fill-box;transform-origin:left center}
.ccv svg [tabindex]{cursor:pointer;outline:none}
.ccv svg [tabindex]:focus-visible > .anillo{opacity:1}
.ccv .sin-validar{padding:32px 16px;color:var(--tinta-2)}
.ccv .sin-validar b{display:block;color:var(--tinta);font-weight:500}

/* V01 · Indicadores */
.ccv .cc-tarjetas{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:1px;background:var(--filete)}
.ccv .cc-tarjeta{background:var(--panel);padding:24px 20px;display:grid;gap:12px;align-content:start;min-width:0}
.ccv .cc-tarjeta[data-senal]{background:var(--fondo);border-top:2px solid var(--senal);padding-top:22px}
.ccv .cc-tarjeta .etq{font:500 11px/1.4 var(--f-rotulo);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-2)}
.ccv .cc-tarjeta[data-senal] .etq{color:var(--senal)}
.ccv .cc-tarjeta .cifra{margin:0}
.ccv .cc-tarjeta[data-senal] .cifra{color:var(--senal)}
.ccv .cc-tarjeta .cifra .ud{font-size:.5em;letter-spacing:0;margin-left:.15em}
.ccv .cc-tarjeta .nota{margin:0}
.ccv .b-pub{fill:var(--tinta-3)}
.ccv .b-der{fill:none;stroke:var(--tinta-3);stroke-width:1;stroke-dasharray:3 3}
.ccv [data-senal] .b-pub{fill:var(--senal)}
.ccv [data-senal] .b-der{fill:var(--acento-4);stroke:var(--senal)}
.ccv .hallazgo{border:1px solid var(--senal);padding:12px 14px;display:grid;gap:8px;justify-items:start}
.ccv .hallazgo p{margin:0;color:var(--tinta);font-size:15px;line-height:1.45}
.ccv .unidades{display:flex;gap:4px;flex-wrap:wrap}
.ccv .unidades i{display:block;width:18px;height:18px;border:1px solid var(--filete-2)}
.ccv .unidades i.on{background:var(--senal);border-color:var(--senal)}

/* V05 · Secuencia */
.ccv .act rect{fill:var(--fondo);stroke:var(--tinta-3);stroke-width:var(--trazo-fino)}
.ccv .act text{font:500 11px var(--f-rotulo);letter-spacing:.06em;fill:var(--tinta)}
.ccv .act.t-ia rect{stroke:var(--ia);stroke-width:1} .ccv .act.t-ia text{fill:var(--ia)}
.ccv .act.t-propio rect{stroke:var(--acento);stroke-width:1} .ccv .act.t-propio text{fill:var(--acento)}
.ccv .vida{stroke:var(--filete-2);stroke-width:1;stroke-dasharray:2 4}
.ccv .paso .flecha{stroke:var(--tinta-3);stroke-width:1;fill:none}
.ccv .paso .punta{fill:var(--tinta-3)}
.ccv .paso .num circle{fill:var(--fondo);stroke:var(--tinta-3);stroke-width:1}
.ccv .paso .num text{font:500 11px var(--f-rotulo);fill:var(--tinta-2)}
.ccv .paso .activ{fill:var(--tinta-3)}
.ccv .paso.sel .flecha{stroke:var(--tinta);stroke-width:1.5}
.ccv .paso.sel .punta,.ccv .paso.sel .activ{fill:var(--tinta)}
.ccv .paso.sel .num circle{fill:var(--tinta);stroke:var(--tinta)}
.ccv .paso.sel .num text{fill:var(--fondo)}
.ccv .paso.sel .rot-2{fill:var(--tinta);font-weight:500}
.ccv .paso[data-senal] .flecha{stroke:var(--senal);stroke-width:1.5}
.ccv .paso[data-senal] .punta,.ccv .paso[data-senal] .activ{fill:var(--senal)}
.ccv .paso[data-senal] .num circle{fill:var(--senal);stroke:var(--senal)}
.ccv .paso[data-senal] .num text{fill:var(--sobre-acento)}
.ccv .paso[data-senal] .rot-2{fill:var(--senal);font-weight:500;font-size:13px}
.ccv [role="tablist"]{display:inline-flex;flex-wrap:wrap;gap:4px}
.ccv [role="tab"]{min-width:36px;padding:10px 12px;text-align:center}
.ccv .ficha{border-top:1px solid var(--filete);background:var(--fondo);padding:18px 16px;display:grid;gap:8px}
.ccv .ficha b{font:500 19px/1.25 var(--f-texto);color:var(--tinta)}
.ccv .ficha p{margin:0;color:var(--tinta-2);max-width:70ch;font-size:15px;line-height:1.55}
.ccv .ficha .marco{display:flex;flex-wrap:wrap;gap:8px 32px;margin:4px 0 0}
.ccv .ficha .marco div{display:grid;gap:2px}
.ccv .ficha .marco dt{font:500 10px/1.4 var(--f-rotulo);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3)}
.ccv .ficha .marco dd{margin:0;color:var(--tinta);font-size:15px}

/* V04 · Cronología */
.ccv .carril .rot{font-weight:500}
.ccv .tramo{fill:var(--acento-3)}
.ccv .tramo.t-2{fill:var(--acento-2)}
.ccv .tic{stroke:var(--tinta-3);stroke-width:1}
.ccv .hito .marca{fill:var(--tinta-2)}
.ccv .hito.sel .marca{fill:var(--tinta)}
.ccv .hito.sel .rot-2{fill:var(--tinta);font-weight:500}
.ccv .hito[data-senal] .marca{fill:var(--senal)}
.ccv .crono-lista{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--filete)}
.ccv .crono-lista li{background:var(--panel);padding:14px 12px;display:grid;grid-template-columns:92px minmax(0,1fr);gap:4px 12px;align-items:baseline}
.ccv .crono-lista li[data-senal]{background:var(--fondo);border-left:2px solid var(--senal);padding-left:10px}
.ccv .crono-lista .mes{font:500 10px/1.5 var(--f-rotulo);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3)}
.ccv .crono-lista li[data-senal] .mes{color:var(--senal)}
.ccv .crono-lista b{font:500 15px/1.4 var(--f-texto);color:var(--tinta)}
.ccv .crono-lista .nota{grid-column:2}
.ccv table,.ccv thead,.ccv tbody,.ccv tr,.ccv caption{border-color:var(--filete)}
