/* ====================================================================
   VALKORU · GEOEVIDENCE — SISTEMA VISUAL BASE
   Sello de trazabilidad metodológica.
   4 variantes: Seal · Compact · Full Certificate · Expandable Audit
   Todo modular y degradable: si falta un dato, oculta el bloque.
==================================================================== */

/* ============================== TOKENS ============================== */
:root{
  /* superficies */
  --ge-paper:#fbfaf6;
  --ge-paper-2:#f4f1e8;
  --ge-paper-3:#efeadb;
  /* tinta */
  --ge-ink:#0f0f17;
  --ge-ink-2:#1f1f2c;
  --ge-muted:#6a6878;
  --ge-muted-2:#93909f;
  /* líneas */
  --ge-line:#e8e3d3;
  --ge-line-2:#d9d3bf;
  /* marca */
  --ge-primary:#4B50D9;
  --ge-primary-deep:#2f2ebe;
  --ge-tint:#ecedff;
  /* acentos semánticos */
  --ge-warm:#d9633a;     /* cálido / observado */
  --ge-good:#2f7d5a;     /* confiabilidad / alta */
  --ge-warn:#c08a1f;     /* advertencia / media */
  --ge-risk:#b6385a;     /* riesgo / baja */
  /* certificado dark */
  --ge-dark:#14141d;
  --ge-dark-2:#1c1c28;
  --ge-dark-line:#2a2a3a;

  /* tipografía */
  --ge-serif:'Fraunces',Georgia,serif;
  --ge-sans:'Inter',system-ui,sans-serif;
  --ge-mono:'JetBrains Mono',ui-monospace,monospace;

  /* spacing */
  --ge-s1:4px; --ge-s2:8px; --ge-s3:12px; --ge-s4:16px;
  --ge-s5:22px; --ge-s6:28px; --ge-s7:36px; --ge-s8:48px;

  /* radios */
  --ge-r-sm:4px; --ge-r-md:7px; --ge-r-lg:10px; --ge-r-pill:999px;
}

/* ============================== PRIMITIVES ============================== */
.ge *{box-sizing:border-box}
.ge{
  font-family:var(--ge-sans);
  color:var(--ge-ink);
  line-height:1.4;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","cv11";
}
.ge .material-symbols-outlined{
  font-family:'Material Symbols Outlined';
  font-weight:normal;font-style:normal;line-height:1;
  -webkit-font-feature-settings:'liga';font-feature-settings:'liga';
  font-variation-settings:"FILL" 0,"wght" 450,"GRAD" 0,"opsz" 24;
  display:inline-block;vertical-align:middle;
}

/* etiquetas mono reutilizables */
.ge-k{
  font-family:var(--ge-mono);
  font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ge-muted-2);font-weight:500;
}
.ge-mono{font-family:var(--ge-mono);letter-spacing:.04em}

/* sello circular — emblema GeoEvidence (reutilizable en todas las variantes) */
.ge-emblem{
  display:grid;place-items:center;position:relative;flex-shrink:0;
  border-radius:50%;
  background:var(--ge-ink);color:#fff;
}
.ge-emblem::after{
  content:"";position:absolute;border-radius:50%;
  border:1px dashed var(--ge-line-2);
}
.ge-emblem .material-symbols-outlined{font-size:60%}
.ge-emblem--sm{width:18px;height:18px}
.ge-emblem--sm::after{inset:-3px}
.ge-emblem--md{width:30px;height:30px}
.ge-emblem--md::after{inset:-3px}
.ge-emblem--lg{width:44px;height:44px}
.ge-emblem--lg::after{inset:-4px}
.ge-emblem--on-dark{background:#fff;color:var(--ge-ink)}
.ge-emblem--on-dark::after{border-color:rgba(255,255,255,.4)}

/* chip de confianza — semántico por nivel */
.ge-confidence{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--ge-mono);
  font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;
  padding:4px 10px 4px 8px;border-radius:var(--ge-r-pill);
  border:1px solid var(--ge-line);background:var(--ge-paper);
}
.ge-confidence .d{width:6px;height:6px;border-radius:50%;background:var(--ge-muted-2)}
.ge-confidence[data-level="alta"]{color:var(--ge-good);border-color:rgba(47,125,90,.28)}
.ge-confidence[data-level="alta"] .d{background:var(--ge-good)}
.ge-confidence[data-level="media"]{color:var(--ge-warn);border-color:rgba(192,138,31,.3)}
.ge-confidence[data-level="media"] .d{background:var(--ge-warn)}
.ge-confidence[data-level="baja"]{color:var(--ge-risk);border-color:rgba(182,56,90,.3)}
.ge-confidence[data-level="baja"] .d{background:var(--ge-risk)}

/* estado de trazabilidad */
.ge-status{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--ge-mono);
  font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;
  color:var(--ge-ink-2);
}
.ge-status .d{width:6px;height:6px;border-radius:50%;background:var(--ge-good)}
.ge-status[data-state="parcial"] .d{background:var(--ge-warn)}
.ge-status[data-state="no-disponible"] .d{background:var(--ge-risk)}

/* source tag — fuente individual */
.ge-source{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--ge-mono);
  font-size:10px;letter-spacing:.04em;
  color:var(--ge-ink-2);font-weight:500;
  padding:3px 9px;border-radius:var(--ge-r-pill);
  border:1px solid var(--ge-line);background:var(--ge-paper);
}
.ge-source .d{width:5px;height:5px;border-radius:50%;background:var(--ge-primary)}
.ge-source[data-kind="observada"] .d{background:var(--ge-warm)}
.ge-source[data-kind="oficial"] .d{background:var(--ge-good)}
.ge-source[data-kind="modelo"] .d{background:var(--ge-primary)}
.ge-sources{display:flex;flex-wrap:wrap;gap:6px}

/* variable token */
.ge-var{
  font-family:var(--ge-mono);font-size:10.5px;letter-spacing:.02em;
  color:var(--ge-primary-deep);
  background:var(--ge-tint);
  padding:2px 7px;border-radius:var(--ge-r-sm);font-weight:500;
}
.ge-vars{display:flex;flex-wrap:wrap;gap:5px}

/* ====================================================================
   1 · GEOEVIDENCE SEAL
   sello pequeño junto a respuesta/tarjeta/informe
==================================================================== */
.ge-seal{
  display:inline-flex;align-items:center;gap:11px;
  padding:8px 14px 8px 9px;
  border:1px solid var(--ge-line);border-radius:var(--ge-r-pill);
  background:var(--ge-paper);
  max-width:100%;
  transition:border-color .15s ease;
}
.ge-seal:hover{border-color:var(--ge-ink)}
.ge-seal-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.ge-seal-title{
  font-family:var(--ge-mono);
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  color:var(--ge-ink);
  display:flex;align-items:center;gap:7px;
}
.ge-seal-title .dot{width:5px;height:5px;border-radius:50%;background:var(--ge-good)}
.ge-seal-meta{
  font-family:var(--ge-mono);
  font-size:10px;letter-spacing:.03em;color:var(--ge-muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:280px;
}
.ge-seal-link{
  margin-left:4px;
  font-family:var(--ge-mono);
  font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;
  color:var(--ge-primary);
  display:inline-flex;align-items:center;gap:4px;flex-shrink:0;
  border-left:1px solid var(--ge-line);padding-left:12px;
  transition:color .15s ease;
}
.ge-seal-link:hover{color:var(--ge-primary-deep)}
.ge-seal-link .material-symbols-outlined{font-size:13px}
/* seal compacto: solo emblema + label */
.ge-seal--mini{padding:5px 12px 5px 6px;gap:8px}
.ge-seal--mini .ge-seal-meta{display:none}

/* ====================================================================
   2 · GEOEVIDENCE COMPACT
   bloque dentro de un informe o insight
==================================================================== */
.ge-compact{
  border:1px solid var(--ge-line);
  background:var(--ge-paper);
}
.ge-compact-head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:14px 18px;
  border-bottom:1px solid var(--ge-line);
  background:var(--ge-paper-2);
}
.ge-compact-head-l{display:flex;align-items:center;gap:11px}
.ge-compact-title{display:flex;flex-direction:column;gap:2px}
.ge-compact-title .k{
  font-family:var(--ge-mono);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ge-muted-2);font-weight:500;
}
.ge-compact-title .t{
  font-family:var(--ge-serif);font-size:15px;font-weight:500;
  letter-spacing:-0.018em;color:var(--ge-ink);
}
.ge-compact-grid{
  display:grid;grid-template-columns:1fr 1fr;
}
.ge-compact-cell{
  padding:13px 18px;
  border-bottom:1px solid var(--ge-line);
  border-right:1px solid var(--ge-line);
}
.ge-compact-cell:nth-child(2n){border-right:0}
.ge-compact-cell--full{grid-column:1/-1;border-right:0}
.ge-compact-cell .k{
  font-family:var(--ge-mono);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ge-muted-2);font-weight:500;
  margin-bottom:7px;
}
.ge-compact-cell .v{
  font-family:var(--ge-serif);font-size:14px;color:var(--ge-ink-2);
  line-height:1.5;letter-spacing:-0.005em;
}
.ge-compact-cell .v strong{color:var(--ge-ink);font-weight:600}
.ge-compact-foot{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 18px;
  font-family:var(--ge-mono);font-size:10px;color:var(--ge-muted);letter-spacing:.04em;
}
.ge-compact-foot code{
  font-family:var(--ge-mono);color:var(--ge-primary-deep);
  background:var(--ge-tint);padding:1px 5px;border-radius:var(--ge-r-sm);font-weight:500;
}
.ge-compact-limit{
  font-family:var(--ge-serif);font-style:italic;font-size:12.5px;
  color:var(--ge-muted);line-height:1.5;letter-spacing:-0.005em;
}
.ge-compact-link{
  font-family:var(--ge-mono);font-size:10px;letter-spacing:.08em;
  color:var(--ge-primary);text-decoration:none;
  display:inline-flex;align-items:center;gap:4px;
  white-space:nowrap;flex-shrink:0;
  transition:color .15s ease;
}
.ge-compact-link:hover{color:var(--ge-primary-deep)}

/* ====================================================================
   3 · GEOEVIDENCE FULL CERTIFICATE
   página completa del certificado auditable (fondo dark)
==================================================================== */
.ge-cert{
  background:var(--ge-dark);color:#fff;
  border:1px solid var(--ge-dark-line);
  max-width:820px;
  position:relative;
}
.ge-cert::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--ge-primary) 0%,var(--ge-primary) 40%,transparent 40%);
}
.ge-cert-head{
  padding:28px 32px 24px;
  border-bottom:1px solid var(--ge-dark-line);
  display:flex;align-items:flex-start;justify-content:space-between;gap:24px;
}
.ge-cert-brand{display:flex;align-items:center;gap:12px}
.ge-cert-brand-txt{display:flex;flex-direction:column;gap:3px}
.ge-cert-brand-txt .k{
  font-family:var(--ge-mono);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:500;
}
.ge-cert-brand-txt .t{
  font-family:var(--ge-serif);font-size:20px;font-weight:500;
  letter-spacing:-0.022em;color:#fff;
}
.ge-cert-brand-txt .t .ac{color:#a1a4ff}
.ge-cert-head-r{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.ge-cert-id{
  font-family:var(--ge-mono);font-size:10.5px;color:rgba(255,255,255,.7);
  letter-spacing:.04em;font-weight:500;
}
.ge-cert-status-dark{
  display:inline-flex;align-items:center;gap:7px;
  padding:5px 11px 5px 9px;border:1px solid rgba(255,255,255,.18);
  border-radius:var(--ge-r-pill);
  font-family:var(--ge-mono);font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;font-weight:500;color:#fff;
}
.ge-cert-status-dark .d{width:6px;height:6px;border-radius:50%;background:#7ee0a0}
.ge-cert-status-dark[data-state="parcial"] .d{background:#e8c06a}

/* pregunta original destacada */
.ge-cert-question{
  padding:26px 32px;
  border-bottom:1px solid var(--ge-dark-line);
}
.ge-cert-question .k{
  font-family:var(--ge-mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:500;
  margin-bottom:10px;
}
.ge-cert-question .q{
  font-family:var(--ge-serif);font-size:24px;font-weight:380;
  line-height:1.12;letter-spacing:-0.026em;color:#fff;
  font-variation-settings:"SOFT" 50;text-wrap:balance;max-width:40ch;
}
.ge-cert-question .q em{font-style:italic;color:#a1a4ff;font-weight:420}

/* meta strip */
.ge-cert-meta{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-bottom:1px solid var(--ge-dark-line);
}
.ge-cert-meta-c{
  padding:16px 32px;
  border-right:1px solid var(--ge-dark-line);
}
.ge-cert-meta-c:last-child{border-right:0}
.ge-cert-meta-c .k{
  font-family:var(--ge-mono);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.45);font-weight:500;
  margin-bottom:7px;
}
.ge-cert-meta-c .v{
  font-family:var(--ge-serif);font-size:16px;font-weight:500;
  letter-spacing:-0.02em;color:#fff;line-height:1.2;
}
.ge-cert-meta-c .v .s{
  display:block;font-family:var(--ge-sans);font-size:11px;
  color:rgba(255,255,255,.5);font-weight:400;margin-top:3px;letter-spacing:0;
}

/* secciones del certificado */
.ge-cert-sec{
  padding:24px 32px;
  border-bottom:1px solid var(--ge-dark-line);
}
.ge-cert-sec:last-child{border-bottom:0}
.ge-cert-sec-k{
  font-family:var(--ge-mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:500;
  margin-bottom:14px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;
}
.ge-cert-sec-k .count{color:rgba(255,255,255,.35)}
/* fuentes en dark */
.ge-cert .ge-source{
  background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);
  color:rgba(255,255,255,.85);
}
.ge-cert .ge-var{
  background:rgba(75,80,217,.18);color:#c7c9ff;
}
/* claims auditables */
.ge-cert-claims{list-style:none;display:flex;flex-direction:column;gap:9px}
.ge-cert-claims li{
  position:relative;padding-left:29px;
  font-family:var(--ge-serif);font-size:14px;line-height:1.5;
  color:rgba(255,255,255,.88);letter-spacing:-0.005em;
}
.ge-cert-claims li::before{
  content:"✓";position:absolute;left:0;top:0;
  color:#7ee0a0;font-family:var(--ge-mono);
  font-size:12px;font-weight:600;line-height:1.7;
}
.ge-cert-claims li strong{color:#fff;font-weight:600}
/* limitaciones */
.ge-cert-limits{list-style:none;display:flex;flex-direction:column;gap:8px}
.ge-cert-limits li{
  position:relative;padding-left:29px;
  font-family:var(--ge-serif);font-size:13.5px;line-height:1.5;
  color:rgba(255,255,255,.7);letter-spacing:-0.005em;font-style:italic;
}
.ge-cert-limits li::before{
  content:"—";position:absolute;left:0;top:0;
  color:rgba(232,192,106,.9);font-family:var(--ge-mono);
  font-size:12px;font-weight:600;line-height:1.7;font-style:normal;
}
/* footer integridad */
.ge-cert-foot{
  padding:18px 32px 22px;
  background:rgba(255,255,255,.03);
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.ge-cert-foot-l{
  font-family:var(--ge-mono);font-size:10px;color:rgba(255,255,255,.55);
  letter-spacing:.04em;display:flex;flex-direction:column;gap:4px;
}
.ge-cert-foot-l code{color:#a1a4ff;background:rgba(255,255,255,.08);padding:1px 5px;border-radius:var(--ge-r-sm)}
.ge-cert-json{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 14px;border-radius:var(--ge-r-md);
  background:#fff;color:var(--ge-ink);
  font-family:var(--ge-sans);font-size:12.5px;font-weight:500;letter-spacing:-0.005em;
  transition:opacity .15s ease;
}
.ge-cert-json:hover{opacity:.88}
.ge-cert-json .material-symbols-outlined{font-size:15px}

/* ====================================================================
   4 · GEOEVIDENCE EXPANDABLE AUDIT
   bloque colapsable: resumen ejecutivo + detalle técnico desplegable
==================================================================== */
.ge-audit{
  border:1px solid var(--ge-line);
  background:var(--ge-paper);
}
.ge-audit-summary{
  display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;
  padding:16px 20px;
  cursor:pointer;
  list-style:none;
}
.ge-audit-summary::-webkit-details-marker{display:none}
.ge-audit-sum-body{min-width:0}
.ge-audit-sum-k{
  font-family:var(--ge-mono);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ge-muted-2);font-weight:500;margin-bottom:4px;
}
.ge-audit-sum-t{
  font-family:var(--ge-serif);font-size:16px;font-weight:500;
  letter-spacing:-0.02em;color:var(--ge-ink);line-height:1.25;
}
.ge-audit-sum-meta{
  display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap;
}
.ge-audit-toggle{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--ge-mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;font-weight:500;color:var(--ge-primary);
  white-space:nowrap;
}
.ge-audit-toggle .material-symbols-outlined{
  font-size:18px;transition:transform .25s ease;
}
.ge-audit[open] .ge-audit-toggle .material-symbols-outlined{transform:rotate(180deg)}
.ge-audit[open] .ge-audit-toggle .lbl-closed{display:none}
.ge-audit-toggle .lbl-open{display:none}
.ge-audit[open] .ge-audit-toggle .lbl-open{display:inline}

.ge-audit-detail{
  border-top:1px solid var(--ge-line);
  animation:ge-reveal .3s ease;
}
@keyframes ge-reveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.ge-audit-detail-sec{
  padding:16px 20px;
  border-bottom:1px solid var(--ge-line);
}
.ge-audit-detail-sec:last-child{border-bottom:0}
.ge-audit-detail-k{
  font-family:var(--ge-mono);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ge-muted-2);font-weight:500;
  margin-bottom:10px;
}
.ge-audit-detail-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;
}
.ge-audit-kv .k{
  font-family:var(--ge-mono);font-size:9px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ge-muted-2);font-weight:500;margin-bottom:4px;
}
.ge-audit-kv .v{
  font-family:var(--ge-serif);font-size:14px;color:var(--ge-ink-2);
  line-height:1.45;letter-spacing:-0.005em;
}
.ge-audit-claims{list-style:none;display:flex;flex-direction:column;gap:7px}
.ge-audit-claims li{
  position:relative;padding-left:26px;
  font-family:var(--ge-serif);font-size:13.5px;line-height:1.5;
  color:var(--ge-ink-2);letter-spacing:-0.005em;
}
.ge-audit-claims li::before{
  content:"✓";position:absolute;left:0;top:0;
  color:var(--ge-good);font-family:var(--ge-mono);
  font-size:11px;font-weight:600;line-height:1.85;
}
.ge-audit-limits{list-style:none;display:flex;flex-direction:column;gap:6px}
.ge-audit-limits li{
  position:relative;padding-left:26px;
  font-family:var(--ge-serif);font-style:italic;font-size:13px;line-height:1.5;
  color:var(--ge-muted);letter-spacing:-0.005em;
}
.ge-audit-limits li::before{
  content:"—";position:absolute;left:0;top:0;
  color:var(--ge-warn);font-family:var(--ge-mono);
  font-size:11px;font-weight:600;line-height:1.85;font-style:normal;
}
.ge-audit-foot{
  padding:12px 20px;background:var(--ge-paper-2);
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  font-family:var(--ge-mono);font-size:10px;color:var(--ge-muted);letter-spacing:.04em;
}
.ge-audit-foot code{color:var(--ge-primary-deep);background:var(--ge-tint);padding:1px 5px;border-radius:var(--ge-r-sm);font-weight:500}

/* ====================================================================
   DEGRADACIÓN ELEGANTE
   .ge-empty marca un bloque sin dato → se oculta.
   Helper para backend: añadir hidden o .ge-is-empty.
==================================================================== */
.ge-is-empty,[data-ge-empty="true"]{display:none !important}
.ge-na{
  font-family:var(--ge-mono);font-size:11px;color:var(--ge-muted-2);
  font-style:normal;letter-spacing:.04em;
}
.ge-na::before{content:"— "}

/* ============================== RESPONSIVE ============================== */
@media (max-width:680px){
  .ge-compact-grid{grid-template-columns:1fr}
  .ge-compact-cell{border-right:0}
  .ge-cert-meta{grid-template-columns:1fr}
  .ge-cert-meta-c{border-right:0;border-bottom:1px solid var(--ge-dark-line)}
  .ge-cert-head{flex-direction:column;gap:16px}
  .ge-cert-head-r{align-items:flex-start}
  .ge-audit-detail-grid{grid-template-columns:1fr}
  .ge-seal{flex-wrap:wrap}
  .ge-seal-meta{max-width:none}
}
