/* ═══════════════════════════════════════════════════════════════════
   Dominicanísimo · Design System v2.1
   Editorial corporate + youthful · fluid, modular, responsive.
   Aplica en toda la web cuando body tenga clase .has-design-v2
   ═══════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,500;0,9..144,700;0,9..144,800;0,9..144,900;1,9..144,300;1,9..144,500;1,9..144,800&family=IBM+Plex+Sans:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&family=Special+Elite&display=swap');

/* ────────────────────────────────────────────────
   TOKENS
   ──────────────────────────────────────────────── */
:root {
  /* — Palette (dark default) — */
  --bg: #07091a;
  --bg-2: #0d1130;
  --bg-3: #141845;
  --bg-elev: #1a1f55;
  --line: rgba(255,255,255,0.06);
  --line-strong: rgba(255,255,255,0.14);
  --text: #e6e8f0;
  --text-mute: #8a90b5;
  --text-strong: #f7f8fc;
  --accent: #6366f1;
  --accent-2: #06b6d4;
  --accent-glow: rgba(99,102,241,0.16);
  --rd-red: #ef4444;
  --rd-red-deep: #ce1126;
  --rd-blue: #002d62;
  --gold: #fbbf24;
  --emerald: #10b981;
  --rose: #f43f5e;
  --warn: #f59e0b;

  /* — Typography — */
  --serif: 'Fraunces', 'Times New Roman', serif;
  --sans: 'Inter', system-ui, -apple-system, sans-serif;
  --mono: 'JetBrains Mono', 'Courier New', monospace;

  /* — Fluid type scale (clamp: minPx, fluidVw, maxPx) — */
  --fs-xs: clamp(11px, 0.7vw + 0.5rem, 12px);
  --fs-sm: clamp(12px, 0.6vw + 0.65rem, 13.5px);
  --fs-base: clamp(14px, 0.5vw + 0.75rem, 15px);
  --fs-md: clamp(15px, 0.6vw + 0.85rem, 17px);
  --fs-lg: clamp(17px, 0.8vw + 0.9rem, 20px);
  --fs-xl: clamp(20px, 1vw + 1rem, 24px);
  --fs-2xl: clamp(24px, 1.6vw + 1rem, 32px);
  --fs-3xl: clamp(28px, 2vw + 1.2rem, 40px);
  --fs-4xl: clamp(34px, 3vw + 1.4rem, 54px);
  --fs-5xl: clamp(44px, 4.5vw + 1.5rem, 76px);
  --fs-6xl: clamp(56px, 6vw + 1.5rem, 96px);

  /* — Line heights — */
  --lh-tight: 1.1;
  --lh-snug: 1.25;
  --lh-normal: 1.5;
  --lh-relaxed: 1.65;

  /* — Spacing scale (8pt base, fluid) — */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-16: clamp(48px, 4vw, 64px);
  --sp-20: clamp(56px, 5.5vw, 80px);
  --sp-24: clamp(72px, 7vw, 112px);
  --sp-32: clamp(96px, 9vw, 144px);

  /* — Radius — */
  --r-xs: 4px;
  --r-sm: 6px;
  --r-md: 8px;
  --r-lg: 12px;
  --r-xl: 16px;
  --r-2xl: 24px;
  --r-full: 999px;

  /* — Shadows — */
  --sh-sm: 0 1px 2px rgba(0,0,0,0.20);
  --sh-md: 0 4px 12px rgba(0,0,0,0.18);
  --sh-lg: 0 12px 30px rgba(0,0,0,0.25);
  --sh-xl: 0 24px 50px rgba(0,0,0,0.35);
  --sh-glow: 0 0 0 4px var(--accent-glow);

  /* — Layout — */
  --container-narrow: 720px;
  --container-base: 1200px;
  --container-wide: 1400px;
  --container-pad: clamp(16px, 4vw, 32px);

  /* — Transitions — */
  --t-fast: 0.15s ease;
  --t-base: 0.25s ease;
  --t-slow: 0.4s ease;

  /* — Z-index — */
  --z-base: 1;
  --z-sticky: 40;
  --z-nav: 50;
  --z-modal: 80;
  --z-toast: 90;
}

[data-theme="light"] {
  --bg: #f6f5ef;
  --bg-2: #fdfdf9;
  --bg-3: #ffffff;
  --bg-elev: #ffffff;
  --line: rgba(15,23,42,0.08);
  --line-strong: rgba(15,23,42,0.18);
  --text: #1a1f3a;
  --text-mute: #5a6082;
  --text-strong: #0a0e1f;
  --accent: #4f46e5;
  --accent-2: #0891b2;
  --accent-glow: rgba(79,70,229,0.12);
}

/* ────────────────────────────────────────────────
   BASE
   ──────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
html, body {
  background: var(--bg) !important;
  color: var(--text);
  font-family: var(--sans);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body.has-design-v2 { font-feature-settings: 'cv11' on, 'ss01' on; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--serif);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: var(--lh-tight);
  color: var(--text-strong);
  margin: 0 0 var(--sp-3) 0;
}
h1 { font-size: var(--fs-4xl); font-weight: 800; }
h2 { font-size: var(--fs-3xl); }
h3 { font-size: var(--fs-2xl); }
h4 { font-size: var(--fs-xl); }
h5 { font-size: var(--fs-lg); }
h6 { font-size: var(--fs-md); }

p { margin: 0 0 var(--sp-3) 0; line-height: var(--lh-relaxed); }

::selection { background: var(--accent-glow); color: var(--text-strong); }

/* ────────────────────────────────────────────────
   TYPOGRAPHY UTILITIES
   ──────────────────────────────────────────────── */
.font-serif { font-family: var(--serif); }
.font-sans  { font-family: var(--sans); }
.font-mono, .mono, code, pre, kbd, samp { font-family: var(--mono); }
.tabular { font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }

.fs-xs   { font-size: var(--fs-xs); }
.fs-sm   { font-size: var(--fs-sm); }
.fs-md   { font-size: var(--fs-md); }
.fs-lg   { font-size: var(--fs-lg); }
.fs-xl   { font-size: var(--fs-xl); }
.fs-2xl  { font-size: var(--fs-2xl); }
.fs-3xl  { font-size: var(--fs-3xl); }
.fs-4xl  { font-size: var(--fs-4xl); }
.fs-5xl  { font-size: var(--fs-5xl); }

.kicker {
  display: inline-block;
  font-family: var(--mono);
  font-size: clamp(10px, 0.6vw + 0.4rem, 11.5px);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-mute);
}
.ed-num {
  font-family: var(--serif);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 0.95;
  font-variant-numeric: tabular-nums;
}

/* ────────────────────────────────────────────────
   LAYOUT — Container + grid
   ──────────────────────────────────────────────── */
.v2-container         { max-width: var(--container-base); margin: 0 auto; padding: 0 var(--container-pad); }
.v2-container-narrow  { max-width: var(--container-narrow); margin: 0 auto; padding: 0 var(--container-pad); }
.v2-container-wide    { max-width: var(--container-wide); margin: 0 auto; padding: 0 var(--container-pad); }

.section { padding: var(--sp-16) 0; }
.section-tight { padding: var(--sp-10) 0; }

.stack { display: flex; flex-direction: column; gap: var(--sp-4); }
.stack-sm { gap: var(--sp-2); }
.stack-lg { gap: var(--sp-6); }
.stack-xl { gap: var(--sp-8); }

.row { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.row-between { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; }

/* Bento grid — modular 12 cols on desktop, auto on smaller */
.bento {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--sp-4);
}
.bento > .col-span-1  { grid-column: span 1; }
.bento > .col-span-2  { grid-column: span 2; }
.bento > .col-span-3  { grid-column: span 3; }
.bento > .col-span-4  { grid-column: span 4; }
.bento > .col-span-5  { grid-column: span 5; }
.bento > .col-span-6  { grid-column: span 6; }
.bento > .col-span-7  { grid-column: span 7; }
.bento > .col-span-8  { grid-column: span 8; }
.bento > .col-span-9  { grid-column: span 9; }
.bento > .col-span-10 { grid-column: span 10; }
.bento > .col-span-11 { grid-column: span 11; }
.bento > .col-span-12 { grid-column: span 12; }

@media (max-width: 960px) {
  .bento { grid-template-columns: repeat(6, 1fr); gap: var(--sp-3); }
  .bento > [class*="col-span-"] { grid-column: span 6; }
  .bento > .col-span-1 { grid-column: span 1; }
  .bento > .col-span-2 { grid-column: span 2; }
  .bento > .col-span-3 { grid-column: span 3; }
}
@media (max-width: 600px) {
  .bento { grid-template-columns: 1fr; gap: var(--sp-3); }
  .bento > [class*="col-span-"] { grid-column: span 1; }
}

/* Auto-fit grids (cards) */
.grid-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  gap: var(--sp-4);
}
.grid-cards-sm {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: var(--sp-3);
}
.grid-cards-lg {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
  gap: var(--sp-5);
}

/* Hero split — text + sidecol */
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--sp-8);
  align-items: start;
}
@media (max-width: 900px) {
  .hero-grid { grid-template-columns: 1fr; gap: var(--sp-6); }
}

/* ────────────────────────────────────────────────
   CARD
   ──────────────────────────────────────────────── */
.card, .v2-card {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: var(--sp-5);
  transition: transform var(--t-base), border-color var(--t-base), box-shadow var(--t-base);
}
.card:hover, .v2-card:hover {
  transform: translateY(-2px);
  border-color: var(--line-strong);
  box-shadow: var(--sh-lg);
}
.card-flat { transform: none !important; box-shadow: none !important; }
.card-pad { padding: var(--sp-5); }
.card-pad-lg { padding: var(--sp-8); }
.card-pad-sm { padding: var(--sp-3); }

/* Glass */
.glass {
  background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%);
  border: 1px solid var(--line);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
[data-theme="light"] .glass {
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.5) 100%);
}

/* ────────────────────────────────────────────────
   CHIPS / BADGES
   ──────────────────────────────────────────────── */
.chip {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  padding: 3px 9px;
  border-radius: var(--r-full);
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: 1px solid var(--line-strong);
  color: var(--text);
  background: transparent;
  white-space: nowrap;
}
.chip-sm { font-size: 9.5px; padding: 2px 7px; }
.chip-emerald { color: #34d399; border-color: rgba(52,211,153,.35); background: rgba(52,211,153,.08); }
.chip-amber   { color: #fbbf24; border-color: rgba(251,191,36,.35); background: rgba(251,191,36,.08); }
.chip-rose    { color: #fb7185; border-color: rgba(251,113,133,.35); background: rgba(251,113,133,.08); }
.chip-blue    { color: #818cf8; border-color: rgba(129,140,248,.35); background: rgba(129,140,248,.08); }
.chip-red     { color: #fca5a5; border-color: rgba(252,165,165,.35); background: rgba(239,68,68,.10); }

/* ────────────────────────────────────────────────
   BUTTONS
   ──────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  padding: 10px 18px;
  border-radius: var(--r-sm);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all var(--t-base);
  border: 1px solid transparent;
  text-decoration: none;
  min-height: 38px;
  user-select: none;
}
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }

.btn-sm { padding: 6px 12px; min-height: 30px; font-size: 10px; }
.btn-lg { padding: 14px 24px; min-height: 48px; font-size: 12px; }

.btn-primary, body.has-design-v2 .btn-primary {
  background: var(--accent) !important;
  color: #fff !important;
  border-color: var(--accent) !important;
}
.btn-primary:hover, body.has-design-v2 .btn-primary:hover {
  background: #4f46e5 !important;
  border-color: #4f46e5 !important;
  box-shadow: var(--sh-glow);
}

.btn-ghost, body.has-design-v2 .btn-ghost {
  background: transparent !important;
  color: var(--text-strong) !important;
  border-color: var(--line-strong) !important;
}
.btn-ghost:hover, body.has-design-v2 .btn-ghost:hover {
  background: rgba(255,255,255,0.04) !important;
  border-color: var(--accent) !important;
}

.btn-danger, body.has-design-v2 .btn-danger {
  background: var(--rd-red) !important;
  color: #fff !important;
  border-color: var(--rd-red) !important;
}
.btn-danger:hover, body.has-design-v2 .btn-danger:hover {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
}

.btn-emerald, body.has-design-v2 .btn-emerald {
  background: var(--emerald) !important;
  color: #fff !important;
  border-color: var(--emerald) !important;
}

.btn-icon { padding: 8px; min-width: 38px; }

/* ────────────────────────────────────────────────
   INPUTS
   ──────────────────────────────────────────────── */
body.has-design-v2 input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]),
body.has-design-v2 textarea,
body.has-design-v2 select {
  background: var(--bg-3) !important;
  border: 1px solid var(--line-strong) !important;
  border-radius: var(--r-sm) !important;
  color: var(--text) !important;
  padding: 10px 14px;
  font-family: var(--sans);
  font-size: var(--fs-sm);
  outline: none;
  transition: border-color var(--t-base), box-shadow var(--t-base);
  min-height: 40px;
}
body.has-design-v2 input:focus,
body.has-design-v2 textarea:focus,
body.has-design-v2 select:focus {
  border-color: var(--accent) !important;
  box-shadow: var(--sh-glow) !important;
}

/* Tailwind .border util — fuerza var(--line) en dark mode */
body.has-design-v2 .border:not(input):not(textarea):not(select),
body.has-design-v2 .border-2 {
  border-color: var(--line-strong) !important;
}

/* Sidebar terminal-nav: border + bg legacy → tokens v2 */
body.has-design-v2 .terminal-nav {
  background: var(--bg-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r-md) !important;
  padding: 10px 8px !important;
}
body.has-design-v2 .terminal-nav__section {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-mute) !important;
  padding: 14px 10px 6px;
  font-weight: 600;
  border: none !important;
}
body.has-design-v2 .terminal-nav__link {
  color: var(--text) !important;
  background: transparent !important;
  border: none !important;
  padding: 9px 12px;
  border-radius: 6px;
  font-size: 14px;
  display: flex; align-items: center; gap: 10px;
  transition: background .15s, color .15s;
}
body.has-design-v2 .terminal-nav__link:hover {
  background: rgba(99,102,241,0.08) !important;
  color: var(--text-strong) !important;
}
body.has-design-v2 .terminal-nav__link.is-active {
  background: rgba(99,102,241,0.14) !important;
  color: var(--accent-2) !important;
  font-weight: 600;
}
body.has-design-v2 .terminal-nav__link svg { color: inherit !important; }
body.has-design-v2 .terminal-nav__link-badge {
  background: var(--bg-3) !important;
  color: var(--text-mute) !important;
  border: 1px solid var(--line) !important;
  border-radius: 999px;
  font-family: var(--mono);
  font-size: 10px;
  padding: 1px 6px;
}

/* Cualquier border-white residual */
body.has-design-v2 [class*="border-white"],
body.has-design-v2 [style*="border:1px solid white"],
body.has-design-v2 [style*="border: 1px solid white"] {
  border-color: var(--line) !important;
}

/* — Sidebar app-shell: NO borders blancos, solo right line —*/
body.has-design-v2 .app-shell__sidebar {
  background: transparent !important;
  border-top: none !important;
  border-bottom: none !important;
  border-left: none !important;
  border-right: none !important;
  outline: none !important;
  box-shadow: none !important;
}

/* — KPI ribbon: forzar dark bg, contraste correcto — */
body.has-design-v2 .kpi-ribbon {
  background: var(--bg-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  color: var(--text) !important;
}
body.has-design-v2 .kpi-ribbon__cell {
  background: transparent !important;
  border-right: 1px solid var(--line) !important;
  border-bottom: 1px solid var(--line) !important;
  color: var(--text) !important;
}
body.has-design-v2 .kpi-ribbon__cell:last-child { border-right: none !important; }
body.has-design-v2 .kpi-ribbon__label,
body.has-design-v2 .kpi-ribbon__hint { color: var(--text-mute) !important; }
body.has-design-v2 .kpi-ribbon__value { color: var(--text-strong) !important; font-family: var(--serif) !important; }

/* — Quick queries chips: dark bg, contraste — */
body.has-design-v2 .quick-queries,
body.has-design-v2 .quick-queries__list {
  background: transparent !important;
  color: var(--text) !important;
}
body.has-design-v2 .quick-queries::before { display: none !important; }
body.has-design-v2 .quick-queries__header { color: var(--text-mute) !important; }
body.has-design-v2 .quick-queries__prompt { color: var(--rd-red) !important; }
body.has-design-v2 .quick-queries__item,
body.has-design-v2 .quick-queries button {
  background: var(--bg-3) !important;
  border: 1px solid var(--line-strong) !important;
  color: var(--text) !important;
  border-radius: var(--r-sm) !important;
  padding: 10px 14px !important;
  font-family: var(--mono);
  font-size: 12px;
}
body.has-design-v2 .quick-queries__item:hover,
body.has-design-v2 .quick-queries button:hover {
  border-color: var(--accent) !important;
  color: var(--text-strong) !important;
}
body.has-design-v2 .quick-queries__item::before { color: var(--rd-red) !important; }

/* Cualquier elemento con bg blanco inline residual */
body.has-design-v2 [style*="background:#fff"]:not(input):not(textarea),
body.has-design-v2 [style*="background: #fff"]:not(input):not(textarea),
body.has-design-v2 [style*="background:white"]:not(input):not(textarea),
body.has-design-v2 [style*="background: white"]:not(input):not(textarea) {
  background: var(--bg-3) !important;
  color: var(--text) !important;
}
body.has-design-v2 textarea { min-height: 100px; resize: vertical; line-height: var(--lh-normal); }
body.has-design-v2 input::placeholder,
body.has-design-v2 textarea::placeholder { color: var(--text-mute); opacity: 0.7; }

/* Search box composite */
.search-box {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  background: var(--bg-3);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
  padding: 6px 14px;
  transition: border-color var(--t-base), box-shadow var(--t-base);
}
.search-box:focus-within { border-color: var(--accent); box-shadow: var(--sh-glow); }
.search-box input {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 6px 0 !important;
  min-height: auto !important;
}

/* ────────────────────────────────────────────────
   TABS
   ──────────────────────────────────────────────── */
.tab-list {
  display: flex;
  gap: var(--sp-1);
  border-bottom: 1px solid var(--line);
  overflow-x: auto;
  margin-bottom: var(--sp-5);
  scrollbar-width: thin;
}
.tab-btn {
  padding: 10px 16px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-mute);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all var(--t-base);
  white-space: nowrap;
}
.tab-btn:hover { color: var(--text); }
.tab-btn.active { color: var(--text-strong); border-bottom-color: var(--accent); }

/* ────────────────────────────────────────────────
   TABLES
   ──────────────────────────────────────────────── */
.ed-table, body.has-design-v2 table {
  width: 100%;
  border-collapse: collapse;
}
.ed-table th, body.has-design-v2 table th {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-mute);
  text-align: left;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: transparent;
}
.ed-table td, body.has-design-v2 table td {
  padding: 14px;
  border-bottom: 1px solid var(--line);
  font-size: var(--fs-sm);
  color: var(--text);
  vertical-align: top;
}
.ed-table tbody tr:hover td,
body.has-design-v2 table tbody tr:hover td { background: rgba(99,102,241,0.04); }

/* Responsive table wrap */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-scroll table { min-width: 600px; }

/* ────────────────────────────────────────────────
   KPI tile
   ──────────────────────────────────────────────── */
.kpi-tile {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent);
  border-radius: var(--r-md);
  padding: var(--sp-4) var(--sp-5);
  transition: transform var(--t-base), border-color var(--t-base);
}
.kpi-tile:hover { transform: translateY(-1px); border-top-color: var(--accent-2); }
.kpi-tile .num {
  font-family: var(--serif);
  font-weight: 800;
  font-size: var(--fs-2xl);
  letter-spacing: -0.03em;
  color: var(--text-strong);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.kpi-tile .lbl {
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-mute);
  margin-top: var(--sp-2);
}
.kpi-tile .hint { font-size: var(--fs-xs); color: var(--text-mute); margin-top: var(--sp-1); }

/* ────────────────────────────────────────────────
   STATUS DOTS / Live indicators
   ──────────────────────────────────────────────── */
.dot {
  width: 6px; height: 6px; border-radius: 50%;
  display: inline-block; margin-right: 6px; flex-shrink: 0;
}
.dot-green { background: var(--emerald); box-shadow: 0 0 8px rgba(16,185,129,0.5); }
.dot-red   { background: var(--rd-red); box-shadow: 0 0 8px rgba(239,68,68,0.5); }
.dot-amber { background: var(--gold); }
.live-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--emerald); display: inline-block;
  animation: domi-pulse 1.6s infinite;
}
@keyframes domi-pulse { 0%,100%{opacity:.4} 50%{opacity:1} }

/* ────────────────────────────────────────────────
   RISK BANNER
   ──────────────────────────────────────────────── */
.risk-banner {
  padding: var(--sp-8);
  border-radius: var(--r-xl);
  position: relative;
  overflow: hidden;
  color: #fff;
}
.risk-banner::before {
  content: '';
  position: absolute; inset: 0;
  opacity: 0.18;
  background: radial-gradient(ellipse at top left, white 0%, transparent 60%);
  pointer-events: none;
}
.risk-bajo, .risk-low      { background: linear-gradient(135deg, #2f6b3a 0%, #1f4d27 100%); }
.risk-medio, .risk-medium  { background: linear-gradient(135deg, #a37418 0%, #6e4d0a 100%); }
.risk-alto, .risk-high     { background: linear-gradient(135deg, #b41c22 0%, #7a1216 100%); }
.risk-critico, .risk-critical { background: linear-gradient(135deg, #8a1a20 0%, #4a0e10 100%); }
/* Risk banner refinements en dossier */
body.has-design-v2 .risk-banner {
  border-radius: 3px !important;
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  position: relative;
}
body.has-design-v2 .risk-banner::after {
  content: '';
  position: absolute; top: -1px; left: 28px;
  width: 80px; height: 6px;
  background: rgba(255,255,255,0.65);
  border-radius: 0 0 2px 2px;
}

/* ────────────────────────────────────────────────
   ORBS (hero decoration)
   ──────────────────────────────────────────────── */
.orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.55; pointer-events: none; z-index: 0; }
.orb-1 { width: clamp(280px, 35vw, 480px); aspect-ratio: 1; background: radial-gradient(circle, #6366f1 0%, transparent 70%); top: -120px; right: -80px; }
.orb-2 { width: clamp(240px, 28vw, 360px); aspect-ratio: 1; background: radial-gradient(circle, #06b6d4 0%, transparent 70%); bottom: -120px; left: -80px; opacity: 0.4; }

/* ────────────────────────────────────────────────
   NAV v2
   ──────────────────────────────────────────────── */
.v2-topnav {
  position: sticky; top: 0; z-index: var(--z-nav);
  background: linear-gradient(180deg, rgba(7,9,26,0.85) 0%, rgba(7,9,26,0.65) 100%);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
[data-theme="light"] .v2-topnav { background: linear-gradient(180deg, rgba(246,245,239,0.85) 0%, rgba(246,245,239,0.6) 100%); }
.v2-topnav-inner {
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: var(--sp-3) var(--container-pad);
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
}
.v2-brand {
  font-family: var(--serif);
  font-size: clamp(18px, 1vw + 1rem, 22px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text-strong);
  text-decoration: none;
  white-space: nowrap;
}
.v2-brand .accent { color: var(--rd-red); }
.v2-navlinks { display: none; align-items: center; gap: var(--sp-6); font-size: var(--fs-sm); color: var(--text-mute); }
@media (min-width: 768px) { .v2-navlinks { display: flex; } }
.v2-navlinks a { color: inherit; text-decoration: none; transition: color var(--t-fast); }
.v2-navlinks a:hover, .v2-navlinks a.active { color: var(--text-strong); }

/* ────────────────────────────────────────────────
   TYPOGRAPHIC OVERRIDES for legacy Tailwind classes
   (solo cuando body tiene .has-design-v2)
   ──────────────────────────────────────────────── */
body.has-design-v2 .bg-white { background: var(--bg-2) !important; color: var(--text); }
body.has-design-v2 .bg-slate-50,
body.has-design-v2 .bg-slate-100,
body.has-design-v2 .bg-gray-50,
body.has-design-v2 .bg-gray-100 { background: var(--bg-3) !important; color: var(--text); }
body.has-design-v2 .bg-slate-800,
body.has-design-v2 .bg-slate-900,
body.has-design-v2 .bg-gray-800,
body.has-design-v2 .bg-gray-900 { background: var(--bg-2) !important; }

body.has-design-v2 .text-slate-400,
body.has-design-v2 .text-slate-500,
body.has-design-v2 .text-gray-400,
body.has-design-v2 .text-gray-500 { color: var(--text-mute) !important; }
body.has-design-v2 .text-slate-600,
body.has-design-v2 .text-slate-700,
body.has-design-v2 .text-gray-600,
body.has-design-v2 .text-gray-700 { color: var(--text-mute) !important; }
body.has-design-v2 .text-slate-800,
body.has-design-v2 .text-slate-900,
body.has-design-v2 .text-gray-800,
body.has-design-v2 .text-gray-900 { color: var(--text-strong) !important; }

body.has-design-v2 .border-slate-200,
body.has-design-v2 .border-slate-300,
body.has-design-v2 .border-gray-200,
body.has-design-v2 .border-gray-300 { border-color: var(--line) !important; }
body.has-design-v2 .border-slate-700,
body.has-design-v2 .border-gray-700 { border-color: var(--line-strong) !important; }

body.has-design-v2 .shadow,
body.has-design-v2 .shadow-md,
body.has-design-v2 .shadow-lg { box-shadow: var(--sh-md) !important; }

body.has-design-v2 .rounded { border-radius: var(--r-sm) !important; }
body.has-design-v2 .rounded-md { border-radius: var(--r-md) !important; }
body.has-design-v2 .rounded-lg { border-radius: var(--r-lg) !important; }
body.has-design-v2 .rounded-xl { border-radius: var(--r-xl) !important; }

/* Legacy hero/cards reskin */
body.has-design-v2 .news-hero { background: transparent !important; }
body.has-design-v2 .kpi-ribbon__cell { border-color: var(--line) !important; }
body.has-design-v2 .kpi-ribbon__value { font-family: var(--serif); }
body.has-design-v2 .kpi-ribbon__label,
body.has-design-v2 .kpi-ribbon__hint {
  font-family: var(--mono); letter-spacing: 0.10em; text-transform: uppercase; font-size: var(--fs-xs);
}

/* Buttons legacy reskin */
body.has-design-v2 button.bg-blue-600,
body.has-design-v2 button.bg-blue-500,
body.has-design-v2 .bg-emerald-600,
body.has-design-v2 .bg-emerald-700 { background: var(--accent) !important; color: #fff !important; }
body.has-design-v2 .bg-red-600,
body.has-design-v2 .bg-rose-600 { background: var(--rd-red) !important; color: #fff !important; }

/* Code blocks — siempre dark, nunca blanco aún si tiene clases legacy */
body.has-design-v2 code, body.has-design-v2 pre,
body.has-design-v2 pre.bg-white,
body.has-design-v2 pre.bg-slate-50,
body.has-design-v2 pre.bg-slate-100,
body.has-design-v2 pre.bg-gray-50,
body.has-design-v2 pre.bg-gray-100 {
  background: var(--bg-3) !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
  padding: 2px 6px;
  border-radius: var(--r-xs);
  font-size: 12.5px;
  font-family: var(--mono);
}
body.has-design-v2 pre {
  padding: var(--sp-3);
  overflow-x: auto;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Buttons que usan combinación bg-slate-800 text-white (mismo color que cards) */
body.has-design-v2 button.bg-slate-800.text-white,
body.has-design-v2 button.bg-slate-900.text-white,
body.has-design-v2 button.bg-gray-800.text-white,
body.has-design-v2 button.bg-gray-900.text-white {
  background: var(--accent) !important;
  color: #fff !important;
  border: 1px solid var(--accent) !important;
  border-radius: var(--r-sm) !important;
}
body.has-design-v2 button.bg-slate-800.text-white:hover,
body.has-design-v2 button.bg-slate-900.text-white:hover {
  background: #4f46e5 !important;
  box-shadow: var(--sh-glow) !important;
}

/* HR cleaner */
body.has-design-v2 hr {
  border: none;
  border-top: 1px solid var(--line);
  margin: var(--sp-5) 0;
}

/* Scrollbar */
body.has-design-v2 ::-webkit-scrollbar { width: 10px; height: 10px; }
body.has-design-v2 ::-webkit-scrollbar-track { background: var(--bg); }
body.has-design-v2 ::-webkit-scrollbar-thumb { background: var(--bg-3); border-radius: 5px; border: 2px solid var(--bg); }
body.has-design-v2 ::-webkit-scrollbar-thumb:hover { background: var(--line-strong); }

/* Links */
body.has-design-v2 a:not(.btn):not(.nav-item):not(.kicker):not(.v2-brand):not(.v2-navlinks a):not(.tab-btn) {
  color: var(--accent-2);
  text-decoration: none;
  transition: color var(--t-fast);
}
body.has-design-v2 a:not(.btn):not(.nav-item):not(.kicker):not(.v2-brand):not(.v2-navlinks a):not(.tab-btn):hover {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Forms within cards: better spacing */
body.has-design-v2 form .stack > * + * { margin-top: var(--sp-3); }
body.has-design-v2 label { display: block; margin-bottom: var(--sp-2); }

/* Section divider */
.section-divider { border-top: 1px solid var(--line); margin: var(--sp-8) 0; }

/* Utility — text alignment / weight */
.text-center { text-align: center; }
.text-right  { text-align: right; }
.text-strong { color: var(--text-strong); }
.text-mute   { color: var(--text-mute); }
.text-emerald { color: var(--emerald); }
.text-rose   { color: var(--rose); }
.text-amber  { color: var(--gold); }

.fw-300 { font-weight: 300; }
.fw-400 { font-weight: 400; }
.fw-500 { font-weight: 500; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }
.fw-800 { font-weight: 800; }

/* Margin helpers (multiples of spacing scale) */
.mt-1 { margin-top: var(--sp-1); } .mt-2 { margin-top: var(--sp-2); } .mt-3 { margin-top: var(--sp-3); }
.mt-4 { margin-top: var(--sp-4); } .mt-5 { margin-top: var(--sp-5); } .mt-6 { margin-top: var(--sp-6); }
.mt-8 { margin-top: var(--sp-8); }
.mb-1 { margin-bottom: var(--sp-1); } .mb-2 { margin-bottom: var(--sp-2); } .mb-3 { margin-bottom: var(--sp-3); }
.mb-4 { margin-bottom: var(--sp-4); } .mb-6 { margin-bottom: var(--sp-6); } .mb-8 { margin-bottom: var(--sp-8); }
.py-4 { padding-top: var(--sp-4); padding-bottom: var(--sp-4); }
.py-6 { padding-top: var(--sp-6); padding-bottom: var(--sp-6); }
.py-8 { padding-top: var(--sp-8); padding-bottom: var(--sp-8); }
.py-12 { padding-top: var(--sp-12); padding-bottom: var(--sp-12); }
.py-16 { padding-top: var(--sp-16); padding-bottom: var(--sp-16); }

/* Visibility */
.hidden-sm { display: none; }
.hidden-md { display: initial; }
@media (min-width: 600px) { .hidden-sm { display: initial; } }
@media (max-width: 768px) { .hidden-md { display: none; } }

/* Animations — reduced motion respect */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
}

/* ────────────────────────────────────────────────
   RESPONSIVE — mobile-first hardening
   ──────────────────────────────────────────────── */
/* Force dark theme regardless of OS preference */
html { color-scheme: dark; }
html, body { color: #e6e8f0; }

/* Smaller screens: tighter spacing */
@media (max-width: 768px) {
  body { font-size: 14px; }
  .v2-container, .v2-container-wide, .v2-container-narrow { padding: 0 16px; }
  .section { padding: var(--sp-10) 0; }
  h1 { font-size: clamp(28px, 7vw, 40px); }
  h2 { font-size: clamp(22px, 5.5vw, 30px); }
  h3 { font-size: clamp(18px, 4.5vw, 22px); }
  .news-hero__title { font-size: clamp(32px, 9vw, 56px) !important; }
  .v2-topnav-inner { padding: 10px 16px; gap: 8px; }
  .kpi-tile { padding: 12px 14px; }
  .kpi-tile .num { font-size: 22px; }
  .card, .v2-card { padding: 16px; }
  .btn { padding: 8px 14px; }
}

/* Mobile sidebar: hide by default, replace by top nav */
@media (max-width: 900px) {
  .app-shell { flex-direction: column !important; }
  .app-shell__sidebar {
    width: 100% !important;
    position: static !important;
    border-right: none !important;
    border-bottom: 1px solid var(--line) !important;
    margin-bottom: var(--sp-4);
  }
  .terminal-nav { position: static !important; max-height: none !important; }
  .news-hero__grid { gap: 24px !important; }
  .bento { grid-template-columns: 1fr !important; gap: 12px; }
  .bento > [class*="col-span-"] { grid-column: span 1 !important; }
}

/* iOS Safari address bar compensation */
@supports (-webkit-touch-callout: none) {
  .v2-topnav { position: -webkit-sticky; }
}

/* Tablets */
@media (min-width: 769px) and (max-width: 1024px) {
  .grid-cards { grid-template-columns: repeat(2, 1fr) !important; }
  .kpi-ribbon { grid-template-columns: repeat(3, 1fr) !important; }
}

/* High DPI fonts */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  body { -webkit-font-smoothing: subpixel-antialiased; }
}

/* Print: limpio para PDF */
@media print {
  .v2-topnav, .btn, nav { display: none !important; }
  body { background: white !important; color: black !important; }
  .card, .v2-card { box-shadow: none !important; border: 1px solid #ddd !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   DOSSIER OVERLAY · sistema editorial dominicano
   Aplica a todo body[data-theme="dark"] o .has-design-v2 — overrides
   visuales sobre la base v2 con paleta papel/tinta + responsive.
   ═══════════════════════════════════════════════════════════════════ */

/* Tokens dossier (anexados sin romper los existentes) */
:root {
  --ink:        #0a0c14;
  --paper:      #11141d;
  --paper-2:    #181c28;
  --paper-3:    #1e2333;
  --stamp:      #c1272d;
  --stamp-deep: #8a1a20;
  --stamp-glow: rgba(193,39,45,0.22);
  --gold-paper: #c89b3c;
  --green-mil:  #6b9e6f;
  --warm-light: #d6d3c4;
  --warm-mute:  #8c8775;
  --typer-font: 'Special Elite', 'Courier New', monospace;
  --plex-font:  'IBM Plex Sans', 'Inter', system-ui, sans-serif;
}

/* Override dark theme para usar paleta papel/tinta. Aplica solo si el
   <body> tiene la clase has-design-v2 — para no romper páginas legacy. */
body.has-design-v2[data-theme="dark"],
body.has-design-v2:not([data-theme="light"]) {
  --bg:          var(--ink);
  --bg-2:        var(--paper);
  --bg-3:        var(--paper-2);
  --bg-elev:     var(--paper-3);
  --line:        rgba(232,224,196,0.07);
  --line-strong: rgba(232,224,196,0.18);
  --text:        var(--warm-light);
  --text-mute:   var(--warm-mute);
  --text-strong: #f4f0dd;
  --rd-red:      var(--stamp);
  --rd-red-deep: var(--stamp-deep);
  --gold:        var(--gold-paper);
  --emerald:     var(--green-mil);
  --accent:      var(--stamp);
  --accent-2:    var(--gold-paper);
  --accent-glow: var(--stamp-glow);
}

/* GRAIN — overlay de papel/película en todo el body has-design-v2 */
body.has-design-v2::before {
  content: '';
  position: fixed; inset: 0; pointer-events: none;
  z-index: 1;
  opacity: 0.04;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}
/* Asegurar que el contenido quede sobre el grain */
body.has-design-v2 > *:not(.toast-stack):not(.modal):not(.drawer):not(.ds-modal-backdrop):not(#toast-stack):not([class*="modal-backdrop"]) {
  position: relative; z-index: 2;
}
/* Modals siempre fixed sobre viewport, ignorando el rule anterior */
body.has-design-v2 .ds-modal-backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9999 !important;
}
body.has-design-v2 header,
body.has-design-v2 main,
body.has-design-v2 section,
body.has-design-v2 article,
body.has-design-v2 nav,
body.has-design-v2 footer { z-index: 2; }

/* Selección — tinta roja */
body.has-design-v2 ::selection { background: var(--stamp); color: #f7e9c8; }

/* Tipografía global has-design-v2 — Plex Sans para body + Fraunces editorial */
body.has-design-v2 { font-family: var(--plex-font); }
body.has-design-v2 .font-serif,
body.has-design-v2 .v2-serif,
body.has-design-v2 h1, body.has-design-v2 h2, body.has-design-v2 h3 {
  font-family: var(--font-display, 'Fraunces'), 'Times New Roman', serif;
  font-variation-settings: 'opsz' 144;
}
body.has-design-v2 .font-typer { font-family: var(--typer-font); letter-spacing: 0.02em; }
body.has-design-v2 .italic-display {
  font-style: italic; font-weight: 500;
  font-variation-settings: 'opsz' 144;
}

/* KICKER (overline tipográfico mono) — uniforme global */
body.has-design-v2 .kicker {
  font-family: var(--mono, 'JetBrains Mono'), monospace;
  font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--text-mute);
}

/* KICKER-STAMP — chip rojo tipo sello */
body.has-design-v2 .kicker-stamp {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 4px 12px;
  font-family: var(--mono, 'JetBrains Mono'), monospace;
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--stamp);
  border: 1.5px solid var(--stamp);
  border-radius: 2px;
  background: rgba(193,39,45,0.06);
  text-shadow: 0 0 1px rgba(193,39,45,0.4);
}

/* CHIPS — base + variantes papel */
body.has-design-v2 .chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 8px; border-radius: 2px;
  font-family: var(--mono, 'JetBrains Mono'), monospace;
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  border: 1px solid var(--line-strong);
  background: rgba(255,255,255,0.02);
}
body.has-design-v2 .chip-stamp   { color: var(--stamp);    border-color: rgba(193,39,45,0.45);  background: rgba(193,39,45,0.07); }
body.has-design-v2 .chip-gold    { color: var(--gold-paper); border-color: rgba(200,155,60,0.45); background: rgba(200,155,60,0.07); }
body.has-design-v2 .chip-emerald { color: #93c994;          border-color: rgba(107,158,111,0.5); background: rgba(107,158,111,0.07); }
body.has-design-v2 .chip-blue    { color: #7c9eb8;          border-color: rgba(124,158,184,0.4); background: rgba(124,158,184,0.07); }
body.has-design-v2 .chip-rose    { color: #d97a86;          border-color: rgba(193,39,45,0.45);  background: rgba(193,39,45,0.07); }
body.has-design-v2 .chip-amber   { color: var(--gold-paper); border-color: rgba(200,155,60,0.45); background: rgba(200,155,60,0.07); }

/* BTN-STAMP — botón principal con look de sello rojo */
body.has-design-v2 .btn-stamp,
body.has-design-v2 .btn.btn-stamp {
  background: var(--stamp); color: #f7e9c8;
  border: 1.5px solid var(--stamp); border-radius: 2px;
  box-shadow: 0 1px 0 rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.08);
  font-family: var(--mono, 'JetBrains Mono'), monospace;
  font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  font-size: 11px; padding: 11px 18px;
  display: inline-flex; align-items: center; gap: 9px;
  cursor: pointer; transition: transform .15s, background .2s;
}
body.has-design-v2 .btn-stamp:hover { background: var(--stamp-deep); transform: translateY(-1px); }
body.has-design-v2 .btn-stamp.btn-sm { padding: 7px 12px; font-size: 10px; }

/* FOLDER · CARD — sensación carpeta */
body.has-design-v2 .folder {
  background:
    linear-gradient(180deg, rgba(232,224,196,0.02), rgba(232,224,196,0)),
    var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 3px;
  position: relative;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
body.has-design-v2 .folder:hover {
  transform: translateY(-2px);
  border-color: var(--line-strong);
  box-shadow: 0 18px 40px rgba(0,0,0,.4);
}
body.has-design-v2 .folder-tab::before {
  content: ''; position: absolute; top: -1px; left: 18px;
  width: 64px; height: 6px;
  background: var(--stamp); border-radius: 2px 2px 0 0;
}

/* ENVELOPE — caso/dossier con franja diagonal y sello CONFIDENCIAL */
body.has-design-v2 .envelope {
  background:
    linear-gradient(135deg, rgba(193,39,45,0.06) 0%, transparent 50%),
    var(--paper-2);
  border: 1.5px solid var(--line-strong);
  border-radius: 3px;
  position: relative;
  overflow: hidden;
}
body.has-design-v2 .envelope::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 6px;
  background: repeating-linear-gradient(
    45deg, var(--stamp) 0, var(--stamp) 10px,
    var(--paper) 10px, var(--paper) 20px
  );
}
body.has-design-v2 .envelope-confidential::after {
  content: 'CONFIDENCIAL';
  position: absolute; top: 20px; right: -38px;
  transform: rotate(45deg);
  font-family: var(--mono, 'JetBrains Mono'), monospace;
  font-size: 9px; font-weight: 700;
  letter-spacing: 0.25em; color: var(--stamp);
  background: rgba(193,39,45,0.10);
  border-top: 1px solid var(--stamp); border-bottom: 1px solid var(--stamp);
  padding: 3px 38px; opacity: 0.55;
}

/* SELLO redondo */
body.has-design-v2 .seal {
  --r: 11rem;
  width: var(--r); height: var(--r);
  border: 3px double var(--stamp);
  border-radius: 50%;
  color: var(--stamp);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--mono, 'JetBrains Mono'), monospace;
  font-weight: 700; font-size: 12px;
  letter-spacing: 0.25em; text-transform: uppercase;
  text-align: center;
  position: relative;
  transform: rotate(-8deg);
  opacity: 0.9;
  background: radial-gradient(circle at 30% 30%, rgba(193,39,45,0.08), transparent 60%);
}

/* LIVE TICKER */
body.has-design-v2 .ticker {
  overflow: hidden; white-space: nowrap;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(193,39,45,0.04);
}
body.has-design-v2 .ticker-track {
  display: inline-block; padding: 10px 0;
  animation: dossier-ticker 60s linear infinite;
  font-family: var(--mono, 'JetBrains Mono'), monospace;
  font-size: 11px; letter-spacing: 0.08em;
  color: var(--text);
}
body.has-design-v2 .ticker-track span { margin: 0 28px; }
body.has-design-v2 .ticker-track .pulse { color: var(--stamp); font-weight: 700; }
@keyframes dossier-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* LIVE DOT (rojo dossier) */
body.has-design-v2 .live-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--stamp);
  animation: dossier-pulse 1.6s infinite;
  box-shadow: 0 0 8px rgba(193,39,45,0.7);
}
@keyframes dossier-pulse {
  0%, 100% { opacity: 0.35; transform: scale(1); }
  50%      { opacity: 1;    transform: scale(1.2); }
}

/* MARCADOR — subrayado serif */
body.has-design-v2 .marker {
  background: linear-gradient(180deg, transparent 60%, rgba(193,39,45,0.35) 60%, rgba(193,39,45,0.35) 92%, transparent 92%);
  padding: 0 4px;
}

/* STRIPES diagonales — fondo decorativo */
body.has-design-v2 .stripes-bg {
  background-image: repeating-linear-gradient(
    135deg, rgba(193,39,45,0.04) 0,
    rgba(193,39,45,0.04) 8px,
    transparent 8px, transparent 16px
  );
}

/* SEARCH BAR dossier */
body.has-design-v2 .search-bar {
  background: var(--paper-3);
  border: 1.5px solid var(--line-strong);
  border-radius: 3px;
  transition: border-color .2s, box-shadow .2s;
}
body.has-design-v2 .search-bar:focus-within {
  border-color: var(--stamp);
  box-shadow: 0 0 0 4px var(--stamp-glow);
}

/* APP-SPECIFIC: headerbar dossier — el sitio interno ya tiene .site-header */
body.has-design-v2 .site-header {
  background: rgba(10,12,20,0.88);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-bottom: 1px solid var(--line);
  /* Asegurar que header queda sobre el contenido y permite que el dropdown
     de sugerencias se vea — no overflow:hidden, z-index alto. */
  z-index: 80 !important;
  overflow: visible !important;
}
body.has-design-v2 .site-header__inner { overflow: visible !important; }
body.has-design-v2 #global-search-wrap { overflow: visible !important; }

/* Dropdown de sugerencias — z-index muy alto + display correcto al activarse */
body.has-design-v2 #global-suggest {
  position: absolute !important;
  left: 0; right: 0; top: 100%;
  margin-top: 6px;
  display: block;
  z-index: 9999 !important;
  background: var(--paper-2) !important;
  border: 1.5px solid var(--line-strong) !important;
  border-radius: 3px !important;
  box-shadow: 0 24px 60px rgba(0,0,0,0.55), 0 8px 20px rgba(0,0,0,0.4) !important;
  font-family: var(--plex-font) !important;
  max-height: 70vh;
  overflow-y: auto;
}
body.has-design-v2 #global-suggest.hidden,
body.has-design-v2 #global-suggest[class*="hidden"] { display: none !important; }
body.has-design-v2 #global-suggest:not(.hidden) { display: block !important; }
body.has-design-v2 #global-suggest a,
body.has-design-v2 #global-suggest .suggest-item {
  display: block;
  padding: 10px 14px;
  color: var(--text) !important;
  text-decoration: none;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  transition: background .15s;
}
body.has-design-v2 #global-suggest a:hover,
body.has-design-v2 #global-suggest .suggest-item:hover,
body.has-design-v2 #global-suggest a:focus {
  background: rgba(193,39,45,0.08) !important;
  color: var(--stamp) !important;
}
body.has-design-v2 #global-suggest a:last-child,
body.has-design-v2 #global-suggest .suggest-item:last-child { border-bottom: 0; }
body.has-design-v2 .site-brand__flag {
  letter-spacing: 0.18em !important;
}

/* SIDEBAR / nav-link estado activo */
body.has-design-v2 .terminal-nav__link[aria-current="page"],
body.has-design-v2 .terminal-nav__link.active,
body.has-design-v2 .nav-link.active {
  color: var(--stamp) !important;
  border-left: 2px solid var(--stamp) !important;
  background: rgba(193,39,45,0.04) !important;
}

/* SECTION KICKER GRANDE (h2 con underline rojo) */
body.has-design-v2 .section-title {
  font-family: var(--font-display, 'Fraunces'), serif;
  font-weight: 900;
  font-size: clamp(28px, 4vw, 48px);
  letter-spacing: -0.035em;
  line-height: 1.05;
  color: var(--text-strong);
  font-variation-settings: 'opsz' 144;
}
body.has-design-v2 .section-title .italic-display {
  color: var(--stamp);
}

/* Hardening responsive: nada de scroll horizontal */
body.has-design-v2 { overflow-x: hidden; }
html { overflow-x: hidden; }

/* RESPONSIVE — Mobile first refinements */
@media (max-width: 640px) {
  body.has-design-v2 .seal { --r: 7.5rem; font-size: 10px; }
  body.has-design-v2 .ticker-track { font-size: 10px; }
  body.has-design-v2 .ticker-track span { margin: 0 16px; }
  body.has-design-v2 .kicker-stamp { padding: 3px 9px; font-size: 9px; letter-spacing: 0.2em; }
  body.has-design-v2 .btn-stamp { padding: 10px 14px; font-size: 10px; letter-spacing: 0.08em; }
  body.has-design-v2 .envelope-confidential::after {
    top: 14px; right: -42px; font-size: 8px; padding: 2px 38px;
  }
  body.has-design-v2 .section-title { font-size: clamp(26px, 8vw, 36px); }
  /* Brand mobile: compactar issue badge */
  body.has-design-v2 .issue { display: none !important; }
  /* Inputs táctiles min-height para iOS */
  body.has-design-v2 input,
  body.has-design-v2 textarea,
  body.has-design-v2 select,
  body.has-design-v2 button { font-size: 16px; }
  body.has-design-v2 input.font-mono { font-size: 14px; }
}

@media (max-width: 480px) {
  body.has-design-v2 .seal { --r: 6.5rem; }
  body.has-design-v2 .folder { border-radius: 2px; }
  body.has-design-v2 .chip { font-size: 9px; padding: 2px 7px; }
}

/* Tablets — ajuste de grids dossier */
@media (min-width: 769px) and (max-width: 1024px) {
  body.has-design-v2 .grid-cards-3 { grid-template-columns: repeat(2, 1fr) !important; }
}

/* Touch — hover off on touch devices */
@media (hover: none) {
  body.has-design-v2 .folder:hover { transform: none; box-shadow: none; }
  body.has-design-v2 .btn-stamp:hover { transform: none; }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  body.has-design-v2 .ticker-track,
  body.has-design-v2 .live-dot { animation: none !important; }
  body.has-design-v2 * { transition: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   SEARCH CONSOLES · cada panel de búsqueda como una "consola dossier"
   ═══════════════════════════════════════════════════════════════════ */

/* Header card de cada panel — con border-left-4 ya existente, lo rediseñamos */
body.has-design-v2 .panel > .card.border-l-4,
body.has-design-v2 .panel > .card[class*="border-l-4"] {
  background:
    linear-gradient(180deg, rgba(232,224,196,0.02), rgba(232,224,196,0)),
    var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-left: 4px solid var(--stamp) !important;
  border-radius: 3px !important;
  padding: clamp(20px, 2.5vw, 32px) !important;
  position: relative;
  overflow: hidden;
}
body.has-design-v2 .panel > .card.border-l-4::before,
body.has-design-v2 .panel > .card[class*="border-l-4"]::before {
  content: '';
  position: absolute; top: -1px; left: 22px;
  width: 64px; height: 5px;
  background: var(--stamp);
  border-radius: 0 0 2px 2px;
  opacity: 0.7;
}
/* Heading h2 del header panel */
body.has-design-v2 .panel > .card.border-l-4 h2,
body.has-design-v2 .panel > .card[class*="border-l-4"] h2 {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 900 !important;
  font-size: clamp(22px, 2.4vw, 32px) !important;
  letter-spacing: -0.025em !important;
  line-height: 1.1 !important;
  color: var(--text-strong) !important;
  font-variation-settings: 'opsz' 144 !important;
  margin-top: 6px;
}
body.has-design-v2 .panel > .card.border-l-4 p,
body.has-design-v2 .panel > .card[class*="border-l-4"] p {
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  color: var(--text-mute) !important;
  margin-top: 8px;
  max-width: 720px;
}

/* Console card — segunda card.card-pad dentro del panel */
body.has-design-v2 .panel > .card:not(.border-l-4):not([class*="border-l-4"]) {
  background: var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 3px !important;
  padding: clamp(18px, 2vw, 28px) !important;
}

/* Inputs dentro de paneles — estilo dossier */
body.has-design-v2 .panel input[type="text"],
body.has-design-v2 .panel input[type="search"],
body.has-design-v2 .panel input[type="number"],
body.has-design-v2 .panel input:not([type]),
body.has-design-v2 .panel select,
body.has-design-v2 .panel textarea {
  background: var(--paper-3) !important;
  border: 1.5px solid var(--line-strong) !important;
  border-radius: 3px !important;
  color: var(--text-strong) !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 14px !important;
  padding: 11px 14px !important;
  transition: border-color .2s, box-shadow .2s;
}
body.has-design-v2 .panel input:focus,
body.has-design-v2 .panel select:focus,
body.has-design-v2 .panel textarea:focus {
  outline: none !important;
  border-color: var(--stamp) !important;
  box-shadow: 0 0 0 4px var(--stamp-glow) !important;
}

/* Labels y kickers dentro de paneles */
body.has-design-v2 .panel label.block.text-xs,
body.has-design-v2 .panel .text-xs.text-slate-500 {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
  margin-bottom: 8px !important;
}

/* Hint text */
body.has-design-v2 .panel .text-xs.text-slate-400,
body.has-design-v2 .panel .text-xs.text-slate-600 {
  color: var(--text-mute) !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
}

/* "Probar con:" / quick examples */
body.has-design-v2 .panel button.text-blue-600.underline,
body.has-design-v2 .panel a.text-blue-600.underline {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 11.5px !important;
  color: var(--gold-paper) !important;
  text-decoration: none !important;
  border-bottom: 1px dashed var(--gold-paper) !important;
  padding-bottom: 1px;
  transition: color .2s;
}
body.has-design-v2 .panel button.text-blue-600.underline:hover,
body.has-design-v2 .panel a.text-blue-600.underline:hover {
  color: var(--stamp) !important;
  border-bottom-color: var(--stamp) !important;
}

/* Buttons en search panels — unificar a btn-stamp */
body.has-design-v2 .panel button.bg-blue-700,
body.has-design-v2 .panel button.bg-blue-600,
body.has-design-v2 .panel button.bg-emerald-700,
body.has-design-v2 .panel button.bg-emerald-600,
body.has-design-v2 .panel button.bg-cyan-700,
body.has-design-v2 .panel button.bg-cyan-800,
body.has-design-v2 .panel button.bg-indigo-600,
body.has-design-v2 .panel button.bg-indigo-700,
body.has-design-v2 .panel button.bg-teal-700,
body.has-design-v2 .panel button.bg-teal-800,
body.has-design-v2 .panel button.bg-purple-600,
body.has-design-v2 .panel button.bg-purple-700,
body.has-design-v2 .panel button.bg-amber-500,
body.has-design-v2 .panel button.bg-amber-600 {
  background: var(--stamp) !important;
  color: #f7e9c8 !important;
  border: 1.5px solid var(--stamp) !important;
  border-radius: 3px !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-weight: 700 !important;
  font-size: 11.5px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 11px 18px !important;
  cursor: pointer;
  transition: transform .15s, background .2s;
  box-shadow: 0 1px 0 rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.08);
}
body.has-design-v2 .panel button.bg-blue-700:hover,
body.has-design-v2 .panel button.bg-emerald-700:hover,
body.has-design-v2 .panel button.bg-cyan-700:hover,
body.has-design-v2 .panel button.bg-indigo-600:hover,
body.has-design-v2 .panel button.bg-teal-700:hover,
body.has-design-v2 .panel button.bg-amber-500:hover {
  background: var(--stamp-deep) !important;
  transform: translateY(-1px);
}

/* Secondary buttons (PDF, watchlist, etc.) → ghost dossier */
body.has-design-v2 .panel button.bg-slate-800,
body.has-design-v2 .panel button.bg-slate-600,
body.has-design-v2 .panel button.bg-slate-700 {
  background: var(--paper-3) !important;
  color: var(--text) !important;
  border: 1.5px solid var(--line-strong) !important;
  border-radius: 3px !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 10px 14px !important;
  transition: border-color .2s, color .2s;
}
body.has-design-v2 .panel button.bg-slate-800:hover { border-color: var(--stamp) !important; color: var(--stamp) !important; }

/* Disabled buttons */
body.has-design-v2 .panel button:disabled,
body.has-design-v2 .panel button[disabled] {
  opacity: 0.35 !important;
  cursor: not-allowed !important;
  filter: grayscale(60%);
}

/* Persona search mode tabs (psm-*-btn) */
body.has-design-v2 .panel button[id^="psm-"] {
  background: var(--paper-3) !important;
  color: var(--text-mute) !important;
  border: 1.5px solid var(--line-strong) !important;
  border-radius: 3px !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 9px 14px !important;
  transition: all .2s;
}
body.has-design-v2 .panel button[id^="psm-"].bg-cyan-700 {
  background: var(--stamp) !important;
  color: #f7e9c8 !important;
  border-color: var(--stamp) !important;
}

/* Dossier cards en home — refrescar look */
body.has-design-v2 .dossier-card {
  background: var(--paper-2) !important;
  color: var(--text) !important;
  text-align: left;
  padding: clamp(22px, 2.5vw, 32px) !important;
  cursor: pointer;
  transition: background .25s ease, transform .25s ease;
  position: relative;
}
body.has-design-v2 .dossier-card::after {
  content: attr(data-num);
  position: absolute; top: 14px; right: 18px;
  font-family: var(--mono); font-size: 10px; font-weight: 700;
  letter-spacing: 0.2em; color: var(--text-mute);
}
body.has-design-v2 .dossier-card:hover {
  background: var(--paper-3) !important;
  transform: translateY(-2px);
}
body.has-design-v2 .dossier-card__kicker {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--stamp) !important;
  margin-bottom: 12px !important;
}
body.has-design-v2 .dossier-card__title {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 800 !important;
  font-size: clamp(18px, 1.6vw, 22px) !important;
  letter-spacing: -0.025em !important;
  line-height: 1.2 !important;
  color: var(--text-strong) !important;
  margin-bottom: 10px;
  font-variation-settings: 'opsz' 144;
}
body.has-design-v2 .dossier-card__desc {
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: var(--text-mute) !important;
  margin-bottom: 18px;
}
body.has-design-v2 .dossier-card__cta {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--stamp) !important;
  border-bottom: 1.5px solid var(--stamp);
  padding-bottom: 2px;
}
body.has-design-v2 .dossier-card__cta::after { content: '→'; transition: transform .2s; }
body.has-design-v2 .dossier-card:hover .dossier-card__cta::after { transform: translateX(3px); }

/* Quick queries — terminal style */
body.has-design-v2 .quick-queries {
  background: var(--paper-2) !important;
  border: 1px solid var(--line);
  border-radius: 3px;
  padding: 16px 20px;
}
body.has-design-v2 .quick-queries__header {
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--text-mute);
  margin-bottom: 12px;
}
body.has-design-v2 .quick-queries__prompt { color: var(--stamp) !important; font-weight: 700; }
body.has-design-v2 .quick-queries__list {
  display: flex; flex-wrap: wrap; gap: 8px;
}
body.has-design-v2 .quick-queries__item {
  background: var(--paper-3) !important;
  border: 1px solid var(--line-strong) !important;
  border-radius: 3px !important;
  color: var(--text) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  padding: 7px 12px !important;
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
body.has-design-v2 .quick-queries__item:hover {
  border-color: var(--stamp) !important;
  color: var(--stamp) !important;
}
body.has-design-v2 .quick-queries__item.is-flag {
  color: var(--stamp) !important;
  border-color: rgba(193,39,45,0.4) !important;
  background: rgba(193,39,45,0.05) !important;
}

/* News hero search refresh */
body.has-design-v2 .news-hero__search {
  background: var(--paper-3) !important;
  border: 1.5px solid var(--line-strong) !important;
  border-radius: 3px !important;
  transition: border-color .2s, box-shadow .2s;
}
body.has-design-v2 .news-hero__search:focus-within {
  border-color: var(--stamp) !important;
  box-shadow: 0 0 0 4px var(--stamp-glow) !important;
}
body.has-design-v2 .news-hero__search input {
  background: transparent !important;
  border: 0 !important;
  color: var(--text-strong) !important;
  font-family: var(--typer-font) !important;
  font-size: 16px !important;
}
body.has-design-v2 .news-hero__search input::placeholder { color: var(--text-mute) !important; }
body.has-design-v2 .news-hero__search-btn {
  background: var(--stamp) !important;
  color: #f7e9c8 !important;
  border: 1.5px solid var(--stamp) !important;
  border-radius: 3px !important;
  font-family: var(--mono) !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 11px 18px !important;
  cursor: pointer;
  transition: background .2s, transform .15s;
}
body.has-design-v2 .news-hero__search-btn:hover { background: var(--stamp-deep) !important; transform: translateY(-1px); }
body.has-design-v2 .news-hero__search-icon { color: var(--stamp); }

/* News hero side col — caso del día como envelope */
body.has-design-v2 .news-hero__sidecol {
  background:
    linear-gradient(135deg, rgba(193,39,45,0.06) 0%, transparent 50%),
    var(--paper-2) !important;
  border: 1.5px solid var(--line-strong) !important;
  border-radius: 3px !important;
  position: relative;
  overflow: hidden;
  padding: 20px !important;
}
body.has-design-v2 .news-hero__sidecol::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 5px;
  background: repeating-linear-gradient(
    45deg, var(--stamp) 0, var(--stamp) 10px,
    var(--paper) 10px, var(--paper) 20px
  );
}
body.has-design-v2 .news-hero__sidecol-label {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  color: var(--stamp) !important;
  padding-top: 10px;
}
body.has-design-v2 .news-hero__quote {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 800 !important;
  font-size: clamp(20px, 2vw, 26px) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
  color: var(--text-strong) !important;
  margin-top: 10px;
  font-variation-settings: 'opsz' 144;
}
body.has-design-v2 .news-hero__cite {
  font-size: 13px !important;
  color: var(--text-mute) !important;
  line-height: 1.55 !important;
  margin-top: 8px;
}

/* KPI ribbon — celdas como tiles dossier */
body.has-design-v2 .kpi-ribbon {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
  gap: 1px !important;
  background: var(--line-strong) !important;
  border: 1px solid var(--line-strong) !important;
  border-radius: 3px;
  overflow: hidden;
}
body.has-design-v2 .kpi-ribbon__cell {
  background: var(--paper-2) !important;
  padding: 16px 18px !important;
  position: relative;
}
body.has-design-v2 .kpi-ribbon__cell.is-warning { background: linear-gradient(180deg, rgba(200,155,60,0.04), var(--paper-2)) !important; }
body.has-design-v2 .kpi-ribbon__cell.is-danger  { background: linear-gradient(180deg, rgba(193,39,45,0.06), var(--paper-2)) !important; }
body.has-design-v2 .kpi-ribbon__label {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
  margin-bottom: 6px;
}
body.has-design-v2 .kpi-ribbon__value {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 700 !important;
  font-size: clamp(24px, 2.4vw, 34px) !important;
  letter-spacing: -0.04em !important;
  color: var(--text-strong) !important;
  line-height: 1 !important;
  font-variation-settings: 'opsz' 144;
}
body.has-design-v2 .kpi-ribbon__cell.is-danger .kpi-ribbon__value { color: var(--stamp) !important; }
body.has-design-v2 .kpi-ribbon__cell.is-warning .kpi-ribbon__value { color: var(--gold-paper) !important; }
body.has-design-v2 .kpi-ribbon__hint {
  font-size: 11px !important;
  color: var(--text-mute) !important;
  margin-top: 4px;
}

/* Section head — § num + title + rule */
body.has-design-v2 .section-head {
  display: flex; align-items: center; gap: 14px;
  margin: 36px 0 18px;
}
body.has-design-v2 .section-head__num {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--stamp) !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
}
body.has-design-v2 .section-head__title {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 800 !important;
  font-size: clamp(18px, 1.8vw, 22px) !important;
  letter-spacing: -0.02em !important;
  color: var(--text-strong) !important;
  font-variation-settings: 'opsz' 144;
}
body.has-design-v2 .section-head__rule {
  flex: 1; height: 1px;
  background: linear-gradient(90deg, var(--line-strong), transparent);
}

/* Editorial cards (For Whom, Pipeline) */
body.has-design-v2 .editorial-card {
  background: var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 3px !important;
  padding: clamp(20px, 2.5vw, 30px) !important;
  position: relative;
}
body.has-design-v2 .editorial-card::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--stamp); opacity: 0.6;
}
body.has-design-v2 .editorial-card__kicker {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  color: var(--stamp) !important;
  margin-bottom: 10px;
}
body.has-design-v2 .editorial-card__title {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 800 !important;
  font-size: clamp(18px, 2vw, 24px) !important;
  letter-spacing: -0.025em !important;
  line-height: 1.2 !important;
  color: var(--text-strong) !important;
  margin-bottom: 14px;
  font-variation-settings: 'opsz' 144;
}
body.has-design-v2 .editorial-card ul,
body.has-design-v2 .editorial-card ol {
  padding-left: 1.2em;
  margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
body.has-design-v2 .editorial-card li {
  font-size: 13px;
  line-height: 1.55;
  color: var(--text);
}
body.has-design-v2 .editorial-card li b { color: var(--text-strong); }
body.has-design-v2 .editorial-card a { color: var(--stamp); cursor: pointer; }

/* Search results — tabla dossier */
body.has-design-v2 .panel table {
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 3px;
  overflow: hidden;
  width: 100%;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 13px;
}
body.has-design-v2 .panel table th {
  background: var(--paper-3);
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-mute);
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1.5px solid var(--line-strong);
}
body.has-design-v2 .panel table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
}
body.has-design-v2 .panel table tbody tr:hover { background: rgba(193,39,45,0.04); }

/* Responsive — search panels */
@media (max-width: 640px) {
  body.has-design-v2 .panel > .card.border-l-4,
  body.has-design-v2 .panel > .card[class*="border-l-4"] {
    padding: 18px 16px !important;
  }
  body.has-design-v2 .panel > .card.border-l-4 h2,
  body.has-design-v2 .panel > .card[class*="border-l-4"] h2 {
    font-size: clamp(20px, 6vw, 26px) !important;
  }
  body.has-design-v2 .panel input,
  body.has-design-v2 .panel select,
  body.has-design-v2 .panel textarea {
    font-size: 16px !important; /* prevent iOS zoom */
    padding: 11px 12px !important;
  }
  body.has-design-v2 .panel button { padding: 10px 14px !important; font-size: 11px !important; }
  body.has-design-v2 .kpi-ribbon {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  body.has-design-v2 .news-hero__search-btn { padding: 10px 14px !important; font-size: 11px !important; min-width: 44px; }
  body.has-design-v2 .news-hero__search-btn svg { width: 14px; height: 14px; }
}

/* ═══════════════════════════════════════════════════════════════════
   REPORT · cada sección como una carpeta de archivo
   ═══════════════════════════════════════════════════════════════════ */

/* Details collapsible — estilo carpeta dossier */
body.has-design-v2 #intel-result details.card.card-pad,
body.has-design-v2 #ced-result details.card.card-pad,
body.has-design-v2 .panel details.card.card-pad,
body.has-design-v2 [id^="intel-sections-"] details {
  background:
    linear-gradient(180deg, rgba(232,224,196,0.015), rgba(232,224,196,0)),
    var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 3px !important;
  position: relative;
  transition: border-color .2s, box-shadow .2s;
  margin-bottom: 10px;
  overflow: hidden;
}
body.has-design-v2 #intel-result details.card.card-pad::before,
body.has-design-v2 #ced-result details.card.card-pad::before,
body.has-design-v2 .panel details.card.card-pad::before,
body.has-design-v2 [id^="intel-sections-"] details::before {
  content: '';
  position: absolute; top: 0; left: 20px;
  width: 48px; height: 4px;
  background: var(--stamp);
  opacity: 0;
  transition: opacity .2s;
}
body.has-design-v2 #intel-result details.card.card-pad[open]::before,
body.has-design-v2 #ced-result details.card.card-pad[open]::before,
body.has-design-v2 .panel details.card.card-pad[open]::before,
body.has-design-v2 [id^="intel-sections-"] details[open]::before {
  opacity: 0.9 !important;
}
body.has-design-v2 #intel-result details.card.card-pad:hover,
body.has-design-v2 [id^="intel-sections-"] details:hover {
  border-color: var(--line-strong) !important;
}

/* Summary header */
body.has-design-v2 #intel-result details summary,
body.has-design-v2 #ced-result details summary,
body.has-design-v2 .panel details summary,
body.has-design-v2 [id^="intel-sections-"] details summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 18px !important;
  font-family: var(--plex-font) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  color: var(--text-strong) !important;
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  transition: background .2s;
}
body.has-design-v2 #intel-result details summary::-webkit-details-marker,
body.has-design-v2 #ced-result details summary::-webkit-details-marker,
body.has-design-v2 .panel details summary::-webkit-details-marker,
body.has-design-v2 [id^="intel-sections-"] details summary::-webkit-details-marker { display: none; }
body.has-design-v2 #intel-result details summary:hover,
body.has-design-v2 [id^="intel-sections-"] details summary:hover {
  background: rgba(193,39,45,0.04);
}
body.has-design-v2 #intel-result details[open] summary,
body.has-design-v2 [id^="intel-sections-"] details[open] summary {
  border-bottom: 1px solid var(--line);
  background: rgba(193,39,45,0.03);
}

/* Kicker "expandir ▾" — indicador */
body.has-design-v2 #intel-result details summary .kicker,
body.has-design-v2 [id^="intel-sections-"] details summary .kicker {
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  color: var(--text-mute) !important;
  transition: color .2s, transform .2s;
}
body.has-design-v2 #intel-result details[open] summary .kicker,
body.has-design-v2 [id^="intel-sections-"] details[open] summary .kicker {
  color: var(--stamp) !important;
  transform: rotate(180deg);
  display: inline-block;
}

/* Body content padding */
body.has-design-v2 #intel-result details > div,
body.has-design-v2 [id^="intel-sections-"] details > div {
  padding: 16px 18px 18px !important;
  font-size: 13.5px;
  line-height: 1.55;
}

/* "SECCIONES DETALLADAS" kicker */
body.has-design-v2 #intel-result .kicker {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
}

/* Risk banner internal text — refinement */
body.has-design-v2 .risk-banner .ed-num {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-variation-settings: 'opsz' 144 !important;
  font-weight: 800 !important;
}

/* Bento layout dentro del reporte */
body.has-design-v2 #intel-result .bento {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}
body.has-design-v2 #intel-result .card.card-pad {
  background: var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 3px !important;
  padding: clamp(16px, 1.8vw, 22px) !important;
}

/* KPI tiles dentro del reporte */
body.has-design-v2 .kpi-tile {
  background: var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 3px !important;
  padding: 14px 16px !important;
  position: relative;
}
body.has-design-v2 .kpi-tile .num {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-variation-settings: 'opsz' 144;
  font-weight: 700 !important;
  font-size: clamp(26px, 2.4vw, 36px) !important;
  letter-spacing: -0.04em !important;
  color: var(--text-strong) !important;
  line-height: 1;
}

/* Stack para detalles internos */
body.has-design-v2 .stack-sm { display: flex; flex-direction: column; gap: 10px; }

/* Alerts críticos dentro del reporte */
body.has-design-v2 #intel-result .card[style*="border-left:4px solid var(--rd-red)"] {
  background: rgba(193,39,45,0.06) !important;
  border: 1px solid rgba(193,39,45,0.25) !important;
  border-left: 4px solid var(--stamp) !important;
  border-radius: 3px !important;
}

/* Ed-num general dentro del reporte */
body.has-design-v2 #intel-result .ed-num,
body.has-design-v2 #ced-result .ed-num {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-variation-settings: 'opsz' 144;
  font-weight: 700 !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
}

/* Botones de acción en el HERO del reporte */
body.has-design-v2 #intel-result .btn.btn-emerald,
body.has-design-v2 #ced-result .btn.btn-emerald {
  background: var(--green-mil) !important;
  border-color: var(--green-mil) !important;
  color: #f0eddc !important;
  font-family: var(--mono) !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  border-radius: 3px !important;
}
body.has-design-v2 #intel-result .btn.btn-primary,
body.has-design-v2 #ced-result .btn.btn-primary {
  background: var(--stamp) !important;
  border-color: var(--stamp) !important;
  color: #f7e9c8 !important;
  border-radius: 3px !important;
  font-family: var(--mono) !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
}
body.has-design-v2 #intel-result .btn.btn-ghost,
body.has-design-v2 #ced-result .btn.btn-ghost {
  background: var(--paper-3) !important;
  border: 1.5px solid var(--line-strong) !important;
  color: var(--text-strong) !important;
  border-radius: 3px !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase;
  font-size: 11px !important;
}

/* Risk-banner h1 / titular */
body.has-design-v2 #intel-result h1.font-serif,
body.has-design-v2 #ced-result h1.font-serif {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-variation-settings: 'opsz' 144 !important;
  font-weight: 900 !important;
  letter-spacing: -0.03em !important;
}

/* Coverage banner — refinamiento */
body.has-design-v2 [id^="coverage-banner-"] .card {
  background: var(--paper-2) !important;
  border-radius: 3px !important;
}

/* Responsive — reportes */
@media (max-width: 768px) {
  body.has-design-v2 #intel-result .bento { grid-template-columns: 1fr !important; gap: 10px; }
  body.has-design-v2 #intel-result .bento > [class*="col-span"] { grid-column: 1 / -1 !important; }
  body.has-design-v2 #intel-result details summary,
  body.has-design-v2 [id^="intel-sections-"] details summary {
    padding: 12px 14px !important;
    font-size: 13.5px !important;
  }
  body.has-design-v2 #intel-result details > div,
  body.has-design-v2 [id^="intel-sections-"] details > div {
    padding: 14px !important;
  }
  body.has-design-v2 .risk-banner {
    padding: 20px !important;
  }
}
@media (max-width: 480px) {
  body.has-design-v2 #intel-result h1.font-serif,
  body.has-design-v2 #ced-result h1.font-serif {
    font-size: clamp(22px, 6vw, 28px) !important;
    line-height: 1.1;
  }
  body.has-design-v2 .kpi-tile .num { font-size: 24px !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   SIDEBAR · terminal-nav dossier (grupos colapsables + items)
   ═══════════════════════════════════════════════════════════════════ */

body.has-design-v2 .app-shell__sidebar {
  width: 240px !important;
}
body.has-design-v2 .terminal-nav {
  background: var(--paper) !important;
  border: 1px solid var(--line) !important;
  border-radius: 3px;
  padding: 10px 8px !important;
}

/* Dashboard solo (link suelto arriba) + Hábeas Data (link suelto al final) */
body.has-design-v2 .terminal-nav > .terminal-nav__link {
  border-radius: 2px;
  padding: 9px 10px !important;
  font-family: var(--plex-font) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  gap: 10px;
}
body.has-design-v2 .terminal-nav > .terminal-nav__link.is-active,
body.has-design-v2 .terminal-nav > .terminal-nav__link[aria-current="page"] {
  background: rgba(193,39,45,0.10) !important;
  color: var(--stamp) !important;
  border-left: 2px solid var(--stamp) !important;
  font-weight: 600 !important;
}
body.has-design-v2 .terminal-nav > .terminal-nav__link .terminal-nav__link-text {
  font-family: var(--plex-font) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0;
  text-transform: none;
}

/* Separador */
body.has-design-v2 .terminal-nav > div[style*="height:1px"] {
  background: var(--line-strong) !important;
  margin: 10px 4px !important;
  opacity: 1 !important;
}

/* Group container */
body.has-design-v2 .nav-group {
  margin: 2px 0 !important;
  border-radius: 2px;
  overflow: hidden;
}

/* Group toggle (header rojo-stamp) */
body.has-design-v2 .nav-group__toggle {
  width: 100%;
  background: transparent !important;
  border: 0 !important;
  border-radius: 2px;
  padding: 9px 10px !important;
  display: flex; align-items: center; gap: 8px;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
  cursor: pointer;
  transition: background .15s, color .15s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: left;
}
/* El primer text node (etiqueta del grupo) toma todo el espacio */
body.has-design-v2 .nav-group__toggle {
  justify-content: flex-start;
}
body.has-design-v2 .nav-group__toggle:hover {
  background: rgba(193,39,45,0.06) !important;
  color: var(--text-strong) !important;
}
body.has-design-v2 .nav-group.is-open > .nav-group__toggle {
  color: var(--stamp) !important;
  background: rgba(193,39,45,0.04) !important;
}

/* Chevron */
body.has-design-v2 .nav-group__chevron {
  width: 11px; height: 11px;
  margin-left: auto;
  transition: transform .2s ease;
  opacity: 0.6;
}
body.has-design-v2 .nav-group.is-open > .nav-group__toggle .nav-group__chevron {
  transform: rotate(90deg);
  opacity: 1;
}

/* Count badge */
body.has-design-v2 .nav-group__count {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  background: var(--paper-3) !important;
  color: var(--text-mute) !important;
  padding: 2px 6px !important;
  border-radius: 2px !important;
  border: 1px solid var(--line) !important;
  margin-left: 4px;
}
body.has-design-v2 .nav-group.is-open > .nav-group__toggle .nav-group__count {
  background: rgba(193,39,45,0.10) !important;
  color: var(--stamp) !important;
  border-color: rgba(193,39,45,0.3) !important;
}

/* Items container (collapsible body) */
body.has-design-v2 .nav-group__items {
  max-height: 0;
  overflow: hidden;
  transition: max-height .25s ease;
  background: rgba(232,224,196,0.015);
  border-left: 1.5px solid var(--line);
  margin-left: 14px;
  padding: 0;
}
body.has-design-v2 .nav-group.is-open > .nav-group__items {
  max-height: 800px;
  padding: 4px 0;
}

/* Links individuales */
body.has-design-v2 .terminal-nav__link {
  display: flex !important;
  align-items: center;
  gap: 10px;
  padding: 8px 12px !important;
  text-decoration: none;
  color: var(--text) !important;
  font-family: var(--plex-font) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  border-radius: 2px;
  position: relative;
  border-left: 2px solid transparent !important;
  transition: background .15s, color .15s, border-color .15s;
  cursor: pointer;
}
body.has-design-v2 .terminal-nav__link svg {
  width: 14px; height: 14px;
  flex: 0 0 14px;
  opacity: 0.55;
  transition: opacity .15s;
}
body.has-design-v2 .terminal-nav__link:hover {
  background: rgba(193,39,45,0.05) !important;
  color: var(--text-strong) !important;
}
body.has-design-v2 .terminal-nav__link:hover svg { opacity: 0.85; }
body.has-design-v2 .terminal-nav__link.is-active,
body.has-design-v2 .terminal-nav__link[aria-current="page"] {
  background: rgba(193,39,45,0.08) !important;
  color: var(--stamp) !important;
  border-left-color: var(--stamp) !important;
  font-weight: 600;
}
body.has-design-v2 .terminal-nav__link.is-active svg { opacity: 1 !important; }

/* Texto truncate */
body.has-design-v2 .terminal-nav__link-text {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Badges (HOT, watchlist count) */
body.has-design-v2 .terminal-nav__link-badge {
  font-family: var(--mono) !important;
  font-size: 8.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: var(--stamp) !important;
  color: #f7e9c8 !important;
  padding: 2px 6px !important;
  border-radius: 2px !important;
  margin-left: auto;
  flex-shrink: 0;
}

/* RESPONSIVE — sidebar */
@media (max-width: 900px) {
  body.has-design-v2 .app-shell__sidebar {
    width: 100% !important;
    border-radius: 0;
    position: fixed !important;
    top: 0; left: 0; bottom: 0;
    z-index: 90;
    transform: translateX(-100%);
    transition: transform .25s ease;
    width: min(85%, 320px) !important;
    background: var(--paper) !important;
    border-right: 1px solid var(--line-strong) !important;
    box-shadow: 12px 0 40px rgba(0,0,0,0.5);
    padding: 64px 14px 14px;
    overflow-y: auto;
  }
  body.has-design-v2 .app-shell__sidebar.open,
  body.has-design-v2.spa-nav-open .app-shell__sidebar,
  body.has-design-v2.menu-open .app-shell__sidebar {
    transform: translateX(0);
  }
  body.has-design-v2 .terminal-nav {
    position: static !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    max-height: none !important;
  }
  /* Backdrop */
  body.has-design-v2.spa-nav-open::after,
  body.has-design-v2.menu-open::after {
    content: '';
    position: fixed; inset: 0;
    background: rgba(10,12,20,0.6);
    z-index: 89;
    backdrop-filter: blur(2px);
  }
}

/* ═══════════════════════════════════════════════════════════════════
   AUTH DRAWER · signin / signup dossier
   ═══════════════════════════════════════════════════════════════════ */

body.has-design-v2 .signin-drawer {
  background:
    linear-gradient(180deg, rgba(232,224,196,0.02), rgba(232,224,196,0)),
    var(--paper-2) !important;
  border: 1px solid var(--line-strong) !important;
  border-top: 4px solid var(--stamp) !important;
  border-radius: 3px !important;
  padding: clamp(20px, 2.5vw, 28px) !important;
  margin-bottom: 24px;
  position: relative;
  box-shadow: 0 12px 30px rgba(0,0,0,0.3);
}
body.has-design-v2 .signin-drawer::before {
  content: '';
  position: absolute; top: -1px; left: 22px;
  width: 64px; height: 5px;
  background: var(--stamp);
  border-radius: 0 0 2px 2px;
  opacity: 0.7;
}

body.has-design-v2 .signin-drawer__head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
  padding-top: 6px;
}
body.has-design-v2 .signin-drawer .dateline {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
}
body.has-design-v2 .signin-drawer__title {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 900 !important;
  font-size: clamp(22px, 2.4vw, 32px) !important;
  letter-spacing: -0.025em !important;
  line-height: 1.1 !important;
  color: var(--text-strong) !important;
  font-variation-settings: 'opsz' 144;
}
body.has-design-v2 .signin-drawer__close {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
  border: 1.5px solid var(--line-strong) !important;
  border-radius: 2px !important;
  background: transparent !important;
  padding: 6px 12px !important;
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
body.has-design-v2 .signin-drawer__close:hover {
  border-color: var(--stamp) !important;
  color: var(--stamp) !important;
  background: transparent !important;
}

/* Tabs login/signup */
body.has-design-v2 .signin-drawer button[id^="tab-"] {
  flex: 1;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  padding: 11px 10px !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
  cursor: pointer;
  transition: color .2s, border-color .2s;
}
body.has-design-v2 .signin-drawer button[id^="tab-"]:hover {
  color: var(--text-strong) !important;
}
body.has-design-v2 .signin-drawer button[id^="tab-"][style*="rd-red"],
body.has-design-v2 .signin-drawer #tab-signup[style*="border-bottom:2px solid"],
body.has-design-v2 .signin-drawer #tab-login[style*="border-bottom:2px solid"][style*="rd-red"] {
  color: var(--stamp) !important;
  border-bottom-color: var(--stamp) !important;
}

/* Forzar tab activo cuando style inline tiene "var(--rd-red)" */
body.has-design-v2 #tab-signup,
body.has-design-v2 #tab-login {
  position: relative;
}
body.has-design-v2 #tab-signup[style*="color:var(--text-strong)"],
body.has-design-v2 #tab-login[style*="color:var(--text-strong)"] {
  color: var(--stamp) !important;
}

/* Tipo de cuenta — Personal/Corporativa pills */
body.has-design-v2 .signin-drawer label[style*="border:2px solid"] {
  border: 1.5px solid var(--line-strong) !important;
  border-radius: 3px !important;
  background: var(--paper-3) !important;
  cursor: pointer;
  transition: border-color .2s, background .2s;
  padding: 12px !important;
}
body.has-design-v2 .signin-drawer label[style*="border:2px solid var(--rd-red)"],
body.has-design-v2 .signin-drawer label[style*="background:rgba(206,17,38"] {
  border-color: var(--stamp) !important;
  background: rgba(193,39,45,0.08) !important;
}
body.has-design-v2 .signin-drawer label > div:first-child {
  font-family: var(--plex-font) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  color: var(--text-strong) !important;
}
body.has-design-v2 .signin-drawer label > div:last-child {
  font-size: 11px !important;
  color: var(--text-mute) !important;
  margin-top: 3px !important;
}

/* Inputs */
body.has-design-v2 .signin-drawer input[type="text"],
body.has-design-v2 .signin-drawer input[type="email"],
body.has-design-v2 .signin-drawer input[type="password"],
body.has-design-v2 .signin-drawer input:not([type]) {
  background: var(--paper-3) !important;
  border: 1.5px solid var(--line-strong) !important;
  border-radius: 3px !important;
  color: var(--text-strong) !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 13px !important;
  padding: 11px 14px !important;
  transition: border-color .2s, box-shadow .2s;
}
body.has-design-v2 .signin-drawer input:focus {
  outline: none !important;
  border-color: var(--stamp) !important;
  box-shadow: 0 0 0 4px var(--stamp-glow) !important;
}

/* Disclaimer box */
body.has-design-v2 .signin-drawer div[style*="background:rgba(127,163,230"],
body.has-design-v2 .signin-drawer div[style*="border-left:2px solid var(--accent)"] {
  background: rgba(200,155,60,0.06) !important;
  border-left: 2.5px solid var(--gold-paper) !important;
  border-radius: 3px;
  padding: 12px !important;
}

/* Hint text dentro del drawer */
body.has-design-v2 .signin-drawer p {
  font-size: 12px !important;
  line-height: 1.55 !important;
  color: var(--text-mute) !important;
}
body.has-design-v2 .signin-drawer p b { color: var(--text-strong) !important; }

/* Términos checkbox */
body.has-design-v2 .signin-drawer label[style*="margin-top:4px"] {
  font-size: 11px !important;
  color: var(--text-mute) !important;
  line-height: 1.5 !important;
}
body.has-design-v2 .signin-drawer label[style*="margin-top:4px"] a {
  color: var(--gold-paper) !important;
  border-bottom: 1px dashed var(--gold-paper);
}
body.has-design-v2 .signin-drawer input[type="checkbox"] {
  accent-color: var(--stamp) !important;
}

/* Submit buttons */
body.has-design-v2 .signin-drawer button[type="submit"],
body.has-design-v2 .signin-drawer form button:not([type="button"]) {
  background: var(--stamp) !important;
  color: #f7e9c8 !important;
  border: 1.5px solid var(--stamp) !important;
  border-radius: 3px !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 13px 18px !important;
  cursor: pointer;
  margin-top: 10px;
  box-shadow: 0 1px 0 rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.08);
  transition: background .2s, transform .15s;
}
body.has-design-v2 .signin-drawer button[type="submit"]:hover,
body.has-design-v2 .signin-drawer form button:not([type="button"]):hover {
  background: var(--stamp-deep) !important;
  transform: translateY(-1px);
}

/* Mensaje de login */
body.has-design-v2 #login-msg {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 12px !important;
  padding: 8px 0;
  color: var(--text-mute) !important;
}

@media (max-width: 480px) {
  body.has-design-v2 .signin-drawer__title { font-size: clamp(20px, 6vw, 26px) !important; }
  body.has-design-v2 .signin-drawer input { font-size: 16px !important; }
  body.has-design-v2 .signin-drawer button[type="submit"] { font-size: 11px !important; padding: 12px 14px !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   PERSONA REPORT · cédula 360°
   ═══════════════════════════════════════════════════════════════════ */

/* Hero card (cédula) */
body.has-design-v2 #ced-result .card.card-pad,
body.has-design-v2 #ced-result .card.border-l-4 {
  background: var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 3px !important;
  padding: clamp(16px, 2vw, 24px) !important;
}

/* Borde rojo crítico cuando alerta_alto_riesgo */
body.has-design-v2 #ced-result .border-rose-500,
body.has-design-v2 #ced-result .border-rose-700 {
  border-left: 4px solid var(--stamp) !important;
  background: rgba(193,39,45,0.06) !important;
}

/* Bordes verde militar para identidad verificada */
body.has-design-v2 #ced-result .border-teal-500,
body.has-design-v2 #ced-result .border-cyan-500 {
  border-left: 4px solid var(--green-mil) !important;
}

/* Familia inferida — caja dorada papel */
body.has-design-v2 #ced-result .border-purple-600,
body.has-design-v2 #ced-result #familia-card {
  border-left: 4px solid var(--gold-paper) !important;
  background: rgba(200,155,60,0.04) !important;
}

/* Cédula hero — número grande mono */
body.has-design-v2 #ced-result .mono,
body.has-design-v2 #ced-result .font-mono {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: clamp(20px, 2vw, 26px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em;
  color: var(--text-strong) !important;
}

/* Labels uppercase */
body.has-design-v2 #ced-result .text-xs.uppercase.text-slate-500,
body.has-design-v2 #ced-result .text-xs.text-slate-500 {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
}

/* Headings */
body.has-design-v2 #ced-result h4 {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 800 !important;
  font-size: clamp(16px, 1.6vw, 19px) !important;
  letter-spacing: -0.02em !important;
  color: var(--text-strong) !important;
  font-variation-settings: 'opsz' 144;
  margin-bottom: 12px;
}

/* Badge ALTO RIESGO — sello */
body.has-design-v2 #ced-result .bg-rose-600.text-white {
  background: var(--stamp) !important;
  color: #f7e9c8 !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  padding: 6px 12px !important;
  border-radius: 2px !important;
  border: 1.5px solid var(--stamp);
  box-shadow: 0 1px 0 rgba(0,0,0,0.4);
}

/* Botón "Buscar familiares" → ghost dorado */
body.has-design-v2 #ced-result .bg-purple-600,
body.has-design-v2 #ced-result .bg-purple-700 {
  background: rgba(200,155,60,0.12) !important;
  color: var(--gold-paper) !important;
  border: 1.5px solid var(--gold-paper) !important;
  border-radius: 2px !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  padding: 7px 12px !important;
  cursor: pointer;
}
body.has-design-v2 #ced-result .bg-purple-600:hover,
body.has-design-v2 #ced-result .bg-purple-700:hover {
  background: rgba(200,155,60,0.2) !important;
}

/* Sub-chip "inferidos" */
body.has-design-v2 #ced-result .bg-purple-50,
body.has-design-v2 #ced-result .dark\:bg-purple-950\/40 {
  background: rgba(200,155,60,0.08) !important;
  color: var(--gold-paper) !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 9.5px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  border: 1px solid rgba(200,155,60,0.3);
  border-radius: 2px !important;
  padding: 2px 7px !important;
}

/* Tabla persona (.std) — dossier */
body.has-design-v2 #ced-result table.std {
  width: 100%;
  background: var(--paper-3) !important;
  border: 1px solid var(--line);
  border-radius: 3px;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 12.5px !important;
  overflow: hidden;
}
body.has-design-v2 #ced-result table.std th {
  background: rgba(232,224,196,0.04) !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
  padding: 10px 12px !important;
  text-align: left;
  border-bottom: 1.5px solid var(--line-strong) !important;
}
body.has-design-v2 #ced-result table.std td {
  padding: 9px 12px !important;
  border-bottom: 1px solid var(--line) !important;
  color: var(--text) !important;
}
body.has-design-v2 #ced-result table.std td.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
body.has-design-v2 #ced-result table.std tbody tr:hover {
  background: rgba(193,39,45,0.04) !important;
}

/* Chip de relación */
body.has-design-v2 #ced-result .bg-slate-100 {
  background: rgba(232,224,196,0.06) !important;
  color: var(--text-mute) !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-radius: 2px !important;
  padding: 2px 6px !important;
}

/* Botones "Reporte →" en tabla */
body.has-design-v2 #ced-result .text-blue-600.underline {
  color: var(--stamp) !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--stamp) !important;
  padding-bottom: 1px;
}

/* Familia summary grid (4 boxes) */
body.has-design-v2 #ced-result .bg-slate-50,
body.has-design-v2 #ced-result .bg-emerald-50,
body.has-design-v2 #ced-result .bg-amber-50,
body.has-design-v2 #ced-result .dark\:bg-slate-800,
body.has-design-v2 #ced-result .dark\:bg-emerald-950\/40,
body.has-design-v2 #ced-result .dark\:bg-amber-950\/40,
body.has-design-v2 #ced-result .dark\:bg-rose-950\/40 {
  background: var(--paper-3) !important;
  border: 1px solid var(--line);
  border-radius: 2px;
}
body.has-design-v2 #ced-result .text-emerald-700 { color: var(--green-mil) !important; }
body.has-design-v2 #ced-result .text-amber-700  { color: var(--gold-paper) !important; }
body.has-design-v2 #ced-result .text-rose-700,
body.has-design-v2 #ced-result .text-slate-500 { }
body.has-design-v2 #ced-result .text-rose-700  { color: var(--stamp) !important; }

/* Familia row cards */
body.has-design-v2 #ced-result .border.border-slate-200,
body.has-design-v2 #ced-result .border.border-slate-700,
body.has-design-v2 #ced-result .dark\:border-slate-700 {
  background: var(--paper-3) !important;
  border: 1px solid var(--line) !important;
  border-radius: 2px !important;
}

/* "Sin información..." center text */
body.has-design-v2 #ced-result .text-center.py-4 {
  background: var(--paper-3);
  border: 1px dashed var(--line-strong);
  border-radius: 3px;
  padding: 28px 16px !important;
  color: var(--text-mute) !important;
  margin: 12px 0;
}

@media (max-width: 640px) {
  body.has-design-v2 #ced-result .mono,
  body.has-design-v2 #ced-result .font-mono { font-size: 18px !important; }
  body.has-design-v2 #ced-result table.std { font-size: 11.5px !important; }
  body.has-design-v2 #ced-result table.std th,
  body.has-design-v2 #ced-result table.std td { padding: 8px 9px !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   PANELES VIGILANCIA · resultados (testaferros/clusters/pepca/etc)
   ═══════════════════════════════════════════════════════════════════ */

/* Tablas .std en cualquier panel — dossier */
body.has-design-v2 .panel table.std,
body.has-design-v2 #testaferros-result table.std,
body.has-design-v2 #clusters-result table.std,
body.has-design-v2 #conflicts-result table.std,
body.has-design-v2 #shell-pep-result table.std,
body.has-design-v2 #pluriempleo-result table.std,
body.has-design-v2 #casos-pepca-result table.std {
  width: 100%;
  background: var(--paper-3) !important;
  border: 1px solid var(--line);
  border-radius: 3px;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 12.5px !important;
  overflow: hidden;
  border-collapse: collapse;
}
body.has-design-v2 .panel table.std th {
  background: rgba(232,224,196,0.04) !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
  padding: 10px 10px !important;
  text-align: left;
  border-bottom: 1.5px solid var(--line-strong) !important;
}
body.has-design-v2 .panel table.std th.num,
body.has-design-v2 .panel table.std td.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
body.has-design-v2 .panel table.std td {
  padding: 9px 10px !important;
  border-bottom: 1px solid var(--line) !important;
  color: var(--text) !important;
}
body.has-design-v2 .panel table.std tbody tr {
  transition: background .15s;
}
body.has-design-v2 .panel table.std tbody tr:hover {
  background: rgba(193,39,45,0.04) !important;
}

/* Filas con color de alerta (bg-amber-50) */
body.has-design-v2 .panel table.std tr.bg-amber-50 {
  background: rgba(200,155,60,0.06) !important;
}
body.has-design-v2 .panel table.std tr.bg-amber-50:hover {
  background: rgba(200,155,60,0.12) !important;
}

/* Detail row de testaferro/cluster */
body.has-design-v2 .panel table.std tr.hidden { display: none; }
body.has-design-v2 .panel table.std td.bg-slate-50,
body.has-design-v2 .panel table.std td[class*="bg-slate-50"] {
  background: rgba(232,224,196,0.03) !important;
  border-top: 2px solid var(--stamp) !important;
}

/* Score column en tabla — números rojos/amber */
body.has-design-v2 .panel table.std td.font-bold.text-amber-700 {
  color: var(--gold-paper) !important;
  font-weight: 700;
}
body.has-design-v2 .panel table.std td.text-slate-400 {
  color: var(--text-mute) !important;
}
body.has-design-v2 .panel table.std td .text-blue-600 {
  color: var(--stamp) !important;
}

/* Hint above tables */
body.has-design-v2 .panel .text-slate-500.text-sm.py-4.text-center,
body.has-design-v2 .panel .text-slate-500.text-sm {
  color: var(--text-mute) !important;
  text-align: center;
  padding: 24px !important;
  background: var(--paper-3);
  border: 1px dashed var(--line-strong);
  border-radius: 3px;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 12px;
}

/* "Red →" botón en tabla */
body.has-design-v2 .panel table.std .text-blue-600.underline {
  color: var(--stamp) !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--stamp) !important;
  padding-bottom: 1px;
}

/* Casos PEPCA — cards/listings */
body.has-design-v2 #casos-pepca-result .card,
body.has-design-v2 #pluriempleo-result .card,
body.has-design-v2 #shell-pep-result .card,
body.has-design-v2 #conflicts-result .card {
  background: var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 3px !important;
  padding: 16px !important;
}

/* Caja "info" (text-xs text-slate-600) → en blockquote dorado */
body.has-design-v2 .panel .text-[10px].text-slate-400,
body.has-design-v2 .panel .text-xs.italic {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10px !important;
  color: var(--text-mute) !important;
  opacity: 0.8;
  font-style: italic;
}

/* Score badge dorado/rojo en tabla */
body.has-design-v2 .panel table.std td.num.font-bold {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  font-variation-settings: 'opsz' 144;
  letter-spacing: -0.02em;
}

/* ═══════════════════════════════════════════════════════════════════
   PANELES RECURSOS PÚBLICOS · partidos / sectores / instituciones
   ═══════════════════════════════════════════════════════════════════ */

/* Border-left de Tailwind con cualquier color → unificar a paleta dossier */
body.has-design-v2 .panel .border-l-4.border-purple-500,
body.has-design-v2 .panel .border-l-4.border-purple-600,
body.has-design-v2 .panel .border-l-4.border-blue-500,
body.has-design-v2 .panel .border-l-4.border-blue-600 {
  border-left: 4px solid var(--gold-paper) !important;
}
body.has-design-v2 .panel .border-l-4.border-emerald-500,
body.has-design-v2 .panel .border-l-4.border-emerald-600,
body.has-design-v2 .panel .border-l-4.border-teal-500,
body.has-design-v2 .panel .border-l-4.border-teal-600 {
  border-left: 4px solid var(--green-mil) !important;
}
body.has-design-v2 .panel .border-l-4.border-amber-500,
body.has-design-v2 .panel .border-l-4.border-amber-600 {
  border-left: 4px solid var(--gold-paper) !important;
}
body.has-design-v2 .panel .border-l-4.border-rose-500,
body.has-design-v2 .panel .border-l-4.border-rose-600,
body.has-design-v2 .panel .border-l-4.border-rose-700,
body.has-design-v2 .panel .border-l-4.border-red-500,
body.has-design-v2 .panel .border-l-4.border-red-600 {
  border-left: 4px solid var(--stamp) !important;
}
body.has-design-v2 .panel .border-l-4.border-indigo-500,
body.has-design-v2 .panel .border-l-4.border-indigo-600,
body.has-design-v2 .panel .border-l-4.border-cyan-500,
body.has-design-v2 .panel .border-l-4.border-slate-500 {
  border-left: 4px solid var(--line-strong) !important;
}

/* Pills/chips de partido */
body.has-design-v2 .panel .bg-purple-100,
body.has-design-v2 .panel .bg-blue-100,
body.has-design-v2 .panel .bg-emerald-100,
body.has-design-v2 .panel .bg-rose-100,
body.has-design-v2 .panel .bg-amber-100 {
  background: var(--paper-3) !important;
  border: 1px solid var(--line-strong);
  color: var(--text) !important;
}

/* Buttons sector chips */
body.has-design-v2 .panel .bg-slate-100,
body.has-design-v2 .panel .dark\:bg-slate-700,
body.has-design-v2 .panel .hover\:bg-blue-100:hover {
  background: var(--paper-3) !important;
  color: var(--text) !important;
  border: 1px solid var(--line);
  border-radius: 2px !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  padding: 5px 10px !important;
  transition: border-color .15s, color .15s;
}
body.has-design-v2 .panel .bg-slate-100:hover,
body.has-design-v2 .panel .dark\:bg-slate-700:hover {
  border-color: var(--stamp) !important;
  color: var(--stamp) !important;
}

/* "Período presidencial" kicker */
body.has-design-v2 .panel .text-\[10px\].uppercase.tracking-wide.text-slate-500 {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
}

/* Mono RNC en cell de tabla */
body.has-design-v2 .panel .mono.text-\[10px\],
body.has-design-v2 .panel table.std .mono {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10.5px !important;
  color: var(--text-mute) !important;
}

/* Numeral grande de monto */
body.has-design-v2 .panel .font-bold.text-lg {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 800 !important;
  font-size: clamp(20px, 1.8vw, 24px) !important;
  letter-spacing: -0.02em;
  color: var(--text-strong) !important;
  font-variation-settings: 'opsz' 144;
}
body.has-design-v2 .panel .text-xl.font-bold {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 800 !important;
  font-size: clamp(22px, 2vw, 28px) !important;
  letter-spacing: -0.025em;
  color: var(--text-strong) !important;
  font-variation-settings: 'opsz' 144;
}

/* ═══════════════════════════════════════════════════════════════════
   WATCHLIST + FUNCIONARIOS + TOOLS (compartido)
   ═══════════════════════════════════════════════════════════════════ */

/* Select dossier */
body.has-design-v2 .panel select {
  background: var(--paper-3) !important;
  border: 1.5px solid var(--line-strong) !important;
  border-radius: 3px !important;
  color: var(--text-strong) !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 13px !important;
  padding: 9px 12px !important;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238c8775' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 30px !important;
}
body.has-design-v2 .panel select:focus {
  border-color: var(--stamp) !important;
  outline: none !important;
}
body.has-design-v2 .panel select option {
  background: var(--paper-2) !important;
  color: var(--text) !important;
}

/* Textarea dossier (bulk) */
body.has-design-v2 .panel textarea {
  min-height: 100px;
  line-height: 1.5;
  resize: vertical;
}

/* Empty state placeholder en watchlist */
body.has-design-v2 #watchlist-content:empty::after,
body.has-design-v2 #watchlist-content > .text-slate-500:only-child {
  display: block;
  text-align: center;
  padding: 36px 16px;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 12px;
  color: var(--text-mute);
  border: 1px dashed var(--line-strong);
  border-radius: 3px;
  background: var(--paper-3);
}

/* Quick links institucion (MOPC, MINERD, etc.) */
body.has-design-v2 .panel .text-xs.text-slate-500 > .text-blue-600.underline,
body.has-design-v2 .panel .text-xs > button.text-blue-600.underline {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 11px !important;
  color: var(--gold-paper) !important;
  text-decoration: none !important;
  border-bottom: 1px dashed var(--gold-paper) !important;
  padding-bottom: 1px;
  margin: 0 3px;
}

/* Bulk paste textarea — wider for the listing */
body.has-design-v2 #bulk-list {
  font-size: 12px !important;
}

/* ═══════════════════════════════════════════════════════════════════
   TOOLS · api-docs / upload / capturas / sources / health
   ═══════════════════════════════════════════════════════════════════ */

/* Hero centered (h1 sin .card.border-l-4) */
body.has-design-v2 .panel .text-center.mb-6.mt-2 h1.text-3xl {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 900 !important;
  font-size: clamp(34px, 4vw, 56px) !important;
  letter-spacing: -0.03em !important;
  line-height: 1.05 !important;
  color: var(--text-strong) !important;
  font-variation-settings: 'opsz' 144;
  margin-bottom: 14px;
}
body.has-design-v2 .panel .text-center.mb-6.mt-2 p.text-slate-600 {
  font-size: clamp(15px, 1.4vw, 18px) !important;
  line-height: 1.55 !important;
  color: var(--text-mute) !important;
}

/* Feature cards centradas */
body.has-design-v2 .panel .grid.md\:grid-cols-3 > .card.card-pad.text-center {
  background: var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 3px !important;
  padding: clamp(20px, 2.4vw, 28px) 18px !important;
  text-align: center;
  transition: border-color .2s, transform .2s;
}
body.has-design-v2 .panel .grid.md\:grid-cols-3 > .card.card-pad.text-center:hover {
  border-color: var(--line-strong) !important;
  transform: translateY(-2px);
}
body.has-design-v2 .panel .card.text-center .text-3xl {
  font-size: 36px !important;
  margin-bottom: 10px;
  opacity: 0.85;
}
body.has-design-v2 .panel .card.text-center h3.font-bold {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 800 !important;
  font-size: clamp(15px, 1.4vw, 18px) !important;
  letter-spacing: -0.015em !important;
  color: var(--text-strong) !important;
  margin-bottom: 8px;
  font-variation-settings: 'opsz' 144;
}

/* CTAs Contactar / WhatsApp */
body.has-design-v2 .panel a.bg-purple-600,
body.has-design-v2 .panel a.bg-purple-700 {
  background: var(--stamp) !important;
  color: #f7e9c8 !important;
  border: 1.5px solid var(--stamp) !important;
  border-radius: 3px !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-weight: 700 !important;
  font-size: 11.5px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 11px 18px !important;
  text-decoration: none;
  transition: background .2s, transform .15s;
  box-shadow: 0 1px 0 rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.08);
}
body.has-design-v2 .panel a.bg-purple-600:hover { background: var(--stamp-deep) !important; transform: translateY(-1px); }

body.has-design-v2 .panel a.bg-emerald-600,
body.has-design-v2 .panel a.bg-emerald-700 {
  background: var(--green-mil) !important;
  color: #f0eddc !important;
  border: 1.5px solid var(--green-mil) !important;
  border-radius: 3px !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-weight: 700 !important;
  font-size: 11.5px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 11px 18px !important;
  text-decoration: none;
}

/* Upload zone */
body.has-design-v2 #panel-upload input[type="file"] {
  background: var(--paper-3) !important;
  border: 1.5px dashed var(--line-strong) !important;
  border-radius: 3px !important;
  padding: 24px !important;
  color: var(--text-mute) !important;
  cursor: pointer;
  width: 100%;
  text-align: center;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
}
body.has-design-v2 #panel-upload input[type="file"]:hover {
  border-color: var(--stamp) !important;
  color: var(--stamp) !important;
}

/* Health / sources status indicators (verde/rojo) */
body.has-design-v2 #panel-health .text-emerald-600,
body.has-design-v2 #panel-health .text-green-600 { color: var(--green-mil) !important; }
body.has-design-v2 #panel-health .text-rose-600,
body.has-design-v2 #panel-health .text-red-600 { color: var(--stamp) !important; }
body.has-design-v2 #panel-health .text-amber-600 { color: var(--gold-paper) !important; }

/* ═══════════════════════════════════════════════════════════════════
   TOASTS / LOADING / ERROR / GRAPH / CHARTS / FOOTER
   ═══════════════════════════════════════════════════════════════════ */

/* Toast stack */
body.has-design-v2 #toast-stack {
  position: fixed;
  top: 80px; right: 16px;
  z-index: 1000;
  display: flex; flex-direction: column; gap: 8px;
  pointer-events: none;
  max-width: 380px;
}
body.has-design-v2 .toast {
  pointer-events: auto;
  background: var(--paper-2) !important;
  border: 1.5px solid var(--line-strong) !important;
  border-left: 4px solid var(--stamp) !important;
  border-radius: 3px !important;
  padding: 11px 16px !important;
  color: var(--text-strong) !important;
  font-family: var(--plex-font) !important;
  font-size: 13px !important;
  line-height: 1.5;
  box-shadow: 0 12px 30px rgba(0,0,0,0.4);
  animation: toastIn .3s ease;
}
@keyframes toastIn { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }
body.has-design-v2 .toast.bg-blue-600   { border-left-color: var(--stamp) !important; }
body.has-design-v2 .toast.bg-emerald-600{ border-left-color: var(--green-mil) !important; }
body.has-design-v2 .toast.bg-rose-600   { border-left-color: var(--stamp) !important; background: rgba(193,39,45,0.08) !important; }
body.has-design-v2 .toast.bg-amber-500  { border-left-color: var(--gold-paper) !important; }

/* Reset bg-* en toasts dossier */
body.has-design-v2 .toast[class*="bg-"] {
  background: var(--paper-2) !important;
}

/* Loading/Error helpers */
body.has-design-v2 .panel .loading-helper,
body.has-design-v2 .panel .text-slate-500.italic,
body.has-design-v2 [class*="loadingHtml"] {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  color: var(--text-mute) !important;
}

/* Skeleton loader animado — kicker rojo "▸ Cargando…" */
body.has-design-v2 .panel .animate-pulse {
  position: relative;
  background: linear-gradient(90deg,
    rgba(232,224,196,0.04) 0%,
    rgba(232,224,196,0.10) 50%,
    rgba(232,224,196,0.04) 100%) !important;
  background-size: 200% 100%;
  animation: shimmer 1.5s linear infinite;
  border-radius: 3px;
}
@keyframes shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* GRAFO (Cytoscape) */
body.has-design-v2 #cy-container,
body.has-design-v2 .cy-container {
  position: relative;
  background: var(--paper-3) !important;
  border: 1px solid var(--line) !important;
  border-radius: 3px !important;
  height: 520px;
  overflow: hidden;
}
body.has-design-v2 #cy,
body.has-design-v2 .cytoscape-canvas {
  background: var(--paper-3) !important;
}
body.has-design-v2 .graph-controls {
  position: absolute; top: 12px; right: 12px;
  display: flex; gap: 4px;
  background: var(--paper-2);
  border: 1px solid var(--line-strong);
  border-radius: 3px;
  padding: 4px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.3);
  z-index: 5;
}
body.has-design-v2 .graph-controls button {
  background: transparent !important;
  border: 0 !important;
  color: var(--text-mute) !important;
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 6px 9px !important;
  cursor: pointer;
  border-radius: 2px;
  transition: background .15s, color .15s;
}
body.has-design-v2 .graph-controls button:hover {
  background: rgba(193,39,45,0.10) !important;
  color: var(--stamp) !important;
}

/* SVG sparklines / charts dentro del reporte */
body.has-design-v2 #intel-result svg.spark path:not(.area),
body.has-design-v2 #intel-result svg polyline {
  stroke: var(--gold-paper) !important;
  stroke-width: 2;
}
body.has-design-v2 #intel-result svg.spark .area {
  fill: rgba(200,155,60,0.18) !important;
  stroke: none;
}

/* FOOTER del app */
body.has-design-v2 footer.app-footer,
body.has-design-v2 .app-footer,
body.has-design-v2 footer[role="contentinfo"] {
  background: var(--ink) !important;
  border-top: 1px solid var(--line) !important;
  padding: 32px clamp(16px, 3vw, 28px);
  margin-top: 48px;
}
body.has-design-v2 footer .footer-brand,
body.has-design-v2 footer h3 {
  font-family: var(--font-display, 'Fraunces'), serif !important;
  font-weight: 900 !important;
  font-size: 22px !important;
  letter-spacing: -0.025em;
  color: var(--text-strong) !important;
}
body.has-design-v2 footer .footer-kicker,
body.has-design-v2 footer .text-xs.uppercase,
body.has-design-v2 footer h4 {
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--text-mute) !important;
}
body.has-design-v2 footer a {
  color: var(--text-mute) !important;
  text-decoration: none;
  transition: color .15s;
}
body.has-design-v2 footer a:hover {
  color: var(--stamp) !important;
}

/* Empty/error states centrados */
body.has-design-v2 .panel .text-center.py-4.text-slate-500 {
  text-align: center;
  padding: 36px 16px;
  border: 1px dashed var(--line-strong);
  border-radius: 3px;
  background: var(--paper-3);
  font-family: var(--mono, 'JetBrains Mono'), monospace !important;
  font-size: 12px;
  color: var(--text-mute) !important;
}

/* Light theme — convertir paper a tonos cálidos claros */
body.has-design-v2[data-theme="light"] {
  --bg:          #f6f3ea;
  --bg-2:        #fffdf6;
  --bg-3:        #ffffff;
  --bg-elev:     #ffffff;
  --line:        rgba(20,18,12,0.08);
  --line-strong: rgba(20,18,12,0.20);
  --text:        #2a2618;
  --text-mute:   #6b6450;
  --text-strong: #0f0d05;
  --stamp:       #b41c22;
  --rd-red:      #b41c22;
  --gold:        #a37418;
  --emerald:     #2f6b3a;
}
body.has-design-v2[data-theme="light"]::before { opacity: 0.025; mix-blend-mode: multiply; }
body.has-design-v2[data-theme="light"] .folder { background: linear-gradient(180deg, #fffdf6, #fbf7eb); }
body.has-design-v2[data-theme="light"] .envelope { background: linear-gradient(135deg, rgba(180,28,34,0.04) 0%, transparent 50%), #fffdf6; }

/* ═══════════════════════════════════════════════════════════════════════
   REPORTES · más respiro entre letras y entre elementos
   ═══════════════════════════════════════════════════════════════════════ */
body.has-design-v2 .card.card-pad,
body.has-design-v2 .card-pad{
  padding: 26px 28px !important;
  line-height: 1.6;
}
body.has-design-v2 .card.card-pad + .card.card-pad,
body.has-design-v2 .card-pad + .card-pad{ margin-top: 18px; }

/* Headings de panel: tracking abierto, descanso */
body.has-design-v2 .card .font-serif,
body.has-design-v2 .card h3.font-serif{
  letter-spacing: -.005em !important;
  line-height: 1.25 !important;
  margin-bottom: 4px !important;
}
body.has-design-v2 .card .text-xs.mt-1{
  margin-top: 8px !important;
  line-height: 1.5;
  letter-spacing: .01em;
}

/* Chips: respiro entre letras + padding más amplio */
body.has-design-v2 .chip,
body.has-design-v2 [class*="chip-"]{
  letter-spacing: .14em !important;
  padding: 5px 12px !important;
  font-size: 10.5px !important;
  border-radius: 3px !important;
  text-transform: uppercase;
}

/* Pills de Tailwind dentro del consolidado UBO */
body.has-design-v2 .card .px-1\.5.py-0\.5{
  padding: 6px 12px !important;
  letter-spacing: .14em !important;
  font-size: 10.5px !important;
  border-radius: 3px !important;
  text-transform: uppercase;
  font-weight: 600;
}

/* Filas del UBO: más aire vertical entre cada persona */
body.has-design-v2 .card .space-y-2 > * + *{
  margin-top: 14px !important;
}
body.has-design-v2 .card .space-y-2 .border.rounded,
body.has-design-v2 .card .space-y-2 .border.border-slate-200,
body.has-design-v2 .card .space-y-2 .border.dark\:border-slate-700{
  padding: 16px 18px !important;
  border-radius: 4px !important;
}

/* Header del UBO: nombre + cédula con respiro */
body.has-design-v2 .card .font-semibold.text-sm{
  font-size: 15px !important;
  letter-spacing: -.005em !important;
  line-height: 1.35 !important;
  margin-bottom: 4px;
}
body.has-design-v2 .card .text-\[11px\].font-mono{
  font-size: 12px !important;
  letter-spacing: .04em !important;
  margin-top: 4px !important;
}

/* Chips group: más gap horizontal */
body.has-design-v2 .card .flex.flex-wrap.gap-1{
  gap: 8px !important;
  margin-top: 12px !important;
}

/* Score box (porcentaje a la derecha): respiro */
body.has-design-v2 .card .font-mono.font-bold.text-base{
  padding: 8px 14px !important;
  letter-spacing: .02em !important;
}

/* Stack / row gaps internos: un poco más */
body.has-design-v2 .stack.stack-sm > * + *{ margin-top: 10px; }
body.has-design-v2 .row > * + *{ margin-left: 10px; }

/* Body legible: text-xs y text-[10px] subidos un punto */
body.has-design-v2 .card .text-xs{ font-size: 13px !important; line-height: 1.55; letter-spacing: .005em; }
body.has-design-v2 .card .text-\[10px\]{ font-size: 10.5px !important; letter-spacing: .12em; }
body.has-design-v2 .card .text-\[11px\]{ font-size: 11.5px !important; letter-spacing: .04em; line-height: 1.5; }

/* Tablas dentro de cards: padding más generoso */
body.has-design-v2 .card table td,
body.has-design-v2 .card table th{
  padding: 11px 14px !important;
  letter-spacing: .005em;
}

/* row-between (header de cada card): un poco más de aire abajo */
body.has-design-v2 .card .row-between.mb-3{ margin-bottom: 16px !important; }
body.has-design-v2 .card .row-between.mb-4{ margin-bottom: 20px !important; }

/* Sub-secciones (kicker etiquetas): tracking abierto */
body.has-design-v2 .card .kicker{
  letter-spacing: .22em !important;
  font-size: 10.5px !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   TÍTULOS DE SECCIÓN PROMINENTES — para que NUNCA pasen desapercibidos
   ═══════════════════════════════════════════════════════════════════════ */
body.has-design-v2 .card.card-pad h3.font-serif{
  position: relative;
  padding: 10px 18px !important;
  margin: -10px -18px 18px !important;
  background: linear-gradient(90deg, rgba(193,39,45,.12) 0%, rgba(193,39,45,.04) 40%, transparent 100%);
  border-left: 4px solid var(--rd-red, #c1272d);
  border-bottom: 1px solid rgba(193,39,45,.18);
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: -.01em !important;
}
/* Variante para cards con border-l-4 ya existente (alertas, verdicto, etc.)
   — la barra de color de la card ya marca el bloque, ahí no doblamos */
body.has-design-v2 .card.card-pad[style*="border-left:"] h3.font-serif,
body.has-design-v2 .card.card-pad[style*="border-left :"] h3.font-serif{
  border-left: none;
  background: linear-gradient(90deg, rgba(255,255,255,.05) 0%, transparent 100%);
}

/* Container del header (h3 + chip kicker) — alinear vertical */
body.has-design-v2 .card.card-pad .row-between:first-child{
  margin-left: -18px;
  margin-right: -18px;
  padding: 10px 18px !important;
  background: linear-gradient(90deg, rgba(193,39,45,.12) 0%, rgba(193,39,45,.04) 40%, transparent 100%);
  border-left: 4px solid var(--rd-red, #c1272d);
  border-bottom: 1px solid rgba(193,39,45,.18);
  margin-bottom: 18px !important;
}
body.has-design-v2 .card.card-pad .row-between:first-child h3.font-serif{
  /* dentro del wrapper row-between ya no necesita la barra extra */
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  border: none !important;
  border-bottom: none !important;
}

/* Cards con border-l-4 propio (riesgo, alertas, banderas) — no duplicar */
body.has-design-v2 .card.card-pad[style*="border-left"]:not([style*="border-left:0"]) .row-between:first-child{
  background: none !important;
  border-left: none !important;
  border-bottom: 1px dashed var(--thread, rgba(232,224,196,.18)) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 0 12px 0 !important;
}

/* Acentos por tono — risk-banner ya tiene su propio look */
body.has-design-v2 .risk-banner h3,
body.has-design-v2 .risk-banner .font-serif{
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* SECCIONES DETALLADAS · kicker más prominente */
body.has-design-v2 #intel-sections-130971862,
body.has-design-v2 [id^="intel-sections-"]{
  border-top: 1px dashed var(--thread, rgba(232,224,196,.18));
  padding-top: 14px;
  margin-top: 28px;
}
body.has-design-v2 .kicker[style*="margin-top:24px"]{
  font-size: 12px !important;
  letter-spacing: .28em !important;
  color: var(--gold-paper, #c89b3c) !important;
  font-weight: 700 !important;
}

/* Footer "Datos adicionales" — visualmente apagado para no abrumar.
   Solo se enciende al hover/expand intencionado. */
body.has-design-v2 .report-footer-extra{
  background: linear-gradient(180deg, transparent 0%, rgba(232,224,196,.02) 100%);
  padding: 32px 0 24px;
}
body.has-design-v2 .report-footer-extra .kicker{
  color: var(--bone-muted, #8c8775) !important;
  letter-spacing: .26em !important;
  font-size: 11px !important;
}
body.has-design-v2 .report-footer-extra .card.card-pad{
  background: linear-gradient(180deg, rgba(28,31,43,.55) 0%, rgba(17,20,29,.55) 100%) !important;
  border: 1px solid rgba(232,224,196,.08) !important;
  opacity: .85;
  transition: opacity .2s ease;
}
body.has-design-v2 .report-footer-extra .card.card-pad:hover,
body.has-design-v2 .report-footer-extra .card.card-pad[open]{
  opacity: 1;
}
body.has-design-v2 .report-footer-extra > .card.card-pad > summary,
body.has-design-v2 .report-footer-extra .card.card-pad > summary{
  background: transparent !important;
  border-left: 2px solid var(--bone-muted, #8c8775) !important;
  border-bottom: none !important;
  transition: background .15s ease, border-left .15s ease, color .15s ease;
  font-weight: 500 !important;
  color: var(--bone, #d6d3c4) !important;
}
body.has-design-v2 .report-footer-extra .card.card-pad > summary:hover{
  background: linear-gradient(90deg, rgba(200,155,60,.08) 0%, transparent 100%) !important;
  border-left-color: var(--gold-paper, #c89b3c) !important;
  border-left-width: 3px !important;
  color: var(--ivory, #f4f0dd) !important;
}
body.has-design-v2 .report-footer-extra .card.card-pad[open] > summary{
  background: linear-gradient(90deg, rgba(193,39,45,.10) 0%, transparent 100%) !important;
  border-left-color: var(--rd-red, #c1272d) !important;
  border-left-width: 4px !important;
  color: var(--ivory, #f4f0dd) !important;
}

/* Bordes laterales más visibles en cards con border-l-4 inline */
body.has-design-v2 .card.card-pad[style*="border-left:4px solid var(--rd-red)"]{
  border-left-width: 5px !important;
  box-shadow: 0 0 0 1px rgba(193,39,45,.18), 0 6px 20px -8px rgba(193,39,45,.30) !important;
}

